Menu Chính

ĐIỂM TIN CÁC BÁO

LIÊN KẾT WEBSITE

TIN TỨC

Ảnh ngẫu nhiên

Valentine11.swf Thieprong.swf Tinh_ca_CR.swf Bay_giua_ngan_ha.swf Daythonvyda.swf Mung_Giang_Sinh_20104.flv 201120101.swf USB.bmp Dtichhinhtron.swf Dtichelip.swf Goc_o_tam.swf Dtich_hinhquat.swf Dong_ho_dem_nguoc_15_giay.swf DirectedLine.swf Cylinder.swf Dtich_hchunhat.swf Dien_tich_xung_quanh_cua_hinh_tru_.swf Degenerate.swf EquilateralTriangle.swf EqUnitCircle.swf

VUI MỪNG CHÀO ĐÓN

1 khách và 0 thành viên

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Hổ trợ Trực tuyến

    • (chithu1980)

    Menu chức năng 1

    Gốc > Góc Lập Trình Pascal > Thuật Toán >

    Một số bài tập Ma trận trong Pascal

    1. Dùng bộ sinh số ngẫu nhiên tạo ma trận A,B. Sau đó tính tổng ma trận rùi in ra màn hình ma trận A,B và ma trận Tổng

    Trích:

    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

    Trí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

    ************************************************** *****
    Program SELECT;
    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
    ************************************************}
    Code:
    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.


    Nhắn tin cho tác giả
    Trần Chí Thu @ 12:35 08/10/2009
    Số lượt xem: 5845
    Số lượt thích: 0 người
    Avatar
    Xin chào chủ nhà! Rất vui khi được ghé thăm website của chủ nhà! Rất mong được giao lưu và kết nghĩa với chủ nhà! http://violet.vn/phamthanhduycm rất hân hạnh được chào đón quý vị ghé thăm và chia sẻ nhé!
     
    Gửi ý kiến

    Nhúng mã HTML