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

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

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

 
 Ответить  Открыть новую тему 
> Процедуры и функции
Старающийся
сообщение 29.04.2007 11:10
Сообщение #1


Новичок
*

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

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


Не знаю как переделать программу с помощью функций и процедур.
Т.е. я вроде написал подпрограммы а как правильно описать их в главной проге и как правильно вставить их не знаю,помогите пожалуйсто.
Вот исходный текст программы:
Uses CRT;
const
n = 5;
m = 5;
Var
A: array[ 1 .. n] of real;
B: array[1 .. n, 1 .. m] of real;
C: array[ 1 .. m] of real;

i, j, k: integer;
T: real;

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;

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;

writeln('C before sort:');
for i := 1 to m do write(C[i]:7:2);
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:');
for i := 1 to m do write(C[i]:7:2);
readkey
end.

Мне нужно написать 2 подпрограммы к ней:
1)вывод вектора
2)умножение вектора на матрицу
Прошу проверить
1)
Procedure outvec (VAR A:mas1;n:integer;)
VAR i:integer;
begin
for i:=1 to n do
write(X[i],' ');
writeln;
end;

2)
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;

Как вставить теперь эти процедуры в главную программу?

М
Старающийся, пожалуйста, используй теги: выделить программный код блоком и выбрать нужную строку из меню CODE над окном ввода.
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Старающийся
сообщение 29.04.2007 15:15
Сообщение #2


Новичок
*

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

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


Хорошо,буду знать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 29.04.2007 15:48
Сообщение #3


Новичок
*

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

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


вместо

Var
A: array[ 1 .. n] of real;
B: array[1 .. n, 1 .. m] of real;
C: array[ 1 .. m] of real;

i, j, k: integer;
T: real;

ВСТАВЬ

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 A:mas1;n:integer;)
VAR i:integer;
begin
for i:=1 to n do
write(А[i]:7:2,' '); //здесь должен быть массив A
writeln;
end;


нужно вставить до основного BEGIN в программе

Сообщение отредактировано: forMator - 29.04.2007 15:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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