Задание выполняем в программе MS EXCEL
Небольшой кинотеатр «Заря», имеющий только один зрительный зал,
осуществляет бронирование билетов на фильмов. В расписании сеансов
кинотеатра одновременно присутствует не менее 4, но и не более, чем 10 наименований
фильмов, для каждого из которых запланировано не более 5, но и не менее 3 сеансов.
Необходимо сформировать в MS Excel таблицу, отражающую распределение
купленных и забронированных билетов Таблица должна содержать схематичное
изображение зрительного зала из не менее, чем 12 рядов по 15 кресел в каждом.
Стоимость билетов варьируется в зависимости от ряда, в котором находится кресло.
Стоимости билетов фиксированные, от 200 до 800 руб. с шагом 50 руб. Стоимость билета
для каждого ряда задается выбором из заранее сформированного списка. Для нескольких
рядов стоимость может быть одинаковой.
«Статус» места в зрительном зале может быть: «свободно» - значение 0,
«забронировано» - значение 1, «продано» - значение 2. При изменении статуса цвет ячейки
и значения, хранящегося в ней, должен измениться на «свободно» - «зеленый»,
«забронировано» - «желтый», «продано» - «синий». В остальных случаях цвет ячейки
должен быть красным.
Под схемой зала необходимо разместить информацию о том, какой фильм и какой
сеанс отображены на схеме. Название фильма и время сеанса должны храниться в
отдельной таблице. Их выбор должен осуществляться в формальном виде, например, при выпадающего списка. Данную таблицу целесообразно разместить в отдельном
файле, так как эта же таблица с названиями и временем сеанса фильма должна
использоваться, как источник данных для формирования афиш формата А3 методом
«слияния» документов. На основе данного шаблона необходимо получить афиши для всех
фильмов из списка.
Также под схемой зрительного зала следует разместить информацию о количестве
свободных мест, количестве забронированных мест и общей сумме за забронированные
билеты, количестве проданных билетов и общей сумме за проданные билеты.
Под информацией о количестве и стоимости билетов необходимо разместить
шаблон билета. Он должен содержать название фильма и сеанс, номере места и номере
ряда, стоимости билета. Билет должен быть размещен на фиолетовом фоне. При печати
листа книги должен быть распечатан только один билет.
На отдельном листе необходимо сформировать диаграмму, которая отражает
распределение выкупленных и забронированных билетов в зависимости от номера ряда.
Диаграмма также должна содержать информацию о названии фильма и сеансе таблицу с расчетами,
- таблицу с перечнем фильмов,
- шаблон афиши,
- готовые афиши (все – в одном файле)
A:array[1..1000,1..1000] of integer;
M,N,Min,Max:integer;
Begin
Write('M(1..1000) = ');
ReadLn(M);
Write('N(1..1000) = ');
ReadLn(N);
For var i:= 1 to M do
Begin
For var j:= 1 to N do
Begin
A[i,j]:=random(1,M*N);
Write(A[i,j],' ')
End;
WriteLn;
End;
Min:=A[M,N];
Max:=A[M,N];
For var i:= 1 to M do
For var j:= 1 to N do
Begin
if Min>A[i,j] then Min:=A[i,j];
if Max<A[i,j] then Max:=A[i,j]
End;
WriteLn('Min(A) / Max(A) = ',Min/Max);
End.
Пример:
M(1..1000) = 3
N(1..1000) = 3
6 9 6
4 5 3
1 9 7
Min(A) / Max(A) = 0.111111111111111
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',m,',',n,'] ***');
var a:=MatrRandom(m,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var s:=a.Rows.SelectMany(x->x);
Writeln('Отношение min/max равно ',s.Min/s.Max:0:4)
end.
Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 8
*** Исходный массив [5,8] ***
-38 -26 -68 -48 79 -61 -25 -97
26 -81 -67 -49 22 -15 45 -75
92 93 -59 -4 -21 91 -36 19
-65 -36 -18 -1 -12 8 -91 -29
-28 -33 -41 85 -94 -15 -33 69
Отношение min/max равно -1.0430