Задание выполняем в программе MS EXCEL
Небольшой кинотеатр «Заря», имеющий только один зрительный зал,
осуществляет бронирование билетов на фильмов. В расписании сеансов
кинотеатра одновременно присутствует не менее 4, но и не более, чем 10 наименований
фильмов, для каждого из которых запланировано не более 5, но и не менее 3 сеансов.
Необходимо сформировать в MS Excel таблицу, отражающую распределение
купленных и забронированных билетов Таблица должна содержать схематичное
изображение зрительного зала из не менее, чем 12 рядов по 15 кресел в каждом.
Стоимость билетов варьируется в зависимости от ряда, в котором находится кресло.
Стоимости билетов фиксированные, от 200 до 800 руб. с шагом 50 руб. Стоимость билета
для каждого ряда задается выбором из заранее сформированного списка. Для нескольких
рядов стоимость может быть одинаковой.
«Статус» места в зрительном зале может быть: «свободно» - значение 0,
«забронировано» - значение 1, «продано» - значение 2. При изменении статуса цвет ячейки
и значения, хранящегося в ней, должен измениться на «свободно» - «зеленый»,
«забронировано» - «желтый», «продано» - «синий». В остальных случаях цвет ячейки
должен быть красным.
Под схемой зала необходимо разместить информацию о том, какой фильм и какой
сеанс отображены на схеме. Название фильма и время сеанса должны храниться в
отдельной таблице. Их выбор должен осуществляться в формальном виде, например, при выпадающего списка. Данную таблицу целесообразно разместить в отдельном
файле, так как эта же таблица с названиями и временем сеанса фильма должна
использоваться, как источник данных для формирования афиш формата А3 методом
«слияния» документов. На основе данного шаблона необходимо получить афиши для всех
фильмов из списка.
Также под схемой зрительного зала следует разместить информацию о количестве
свободных мест, количестве забронированных мест и общей сумме за забронированные
билеты, количестве проданных билетов и общей сумме за проданные билеты.
Под информацией о количестве и стоимости билетов необходимо разместить
шаблон билета. Он должен содержать название фильма и сеанс, номере места и номере
ряда, стоимости билета. Билет должен быть размещен на фиолетовом фоне. При печати
листа книги должен быть распечатан только один билет.
На отдельном листе необходимо сформировать диаграмму, которая отражает
распределение выкупленных и забронированных билетов в зависимости от номера ряда.
Диаграмма также должна содержать информацию о названии фильма и сеансе таблицу с расчетами,
- таблицу с перечнем фильмов,
- шаблон афиши,
- готовые афиши (все – в одном файле)
const n=100;
var ar:array of array of integer;
ars:array of array of string;
i:integer;
procedure complection(var ar:array of array of integer;var ars:array of array of string);
var
i,j:integer;
begin;
for i:=1 to n do
begin;
for j:=1 to n do
begin;
ar[i,j]:=random(9);
str(ar[i,j],ars[i,j]);
end;
end;
end;
procedure burning(ars:array of array of string);
var
i,j:integer;
t:text;
begin;
assign(t,'text.txt');
rewrite(t);
for i:=1 to n do
begin;
writeln(t,' ');
for j:=1 to n do
write(t,ars[i,j],' ');
end;
end;
begin;
randomize;
setlength(ar,n+1);
setlength(ars,n+1);
for i:=1 to n do
begin;
setlength(ar[i],n+1);
setlength(ars[i],n+1);
end;
complection(ar,ars);
burning(ars);
end.
const
MAX_SIZE = 100;
var
size, n: integer;
stack: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
inc(size);
stack[size] := a;
end;
procedure view;
var
i: integer;
begin
for i := 1 to size do
write(stack[i], ' ');
writeln;
end;
Для очереди:
const
MAX_SIZE = 100;
var
head, tail: integer;
queue: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
queue[tail] := a;
inc(tail);
end;
procedure view;
var
i: integer;
begin
for i := head to tail - 1 do
write(queue[i], ' ');
writeln;
end;
И стек и очередь реализованы с массива. Нужно следить, чтобы размер структуры не был больше размера массива