Type mas1=array [1...k] of real; mas2=array [1...m] of real; mas3=array [1...n] of real; var a:mas1,b:mas2,c:mas3; var i,k,m,n:integer; mina,minb,minc:real; procedure P (x:mas;var min:real); var i: integer; begin min:=x[1]; for i:=1 to k do for i:=1 to m do for i:=1 to n do if x[i]<min then begin min:=x[i];end; begin writeln ('k= m= n='); readln (k,m,n); for i:=1 to k do read (a[i]); for i:=1 to m do read (b[i]); for i:=1 to k do read (a[i]); P(a,mina);P(b,minb);P(c,minc); writeln (mina,minb,minc);end; function F1 (mina,minb,minc:real):real; begin if (abs (mina)>10) then begin F1:= minb+minc;end;end; function F2(mina,minb,minc:real):real; begin if (abs (mina)<=10) then begin F2:= 1+ minc*minc;end;end; F:=F1/F2; writeln (F:8:3);end.
volvo
17.02.2008 22:18
Что подразумевается под "правильно"? Будет ли запускаться, работать и выдавать ответ? Нет, не будет... Потому что перепутано все, что только можно... K, M, N - это переменные или константы, например? Если переменные, то как описываются типы mas...? Там нужны константы... А если это - константы - то как они могут читаться через Readln?
Кстати, где описан тип mas? И главное - зачем? Ты же все делаешь в одном месте - у тебя процедура P - это "все в одном", и получить размеры массивов, и ввести сами массивы, и вернуть минимум. Раздели ее на процедуру чтения массива и функцию нахождения минимума, все станет гораздо проще (кстати, здесь не пойдет явное описание типов array[1 .. что-то] of real, потому что все три массива имеют разный размер... пользуйся открытыми массивами:
procedure InputArray(var arr: array of real; size: integer); begin { ... } end;
Type mas1=array [1...k] of real; mas2=array [1...m] of real; mas3=array [1...n] of real; var a:mas1,b:mas2,c:mas3; var i,k,m,n:integer; mina,minb,minc:real; procedure P (x:mas;var min:real); var i: integer; begin min:=x[1]; for i:=1 to k do for i:=1 to m do for i:=1 to n do if x[i]<min then begin min:=x[i];end; begin writeln ('k= m= n='); readln (k,m,n); for i:=1 to k do read (a[i]); for i:=1 to m do read (b[i]); for i:=1 to k do read (a[i]); P(a,mina);P(b,minb);P(c,minc); writeln (mina,minb,minc);end; function F1 (mina,minb,minc:real):real; begin if (abs (mina)>10) then begin F1:= minb+minc;end;end; function F2(mina,minb,minc:real):real; begin if (abs (mina)<=10) then begin F2:= 1+ minc*minc;end;end; F:=F1/F2; writeln (F:8:3);end.
Я не понимаю,что значит "открытый массив". В начале я задам константы(уберем readln K,N,M) и остальное так как Вы советуете,в пределах моего понимания. Я стараюсь понять.Помогите ещё пожалуйста.
const k=5;m=6;n=7; Type mas1=array [1...k] of real; mas2=array [1...m] of real; mas3=array [1...n] of real; var a:mas1,b:mas2,c:mas3; var i:integer; mina,minb,minc:real; procedure InputArray(var arr:array of real; size:integer); begin for i:=1 to k do read (a[i]); for i:=1 to m do read (b[i]); for i:=1 to k do read (a[i]); function P(min:real);real; var i:integer; begin min:=arr[1]; for i:=1 to k do for i:=1 to m do for i:=1 to n do if arr[i]<min then begin min:=arr[i]; P(mina);P(minb);P(minc); writeln(mina,minb,minc);end; function F1 (mina,minb,minc:real):real; begin if (abs (mina)>10) then begin F1:= minb+minc;end;end; function F2(mina,minb,minc:real):real; begin if (abs (mina)<=10) then begin F2:= 1+ minc*minc;end;end; F:=F1/F2; writeln (F:8:3);end.
.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.