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

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

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

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

Вывод консоли:
vvedite chislo
7
6
vvedite chislo
77
7
vvedite chislo
4
8
vvedite chislo
55
7
vvedite chislo
6
6
vvedite chislo
4
5
vvedite chislo
3
4
vvedite chislo
2
3
vvedite chislo
5
2
vvedite chislo
6
1
vvedite chislo
7
0
vvedite chislo
5
-1
End