mari00
21.02.2007, 21:42
Значит написал программу в консоль апликейшен с "юнитом" в котором и сидит почти вся основная часть.При запуске происходит зацикливание на выводе тоесть он пишет одну и ту же фразу много раз.Как исправить?
Заранее спасибо.Написано все в делфи.Тестировалось на Делфи 7.program Project2;
{$APPTYPE CONSOLE} uses SysUtils,
Unit1 in 'Unit1.pas';
var m:matr; a:mas;
i,j,r,k:integer;
begin matrgen(m,r);
writeln('generated matrix');
for i:=1 to r do
begin for j:=1 to r do write(m[i,j]:4); writeln; end; matrfil(m,r); readln; end.
а вот и юнит:unit Unit1; interface type matr=array[1..10,1..10] of integer; mas=array[1..100] of integer; function rasm:integer; procedure matrgen(var mt:matr; var r1:integer); procedure matrfil(mt:matr; r1:integer); implementation function rasm:integer; begin randomize; result:=random(5)+5; writeln('matrix dimention= ',rasm); end; procedure matrgen(var mt:matr; var r1:integer); var i1,j1:integer; begin r1:=rasm; randomize; for i1:=1 to r1 do for j1:=1 to r1 do mt[i1,j1]:=random(50)-50; end; procedure matrfil(mt:matr; r1:integer); var t:textfile; fi:file of integer; fm:file of matr; fname,tname,mname:string[150]; i1,j1:integer; begin write('input file name '); readln(fname); tname:='c:\work\'+fname+'.txt'; fname:='c:\work\f'+fname+'.dat'; mname:='c:\work\m'+fname+'.dat'; assign(fm,mname); rewrite(fm); write(fm,mt); close(fm); assign(t,tname); rewrite(t); for i1:=1 to r1 do begin for j1:=1 to r1 do write(t,mt[i1,j1]:4); writeln; end; close(t); assign(fi,fname); rewrite(fi); for i1:=1 to r1 do for j1:=1 to r1 do write(fi,mt[i1,j1]); close(fi); end; end.
Ток вы просто скоприруйте и запустите в делфи.
Заранее спасибо.Написано все в делфи.Тестировалось на Делфи 7.program Project2;
{$APPTYPE CONSOLE} uses SysUtils,
Unit1 in 'Unit1.pas';
var m:matr; a:mas;
i,j,r,k:integer;
begin matrgen(m,r);
writeln('generated matrix');
for i:=1 to r do
begin for j:=1 to r do write(m[i,j]:4); writeln; end; matrfil(m,r); readln; end.
а вот и юнит:unit Unit1; interface type matr=array[1..10,1..10] of integer; mas=array[1..100] of integer; function rasm:integer; procedure matrgen(var mt:matr; var r1:integer); procedure matrfil(mt:matr; r1:integer); implementation function rasm:integer; begin randomize; result:=random(5)+5; writeln('matrix dimention= ',rasm); end; procedure matrgen(var mt:matr; var r1:integer); var i1,j1:integer; begin r1:=rasm; randomize; for i1:=1 to r1 do for j1:=1 to r1 do mt[i1,j1]:=random(50)-50; end; procedure matrfil(mt:matr; r1:integer); var t:textfile; fi:file of integer; fm:file of matr; fname,tname,mname:string[150]; i1,j1:integer; begin write('input file name '); readln(fname); tname:='c:\work\'+fname+'.txt'; fname:='c:\work\f'+fname+'.dat'; mname:='c:\work\m'+fname+'.dat'; assign(fm,mname); rewrite(fm); write(fm,mt); close(fm); assign(t,tname); rewrite(t); for i1:=1 to r1 do begin for j1:=1 to r1 do write(t,mt[i1,j1]:4); writeln; end; close(t); assign(fi,fname); rewrite(fi); for i1:=1 to r1 do for j1:=1 to r1 do write(fi,mt[i1,j1]); close(fi); end; end.
Ток вы просто скоприруйте и запустите в делфи.