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

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

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

ВАРИАНТ 1:

var a, z, x: integer;
begin
  x:=77;
  z:=5;
  while (z>=0) do
  begin
    write('vvedite chislo: ');
    readln(a);

    if (a=77) then
      x:=a // переключатель "+1"
    else if (a=55) then
           x:=a; // переключатель "-1"

    if (x=77) then
      begin
        z:=z+1;
        writeln(z);
      end
    else if (x=55) then
           begin
             z:=z-1;
             writeln(z);
           end;
  end;
  writeln('zaverhenie');
  readln();
end.    

КОНСОЛЬ:

vvedite chislo: 33
6
vvedite chislo: 33
7
vvedite chislo: 77
8
vvedite chislo: 44
9
vvedite chislo: 44
10
vvedite chislo: 55
9
vvedite chislo: 33
8
vvedite chislo: 33
7
vvedite chislo: 33
6
vvedite chislo: 33
5
vvedite chislo: 33
4
vvedite chislo: 33
3
vvedite chislo: 33
2
vvedite chislo: 33
1
vvedite chislo: 33
0
vvedite chislo: 33
-1
zaverhenie

ВАРИАНТ 2 (это вариант из видео):

var z, input: integer;
    rost: boolean;
begin
  z := 5;
  rost := true;

  write('vvedite chislo: ');
  readln(input);

  if (input = 77) then
    rost := true
  else if (input = 55) then
         rost := false;

  if (rost) then
    z := z + 1
  else
    z := z - 1;

  while (z >= 0) do
  begin
    writeln(z);

    write('vvedite chislo: ');
    readln(input);

    if (input = 77) then
      rost := true
    else if (input = 55) then
           rost := false;

    if (rost) then
      z := z + 1
    else
      z := z - 1;


  end;
  writeln('konec');
  readln();
end. 

КОНСОЛЬ:

vvedite chislo: 44
6
vvedite chislo: 77
7
vvedite chislo: 55
6
vvedite chislo: 1
5
vvedite chislo: 1
4
vvedite chislo: 11
3
vvedite chislo: 1
2
vvedite chislo: 1
1
vvedite chislo: 1
0
vvedite chislo: 1
konec