![]() |
![]() |
#1 |
Камрад
Join Date: июл 2002
Сообщений: 593
|
![]()
Братци хелпуйте! Дали мне вчера програмку накатать вроде как маленькую, но я не могу разобраться в одном моменте. Помогите пожалуйста!
Вот само задание: Матрица действительных чисел А размером n*n записана на диске А с именем matrfile.txt. Не считыая матрицу в память, просмотреть элементы главной диагонали.Если диагональный элемент отрицательный то дописать в конец этого файла, а на его место записать 0. Вывести на экран информацию в виде: сначала напечатать замененые диагональные эл-ты, а затем матрицу размером n*n c заменеными диагональными элементами. Опеределить и напечатать число положит элементов в реорганизованном файле А непонятен мне один момент: Если диагональный элемент отрицательный то дописать в конец этого файла, а на его место записать 0. Покажите пожалуйста как это сделать!Весь код мне не нужен только этот момент. |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#2 |
Камрад
Join Date: окт 2002
Location: Благовещенск
Сообщений: 209
|
![]()
N30D
К Константинычу обратись. (УПК) |
![]() |
[Ответить с цитированием] |
![]() |
#3 |
Камрад
Join Date: июл 2002
Сообщений: 593
|
makcassa Он сам не знает.
|
![]() |
Дневник [Ответить с цитированием] |
![]() |
#4 |
Камрад
Join Date: июл 2002
Сообщений: 593
|
Вот сам код. что куда дописывать?что убрать? Помогите!
program lab8; uses wincrt; const N=5; var M:file of integer; A:array [1..N,1..N] of integer; (*massive NxN*) i,j: integer;(*peremennie*) z:integer; Begin assign(M, 'C:\matrfile'); reset(M); Randomize; For i:=1 to N do (*zapolnenie i pechat massiva*) begin writeln;(*perevod stroki*) For j:=1 to N do begin If odd(random(10)) (*esli sluch chisl is diap 1..10 nechet.*) then A[i,j]:=-(random(100)) (*to v massive zapoln otric chislo*) else A[i,j]:=(random(100)); (*else polojit iz interv 1..100*) write(A[i,j]:4); end; end; for i:=1 to n do for j:=1 to n do if A[i,i]<0 then A[i,i]:=0; writeln; writeln; for i:=1 to N do begin writeln; for j:=1 to N do write(A[i,i]:4); end; close(M); end. |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#5 |
Камрад
Join Date: июл 2002
Сообщений: 593
|
Ладно. Если кому интересно вот исходник. Как у нас говорится только больше мучился, на самом то деле фигня.
program lab8; uses wincrt; const n=5; var A:integer; i,j,z,b:integer; m:file of integer; f:text; begin randomize; assign(m,'C:\111.ddd'); ASSIGN(f,'c:\111.TXT'); REWRITE (F); rewrite(m); For i:=1 to N do begin For j:=1 to N do begin A:= random(100); A:=A-50; write(A:4); write(m,A); WRITE (F,A:6); end; writeln (f); end;close(m); reset(m); writeln (f); for i:=1 to n do for j:=1 to n do begin read (m,a); if i=j then begin if A<0 then write (f,a); writeln (f); end; end; close(M); reset(M); z:=0; writeln (f); for i:=1 to n do begin for j:=1 to n do begin read (m,a); if i=j then begin if A<0 then A:=0; write (f,a:6); end else begin write(f,A:6); if a>0 then z:=z+1; end; end; writeln (f); end; writeln (f); writeln (F,z); close(M); close(f); end. |
![]() |
Дневник [Ответить с цитированием] |
![]() |
|
|