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

Урок 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
var a, z, i: integer;

begin
  z := 5;
  i := 0;


  while (z >= 0) do
  begin
    writeln('Vvedite chislo');
    readln(a);

    if (a >= 15) then
      i := 4;

    if (i > 0) then
    begin
      z := z + 1;
      i := i - 1;
    end
    
    else if (z >= 0) then
    begin
      z := z - 1;
    end;
    
    if z >= 0 then
      writeln('Otvet: ', z);
    
  end;

end.

КОНСОЛЬ

Vvedite chislo
11
Otvet: 4
Vvedite chislo
15
Otvet: 5
Vvedite chislo
5
Otvet: 6
Vvedite chislo
5
Otvet: 7
Vvedite chislo
5
Otvet: 8
Vvedite chislo
5
Otvet: 7
Vvedite chislo
5
Otvet: 6
Vvedite chislo
5
Otvet: 5
Vvedite chislo
5
Otvet: 4
Vvedite chislo
5
Otvet: 3
Vvedite chislo
5
Otvet: 2
Vvedite chislo
55
Otvet: 3
Vvedite chislo
5
Otvet: 4
Vvedite chislo
5
Otvet: 5
Vvedite chislo
5
Otvet: 6
Vvedite chislo
5
Otvet: 5
Vvedite chislo
5
Otvet: 4
Vvedite chislo
5
Otvet: 3
Vvedite chislo
5
Otvet: 2
Vvedite chislo
5
Otvet: 1
Vvedite chislo
5
Otvet: 0
Vvedite chislo
5
vedro-compota's picture

засчитано

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

var a, z, i: integer;
 
begin
  z := 5;
  i := 0;
 
 
  while (z >= 0) do
  begin
    writeln('Vvedite chislo');
    readln(a);
 
    if (a >= 15) then
      i := 4;
 
    if (i > 0) then
    begin
      z := z + 1;
      i := i - 1;
    end
     
    else
    begin
      z := z - 1;
    end;
     
    if z >= 0 then
      writeln('Otvet: ', z);
     
  end;
 
end.

program u11z16;
var n,p,z:integer;
  t:boolean;
begin
  z:=5;
  t:=false;
  while z>=0 do
  begin
    writeln('--Polzovatel:');
    readln(n);
    if n>=15 then
    begin
      p:=4; // количество попыток
      t:=true;
    end
    else
      t:=false;
    if t or (p>=1) then
    begin
      p:=p-1;
      z:=z+1;
    end
    else
      z:=z-1;
    if z>=0 then
      writeln(' Otvet: ',z)
    else
      writeln('z<0, Poka!');
  end;
  readln();
end.