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

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

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

> Прога с процедурами, Не запускается!?
Старающийся
сообщение 7.05.2007 19:20
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

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


Написал прогу,не могли бы проверить.Не могу понять в чем дело,не запускается!?Очень срочно нужно!!!
Uses CRT;
const
n = 5;
m = 5;
type mas1=array[1..n] of real;
mas2=array[1..n,1..m] of real;
mas3=array[1..m] of real;

var i, j, k: integer;
a:mas1;b:mas2; c:mas3;
T: real;
Procedure outvec (VAR C:mas3;n:integer);
VAR i:integer;
begin
for i:=1 to m do
write(C[i]:7:2,' ');
writeln;
end;
Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer);
begin
for j:=1 to m do begin
C[j]:=0;
for k:=1 to n do
C[j]:=C[j]+A[k]*B[k,j];
end;
Begin
clrscr;
writeln('Vvedite massiv A [',n,']:');
for i := 1 to n do readln(A[i]);

for i:=1 to m do
for j := 1 to n do
if i < j then B[i, j] := i + j
else B[i, j] := (i - j) / (i + 1);

for i := 1 to m do begin
for j := 1 to n do
write(B[i,j]:5:2);
writeln;
end;

Umnoz(A,B,C,m,n);
writeln('C before sort:');
Outvec(C,m);
writeln;

for i := 1 to m do
for j := m downto i + 1 do
if Abs(C[j - 1]) > Abs(C[j]) then begin
T := C[j - 1]; C[j - 1] := C[j]; C[j] := T;
end;

writeln('C after sort');
Outvec(C,m);
writeln;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
Артемий
сообщение 7.05.2007 19:24
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

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


program ad;
Uses CRT;
const
n = 5;
m = 5;
type mas1=array[1..n] of real;
mas2=array[1..n,1..m] of real;
mas3=array[1..m] of real;

var i, j, k: integer;
a:mas1;b:mas2; c:mas3;
T: real;
Procedure outvec (VAR C:mas3;n:integer);
VAR i:integer;
begin
for i:=1 to m do
write(C[i]:7:2,' ');
writeln;
end;
Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer);
begin
for j:=1 to m do begin
C[j]:=0;
for k:=1 to n do
C[j]:=C[j]+A[k]*B[k,j];
end;
end;
Begin
clrscr;
writeln('Vvedite massiv A [',n,']:');
for i := 1 to n do readln(A[i]);

for i:=1 to m do begin
for j := 1 to n do
if i < j then B[i, j] := i + j
else B[i, j] := (i - j) / (i + 1);
end;

for i := 1 to m do begin
for j := 1 to n do
write(B[i,j]:5:2);
writeln;
end;

Umnoz(A,B,C,m,n);
writeln('C before sort:');
Outvec(C,m);
writeln;

for i := 1 to m do begin
for j := m downto i + 1 do
if Abs(C[j - 1]) > Abs(C[j]) then begin
T := C[j - 1]; C[j - 1] := C[j]; C[j] := T;
end;
end;

writeln('C after sort');
Outvec(C,m);
writeln;
END.

??


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 7.05.2007 19:26
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

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


Procedure Umnoz(VAR A:mas1;B:mas2;C:mas3;n,m:integer);
begin
for j:=1 to m do begin
C[j]:=0;
for k:=1 to n do
C[j]:=C[j]+A[k]*B[k,j];
end;
end;

Тут ты упустил 1 end.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Старающийся
сообщение 7.05.2007 19:49
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

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


Большое спасибо!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Старающийся
сообщение 7.05.2007 20:09
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

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


У меня теперь другая проблема.Раньше без процедур когда писал у меня 'С before sort' и 'С after sort' нормально считались,а сейчас они просто обнуляютя!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.05.2007 20:18
Сообщение #6


Гость






Потому что Var в списке параметров работает до первой ";"

То есть, у тебя B и C из процедуры НЕ возвращаются...
 К началу страницы 
+ Ответить 
Старающийся
сообщение 7.05.2007 20:37
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской

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


Честно говоря не понял как быть?Поясните,пожалуйсто!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.05.2007 20:59
Сообщение #8


Гость






Описать Umnoz вот так:
Procedure Umnoz(VAR A:mas1;B:mas2;VAR C:mas3;n,m:integer); { <--- Чувствуешь разницу? }
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 7:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"