1. Trang chủ
  2. » Giáo án - Bài giảng

Ma trận điều hoà ( viết bằng Pascal)

18 498 4
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ma trận điều hoà ( viết bằng Pascal)
Trường học University of Engineering and Technology
Chuyên ngành Electrical Engineering
Thể loại giáo trình
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 61,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dưới đây là chương trình mẫu để chạy tự động trên máy tính viết bằng Pascal, các bạn có thê chuyên sang ngôn ngữ khác có giao diện đẹp hơn :.

Trang 1

Chương trình mẫu ma trận điều hoa chạy tự động trên máy tính

viet bang Pascal

( các bạn có thể chuyển sang ngôn ngữ khác có giao diện đẹp hơn )

Program Matran_dieuhoa;

Uses Crt;

Const L=100;

Var a: Array[1 L,1 L] of Integer;

hang, cot: Array[1 L] of Real;

i, J, km, n: 1 L;

tam: Integer; tong: Real;

Procedure Nhap_ matran;

Begin

For j:=1 to n do begin

tam:=(j-1)*n;

For i:=1 to n do alfi,j|:=i+tam;

end;

End; {Nhap_matran}

{ }

Procedure Xoay_1; {n=3,7,11, }

Begin

Trang 2

For i:=1 to (k-1) do begin

tam:=a[i,1];

