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) // это выделение дробной части числа
1. Расчертить все поле горизонтальными пунктирными линиями.
НАЧ
ПОКА впереди НЕ стена
НЦ
ДЕЛАЙ линия
ДЕЛАЙ правый переход
ДЕЛАЙ линия
ДЕЛАЙ левый переход
КЦ
КОН
ПРОЦЕДУРА линия
ПОКА впереди НЕ стена
НЦ
ШАГ
ЕСЛИ впереди НЕ стена
ТО
ПРЫЖОК
ВСЁ
КЦ
КОНЕЦ ПРОЦЕДУРЫ
ПРОЦЕДУРА правый переход
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ЕСЛИ впереди НЕ стена
ТО
ПРЫЖОК
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ВСЁ
КОНЕЦ ПРОЦЕДУРЫ
ПРОЦЕДУРА левый переход
ПОВОРОТ
ЕСЛИ впереди НЕ стена
ТО
ПРЫЖОК
ПОВОРОТ
ВСЁ
КОНЕЦ ПРОЦЕДУРЫ
2) Нарисовать квадраты во всех углах поля.
НАЧ
ДЕЛАЙ квадрат
ДЕЛАЙ переход
ДЕЛАЙ квадрат
ДЕЛАЙ переход
ДЕЛАЙ квадрат
ДЕЛАЙ переход
ДЕЛАЙ квадрат
КОН
ПРОЦЕДУРА квадрат
ШАГ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
КОНЕЦ ПРОЦЕДУРЫ
ПРОЦЕДУРА переход
ПОКА впереди НЕ стена
НЦ
ПРЫЖОК
КЦ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
КОНЕЦ ПРОЦЕДУРЫ
2открыть его
3 взять тетрадь
4 открыть ее
5 взять ручку
6 посмотреть задание
7 написать его в тетрадь
8 решить его
9 заерыть тетрадь
10 закрыть учебник
11 чложить в портфель