Write(’Второй сомножитель B = ’); Readln(B);
Write(’Произведение A*B = ’); Readln(C);
if C=0 then break; { завершение цикла, если C=0 }
{ проверяем правильность вычисления }
R:= A*B=C; { R=true, если верно }
if R
then S:= ’Молодец, правильно!’
else S:= ’Ошибка, повтори таблицу умножения!’;
Writeln(S);
until false; { бесконечный цикл }
end.
Запустите программу и проверьте её работу. В следующий раз мы научим её придумывать сомножители, – так будет честнее. А пока подведем итоги.
• Для вычислений в Паскале предусмотрены данные числового типа (INTEGER).
• К данным целого типа могут применяться четыре арифметических операции, а также операция нахождения остатка от деления.
• В результате сравнения численных данных получается булев результат, который может быть применен везде, где проверяется условие.
• Числовые данные вводятся оператором Readln и выводятся операторами Write и Writeln;
• Числовым переменным нельзя присваивать строковые значения и наоборот: строковым переменным нельзя присваивать числовые значения.
А) Найдите ошибки в следующей программе и объясните их.
var N, M : integer;
S : string;
begin
N:= ’10’;
S:= N + 5;
M:= S – 1;
if S=N then;
end.
Проверьте свои догадки, призвав на помощь компилятор.
Б) Перепишите программу «P_14_1», не прибегая к процедуре Break. В чем, по-вашему, слабость этого второго варианта? Можно ли обойтись в программе «P_14_1» без булевой переменной R и строковой S? Напишите такой вариант программы. Или слабо?
В) Пусть программа запросит три числа: A, B и C, а затем напечатает большее из них. Подсказка: примените булевы выражения вкупе с операциями сравнения, которые в булевых выражениях надо заключать в скобки, например:
if (A>=B) and (A>=C) then...
Г) В стене прорублено прямоугольное сквозное отверстие со сторонами A и B. Пусть ваши программы разберутся, пройдет ли в него кирпич с ребрами X, Y, Z. Сделайте две программы для таких случаев:
• Известно, что A<B и X<Y<Z.
• Соотношение между сторонами неизвестно, и программе самой надо выяснить высоту и ширину, как отверстия, так и кирпича.
Д) Площадь земельного участка вычисляется умножением его сторон A и B. В программу вводятся стороны двух участков (A1, B1 и A2, B2), пусть она напечатает ширину и длину того участка, что больше по площади. Ширина должна быть не больше длины.