Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
52,5 KB
Nội dung
Gv Ths: Vũ Văn Nam Các toán mảng mt chiu v ma trn Lời nói đầu Ngôn ngữ lập trình đợc phổ biến công việc giảng dạy tin học Trong ú ngụn ng Pascal có đặc điểm ngữ nghĩa đơn giản có tính logic, cấu trúc chơng trình rõ ràng dễ hiểu, để sữa chữa cải tiến Tiểu luận cỏc bi toỏn mảng chiều ma trận, nhập, xếp, cộng, nhân ma trận, nghịch đảo, liệu vào băng file văn ” nµy giúp bạn sinh viên thn tiƯn h¬n viƯc tìm phương pháp giải tốn số ngun c¸ch khoa häc nhanh chãng vµ thn tiƯn TiĨu ln cho phÐp ngêi dïng: Nhập Cộng ma trận Nhân ma trận Nghch o thoỏt Vì khả thời gian có hạn nên tiểu luận em không tránh khỏi hạn chế thiếu sót Em mong đợc bảo thầy góp ý bạn bè để chơng trình hoàn thiện Cuối em xin chân thành cảm ơn thầy cô giáo khoa Công nghệ thông tin trờng Đại học Vinh đà giảng dạy bảo vấn đề liên quan đến tiểu luận Đặc biệt Em xin chân thành cảm ơn ThS V Vn Nam Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận dÉn khoa häc tận tình huớng dẫn giúp đỡ em hoàn thiện tiểu luận Em Xin chân thành cảm ơn! Vinh 04/2010 program sunge1; uses crt; type imatr=array[1 20,1 20] of real; imatr1=array[1 20] of integer; var f:text; a3:imatr1; a,a1,a2,c,d:imatr; hangA,cotA,hangB,cotB:integer;fn:string; i,j,m,n,q,max:integer; Ch:char; procedure doctep( var a:imatr;var h1,c1:integer); begin write('nhap ten tep:');readln(fn); Writeln('Ma tran la: '); assign(f,fn); reset(f); Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận readln(f,n,m); h1:=n;c1:=m; for i:=1 to n begin for j:=1 to m begin read(f,a[i,j]); end; readln(f); end; for i:=1 to n begin for j:=1 to m write(a[i,j]:4:0); writeln; end; close(f); end; { -} procedure xuat(a:imatr;n1:integer;n2:integer;fn:string); begin {Writeln('Nhap vao ten tep chua ket qua: '); readln(fn); } assign(f,fn); Rewrite(f); for i:=1 to n1 begin for j:=1 to n2 write(f,a[i,j]:10:4); writeln(f); Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận end; close(f); end; { -} procedure nhanmt; begin if cotAhangB then writeln('Khong nhan duoc CotA khac HangB') else begin For i:=1 To hangA Do For j:=1 To cotB Do Begin c[i,j]:=0; For q:=1 To cotA Do c[i,j]:= c[i,j] + a1[i,q] * a2[q,j]; End; { dua tep } xuat(c,hangA,cotB,'tich.txt'); { -xem tren man hinh -} Writeln('Ma tran tich (C=A*B) la: '); for i:=1 to hangA begin for j:=1 to cotB write(c[i,j]:4); writeln; Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận end; end; end; procedure congmt; begin Writeln('Ma tran tong C=A+B la:'); for i:=1 to hangA for j:=1 to cotA c[i,j]:=a1[i,j]+a2[i,j]; for i:=1 to hangA begin for j:=1 to cotA write(c[i,j]:4); writeln; end; { dua tep } xuat(c,hangA,cotA,'tong.txt'); end; { -tinh dinh thuc } procedure phanra( a:imatr;var L:imatr; var U:imatr; n:integer); var i,j,k:integer; s:real; Begin for i:=0 to n for j:=0 to n Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận Begin U[i][j]:=0; if(i=j) then L[i,j]:=1 else L[i][j]:=0; end; for j:=0 to n Begin for i:=0 to j Begin s:=0; for k:=0 to i s:=s+L[i,k]*U[k,j]; U[i,j]:=a[i,j]-s; end; for i:=j+1 to n begin s:=0; for k:=0 to j s:=s+L[i,k]*U[k,j]; if (U[j,j]0) then L[i,j]:=(a[i,j]-s)/U[j,j]; end; end; end; function det( a:imatr;n:integer):real; Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận var d:real; L,U:imatr; Begin d:=1; phanra(a,L,U,n); for i:=1 to n d:=d*L[i,i]*U[i,i]; det:=d; end; Procedure chuyenvi(a:imatr;var b:imatr; hang:integer;cot:integer); begin for i:=1 to cot begin for j:=1 to hang b[i,j]:=a[j,i]; end; end; procedure matrannd(a:imatr;var b:imatr;hang:integer;cot:integer); var dt:real; begin dt:=det(a,hang); for i:=1 to hang begin for j:=1 to cot b[i,j]:=1/dt*a[i,j]; end; Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận for i:=1 to hang begin for j:=1 to cot write(b[i,j]:10:4);writeln;end; end; { Mang chieu } { Doc mang mot chieu } procedure doctep1( var a:imatr1;var n:integer); begin write('nhap ten tep:');readln(fn); Writeln('Ma tran la: '); assign(f,fn); reset(f); readln(f,n); for i:=1 to n read(f,a[i]); for i:=1 to n write(a[i]:4); writeln; close(f); end; { -In mang chieu -} procedure xuat1chieu(a:imatr1;fn:string); begin {Writeln('Nhap vao ten tep chua ket qua: '); readln(fn); } assign(f,fn); Rewrite(f); Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận for i:=1 to n write(f,a[i]:4); writeln; close(f); end; procedure sapxep(var a:imatr1;n:integer); var tg:integer; begin Writeln('Mang sau sap xep: '); for i:=1 to n-1 for j:=i+1 to n if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; for i:=1 to n write(a[i]:4); xuat1chieu(a,'sapxep1.txt'); end; { } procedure mang1; Begin clrscr; Repeat repeat Writeln(' MENU MANG MOT CHIEU '); Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận Writeln('1- Nhap'); Writeln('2-Sap xep'); Writeln('3-Thoat'); Ch := Readkey; Until Ch in['1' '4']; Case Ch Of '1' : Begin doctep1(a3,n);writeln('Moi ban tiep tuc ');writeln;readln;end; '2' : Begin sapxep(a3,n); writeln('Moi ban tiep tuc ');writeln;end; End; Until Ch = '3' End; { Menu ma tran -} procedure mang2; Begin Repeat Repeat Writeln(' MENU MA TRAN '); Writeln('1- Nhap'); Writeln('2-Cong ma tran'); Writeln('3-Nhan ma tran'); Writeln('4-Nghich dao'); Writeln('5-Thoat'); Ch := Readkey; 10 Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận Until Ch in['1' '5']; Case Ch Of '1' : Begin doctep(a1,hangA,cotA); doctep(a2,hangB,cotB); end; '2' :congmt; '3' :nhanmt; '4': Begin doctep(a1,hangA,cotA); writeln; write('Det= ',det( a1,hangA):4:2);writeln; chuyenvi(a1,a,hangA,cotA); xuat(a,cotA,hangA,'chv.txt'); matrannd(a,d,hangA,cotA); xuat(d,hangA,cotA,'ngdao.txt'); end; End; Until Ch = '5' End; {************ CHUONG TRINH CHINH ***********} BEGIN ClrScr; Repeat Repeat ClrScr; 11 Gv Ths: Vũ Văn Nam Writeln(' Các toán mảng chiều ma trận MENU CHINH'); Writeln(' 1-Mang mot chieu'); Writeln(' 2-MA tran'); Writeln(' 3-Ket thuc'); Writeln; Ch := Readkey; Until ch in['1' '3']; Case Ch Of '1' : mang1; '2' : mang2; End; Until Ch = '3'; END readln; end 12 ... } procedure phanra( a:imatr;var L:imatr; var U:imatr; n:integer); var i,j,k:integer; s:real; Begin for i:=0 to n for j:=0 to n Gv Ths: Vũ Văn Nam Các toán mảng chiều ma trận Begin U[i][j]:=0;... Các toán mảng chiều ma trận for i:=1 to hang begin for j:=1 to cot write(b[i,j]:10:4);writeln;end; end; { Mang chieu } { Doc mang mot chieu } procedure doctep1( var a:imatr1;var... Writeln(' Các toán mảng chiều ma trận MENU CHINH'); Writeln(' 1-Mang mot chieu'); Writeln(' 2 -MA tran'); Writeln(' 3-Ket thuc'); Writeln; Ch := Readkey; Until ch in['1' '3']; Case Ch Of '1' : mang1;