Các câu lệnh trong turbo pascal

14 5.3K 7
Các câu lệnh trong turbo pascal

Đ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

Version 2.0: So với Pascal chuẩn, Turbo Pascal Version 2.0 có những mở rộng về các biến động, các biến địa chỉ tuyệt đố, Các phép toán trên bit và byte, các phép toán logic trên số nguyên, Kết nối các chương trình với các biến chung, Version 3.0: là một hệ thống phát triển gồm những đặc điểm của version 2.0 và có nhiều mở rộng quan trọng như: Bổ sung nhiề thủ tục và hàm chuẩn. Bổ sung một vài dạng đặc biệt mới cho phép tính toán các số thực với độ chính xác lớn, So với version 2.0 thì version 3.0 có tốc độ dịch gấp đôi. Version 4.0: có đặc điểm là có thêm một số dữ liệu mới, thực hiện các biểu thức logic nhanh hơn, có nhiều thủ tục và hàm chuẩn về xử lí đồ họa đồ thị màu sắc hình khối cửa sổ, Version 5.0 và 5.5: Năm 1989, hãng Borland đưa ra thị trường phiên bản Turbo Pascal Version 5.0 để giới thiệu các thủ tục và hàm tiện nghi. Tiếp đó chưa đầy nữa năm họ đưa ra version 5.5 có thêm cấu trúc hoàn toàn mới, đó là lập trình đối tượng. Version 6.0: Đặc điểm nổi bậc của version này là giới thiệu thành phần của Turbo vision, một thư viện chương trình cụ thể, định hình có các cửa sổ tiện ích để đối chiếu với nhau. Version 7.0: Cuối năm 1992, hãng Borland lại đưa ra version 7.0 để chạy trong nhiều hệ điều hành kể cả Windows Mt s bi tp Ma trn trong Pascal 1. Dựng b sinh s ngu nhiờn to ma trn A,B. Sau ú tớnh tng ma trn rựi in ra mn hỡnh ma trn A,B v ma trn Tng 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 ngu nhiờn to ma trn A,B. Sau ú tớnh tớch 2 ma trn rựi in ra mn hỡnh ma trn A,B v ma trn 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. Giải thuật Sắp xếp 1. Thủ tục hoán vị các phần tử (swap): Trích: Procedure SWAP(Var BIEN1,BIEN2:Byte); Var TAM:Byte; Begin TAM := BIEN1; BIEN1:= BIEN2; BIEN2 := TAM; End; 2.Sắp xếp chọn (Selection Sort) 2.1 Giải thuật: Đây là phương pháp sắp xếp đơn giản nhất được tiến hành như sau: a) Chọn phần tử nhỏ nhất trong n phần tử từ A[1] đến A[n] và hoán vị nó với phần tử A[n] b) Chọn phần tử có khóa nhỏ nhất trong N-1 phần tử từ A[2] đến A[n] và hoán nó với vị trí A[2] c) Tổng quát ở bước thứ i, chọn phần tử cò khóa nhỏ nhất trong n-i+1 phần tử từ A[i] đến A[n] và hoán vị nó với A[i]. Sau bước này thì mảng đã sắp xếp VD: Cho 5 28 12 1 92 Sắp xếp: 2.2 Chương trình Demo: Trích: {Thủ tục hoán vị giữa hai phần tử} Procedure SWAP(Var BIEN1,BIEN2:Byte); Var TAM:Byte; Begin TAM := BIEN1; BIEN1:= BIEN2; BIEN2 := TAM; End; [...]... do Begin Min := I; {Gán chỉ số của phần tử thứ i vào biến Min} For j:=i+1 To N Do {So sánh với phần tử của i+1 đến phần tử cuối} If A[j] < A[min] Then Min := j SWAP(A[Min],A[i]); End; End; Các câu lệnh trong Turbo Pascal SYSTEM write() : in ra màn hình liền sau kí tự cuối writeln() : in xuống một hàng read() : đọc biến readln() : dừng chương trình để đọc biến Uses CRT clrscr : xoá toàn bộ màn hình textcolor()... setlinestyle(a,b,c) : chọn kiểu đoạn thẳng getmem(p,1) : chuyển biến để nhớ dữ liệu getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa sổ xác định putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ Unit DOS getdate(y,m,d,t) : lấy các dữ liệu về ngày trong bộ nhớ gettime(h,m,s,hund) : lấy các dữ liệu về giờ trong bộ nhớ findnext(x) : tìm kiếm tiếp Findfirst(,$20,dirinfo) : tìm kiếm Đỗ Trung Thành @ 00:32... quả là số nguyên đứng sau số nguyên x odd(x) : cho kết quả là true nếu x số lẻ, ngược lại là false chr(x) : trả về một kí tự có vị trí là x trong bảng mã ASCII Ord(x) : trả về một số thứ tự của kí tự x round(n) : Làm tròn số thực n Random(n) : chó một số ngẫu nhiên trong phạm vi n upcase(n) : đổi kí tự chữ thường sang chữ hoa assign(f,) : tạo file rewrite(f) : khởi tạo append(f) : chèn thêm dữ liệu cho... trên màn hình deline : xoá một dòng đang chứa con trỏ clreol : xoá các ký tự từ vị trí con trỏ đến cuối mà không di chuyển vị trí con trỏ insline : chèn thêm một dòng vào vị trí của con trỏ hiện hành exit : thoát khỏi chương trình textmode(co40) : tạo kiểu chữ lớn randomize : khởi tạo chế độ ngẫu nhiên move(var 1,var 2,n) : sao chép trong bộ nhớ một khối n byte từ biến Var 1 sang biến Var 2 halt : Ngưng . So với Pascal chuẩn, Turbo Pascal Version 2.0 có những mở rộng về các biến động, các biến địa chỉ tuyệt đố, Các phép toán trên bit và byte, các phép toán logic trên số nguyên, Kết nối các chương. i+1 đến phần tử cuối} If A[j] < A[min] Then Min := j SWAP(A[Min],A[i]); End; End; Các câu lệnh trong Turbo Pascal SYSTEM write() : in ra màn hình liền sau kí tự cuối. writeln() : in xuống. nhớ các hình vẽ trên vùng cửa sổ xác định. putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ. Unit DOS getdate(y,m,d,t) : lấy các dữ liệu về ngày trong bộ nhớ. gettime(h,m,s,hund) : lấy các

Ngày đăng: 09/05/2014, 21:14

Từ khóa liên quan

Mục lục

  • Giải thuật Sắp xếp

Tài liệu cùng người dùng

Tài liệu liên quan