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

tài liệu Pascal cho người mới học

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 (205.79 KB, 22 trang )

I. Các hàm, câu lệnh thường dùng:

Các hàm nhập và xuất dữ liệu

write() - in ra màn hình liền sau kí tự cuối.
writeln() - in ra màn hình xuống một hàng.
read() - đọc biến.
readln(' ') - đọc biến và xuống dòng.
Uses CRT


clrscr - xoá toàn bộ màn hình.
textcolor() - in chữ màu.
textbackground() - 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 phân 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 logarit 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) - cho 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) - cho 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 chuỗi.
copy(s,a,b) - copy chuỗi.
insert(,s,a) - chèn thêm cho chuỗi.



delete(s,a,b) - xoá chuỗi.

Unit GRAPH (Các hàm đồ họa)

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àu 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

II. Ví dụ/cách sử dụng một số hàm thường
dùng:


1. random:
Nếu bạn muốn sinh ra 1 trong những số
ngẫu nhiên từ 0 đến z (z là do bạn chọn) thì
bạn cần làm như sau:
Lưu ý: khi bạn chọn z thì khi nhạp giá trị z thì phải công
thêm 1 đơn vị cho số z
Program random;
Uses crt;
Begin
Randomize;
Writeln (random(z));
Readln;
End.

2. Âm thanh:
A. Tạo ra âm thanh:

Để tạo ra âm thanh thì phải dùng thủ tục sau:
Program am_thanh;
Uses crt;
Begin
Sound (121);
Delay (1000);
Nosound;


End.

+ ở chỗ “121” bạn có thể thay thế thành 1 mã số âm thanh khác
+ Delay (1000) = 2s; cứ delay(500)=1s;

Lưu ý: nếu không có nosound thì âm thanh sẽ phát ra cho đến khi
tắt chương trình

III. CÁC BÀI TẬP CƠ BẢN:
1. Thuật toán đếm số n:
Program dem_so;
Uses crt;
Var i, n, dem: longint;
Begin
Clrscr;
dem:=0;
write (‘nhap so nguyen n : ‘);

readln (n);

write (‘so ‘,n,’ co’);

n:=abs(n);
while n>0 do
begin
n:= n div 10;
dem:=dem+1;
end;
writeln (dem,’ chu so’);
readln;
end.

2. Thuật toán tính tổng của dạng

1 1 1
1
+ 2 + 2 + ..... + 2
2
1 2 3
n


Program tinh_tong_dang_1;
Uses crt;
Var t: real;
Var I, n: longint;
Begin
Clrscr;
Write (‘nhap n: ‘); readln;
t:=0;
i:=1;
for i:=i to n do

t:=t+1/(i*i);
writeln (‘t= ‘,t:0:2);
readln;
end.

3. Chu vi & diện tích hình chữ nhật:
Program CHU_VI_DIEN_TICH_HINH_CHU_NHAT;
Uses crt;
Var a, b : integer;
Begin
Clrscr;
Write (‘nhap chieu dai a: ’); readln (a);
Write (‘nhap chieu rong b: ‘); readln (b);
Writeln (‘chu vi cua hinh chu nhat la: ‘,(a+b)*2);
Writeln (‘’);
Writeln (‘dien tich cua hinh chu nhat la: ‘,a*b);
Readln;
End.

4. Chu vi & diện tích hình tam giác:


a. Tam giác thường:
Program CHU_VI_DIEN_TICH_HINH_TAM_GIAC_1;
Uses crt;
Var a, b, c, h: integer;
Begin
Clrscr;
Write (‘nhap canh thu nhat : ‘); readln (a);
Write (‘nhap canh thu hai : ‘); readln (b);

Write (‘nhap canh thu ba : ‘); readln (c);
Write (‘nhap chieu cao : ‘); readln (h);
Writeln (‘chu vi cua hinh tam giac la: ‘,a+b+c);
Writeln (‘’);
Writeln (‘dien tich cua hinh tam giac la: ‘,(a*h)/2);
Readln;
End.

b. Tam giác vuông:
Program CHU_VI_DIEN_TICH_HINH_TAM_GIAC_2;
Uses crt;
Var a, b, c: integer;
Begin
Clrscr;
Write (‘nhap canh thu nhat (la 1 trong 2 canh goc vuong): ‘); readln (a);
Write (‘nhap canh thu hai (la 1 trong 2 canh goc vuong): ‘); readln (b);
Write (‘nhap canh thu ba: ‘); readln (c);
Writeln (‘chu vi cua hinh tam giac la: ‘,a+b+c);
Writeln (‘’);
Writeln (‘dien tich cua hinh tam giac la: ‘,(a*b)/2);
Readln;


End.

c. Tam giác cân:
Program CHU_VI_DIEN_TICH_HINH_TAM_GIAC_3;
Uses crt;
Var a, c: integer;
Begin

Clrscr;
Writeln (‘nhap do dai cua 1 trong hai canh ben: ‘); readln (a);
Writeln (‘nhap do dai canh day: ‘);

readln (c);

Writeln (‘chu vi cua tam giac la: ‘,(a*2)+c);
Writeln (‘’);
Writeln (‘dien tich cua tam giac la: ‘,(a*h)/2);
Readln;
End.

