Tải bản đầy đủ (.doc) (14 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (140.43 KB, 14 trang )

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;
{Thủ tục sắp xếp chọn – Selection Sort}
Procedure Selection Sort(Var A:MANG; SOPT:Byte);
Var
I,j:Byte;
MIN:Integer;
Begin
{Duyệt từ phần tử đầu đến phần tử cuối của Mảng}
For i:=1 To SOPT – 1 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() : in chữ màu.
textcolor() : tô màu cho màn hình.
sound() : tạo âm thanh.
delay() : làm trể.
nosound : tắt âm thanh.
windows(x1,y1,x2,y2) : thay đổi cửa sổ màn hình.
highvideo : tăng độ sáng màn hình.
lowvideo : giảm độ sáng màn hình.
normvideo : màn hình trở lại chế độ sáng bình thường.
gotoxy(x,y) : đưa con trỏ đến vị trí x,y 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 thực hiện chương trình và trở về hệ điều hành.
Abs(n) : Giá trị tuyệt đối.
Arctan(x) : cho kết quả là hàm Arctan(x).
Cos(x) : cho kết quả là cos(x).
Exp(x) : hàm số mủ cơ số tự nhiên ex.
Frac(x) : cho kết quả là phần thập phan của số x.
int(x) : cho kết quả là phần nguyên của số thập phân x.
ln(x) : Hàm loga cơ số tự nhiên.
sin(x) : cho kết quả là sin(x), với x tính bằng Radian.
Sqr(x) : bình phương của số x.
Sqrt(x) : cho kết quả là căn bậc hai của x.
pred(x) : cho kết quả là số nguyên đứng trước số nguyên x.

Suuc(x) : chô kết 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 file.
close(f) : tắt file.
erase(f) : xóa.
rename() : đổi tên cho file.
length(s) : cho kết quả là chiều dài của xâu.
copy(s,a,b) : copy xau.
insert(,s,a) : chèn thêm cho xâu.
delete(s,a,b) : xoá xâu.
Unit GRAGH
initgraph(a,b,) : khởi tạo chế độ đồ hoạ.
closegraph; : tắt chế độ đồ hoạ.
setcolor(x) : chọn màu.
outtext() : in ra màn hình tại góc trên bên trái.
outtextxy(x,y,); : in ra màn hình tại toạ độ màn hình.
rectangle(x1,y1,x2,y2): vẽ hình chữ nhật.
line(x1,y1,x2,y2) : vẽ đoạn thẳng.
moveto(x,y) : lấy điểm xuất phát để vẽ đoạn thẳng.
lineto(x,y) : lấy điểm kết thúc để vẽ doạn thảng.
circle(x,y,n) : vẽ đường tròn.
ellipse(x,y,o1,o2,a,b): vẽ hình elip.
floodfill(a,b,n) : tô màu cho hình.

getfillpattern(x) : tạo biến để tô.
setfillpattern(x,a) : chọn màu để tô.
cleardevice; : xoá toàn bộ màn hình.
settextstyle(n,a,b) : chọn kiểu chữ.
bar(a,b,c,d) : vẽ thanh.
bar3d(a,b,c,d,n,h) : vẽ hộp.
arc(a,b,c,d,e) : vẽ cung tròn.
setbkcolor(n) : tô mà nền.
putpixel(x,y,n) : vẽ điểm.
setfillstyle(a,b) : tạo nền cho màn hình.
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 14/09/2009
Số lượt xem: 2016

×