Помощь - Поиск - Пользователи - Календарь
Полная версия: Чтение матрицы из файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Hamster
Чтение матрицы из файла написвть труда не составляет. А как засунуть в процедуру непонятно !?

ЗЫ. Опишите пжаласта эту процедуру(функцию) ! и как ее применить к нескоольким матрицам в одной программе ?
volvo
Цитата(Hamster @ 17.03.05 19:17)
Чтение матрицы из файла написвть труда не составляет. А как засунуть в процедуру непонятно !?

Ну, если не составляет, то напишите... А потом поменяйте заголовок с Program <имя программы>; на Procedure ReadMatrix;
Hamster
Если б я знал то не спрашивал бы... Если просто поменять program на procedure то компилятор ругается !
Hamster zhe
Цитата(Hamster @ 17.03.05 20:17)
ЗЫ. Опишите пжаласта эту процедуру(функцию) ! и как ее применить к нескоольким матрицам в одной программе ?


Вот в чем дело :low:
volvo
Приведите код если можно... Того, что труда не составляет... Именно программы, я покажу, как сделать из нее процедуру...
Guest
Цитата(volvo @ 17.03.05 20:37)
Приведите код если можно... Того, что труда не составляет... Именно программы, я покажу, как сделать из нее процедуру...


Код

program vvod_matr;
const
 m=3;
 n=3;
type
 matr=array[1..m,1..n] of integer;
var
 A : matr;      {matrivca A}
 i,j : integer; {peremnnie cikla}
 inp : text;
 begin
  assign(inp, 'c:\a.txt');
  reset(inp);
  writeln('Ishodmaja Matrica A : ');
  for i:=1 to m do
  begin
   for j:=1 to n do
   read(inp,A[i,j]);
   end;
   for i:=1 to m do
   begin
  for j:=1 to n do
  write      (A[i,j],' ');
  writeln;
  end;
 readln;
 end.

PLZ.
SHnur
Например так :
Код

const
m=3;
n=3;
type
  matr=array[1..m,1..n] of integer;

procedure vvod_matr;
var
A : matr;      {matrivca A}
i,j : integer; {peremnnie cikla}
inp : text;
begin
 assign(inp, 'c:\a.txt');
 reset(inp);
 writeln('Ishodmaja Matrica A : ');
 for i:=1 to m do
 begin
  for j:=1 to n do
  read(inp,A[i,j]);
  end;
  for i:=1 to m do
  begin
 for j:=1 to n do
 write      (A[i,j],' ');
 writeln;
 end;
readln;
 close(inp);
end;

begin
{main program}
   vvod_matr; {vizov proceduri}
end.


исправлено.
klem4
если все остальное правильно, то ты забыл
Код
close(inp);
volvo
Код
program vvod_matr;
const
 m=3;
 n=3;
type
 matr=array[1..m,1..n] of integer;

procedure read_matrix(var inp: text; var a: matr);
 var i, j: integer;
 begin
   for i:=1 to m do
     for j:=1 to n do
       read(inp,A[i,j]);
 end;

procedure print(a: matr);
 begin
   for i:=1 to m do begin
     for j:=1 to n do
       write(a[i,j], ' ');
     writeln;
   end;
 end;

var
 A, B : matr;
 inp1, inp2 : text;
begin
 assign(inp1, 'c:\a.txt'); reset(inp1);
 writeln('Матрица A : ');
 read_matr(inp1, a); print( a );
 close(inp);

 assign(inp2, 'c:\a2.txt'); reset(inp2);
 writeln('Матрица B : ');
 read_matr(inp2, B); print( b );
 Close(inp2);

 readln;
end.


SHnur
Ну попросили же:
Цитата
как ее применить к нескоольким матрицам в одной программе ?

Твою процедуру можно к нескольким матрицам применить?
Alpha7
Цитата(SHnur @ 17.03.05 21:04)
Например так :

Ну ето то все понятно...
Но как ты будешь применять цвою процедуру для нескольких матриц ? Это все ясно как Божий день(все равно спасиба),
но что нада в коде поменять, что б для 2-3 матриц мона была юзать !?
volvo
Alpha7, предыдущий мой ответ не нравится? Тогда объясните, чем (пост №9) angry.gif
Alpha7
Цитата(volvo @ 17.03.05 21:45)
Alpha7, предыдущий мой ответ не нравится? Тогда объясните, чем (пост №9)  angry.gif

Nu kak versiju ja eto priznaju bez problem ! =)
Delo v tom, chto nuzhno schitivat` massiv iz faila i pihat` v proceduru kak :
Код

procedure vvod_matr;
var
A : matr;      {matrivca A}
i,j : integer; {peremnnie cikla}
inp : text;
begin
assign(inp, 'c:\a.txt');
reset(inp);
writeln('Ishodmaja Matrica A : ');
for i:=1 to m do
begin
 for j:=1 to n do
 read(inp,A[i,j]);
 end;
 for i:=1 to m do
 begin
for j:=1 to n do
write      (A[i,j],' ');
writeln;
end;
readln;
close(inp);
end;

Postavlu vopros inache : "Mozhno li, i kak ,esli da, primenit` etot kod dlia neskol`ki matric, meniaja tol`ko parametr funkcii,a ne samo ee telo ?
volvo
Ну, если Вам нравится заново поизобретать что-нибудь, то пожалуйста... Только учтите, что приведенная процедура ничего вернуть не может, поскольку матрица описана в ней локально, следовательно она исчезнет при выходе из процедуры... Скажите спасибо SHnur-у :D

Чтобы вернуть матрицу (притом, как выясняется - не одну, а несколько), нет другого пути, кроме как использовать Var - параметры... Но этот путь Вас устраивает только "как вариант", тогда ищите другой.

Отвечаю не вопрос - нет. Нельзя применить процедуру SHnur-а для ввода нескольких матриц... У нее просто НЕТ параметров... Я уже привел свой вариант... В крайнем случае, могу посоветовать вот это:
Код
program vvod_matr;
const
 m=3; n=3;
type
 matr=array[1..m,1..n] of integer;

Procedure read_matrix(s: string; var a: matr);
var
 inp: text;
 i, j: integer;
begin
 assign(inp, s);
 reset(inp);
 for i:=1 to m do
   for j:=1 to n do
     read(inp,A[i,j]);

 for i:=1 to m do begin
   for j:=1 to n do
     write(A[i,j],' ');
   writeln;
 end;
 close(inp)
end;

var
A, B : matr;
begin
 writeln('Ishodmaja Matrica A : ');
 read_matrix('c:\a.txt', A);

 writeln('Ishodmaja Matrica B : ');
 read_matrix('c:\b.txt', B)
end.

Вот так...
Alpha7
Poslednij variant, vot eto ja i imel vvidu ! :yes:
Spasiba za podskazku !
buy cialis online no prescriptio
Se Puede Comprar Viagra Sin Receta Medica
buy zithromax online without per
Cialis Generique Canada
what is considered a high dose o
Viagra Price List
lower price on finasteride cambe
Propecia En Ligne
dolor de espalda mezclar diclofe
Betnovate Ointment
how does plaquenil work for auto
Levitra Funziona Davvero
where to buy zithromax online ch
Achat Nolvadex Proviron
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.