Задача 15 Урок 11
Primary tabs
У вас есть число 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
- Log in to post comments
- 690 reads