Задача 15 Урок 11 While
Primary tabs
15 {У вас есть число z=5. Пользователь вводит числа в цикле,
если хотя бы одно введенное число число было равно 77,
то увеличивайте число z на 1 в ответ на каждое введенное число,
до тех пор пока пользователь не введет число 55, если такое произойдет
то в ответ на это и любое последующее число, уменьшайте z на 1.
Цикл и программа должны завершиться, когда число z станет отрицательным.
(в начале цикла, если первое введенное число не равно ни 55, ни 77, считаем,
что мы должны увеличивать z на 1 пока не встретим 55 или 77,
которые укажут на конкретные действия).}
var a,b,z:integer; begin a:=0; b:=0; // переключатель z:=5; while (z >= 0) do begin writeln('write integer num '); readln(a); if (a = 77) then b:= 77; if (a = 55) then b:= 55; if (b = 77) then begin z:= z - 1; writeln('counter: ', z) end; if ((b = 55) OR (b = 0)) then begin z:= z + 1; writeln('counter: ', z) end; end; readln(); end.
//write integer num //1 //counter: 6 //write integer num //55 //counter: 7 //write integer num //2 //counter: 8 //write integer num //77 //counter: 7 //write integer num //3 //counter: 6 //write integer num //5 //counter: 5 //write integer num
- Log in to post comments
- 913 reads
vedro-compota
Sat, 05/01/2021 - 12:48
Permalink
1)
1)
-- дублирование кода
2) Переделать проверку
на использование булевской переменной (т.к. тут бинарное состояние)
_____________
матфак вгу и остальная классика =)
i_love_cookies
Wed, 05/05/2021 - 15:41
Permalink
добавил булевою переменную, избавился от дублирования кода