Задача про билеты (Турбо паскаль), определить число проданных билетов. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача про билеты (Турбо паскаль), определить число проданных билетов. |
South Fruit |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
В зрительном зале 25 рядов в каждом из которых 36 мест (кресел). Информация о проданных билетах хранится в двухмерном массиве , номера строк которого соответствуют номерам рядов , а номера столбцов - номера мест. Если билет на то или иное место продан , то соответствующий элемент массиваимеет значение 1, в противном случае - 0. Составить программу , определяющую число проданных билетов на места в 12-ом ряду.
Срочно помогите решить данную задачу. Извините за заголовок, времечко давит Сообщение отредактировано: South Fruit - |
arhimag |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: 2 |
Код 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. -------------------- Чего хочет женщина – того хочет Бог
|
Текстовая версия | 5.05.2024 13:46 |