IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Функция с массивами., правильно ли составлена.подскажите.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Женский
Реальное имя: Elena

Репутация: -  0  +



F=(min(b1...bm)+min(c1...cn),если |min(a1...ak)|>10)/(1+(min(c1...cn)*min(c1...cn),если|min(a1...ak)|<=10)
 
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Что подразумевается под "правильно"? Будет ли запускаться, работать и выдавать ответ? Нет, не будет... Потому что перепутано все, что только можно... K, M, N - это переменные или константы, например? Если переменные, то как описываются типы mas...? Там нужны константы... А если это - константы - то как они могут читаться через Readln?

Кстати, где описан тип mas? И главное - зачем? Ты же все делаешь в одном месте - у тебя процедура P - это "все в одном", и получить размеры массивов, и ввести сами массивы, и вернуть минимум. Раздели ее на процедуру чтения массива и функцию нахождения минимума, все станет гораздо проще (кстати, здесь не пойдет явное описание типов array[1 .. что-то] of real, потому что все три массива имеют разный размер... пользуйся открытыми массивами:

procedure InputArray(var arr: array of real; size: integer);
begin
{ ... }
end;

)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Женский
Реальное имя: Elena

Репутация: -  0  +


Цитата(VUDDRI @ 17.02.2008 17:43) *

F=(min(b1...bm)+min(c1...cn),если |min(a1...ak)|>10)/(1+(min(c1...cn)*min(c1...cn),если|min(a1...ak)|<=10)
 
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.
.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.01.2021 8:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name