Объяснение:
1. x = 0; y = 4
Цикл по i от 3 до 6
1) i = 3
x = x + 1 = 0 + 1 = 1
y = y + 2 = 4 + 2 = 6
2) i = 4
x = x + 1 = 1 + 1 = 2
y = y + 2 = 6 + 2 = 8
3) i = 5
x = x + 1 = 2 + 1 = 3
y = y + 2 = 8 + 2 = 10
4) i = 6
x = x + 1 = 3 + 1 = 4
y = y + 2 = 10 + 2 = 12
Конец цикла
y = y - x = 12 - 4 = 8
x = x + y = 4 + 8 = 12
Вывод y = 8
2. x = 0; y = 2
Цикл, пока y < 15
1) x = x + 1 = 0 + 1 = 1
y = y + 2 = 2 + 2 = 4 < 15
2) x = 1 + 1 = 2
y = 4 + 2 = 6 < 15
3) x = 2 + 1 = 3
y = 6 + 2 = 8 < 15
4) x = 3 + 1 = 4
y = 8 + 2 = 10 < 15
5) x = 4 + 1 = 5
y = 10 + 2 = 12 < 15
6) x = 5 + 1 = 6
y = 12 + 2 = 14 < 15
7) x = 6 + 1 = 7
y = 14 + 2 = 16 > 15
Конец цикла
y = y - x = 16 - 7 = 9
x = x + y = 7 + 9 = 16
Вывод y = 9
3. x = 0; y = 5
Цикл с постусловием
1) x = x + 1 = 0 + 1 = 1
y = y + 2 = 5 + 2 = 7
Выйти из цикла, если y > 15
y = 7 < 15
2) x = 1 + 1 = 2
y = 7 + 2 = 9 < 15
3) x = 2 + 1 = 3
y = 9 + 2 = 11 < 15
4) x = 3 + 1 = 4
y = 11 + 2 = 13 < 15
5) x = 4 + 1 = 5
y = 13 + 2 = 15
15 не больше 15, поэтому продолжаем.
6) x = 5 + 1 = 6
y = 15 + 2 = 17 > 15
Выход из цикла
y = y - x = 17 - 6 = 11
x = x + y = 6 + 11 = 17
Вывод y = 11
const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа
Поделитесь своими знаниями, ответьте на вопрос:
Выполните задание в среде Prolog 0 Имеется информация о том, что спортсмены Игорь, Роман, Антон, Виктор, Николай имеют соответственно возраст и рост: 18 и 189, 17 и 182, 20 и 191, 21 и 185, 16 и 193. Необходимо: а) выбрать всех спортсменов выше 184 (включительно), но не выше 190; б) выбрать спортсменов моложе 20 лет, но не моложе 18 (включительно); в) выбрать всех спортсменов с ростом не ниже 186 и не старше 19 лет (включительно
1 sm('Игорь',18,189).
2 sm('Роман',17,182).
3 sm('Антон',20,191).
4 sm('Виктор',21,185).
5 sm('Николай',16,193).
6 % а) выбрать всех спортсменов выше 184 (включительно), но не выше 190;
7 % ?- findall( Name, (sm(Name, Age, Height), Height >= 184, Height < 190), Xs ).
8 % б) выбрать спортсменов моложе 20 лет, но не моложе 18 (включительно);
9 % ?- findall( Name, (sm(Name, Age, Height), Age < 20, Age >= 18), Xs ).
10 % в) выбрать всех спортсменов с ростом не ниже 186 и не старше 19 лет (включительно).
11 % ?- findall( Name, (sm(Name, Age, Height), Height > 186, Age =< 19), Xs ).