Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на тему процедуры и функции

Автор: kvadrat 24.05.2008 16:52

Условие:
Прикрепленное изображение

Program funkcii;
function f1(a:array of real; h:real):real;
begin
if a[1]<a[1]*a[3] then h:=a[1] else
h:=a[1]*a[3];
if a[3]+a[5]<h then h:=a[3]+a[5];
writeln('MIN=',h);
end;
function f2 (b:array of real; m:real):real;

begin
if b[2]+b[4]>b[1]+b[3] then m:=b[2]+b[4] else
m:=b[1]+b[3];
writeln('MAX=',m);
end;
var a:array[1..5] of real;
b:array[1..5] of real; h,m,z:real;i,j:integer;
begin
for i:=1 to 5 do
readln(a[i]);
for j:=1 to 5 do
readln(b[j]);
z:=f1(h,a[i])+f2(m,b[i]);
writeln('z=',z);
end.


Огромный респект и + в репу тому кто поможет smile.gif

Автор: Айра 24.05.2008 19:58

Что-то не поняла откуда у тебя массивы появились, и что нужно сделать с этим: (d-a,b\c) Это тоже функция какая-то получается?

Без нее получилось так:

var a,b,c,d: real;

function f(x,y,z,v: real): real;
function min(x,y: real): real; //здесь просто вычисляется минимум среди двух чисел
begin
if x<y then min:=x
else min:=y;
end;

function max(x,y: real): real;
begin
if x>y then max:=x
else max:=y;
end;
begin
f:=max(x+y,y*z)/min(x,y*v); //а тут ты подставляешь сами выражения
end;

begin
writeln('введите числа');
readln(a,b,c,d);
writeln('получилось: ',f(a,b,c,d),'');
end.