Помощь - Поиск - Пользователи - Календарь
Полная версия: Процедуры и функции
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Старающийся
Не знаю как переделать программу с помощью функций и процедур.
Т.е. я вроде написал подпрограммы а как правильно описать их в главной проге и как правильно вставить их не знаю,помогите пожалуйсто.
Вот исходный текст программы:
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

Старающийся
Хорошо,буду знать.
forMator
вместо

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 в программе
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.