Определить, имеются ли свободные места в первом ряду - PascalABC.NET
Формулировка задачи:
В зрительном зале 23 ряда, в каждом из которых 40 мест (кресел). Инфор-мация о проданных билетах хранится в двумерном массиве, номера строк которых соответствуют номерам рядов, а номера столбцов — номерам мест. Если билет на то или иное место продан, то соответствующий элемент массива имеет значение 1, в противном случае — 0. Определить, имеются ли свободные места в первом ряду.
Решение задачи: «Определить, имеются ли свободные места в первом ряду»
textual
Листинг программы
const n=23;m=40;//n-ряды, m-места
var
a:array[1..n,1..m] of integer;//зрительный зал
i,j,k:integer;
begin
randomize;
writeln('Зрительный зал:');
write('М/Р');
for i:=1 to m do write(i:3);
writeln;
for i:=1 to n do begin
write(i:3);
for j:=1 to m do begin
a[i,j]:=ord(random(10)>0);write(a[i,j]:3);//read(a[i,j]); я ввожу гадалкой, т.к. руками вбивать 920 цифирь не входит в мое понятие героизма
end;
writeln;
end;
repeat
write('В каком ряду смотреть свободные места?');
readln(i);
until (i>0) and (i<n+1);
k:=0;
for j:=1 to m do k:=k+ord(a[i,j]=0);//cчитаем свободные места
write('В ряду ',i);
if k>0 then writeln(' есть свободные места в количестве ',k,' шт.') else
writeln(' свободных мест нет');
end.
Объяснение кода листинга программы
- Объявлены константы n=23 и m=40, которые задают количество рядов и мест в зрительном зале соответственно.
- Объявлена двумерная массивная переменная a размером [1..n,1..m] для хранения информации о занятых и свободных местах в зале.
- В цикле for i:=1 to m выполняется вывод на экран чисел от 1 до m с шагом 3, чтобы отобразить номера мест в каждом ряду.
- В цикле for i:=1 до n выполняется вывод на экран чисел от 1 до n с шагом 3, чтобы отобразить номера рядов.
- Внутри второго цикла выполняется заполнение массива a значениями от 0 до 9, которые представляют занятые места, и 10, которые представляют свободные места.
- После заполнения массива a выполняется запрос на ввод номера ряда, в котором нужно проверить наличие свободных мест.
- Введенный номер ряда сохраняется в переменной i.
- В цикле for j:=1 to m выполняется подсчет количества свободных мест в выбранном ряду, используя условие a[i,j]=0.
- Выводится сообщение о наличии или отсутствии свободных мест в выбранном ряду с указанием их количества.