Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 18:35   #1
кусака
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 19
По умолчанию процедуры в паскаль

помогите исправить ошибку.
задание:
Вычислить Z=(X max - Y min)/2, где X max – максимальный элемент массива X(25); Y max – минимальный элемент массива Y(20), используя подпрограмму – процедуру.


код:
program ex8;
var x:array [1..25] of real;
y:array [1..20] of real;
max,min:real;
p,r:real;
s:real;
i:integer;
procedure f(m,n:real);
var a:real;
begin
a:=(m-n)/2;
end;
begin
writeln('vvedite massiv X');
for i:=1 to 25 do
readln(X[i]);
writeln('vvedite massiv Y');
for i:=1 to 20 do
readln(Y[i]);
writeln('massiv X');
for i:=1 to 25 do
writeln(X[i]:6:2);
writeln('massiv Y');
for i:=1 to 20 do
writeln(Y[i]:6:2);
max:=x[1];
for i:=2 to 25 do
if max< x[i] then max:=x[i];
min:=y[1];
for i:=2 to 20 do
if min> y[i] then min:=y[i];
s:=f(max,min);
writeln('s=',s:6:2);
end.

в строке "s:=f(max,min);" показывает ошибку 143. что делать?
кусака вне форума Ответить с цитированием
Старый 09.06.2010, 23:16   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от кусака Посмотреть сообщение
помогите исправить ошибку.
задание:
Вычислить Z=(X max - Y min)/2, где X max – максимальный элемент массива X(25); Y max – минимальный элемент массива Y(20), используя подпрограмму – процедуру.


код:
program ex8;
var x:array [1..25] of real;
y:array [1..20] of real;
max,min:real;
p,r:real;
s:real;
i:integer;
procedure f(m,n:real);
var a:real;
begin
a:=(m-n)/2;
end;
begin
writeln('vvedite massiv X');
for i:=1 to 25 do
readln(X[i]);
writeln('vvedite massiv Y');
for i:=1 to 20 do
readln(Y[i]);
writeln('massiv X');
for i:=1 to 25 do
writeln(X[i]:6:2);
writeln('massiv Y');
for i:=1 to 20 do
writeln(Y[i]:6:2);
max:=x[1];
for i:=2 to 25 do
if max< x[i] then max:=x[i];
min:=y[1];
for i:=2 to 20 do
if min> y[i] then min:=y[i];
s:=f(max,min);
writeln('s=',s:6:2);
end.

в строке "s:=f(max,min);" показывает ошибку 143. что делать?
у вас прописана процедура с именем f, а процедуру нельзя использовать в выражениях. Если вы пишите "s:=f(max,min)" то соответственно f надо объявлять как функцию, так как функция возвращает значение и ее можно использовать в выражениях.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Процедуры uropb992 Помощь студентам 10 09.06.2010 21:13
паскаль процедуры milasssska Помощь студентам 2 27.05.2010 21:18
паскаль процедуры milasssska Помощь студентам 1 27.05.2010 20:58
паскаль процедуры milasssska Помощь студентам 2 27.05.2010 20:45
Паскаль. Процедуры AndrewPl Помощь студентам 11 16.05.2010 15:24