Задача 15 Урок 11

Задача 15 Урок 11

У вас есть число z=5. Пользователь вводит числа в цикле, если хотя бы одно введенное число число было равно 77, то увеличивайте число z на 1 в ответ на каждое введенное число, до тех пор пока пользователь не введет число 55, если такое произойдет то в ответ на это и любое последующее число, уменьшайте z на 1.
Цикл и программа должны завершиться, когда число z станет отрицательным.
(в начале цикла, если первое введенное число не равно ни 55, ни 77, считаем, что мы должны увеличивать z на 1 пока не встретим 55 или 77, которые укажут на конкретные действия).

Решение:

var a,z,q: integer;
begin
  z:=5;
  q:=0;
  while (z>=0) do
    begin
      writeln('vvedite chislo',' ', 'z=', z);
      readln(a);
       if (a=77) then q:=0;
        if(a=55) then q:=1;
         if q=1 then z:=z-1;
          if q=0 then z:=z+1;
      writeln('z=', z);
      readln();
    end;
end.  

Консоль:

vvedite chislo z=5
2
z=6

vvedite chislo z=6
5
z=7

vvedite chislo z=7
55
z=6

vvedite chislo z=6
77
z=7

vvedite chislo z=7
5
z=8

vvedite chislo z=8
55
z=7

vvedite chislo z=7
5
z=6

vvedite chislo z=6
5
z=5

vvedite chislo z=5
5
z=4

vvedite chislo z=4
5
z=3

vvedite chislo z=3
5
z=2

vvedite chislo z=2
5
z=1

vvedite chislo z=1
5
z=0

vvedite chislo z=0