a[i,i|:=a[i,k]5

a[i,k]:=a[n+1-i,1]5

a[n+1-1,i|:=a[k,i];

a[k,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i]:= a[n+1-i,k];

a[n+1-1,k]:=a[i,n+1-i];

a[i,n+1-i]:= a[k,n+1-i];

a[k,n+1-i]:=tam;

end;

End; {Xoay_ l}

{

Procedure Xoay_ 2; {n=5,9,1, }

Begin

For i:=1 to (k-1) do begin

tam:=a[i,i];

a[i,i|:=a[i,k]5

a[i,k]:=a[i,n+1-i];

a[i,n+1-1]:=a[k,i];

a[k,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i|:= a[n+1-i,k];

a[n+1-1,k]:=a[n+1-1,i];

Trang 3

a[n+1-1,i]:= a[k,n+1-i];

a[k,n+1-i]:=tam;

end;

End; {Xoay 2}

{

Procedure Xoay_ 3; {n=4,6,8, }

Begin

For i:=1 to k do begin

tam:=a[i,i];

a[i,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i]:= tam;

tam:=a[n+1-i,1];

a[n+1-1,i]:= a[i,n+1-i];

a[i,n+1-i]:=tam:

end;

End; {Xoay 3}

Procedure Hoanvi_ngang(m: Integer);

Begin

For i:=1 to m do

For j:=1 to (m+1-i) do begin

tam:=a[i,k+j];

a[i,k+j]:= a[int+1-k-j];

Trang 4

a[in+1-k-j|:=tam;

tam:=a[n+1-i,k+j];

a[n+1-i,k+j|:= a[n+1-i,n+1-k-j];

a[n+1-i,n+1-k-j|:=tam;

end;

If m>1 then for 1:=2 to m do

For j:=1 to (1-1) do begin

tam:=a|i,j];

a[i,j|:=al[i,n+1-j];

a[i,n+1-j|:= tam;

tam:=a[n+1-i,j];

a[n+1-i,j]:= a[nt+1-i,n+1-j];

a[n+1-i,n+1-j|:=tam;

end;

For i:=(m+1) to (n-k) do

For j:=1 to m do begin

tam:=a[i,i-m-1+]];

a[i,i-m-1+]]:= a[i,n+m-+2-1-j];

a[l,n+m+2-i-j|:=tam;

tam:=a[n+1-i,i-m-1+j];

a[n+1-i,i-m-1+j]:= a[n+1-i,.n+m+2-1-]]; a[n+1-i,n+m+2-ï-j|:=tam:

end;

Trang 5

End;{Hoanvi_ ngang}

Procedure Hoanvi_doc(m: Integer);

Begin

For j:=1 to m do

For i:=1 to (m+1-j) do begin

tam:=a[k+i,j];

a[k+i,j]:= a[k+i,n+1-]];

a[k+i,n+1-j|:=tam;

tam:=a[k+i,n+1-j];

a[k+i,n+1-j|:= a[n+1-k-i,n+1-j];

a[n+1-k-i,n+1-j|:=tam;

end;

If m>1 then for j:=2 to m do

For i:=1 to (j-1) do begin

tam:=a|i,j];

a[i,j]:=a[n+1-1,j];

a[n+1-i,j]:= tam;

tam:=a[i,n+1-j];

a[i,n+1-j]:= a[n+1-i,n+1-j];

a[n+1-i,n+1-j|:=tam;

end;

For j:=(m+1) to (n-k) do

Trang 6

For i:=1 to m do begin

tam:=a[j-m-1+1,j];

a[j-m-1+1,j]:= a[n+m+2-j-i,j];

a[n+m-+2-j-i,j|:=tam;

tam:=a[j-m-1+i,n+1-j];

a[j-m-1+i,n+1-j]:= a[n+m+2-j-i,n+1-j]; a[n+m+2-j-i,n+1-j|:=tam;

end;

End;{Hoanvi doc}

{

Procedure Hoanvi_don(m: Integer); {n=6,10,14, } Begin

{ Hoan vi ngang nua tren }

For i:=1 to m do begin

tam:=a[i,k-m+i];

a[i,k-m+i]:= a[i,k+m-+1-i];

a[i,k+m+1-i]:=tam;

end;

For i:=(m+1) to k do begin

tam:=a[i,i-m];

a[i,i-m|:= a[izn+m+1-i];

a[i,n+m-+1-i]:=tam;

end;

Trang 7

{ Hoan vi doc nua trai }

For j:=1 to m do begin

tam:=a[k-m-+},j];

a[k-m+j,j|:= a[k+m+1-j,j];

a[k+m-+1-j,j]:=tam;

end;

For j:=(m+1) to k do begin

tam:=a[j-m.,j];

a[j-m.j|:= a[n+m+T1-],j]›

a[n+m+1-j,j]:=tam;

end;

End; {Hoanvi_ don}

Procedure Xuat_matran;

Begin

For i:=1 to n do begin

For j:=1 to n do Write(a[i,j]:4);

Writeln;

Writeln;

end;

End; {Xuat_matran}

BEGIN

Trang 8

Clrscr;

Writeln(‘Day la chuong trinh sap xep cac so nguyen tu 1 den n*n vao mot ma tran’);

Writeln(‘n*n sao cho tong cac hang, cac cot va cac duong cheo deu bang nhau :”);

Write(‘Ban hay chon n tu 3 den 100: °);

Readln(n);

Nhap_matran;

If (n mod 2)<~0 then begin

k:=(n+1) div 2;

If (k mod 2)=0 then begin {n=3,7,11, }

Xoay_1;

m:=(n-3) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_doc(m);

end;

end else begin {n=5,9,13, }

Xoay 2;

m:=(n-5) div 4;

If m0 then Hoanvi_ngang(m);

Hoanvi_doc(m+1);

end;

end else begin

Trang 9

k:=n div 2;

Xoay 3;

If (k mod 2)=0 then begin {n=4,8,12, }

m:=(n-4) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_ doc(m);

end;

end else begin {n=6,10,14, }

m:=(n-6) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_ doc(m);

end;

Hoanvi_don(m+1);

end;

end;

Writeln(‘Ma tran cua ban la :’);

Xuat_matran;

Readhn;

END

Dưới đây là chương trình mẫu để chạy tự động trên máy tính viết bằng Pascal, các bạn có thê chuyên sang ngôn ngữ khác có giao diện đẹp hơn :

Trang 10

Program Matran_dieuhoa;

Uses Crt;

Const L=100;

Var a: Array[1 L,1 L] of Integer;

hang, cot: Array[1 L] of Real;

i, J, km, n: 1 L;

tam: Integer; tong: Real;

{

Procedure Nhap_ matran;

Begin

For j:=1 to n do begin

tam:=(j-1)*n;

For i:=1 to n do alfi,j|:=i+tam;

end;

End; {Nhap_matran}

Procedure Xoay_1; {n=3,7,11, }

Begin

For i:=1 to (k-1) do begin

tam:=a[i,1];

Trang 11

a[i,i|:=a[i,k]5

a[i,k]:=a[n+1-i,1]5

a[n+1-1,i|:=a[k,i];

a[k,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i]:= a[n+1-i,k];

a[n+1-1,k]:=a[i,n+1-i];

a[i,n+1-i]:= a[k,n+1-i];

a[k,n+1-i]:=tam;

end;

End; {Xoay_ l}

t

Procedure Xoay_ 2; {n=5,9,1, }

Begin

For i:=1 to (k-1) do begin

tam:=a[i,i];

a[i,i|:=a[i,k]5

a[i,k]:=a[i,n+1-i];

a[i,n+1-1]:=a[k,i];

a[k,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i]:= a[n+1-i,k];

a[n+1-1,k]:=a[n+1-1,i];

a[n+1-1,i]:= a[k,n+1-i];

a[k,n+1-i]:=tam;

Trang 12

end;

End; {Xoay 2}

{

Procedure Xoay_ 3; {n=4,6,8, }

Begin

For i:=1 to k do begin

tam:=a[i,1];

a[i,i]:=a[n+1-i,n+1-i];

a[n+1-i,n+1-i]:= tam;

tam:=a[n+1-i,1];

a[n+1-1,i]:= a[i,n+1-i];

a[i,n+1-i]:=tam:

end;

End; {Xoay 3}

Procedure Hoanvi_ngang(m: Integer);

Begin

For i:=1 to m do

For j:=1 to (m+1-i) do begin

tam:=a[i,k+j];

a[i,k+j]:= a[int+1-k-j];

a[in+1-k-j|:=tam;

tam:=a[n+1-i,k+j];

Trang 13

a[n+1-i,k+j|:= a[n+1-i,n+1-k-j];

a[n+1-i,n+1-k-j|:=tam;

end;

If m>1 then for 1:=2 to m do

For j:=1 to (1-1) do begin

tam:=a|i,j];

a[i,j]:=a[i,n+1-j];

a[i,n+1-j]:= tam;

tam:=a[n+1-i,j];

a[n+1-i,j|:= a[n+1-i,n+1-j];

a[n+1-i,n+1-j|:=tam;

end;

For i:=(m+1) to (n-k) do

For j:=1 to m do begin

tam:=a[i,i-m-1+]];

a[i,i-m-1+]]:= a[i,n+m-+2-1-j];

a[l,n+m+2-i-j|:=tam;

tam:=a[n+1-i,i-m-1+j];

a[n+1-i,i-m-1+j]:= a[n+1-i,n+m+2-1-j]; a[n+1-i,n+m+2-ï-j|:=tam:

end;

End;{Hoanvi_ ngang}

{

Trang 14

Procedure Hoanvi_doc(m: Integer);

Begin

For j:=1 to m do

For i:=1 to (m+1-j) do begin

tam:=a[k+i,j];

a[k+i,j]:= a[k+i,n+1-]];

a[k+i,n+1-j|:=tam;

tam:=a[k+i,n+1-j];

a[k+i,n+1-j|:= a[n+1-k-i,n+1-j]; a[n+1-k-i,n+1-j|:=tam;

end;

If m>1 then for j:=2 to m do

For i:=1 to (j-1) do begin

tam:=a|i,j];

a[i,j]:=a[n+1-1,j];

a[n+1-i,j]:= tam;

tam:=a[i,n+1-j];

a[i,n+1-j|:= a[n+1-i,n+1-j]; a[n+1-i,n+1-j|:=tam;

end;

For j:=(m+1) to (n-k) do

For i:=1 to m do begin

tam:=a[j-m-1+1,j];

Trang 15

a[j-m-1+1,j]:= a[n+m+2-j-i,j];

a[n+m-+2-j-i,j|:=tam;

tam:=a[j-m-1+i,n+1-j];

a[j-m-1+i,n+1-j|:= a[n+m-+2-j-i,n+1-j]; a[n+m+2-j-i,n+1-j]:=tam;

end;

End;{Hoanvi doc}

{

Procedure Hoanvi_don(m: Integer); {n=6,10,14, } Begin

{ Hoan vi ngang nua tren }

For i:=1 to m do begin

tam:=a[i,k-m+i];

a[i,k-m+i]:= a[i,k+m-+1-i];

a[i,k+m+1-i]:=tam;

end;

For i:=(m+1) to k do begin

tam:=a[i,i-m];

a[i,i-m]:= a[i,n+m+1-i];

a[i,n+m-+1-i]:=tam;

end;

{ Hoan vi doc nua trai }

For j:=1 to m do begin

Trang 16

tam:=a[k-m-+j,j];

a[k-m+j.j]:= a[k+m+T1-j.j]›

a[k+m+1-j,j|:=tam;

end;

For j:=(m+1) to k do begin

tam:=a[j-m.,j];

a[j-m.j|:= a[n+m+T1-],j]›

a[n+m+1-j,j]:=tam;

end;

End; {Hoanvi_ don}

Procedure Xuat_matran;

Begin

For i:=1 to n do begin

For j:=1 to n do Write(a[i,j]:4);

Writeln;

Writeln;

end;

End; {Xuat_matran}

BEGIN

Clrscr;

Trang 17

Writeln(‘Day la chuong trinh sap xep cac so nguyen tu 1 den n*n vao mot ma tran’);

Writeln(‘n*n sao cho tong cac hang, cac cot va cac duong cheo deu bang nhau :”);

Write(‘Ban hay chon n tu 3 den 100: °);

Readln(n);

Nhap_matran;

If (n mod 2)<~0 then begin

k:=(n+1) div 2;

If (k mod 2)=0 then begin {n=3,7,11, }

Xoay_1;

m:=(n-3) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_doc(m);

end;

end else begin {n=5,9,13, }

Xoay 2;

m:=(n-5) div 4;

If m0 then Hoanvi_ngang(m);

Hoanvi_doc(m+1);

end;

end else begin

k:=n div 2;

Trang 18

Xoay 3;

If (k mod 2)=0 then begin {n=4,8,12, } m:=(n-4) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_ doc(m);

end;

end else begin {n=6,10,14, }

m:=(n-6) div 4;

If m0 then begin

Hoanvi_ngang(m);

Hoanvi_ doc(m);

end;

Hoanvi_don(m+1);

end;

end;

Writeln(‘Ma tran cua ban la :’);

Xuat_matran;

Readhn;

END

Ngày đăng: 13/09/2013, 10:10

TỪ KHÓA LIÊN QUAN

w