d. Tam giác vuông cân:
Program CHU_VI_DIEN_TICH_HINH_TAM_GIAC_4;
Uses crt;
Var a, c: integer;
Begin
Clrscr;
Writeln (‘nhap do dai cua 1 trong hai canh ben: ‘); readln (a);
Writeln (‘nhap do dai canh day: ‘);

readln (c);

Writeln (‘chu vi cua tam giac la: ‘,(a*2)+c);
Writeln (‘’);
Writeln (‘dien tich cua tam giac la: ‘,sqr(a)/2);
Readln;
End.

e. Tam giác đều:



Program CHU_VI_DIEN_TICH_HINH_TAM_GIAC_3;
Uses crt;
Var a: integer;
Begin
Clrscr;
Writeln (‘nhap do dai mot canh: ‘); readln (a);
Writeln (‘chu vi cua tam giac la: ‘,a*4);
Writeln (‘’);
Writeln (‘dien tich cua tam giac la: ‘,sqr(a)*(sqrt(3)/4));
Readln;
End.

5. Chu vi & diện tích hình vuông:
Program CHU_VI_DIEN_TICH_HINH_VUONG;
Uses crt;
Var a: integer;
Begin
Clrscr;
Write (‘nhap 1 canh: ‘); readln (a);
Writeln (‘chu vi cua hinh vuong la: ‘,a*4);
Writeln (‘’);
Writeln (‘dien tich: ‘,a*a);
Readln;
End.

6. So sánh 4 số:
Program so_sanh_4_so;
Uses crt;

Var a, max: integer;
Begin


Clrscr;
max:=0;
Write ('nhap so thu nhat: ');
Readln (a);
If a >= max then
max:=a;
Write ('nhap so thu hai: ');
Readln (a);
If a >= max then
max:=a;
Write ('nhap so thu ba: ');
Readln (a);
If a >= max then
max:=a;
Write ('nhap so thu tu: ');
Readln (a);
If a >= max then
max:=a;
Writeln ('so lon nhat la: ',max);
Writeln ('================THE END================');
Readln;
End.

7. Chu vi & diện tích hình tròn :
Program CHU_VI_DIEN_TICH_HINH_TRON;
Uses crt;

Var r: integer
Begin
Clrscr;


Writeln (‘nhap ban kinh: ‘); readln (r);
Writeln (‘chu vi cua hinh tron: ‘,(r*2)*pi);
Writeln (‘’);
Writeln (‘dien tich cua hinh tron: ‘,r*r*pi);
Readln;
End.

8. Tìm ƯCLN:
Program Tim_UCLN;
Uses crt;
Var a, b: integer;
Begin
Clrscr;
Write (‘nhap so thu nhat: ‘); readln (a);
Write (‘nhap so thu hai: ‘); readln (b);
Begin
Repeat
If a>b then
a:=a-b;
Else
b:=b-a;
Until a=b;
End;
Writeln (‘UCLN cua 2 so nay la: ‘,a);
Readln;

End.

9. Tổng các số từ a đến z:
Program tong_a_den_z;
Uses crt;


Var s, i, a, z: longint;
Begin
Clrscr;
Write (‘nhap a: ‘); readln (a);
Write (‘nhap z: ‘); readln (z);
s:=0;
For i:=a to z do
s:= s+I;
Writeln (‘tong la: ‘,s);
Readln;
End.

10. Tổng các số lẻ từ a đến z:
Program tong_le_a_den_z;
Uses crt;
Var s, i, a, z: longint;
Begin
Clrscr;
Write (‘nhap a: ‘); readln (a);
Write (‘nhap z: ‘); readln (z);
s:=0;
For i:=a to z do
If i mod 2 = 0 then

s:= s+I;
Writeln (‘tong la: ‘,s);
Readln;
End.

11. Tổng các số chẵn từ a đến z:
Program tong_chan_a_den_z;


Uses crt;
Var s, i, a, z: longint;
Begin
Clrscr;
Write (‘nhap a: ‘); readln (a);
Write (‘nhap z: ‘); readln (z);
s:=0;
For i:=a to z do
If i mod 2 = 1 then
s:= s+I;
Writeln (‘tong la: ‘,s);
Readln;
End.

11. Trung bình cộng 4 số:
Program trung_binh_cong;
Uses crt;
Var a, b, c, d: integer;
Begin
Clrscr;
Write (‘nhap so thu nhat: ‘); readln (a);

Write (‘nhap so thu hai: ‘);

readln (b);

Write (‘nhap so thu ba: ‘); readln (c);
Writeln (‘Trung binh cua 4 so la: ‘,(a+b+c+d)/4);
Readln;
End.

12. Tính tổng các chữ số của n:
program Tinh_tong_cac_chu_so_cua_n;
uses crt;


var i, x, y, z, t, d1, d2: integer;
begin
clrscr;
textcolor (lightred);
write ('nhap so co 4 chu so: ');
readln (i);
if (i > 999) and (i < 10000) then
begin
x:=i div 1000;
d1:=i mod 1000;
y:=d1 div 100;
d2:=d1 mod 100;
z:=d2 div 10;
t:=d2 mod 10;
textcolor (lightblue);
writeln ('tong 4 chu so: ',x+y+z+t);

