Код
var zal: array[1..25,1..36] of integer;{Наш массив, где мы храним кинотеатральный зал}
Radi : array [1..36] of integer;{Массив в котором будем хранить сколько билетов купленно на этом ряду}
k : integer;{Номер, ряда количество купленнов билетов надо вывести}
procedure Buy_ticket;{ Процедура покупки билета}
var i,j,x,y : integer; {Две переменные цикла, и переменные означающие координаты купленного билета}
begin
for i:= 36 downto 1 do begin {Начало вывода зала. Сначала будем рассматривать последний ряд, потом предпоследний ..., а потом первый}
if i>9 then { Это чисто для красоты, чтобы зал был ровным, т.к. у нас есть и двузначные номера ряда и однозначные, то после однозначных надо поставить лишний пробел, а все однозначные - это меньшие 10, а все двузначные - большие 9}
write(i,': '){Выводим номер ряда и двоеточие с пробелом после него, до двоеточия пробела нет, т.к. эти числа двузначяные}
else
write(i,' : ');{Выводим номер ряда и пробел и двоеточие и пробел после него, пробел есть так как числа однозначные}
for j:= 1 to 25 do {Пробегаем по всему ряду с первого места до последнего}
write(zal[j,i],'|');{И выводим, куплено ли это место или нет(1 - если купленно и 0 - если нет) ну и конечно, для красоты разделитель}
writeln;{Переводим курсор на следующую строчку}
end;
Writeln('Vvedite rad, v kotorom Vi hotite sidet(ili 0, chtobi zakrit kassu):');{Выводим сообщение с инструкциями}
Read(y);{Считываем номер ряда, в котором желает сидеть клиент}
if y=0 then begin {Если нам надоест вводить данные, то мы закрываем кассу, что бы закончить покупку билетов, а закрываем мы кассу, вводя в номер ряда 0}
{Если закрыли, то}
Writeln('Kassa zakrita:');{Выводим сообщение с инструкциями}
Writeln('Vvedite nomer rada, kolichestvo zanatih mest kotorogo nuzno poschitat:');{Выводим сообщение с инструкциями}
Read(k);{Считываем номер ряда, что бы вывести количество проданых на нем билетов}
end else begin {А если нет, то}
Writeln('Vvedite mesto, na kotorom hotite sidet:');{Выводим сообщение с инструкциями}
Read(x);{Считываем номер места в ряду, на котором хочет сдеть клиент}
If zal[x,y]=0 Then begin {Если это место свободно, то}
zal[x,y]:=1; {Оно становится занятым}
inc(Radi[y]); {И мы увеличиваем количество занятых мест на этом ряду на единицу}
Writeln('Pozdravlajem, Vi kupili bilet!');{Выводим сообщение с поздравлением}
end else{А если это место занято, то}
Writeln('K sozaleniju eto mesto uze zanato!');{выводим сообщение об этом}
end;
end;
var i,j : integer;{переменные цикла}
begin {Начало Главной Процедуры, ну программы тоесть}
for i:= 1 to 36 do begin {Пробегаем по все рядам с первого до последнего}
Radi[i]:=0; {Выставляем количество занятых мест на этом ряду равным 0}
for j:=1 to 25 do {Пробегаем по всем местам с первого до последнего}
zal[j,i]:=0; {И устанавливаем, что это место свободно}
end;
k:=0; {Выставляем переменную K равной нулю, для того что бы отследить, когда она изменится}
while k=0 do {Пока т.к. 0 ряда не существует, то когда пользователь закроет кассу и захочит посмотреть результат по ряду, то переменная К не будет равна 0, 100% }
buy_ticket; {Ну а раз касса не закрыта, то мы можем продавать билеты, что мы и делаем, вызывая ранее написанную процедуру}
write(radi[k]); {Выводим количество занятых мест в ряду К, просто выведя значения элемента массива, соответсвующего этому ряду}
readln; {Ждем нажатия Enter}
readln; {Ждем нажатия Enter}
end.