Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь в паскале (repeat… until)

Мир Вашему Дому Мудрец (17783), закрыт 14 лет назад
Нужно написать программу с использованием repeat…until.
Условие:
Программа принимает результаты игр футбольной команды.
Пары чисел А,В.
А – количество забитых голов.
В – количество пропущенных голов.
Конец ввода: А = -1, В = -1
Если команда выиграла, она получает 3 балла, если проиграла 0 баллов.
Если ничья – 1 балл.
Программа должна выводить:
Общее количество заработанных баллов, общее число забитых голов, общее число пропущенных голов.
С while решил, но надо с repeat until.
Лучший ответ
Святой Ученик (246) 14 лет назад
var I,A,B:byte;
SA, AB, SC: integer;
begin
i:=0;
repeat
writeln ('Vvedi kol-vo zabitih golov');
readln (A);
writeln ('Vvedi kol-vo propushenih golov');
readln (B);
If (A=B) then SC+=1 else
If (A>B) then SC+=3;
SA+=A; SB+=B;
until ((A=-1)and(B=-1));
writeln ('kolvo propushenih golov ',SB,', kolvo zabitih golov ',SA,', vsego o4kov ',SC);
readln;
end.
P.S. Надеюсь не соврал с синтаксисом. Давно это дело было=)
Остальные ответы
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО* Высший разум (310810) 14 лет назад
//ничего. сложного
repeat
//ввод данных
//обработка данных
//выдача данных на экран
until((a=-1)and(b=-1));
MMM_Corp Мыслитель (6305) 14 лет назад
от 5 у. е. , напишу, обращайтесь
Gennady Гений (60237) 14 лет назад
Доброго времени суток.

Малость соврали, Виталий Яндулов :-) В паскале не сработает инкремент SC+=1 и тип переменных для А и В должен быть Integer, иначе они просто не смогут стать равными -1. Но и это еще не все. Допустим, сразу после запуска отказываемся от дальнейшей работы и вводим две -1. В результате ожидаем получить нули на выходе, ан нет, забитых и пропущенных будет по -1, а очков одно. Отсюда вывод: надо либо функционал поместить в условный оператор, либо после выхода из цикла корректировать значения счетчиков.

Удачи!

Похожие вопросы