На этой странице дано решение примеров If9 - If11 из задачника Абрамяна, в которых рассматриваем работу с двумя числами (целыми или вещественными).
If9. Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
var
A, B, p: real;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
writeln('Перезапись чисел в порядке возрастания:');
if A > B then
begin
p := A; { <-- переменной p присваиваем значение A }
A := B; { <-- переменной A присваиваем значение B }
B := p { <-- переменной B присваиваем A (p = A) }
end;
writeln('A = ', A, ' B = ', B);
readln
end.
**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 If10. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
Здесь используется дополнительная переменная p:
var
A, B, p: integer;
begin
writeln('Введите два целых числа A и B: ');
readln(A, B);
if A = B then p := 0
else p := A + B;
A := p;
B := p;
writeln('A = ', p, ', B = ', p);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Во втором решении задачи if10 не используется дополнительная переменная:
var
A, B: integer;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
readln(A, B);
{ Сначала находим A в зависимости от условия: }
if A <> B then A := A + B
else A := 0;
B := A; { <== находим В }
writeln('A = ', A, ', B = ', B);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 If11. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
var
A, B: integer;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
readln(A, B);
if A <> B then
begin
if A < B then A := B { <-- находим большее число }
end
else A := 0;
B := A;
writeln('A = ', A, ', B = ', B);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 Другое решение задачи if11 возможно в PascalABC.Net, и здесь мы используем встроенную функцию maх(A, B) для нахождения максимального из двух чисел.
var
A, B: integer;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
readln(A, B);
if A <> B then A := max(A, B)
else A := 0;
writeln('A = ', A, ', B = ', A);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Max(a,b: integer): integer;
: Возвращает максимальное из чисел a, b.