Версия для печати темы
Форум «Всё о Паскале» _ Задачи _ Чтение матрицы из файла
Автор: Hamster 18.03.2005 0:17
Чтение матрицы из файла написвть труда не составляет. А как засунуть в процедуру непонятно !?
ЗЫ. Опишите пжаласта эту процедуру(функцию) ! и как ее применить к нескоольким матрицам в одной программе ?
Автор: volvo 18.03.2005 0:21
Цитата(Hamster @ 17.03.05 19:17)
Чтение матрицы из файла написвть труда не составляет. А как засунуть в процедуру непонятно !?
Ну, если не составляет, то напишите... А потом поменяйте заголовок с
Program <имя программы>; на
Procedure ReadMatrix;
Автор: Hamster 18.03.2005 0:34
Если б я знал то не спрашивал бы... Если просто поменять program на procedure то компилятор ругается !
Автор: Hamster zhe 18.03.2005 0:36
Цитата(Hamster @ 17.03.05 20:17)
ЗЫ. Опишите пжаласта эту процедуру(функцию) ! и как ее применить к нескоольким матрицам в одной программе ?
Вот в чем дело :low:
Автор: volvo 18.03.2005 0:37
Приведите код если можно... Того, что труда не составляет... Именно программы, я покажу, как сделать из нее процедуру...
Автор: Guest 18.03.2005 0:58
Цитата(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 18.03.2005 1:04
Например так :
Код
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 18.03.2005 1:06
если все остальное правильно, то ты забыл
Код
close(inp);
Автор: volvo 18.03.2005 1:08
Код
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 18.03.2005 1:38
Цитата(SHnur @ 17.03.05 21:04)
Например так :
Ну ето то все понятно...
Но как ты будешь применять цвою процедуру для нескольких матриц ? Это все ясно как Божий день(все равно спасиба),
но что нада в коде поменять, что б для 2-3 матриц мона была юзать !?
Автор: volvo 18.03.2005 1:45
Alpha7, предыдущий мой ответ не нравится? Тогда объясните, чем (пост №9)
Автор: Alpha7 18.03.2005 1:56
Цитата(volvo @ 17.03.05 21:45)
Alpha7, предыдущий мой ответ не нравится? Тогда объясните, чем (пост №9)
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 18.03.2005 2:21
Ну, если Вам нравится заново поизобретать что-нибудь, то пожалуйста... Только учтите, что приведенная процедура ничего вернуть не может, поскольку матрица описана в ней локально, следовательно она исчезнет при выходе из процедуры... Скажите спасибо 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 18.03.2005 2:44
Poslednij variant, vot eto ja i imel vvidu ! :yes:
Spasiba za podskazku !
Автор: buy cialis online no prescriptio 1.09.2021 10:40
Se Puede Comprar Viagra Sin Receta Medica
Автор: buy zithromax online without per 24.09.2021 14:52
Cialis Generique Canada
Автор: what is considered a high dose o 9.10.2021 20:48
Viagra Price List
Автор: lower price on finasteride cambe 7.11.2021 23:24
Propecia En Ligne
Автор: dolor de espalda mezclar diclofe 4.12.2021 20:39
Betnovate Ointment
Автор: how does plaquenil work for auto 6.12.2021 2:11
Levitra Funziona Davvero
Автор: where to buy zithromax online ch 6.12.2021 13:13
Achat Nolvadex Proviron