Một số bài tập Ma trận trong Pascal
Program TONGMATRAN;
Uses WinCrt;
Const
TD1 = 'TRUONG DAI HOC BAN CONG MARKETING';
TD2 = ' »»»»» §¤Lïþ§ÑÆÇK® - ¥§æ «««««';
MAX = 30;
Type
MATRAN = Array[1..MAX,1..MAX] Of Byte ;
Var
MA,MB,MC:MATRAN;
CAP:Byte;
{Thu tuc dinh vi cursor}
Procedure WriteXY(X,Y:Byte;CHUOI:String);
Begin
GotoXY(X,Y);
Write(CHUOI);
End;
{Thu tuc in tieu de}
Procedure TIEUDE;
Begin
WriteXY(25,1,TD1);
WriteXY(25,2,TD2);
End;
{Thu tuc tao ma tran}
Procedure TAOMATRAN(Var A,B:MATRAN; Var N:Byte);
Var
i,j:Byte;
Begin
WriteXY(15,5,'- Nhap cap cua ma tran: '); Readln(N);
For i:=1 To CAP Do
For j:=1 To CAP Do
Begin
A[i,j]:=Random(100);
B[i,j]:=Random(50);
End;
End;
{Thu tuc in ma tran}
Procedure INMT(X:MATRAN;N:Byte);
Var
i,j:Byte;
Begin
For i:=1 To N Do
Begin
For j:=1 To N Do Write(X[i,j]:5);
Writeln;
End;
Writeln;
End;
{Thu tuc xuat ma tran}
Procedure XUATKQ(A,B:MATRAN; Var C:MATRAN; N:Byte);
Var
i,j:BYte;
Begin
Writeln('MA TRAN A:');
INMT(A,N);
Writeln('MA TRAN B:');
INMT(B,N);
For i:=1 To N Do
For j:=1 To N Do C[i,j]:=A[i,j]+B[i,j];
Writeln('MA TRAN TONG:');
INMT(C,N);
End;
{Chuong trinh chinh}
Begin
Clrscr;
TIEUDE;
TAOMATRAN(MA,MB,CAP);
XUATKQ(MA,MB,MC,CAP);
End.
2. Dùng bộ sinh số ngẫu nhiên tạo ma trận A,B. Sau đó tính tích 2 ma trận rùi in ra màn hình ma trận A,B và ma trận Tích
Program NHANMATRAN;
Uses WinCrt;
Const
TD1 = 'TRUONG DAI HOC BAN CONG MARKETING';
TD2 = ' »»»»» §¤Lïþ§ÑÆÇK® - ¥§æ «««««';
MAX = 30;
Type
MATRAN = Array[1..MAX,1..MAX] Of Byte;
Var
MA,MB,MC:MATRAN;
DONGA,COTA,DONGB,COTB,DONGC,COTC:Byte;
{Thu tuc dinh vi cursor}
Procedure WriteXY(X,Y:Byte; CHUOI:String);
Begin
GotoXY(X,Y);
Write(CHUOI);
End;
{Thu tuc in tieu de}
Procedure TIEUDE;
Begin
Writexy(25,1,TD1);
WritexY(25,2,TD2);
End;
{thu tuc tao ma tran}
Procedure TAOMATRAN(Var A,B:MATRAN; Var DA,CA,DB,CB:Byte);
Var
i,j:Byte;
Begin
Repeat
WriteXY(15,4,'- Nhap so dong Ma tran A: '); Readln(DA);
WriteXY(15,5,'- Nhap so cot Ma tran A: '); Readln(CA);
WriteXY(15,6,'- Nhap so dong Ma tran B: '); Readln(DB);
WriteXY(15,7,'- Nhap so cot Ma tran B: '); Readln(CB);
Until CA=DB;
For i:=1 To DA Do
For j:=1 To CA Do A[i,j]:=Random(20);
For i:=1 To DB Do
For j:=1 To CB Do B[i,j]:=Random(10);
End;
{Thu tuc in ma tran}
Procedure INMATRAN(X:MATRAN;DONG,COT:Byte);
Var
i,j:Byte;
Begin
For i:=1 To DONG Do
Begin
For j:=1 To COT Do Write(X[i,j]:5);
Writeln;
End;
End;
{Thu tuc xuat ket qua}
Procedure XUATKQ(A,B:MATRAN;Var C:MATRAN; DA,CA,DB,CB:Byte;Var DC,CC:Byte);
Var
i,j,k:Byte;
Begin
Writeln('MA TRAN A: ');
INMATRAN(A,DA,CA);
Writeln('MA TRAN B: ');
INMATRAN(B,DB,CB);
DC:=DA;
CC:=CB;
For i:=1 To DA Do
For j:=1 To CB Do
Begin
C[i,j]:=0;
For k:=1 To CA Do C[i,j]:=C[i,j]+(A[i,k]*B[k,j]);
End;
Writeln('MA TRAN TICH: ');
INMATRAN(C,DC,CC);
End;
{chuong trinh chinh}
Begin
Clrscr;
TIEUDE;
TAOMATRAN(MA,MB,DONGA,COTA,DONGB,COTB);
XUATKQ(MA,MB,MC,DONGA,COTA,DONGB,COTB,DONGC,COTC);
End.
| ************************************************* 2. Xu ly: a) Dung bo sinh so ngau nhiencua Pascal de luu gia tri cho cac phan tu cua Mang Luu Ket qua vao tap tin LENTHOT.INP gom: Dong1: la mot so nguyen cho biet gia tri phan tu cua mang Dong: la gia tri cua phan tu mang b) Mo tap tin LENTHOT.OUT va dua bien vao mang c) Thuc hien sap xep bang thuat toan Selection Sort. Luu ket qua vao tap tin LENTHOT.OUT ************************************************** ***** |
Uses WinCrt;
Const
TD1 = 'TRUONG DAI HOC BAN CONG MARKETING';
TD2 = 'SOLIDSNACK';
MAX = 20;
Type
MANG = Array[1..MAX] Of Byte;
Var
DAYSO:MANG;
SOPT:Byte;
{Thu tuc dinh vi cursor}
Procedure WriteXY(X,Y:Byte; CHUOI:String);
Begin
GotoXY(X,Y);
Write(CHUOI);
End;
{Thu tuc in TIEUDE}
Procedure TIEUDE;
Begin
WriteXY(25,1,TD1);
WriteXY(25,2,TD2);
End;
{Thu tuc tao mang}
Procedure TAOMANG(Var A:MANG;Var N:Byte);
Var
i:Byte;
F:Text;
Begin
WriteXY(15,4,'- Muon mang co may phan tu? '); Readln(N);
For i:=1 To N Do A[i]:=Random(100);
Assign(F,'D:\LENTHOT.INP');
Rewrite(F);
Writeln(F,N);
For i:=1 To N Do Write(F,A[i]:5);
Close(F);
End;
{Thu tuc Hoan vi}
Procedure HOANVI(Var X,Y:Byte);
Var
TAM:Byte;
Begin
TAM:=X;
X:=Y;
Y:=TAM;
End;
{Thu tuc sap xep bang SelectionSort}
Procedure SELECTIONSORT(Var A:MANG; N:Byte);
Var
i,j,MIN:Byte;
Begin
For i:=1 To N-1 Do
Begin
MIN:=i;
For j:=i+1 To N Do
If A[j]<A[MIN] Then MIN:=j;
HOANVI(A[MIN],A[i]);
End;
End;
{Thu tuc in vao tap tin LENTHOT.INP}
Procedure XUATKQ(Var A:MANG; Var N:Byte);
Var
i:Byte;
F1,F2:Text;
Begin
Assign(F1,'D:\LENTHOT.INP');
Reset(F1);
Readln(F1,N);
For i:=1 To N Do Read(F1,A[i]);
Close(F1);
WriteXY(15,6,'Mo file LENTHOT.OUT de xem ket qua sap xep');
Assign(F2,'D:\LENTHOT.OUT');
Rewrite(F2);
Writeln(F2,'Cac phan tu da duoc sap xep nhu sau: ');
SELECTIONSORT(A,N);
For i:=1 To N Do Write(F2,A[i]:5);
Close(F2);
End;
{Chuong trinh chinh}
Begin
Clrscr;
TIEUDE;
TAOMANG(DAYSO,SOPT);
XUATKQ(DAYSO,SOPT);
End.
| *********************************************** 1. Du lieu nhap vao - Tao tap tin TIMKIEM.INP gom: Dong1 : So phan tu cua mang Dong2: Cac phan tu cua mang mot chieu - Nhap vao mot do muon tim 2. Xu ly - Dung thuat toan tuan tu de tim kiem 3. OUTPUT - Xuat thong bao tim thay hoac khong - xuat thong bao phan tu muon tim la phan tu thu may cua mang ************************************************} |
Program TIMKIEMTUANTU;
Uses Wincrt;
Const
MAX = 30;
Type
MANG = Array[1..MAX] Of Byte;
Var
DAYSO:MANG;
SOPT,SOTIM:Byte;
{Thu tuc doc tap tin}
Procedure DOCTT(Var A:MANG; Var N,X:Byte);
Var
i:Byte;
F:Text;
Begin
Assign(F,'D:\TIMKIEM.INP');
Reset(F);
Readln(F,N);
For i:=1 To N Do Read(F,A[i]);
Close(F);
Write('Nhap con so muon tim: '); Readln(X);
End;
{Thu tuc tim kiem tuan tu}
Function TIMKIEM(A:MANG;N,X:Byte):Boolean;
Var
FOUND:Boolean;
i:Byte;
Begin
{Truoc khi tim thi gan gia tri ban dau cho bien found}
FOUND:=False;
For i:=1 To N Do
If A[i]=X Then
Begin
Found:= True;
Writeln('Phan tu ',X,' o vi tri thu ',i);
End;
TIMKIEM:=FOUND;
End;
{Thu tuc xuat ket qua}
Procedure XUATKQ(A:MANG;N,X:Byte);
Var
KETQUA:Boolean;
Begin
KETQUA:=TIMKIEM(A,N,X);
If KETQUA = True Then Write('Tim thay phan tu')
Else Write('Khong tim thay phan tu');
End;
{Chuong trinh chinh}
Begin
DOCTT(DAYSO,SOPT,SOTIM);
XUATKQ(DAYSO,SOPT,SOTIM);
End.
Trần Chí Thu @ 12:35 08/10/2009
Số lượt xem: 5845
- Thuật toán Euclid mở rộng (Tìm UCLN) (30/05/09)
- Thuật toán Sàng số nguyên tố (30/05/09)
- Số nguyên tố -Thuật toán kiểm tra tính nguyên tố (30/05/09)
- BÀI TOÁN CHIA KẸO (30/05/09)
- Tìm kiếm chuỗi (30/05/09)


Các Ý Kiến