// PascalABC.Net procedure RectangleSquare; var a,b:double; begin Write('Введите через пробел длины сторон прямоугольника: '); Read(a,b); Writeln('Площадь прямоугоьника равна ',a*b) end;
var i:byte; begin for i:=1 to 3 do RectangleSquare end.
Тестовое решение: Введите через пробел длины сторон прямоугольника: 3 7 Площадь прямоугоьника равна 21 Введите через пробел длины сторон прямоугольника: 12.4 15.8 Площадь прямоугоьника равна 195.92 Введите через пробел длины сторон прямоугольника: 14 12.5 Площадь прямоугоьника равна 175
Фрагмент программы будет выполнятся вечно, значение переменной c получить нельзя.
Объяснение:
Присваиваем переменной a число 100:
a:=100;
Присваиваем переменной b число 20:
b:=20;
Далее идёт цикл с постусловием, выполняем тело, пока b не станет больше или равна 100:
repeat
i:= a div b;
c:=i + 5;
b:= a div b;
until b>=100;
Смотрим:
i = a div b = 100 div 20 = 5c = i + 5 = 5 + 5 = 10 b = a div b = 100 div 20 = 5
b>=100 ? нет => ещё раз:
i = a div b = 100 div 5 = 20c = i + 5 = 20 + 5 = 25b = a div b = 100 div 5 = 20
Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.
procedure RectangleSquare;
var
a,b:double;
begin
Write('Введите через пробел длины сторон прямоугольника: '); Read(a,b);
Writeln('Площадь прямоугоьника равна ',a*b)
end;
var
i:byte;
begin
for i:=1 to 3 do RectangleSquare
end.
Тестовое решение:
Введите через пробел длины сторон прямоугольника: 3 7
Площадь прямоугоьника равна 21
Введите через пробел длины сторон прямоугольника: 12.4 15.8
Площадь прямоугоьника равна 195.92
Введите через пробел длины сторон прямоугольника: 14 12.5
Площадь прямоугоьника равна 175
Фрагмент программы будет выполнятся вечно, значение переменной c получить нельзя.
Объяснение:
Присваиваем переменной a число 100:
a:=100;
Присваиваем переменной b число 20:
b:=20;
Далее идёт цикл с постусловием, выполняем тело, пока b не станет больше или равна 100:
repeat
i:= a div b;
c:=i + 5;
b:= a div b;
until b>=100;
Смотрим:
i = a div b = 100 div 20 = 5c = i + 5 = 5 + 5 = 10 b = a div b = 100 div 20 = 5b>=100 ? нет => ещё раз:
i = a div b = 100 div 5 = 20c = i + 5 = 20 + 5 = 25b = a div b = 100 div 5 = 20Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.