Юра Голуб
Профи
(926)
15 лет назад
Program lalala;
Var A,B,C:Integer;
Function Min(X,Y:Integer):Integer;
Begin
If X<y>Y Then Max:=X Else Max:=Y;
End;
Begin
ReadLN(A,B,C);
Writeln(Min(A,Min(B,C))*Max(A,Max(B,C)) );
End.
Источник: Я
Leonid
Высший разум
(388973)
15 лет назад
Могу предложить реализацию на Модуле-2, а в Паскаль уж будьте добры сами.. .
PROCEDURE product (n1, n2, n3: REAL): REAL;
PROCEDURE max (x, y: REAL): REAL;
BEGIN IF x > y THEN RETURN x ELSE RETURN y END
END max;
PROCEDURE min (x, y: REAL): REAL;
BEGIN IF x < y THEN RETURN x ELSE RETURN y END
END min;
BEGIN
RETURN max (n1, max (n2, n3))*min (n1, min (n2, n3))
END product;
Коммент: пишутся две вложенные процедуры (min и max), которые возвращают наибольшее и наименьшее значение из пары. Модула, как и Паскаль, допускает реентарабельность, то есть процедура может вызывать сама себя. Ну а дальше понятно.