end;
if (i >= 10000) or (i < 1000) then
begin
textcolor(green);
writeln ('khong hop le vui long thi lai');
end;
readln;
end.

13. Giải phương trình bậc 2:
Program PTB2;
Var a,b,c:Integer;
delta,x1,x2:Real;
Begin
Writeln('GIAI PHUONG TRINH BAC HAI');


Writeln(' --------------');
Repeat
Begin
Write('-Nhap he so a= ');
Readln(a);
End;
Until a <>0;
Write('-Nhap he so b= ');
Readln(b);
Write('-Nhap he so c= ');
Readln(c);
delta:=b*b-4*a*c;
If delta < 0 Then

Writeln('*Phuong trinh vo nghiem')
Else If delta = 0 Then
Writeln('*Phuong trinh co 2 nghiem bang nhau X= ',-b/2*a:6:2)
Else
Begin
x1:=(-b-sqrt(delta))/2*a;
x2:=(-b+sqrt(delta))/2*a;
Writeln('*Nghiem thu nhat X1= ',x1:6:2);
Writeln('*Nghiem thu hai X2= ',x2:6:2);
End;
Readln;
End.

IV. Một số bài tập nâng cao có lời giải:
1. Viết chương trinh nhập vào một số nguyên dương n và in
ra màn hình:
* Số chữ số của n.
* Tổng các chữ số của n.
* Chữ số lớn nhất của n.
* Số còn lại lớn nhất chia hết cho 5 khi xóa đi 1 chữ số bên
phải của n (nếu không tồn tại thì ghi KHONG).
VD: Với n = 37654 thì in ra kết quả:
+ So chu so la: 5


+ Tong cac chu so la: 15
+ Chu so lon nhat la: 7
+ So lon nhat chia het cho 5 la: 3765
program bai2_de_huyen_dai_loc_nam_19_20;
uses crt;

var t, n, n2, max, dem, r, h: longint;
begin
clrscr;
t:=0;
textcolor (lightblue);
write ('nhap n: '); readln (n);
r:=n;
h:=n;
n:=abs(n);
repeat
begin
n2:=n mod 10;
n:=n div 10;
t:=t+n2;
if n2 >= max then
max:=n2;
end;
until n=0;
writeln ('tong cac chu so cua n la: ',t);
writeln ('chu so lon nhat la: ',max);
while r > 0 do
begin


r:=r div 10;
dem:=dem+1;
end;
clrscr;
textcolor (green);
writeln ('so chu so la: ',dem);

writeln ('tong cac chu so la: ',t);
writeln ('chu so lon nhat la: ',max);
begin
h:=h div 10;
if h mod 5 < > 0 then
writeln ('KHONG');
if h mod 5 = 0 then
writeln ('so lon nhat chia het cho 5: ',h);
end;
readln;
end.

2. Tính:
+ Vận tốc (v) khi biết thời gian (t) và quãng đường (s)
+ Thời gian (t) khi biết vận tốc (v) và quãng đường (s)
+ Quãng đường (s) khi biết vận tốc (v) và thời gian (t)
Program VTS;
uses crt;
var v, t, s: real;
var A : integer;
begin
clrscr;


textcolor (green+blink);
writeln ('CHAO MUNG BAN DEN VOI CHUONG TRINH TINH TOAN "VTS"');
DELAY (550);
textcolor (lightblue);
WRITELN ('CHON CHUONG TRINH BAN CAN TINH');
delay (750);

textcolor (yellow);
writeln ('=> 1.tinh v');
writeln ('=> 2.tinh t');
writeln ('=> 3.tinh s');
textcolor (lightred);
write ('CHUONG TRINH TINH BAN CHON LA <1, 2, 3> : ');
readln (A);
Begin
if A=1 then
begin
writeln ('');
textcolor (lightblue);
write ('nhap quang duong <km> : ');
readln (s);
write ('nhap thoi gian <h> : ');
readln (t);
textcolor (green);
write ('=> van toc la <km/h> : ',s/t:4:2);
writeln (' km/h');
writeln ('================== THE END ==================');
readln;
end;
if A=2 then


begin
writeln ('');
textcolor (lightblue);
write ('nhap van toc <km/h> : ');
readln (v);

write ('nhap quang duong <km> : ');
readln (s);
textcolor (green);
write ('=> thoi gian la <h> : ',s/v:4:2);
writeLN (' h');
writeln ('================== THE END ==================');
readln;
end;
if A=3 then
begin
writeln ('');
textcolor (lightblue);
write ('nhap van toc <km/h> : ');
readln (v);
write ('nhap thoi gian <h> : ');
readln (t);
textcolor (green);
write ('=> quang duong la <km> : ',v*t:4:2);
writeLN (' km');
writeln ('================== THE END ==================');
readln;
end;
if A > 3 then
begin


textcolor (white);
writeln ('');
writeln ('BAN DA CHON KHONG HOP LE VUI LONG CHON LAI (^_^)');
readln;

end;
end;
end.



×