Решение задачи №16 из главы 11

Решение задачи №6 из главы 11

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

Пример работы в консоли:
--Polzovatel:
12
Otvet: 4
--Polzovatel:
16
Otvet: 5
--Polzovatel:
5
Otvet: 6
--Polzovatel:
10
Otvet: 7
--Polzovatel:
8
Otvet: 8
--Polzovatel:
9
Otvet: 7
--Polzovatel:
9
Otvet: 6
--Polzovatel:
20
Otvet: 7

Вывод консоли
vvedite znachenie:
12
4
vvedite znachenie:
16
5
vvedite znachenie:
5
4
vvedite znachenie:
10
3
vvedite znachenie:
8
2
vvedite znachenie:
20
3
vvedite znachenie:
var
  z,input,i:integer;
  rost:boolean;
begin
  z:=5;
  i:=0;
  rost:=true;
  while (z >= 0) do
  begin
    writeln('vvedite znachenie:');
    readln(input);

    if (input >= 15) or (i=4) then
      begin
        rost:=true;
        i:=i+1
      end
     else
        rost:=false;
     if(rost) then
       z:=z + 1
      else
        z:=z - 1;
      writeln(z);
  end;
  readln();
end.

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

--Polzovatel:
5
Otvet: 6

и

vvedite znachenie:
5
4

-- не совпадают

_____________
матфак вгу и остальная классика =)

gani84's picture

var
  z,input,i:integer;
  rost:boolean;
begin
  z:=5;
  i:=4;
  rost:=true;
  while (z >= 0) do
  begin
    writeln('vvedite znachenie:');
    readln(input);
    i:=i-1;
    if (input >= 15) then
      begin
        rost:=true;
        i:=4;
      end
     else begin
        rost:=false;
        i:=0;
     end;
     if(rost)   then
       z:=z + 1
      else
       z:=z - 1;

      if (i = 4) then
        rost:=true
    else begin

      if (i = 0) then
          rost:=false;
    end;
   writeln(z);
  end;

  readln();
end.