Giáo trình Tin học đại cương - Phần II: Ngôn ngữ lập trình Turbo Pascal

Tóm tắt Giáo trình Tin học đại cương - Phần II: Ngôn ngữ lập trình Turbo Pascal: ...ần thực hiện lặp đi lặp lại được xác định trước bởi giá trị của Biểu_thức1 và Biểu_thức2 nên câu lệnh trên cịn được gọi là lệnh lặp cĩ số lần lặp xác định. Lưu đồ của lệnh lặp FOR: * Ví dụ VD1: Viết chương trình tính tổng của n số tự nhiên đầu tiên S=1+2+...+n theo phương pháp cộng dồn. ...ot'. Nếu Length(s1)+Length(St) > độ dài cực đại cho phép của xâu thì chỉ những kí tự nào nằm trong khoảng độ dài cực đại cho phép mới được giữ laị. d. Hàm Copy(St,m,n) Hàm này sao chép n kí tự của xâu St từ vị trí m. St:='Lao dong'; s1:=Copy(St,5,2); Kết quả sẽ cho s1='do'. Nếu...tệp • Cĩ thể cĩ các loại tệp sau: - Tệp định kiểu. - Tệp văn bản ( Text) - Tệp khơng định kiểu Trong các phần sau chỉ xét tệp định kiểu và tệp văn bản. • Tệp và mảng cĩ những điểm giống và khác nhau sau đây: * ðiểm giống nhau giữa tệp và mảng : tập hợp các phần tử cùng kiểu. * ð...

pdf79 trang | Chia sẻ: havih72 | Lượt xem: 311 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Tin học đại cương - Phần II: Ngôn ngữ lập trình Turbo Pascal, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
sult. Lỗi đồ hoạ thường phát sinh khi khơng tìm thấy các trình điều khiển đồ hoạ, 
hoặc khi chúng ta khai báo khơng đúng các tham số GD, GM, DP. Nếu phát hiện ra lỗi hàm 
Graphresult sẽ nhận một trong các giá trị cho trong bảng sau, mỗi giá trị ứng với một hằng 
chuỗi ký tự: 
Bảng lỗi của hàm Graphresult 
Giá trị Hằng chuỗi ý nghĩa 
0 Grok Tốt, khơng cĩ lỗi 
-1 Grnoinitgraph Khơng tìm thấy đơn vị đồ hoạ 
-2 Grnotdetected Khơng cĩ phần cứng đồ hoạ 
-3 GrFilenotfound Khơng tìm thấy các tệp điều khiển màn hình đồ hoạ 
-4 GrInvalidDriver Trình điều khiển hỏng, khơng hợp lệ 
-5 GrNoloadMem Bộ nhớ động (RAM) bị thiếu 
-6 GrNoscanMem Khơng thực hiện được việc kiểm tra bộ nhớ 
-7 GrNoFloodMem 
-8 GrFontNoFound Khơng tìm thấy các tệp chứa font chữ 
-9 GrNoFontMem Khơng đủ bộ nhớ để nạp Font chữ 
-10 GrInvalidMode Kiểu đồ hoạ khơng hợp lệ 
-11 GrError Lỗi đồ hoạ (tổng quát ) 
-12 GrIOError Lỗi các đường nhập, xuất đồ hoạ 
-13 GrInvalidFont Kiểu chữ khơng hợp lệ 
-14 GrInvalidFontNum Số hiệu kiểu chữ khơng hợp lệ 
Như vậy nếu giá trị của hàm Graphresult khác Grok nghĩa là cĩ một lỗi nào đĩ thì 
chương trình sẽ bị dừng bằng lệnh Halt(1), cịn nếu tốt thì tiếp tục làm việc. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 180 
 180 
1.4 - Một số thủ tục cơ bản để vẽ hình 
* MOVETO(x,y) : Di chuyển con trỏ đến toạ độ x,y (x là hồnh độ, y là tung độ) 
x,y là các giá trị kiểu Integer, với màn hình VGA thì 0<= x <=639, 0<= y <= 479 
* LINETO(x,y): Vẽ một đường thẳng từ vị trí con trỏ hiện thời tới toạ độ x,y kết thúc quá 
trình vẽ con trỏ nằm tại toạ độ mới. 
Pascal cĩ sẵn hai hàm để xác định toạ độ gĩc dưĩi bên phải màn hình đĩ là Getmaxx và 
Getmaxy. ðể vẽ đường chéo của màn hình từ toạ độ 0,0 ta cĩ thể viết các lệnh 
MOVETO(0,0); 
LINETO(Getmaxx,Getmaxy); 
* LINE(x1,y1,x2,y2 : Thủ tục này vẽ một đường thẳng từ toạ độ x1,y1 đến toạ độ x2,y2 
* LINEREL(dX,dY): Vẽ đường thẳng từ vị trí hiện thời ( toạ độ x,y) tới toạ độ x+dx, y+dy. 
* CIRCLE(x,y,r): Vẽ đường trịn tâm tại toạ độ x,y bán kính bằng r Pixel 
* PUTPIXEL(x,y, n): Thủ tục này sẽ vẽ một điểm sáng tại toạ độ x,y với màu là n. Giá trị n 
lấy trong khoảng 0-15 hoặc viết trực tiếp tên màu theo tiếng Anh. 
• Thiết lập màu đồ hoạ 
ðể định màu trong chế độ đồ hoạ ta cĩ thể dùng hai thủ tục sau đây : 
g. SETCOLOR(n) : ðịnh màu cho các nét vẽ 
h. SETBKCOLOR(n) : ðịnh màu nền cho nét vẽ 
Tham số n cho các thủ tục 7 và 8 xem trong bảng sau 
Bảng .. Mã màu và tên màu 
Mã 
màu 
Tên tiếng Anh Tên tiếng Việt 
0 Back ðen 
1 Blue Xanh da trời 
2 Green Xanh lá mạ 
3 Cyan Xanh lơ 
4 Red ðỏ 
5 Magenta Tím 
6 Brown Nâu 
7 Lightgray Xám nhạt 
8 Darkgray Xám xẫm 
9 Lightblue Xanh da trời nhạt 
10 Lightgreen Xanh lá mạ nhạt 
11 Lightcyan Xanh lơ nhạt 
12 Lightred ðỏ nhạt 
13 Lightmagenta Tím nhạt 
14 Yellow Vàng 
15 White Trắng 
Chú ý: 
- Lệnh định màu phải đặt trước lệnh vẽ hình 
- Một màu đã định sẽ cĩ tác dụng cho đến khi cĩ lệnh định màu mới 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 181 
 181 
• Vẽ hình khép kín và tơ màu 
* RECTANGLE(x1,y1,x2,y2) : Vẽ khung hình chữ nhật toạ độ gĩc trên bên trái là x1,y1 , toạ 
độ gĩc dưới bên phải là x2,y2. 
* BAR(x1,y1,x2,y2) : Vẽ một hình chữ nhật gĩc trên bên trái cĩ toạ độ x1,y1 gĩc dưới bên 
phải cĩ toạ độ x2,y2. Khi dùng kết hợp với thủ tục số 11 sẽ đồng thời cho phép kẻ các vân 
hoa trên nền và tơ màu cho nền. 
* SETFILLSTYLE(n1,n2) : Thủ tục định vân hoa và màu nền. 
n1 là một giá trị nguyên với 0<= n1 <= 11 : định kiểu vân hoa (xem bảng ...) 
n2 là số hiệu mã màu đã giới thiệu 0<= n2 <= 15 
Chú ý: 
- Thủ tục 11 chọn màu nền và vân hoa chỉ cĩ hiệu lực khi chúng ta sử dụng kèm theo 
các thủ tục vẽ hình phẳng sau đây: 
Hình chữ nhật (Bar), hình hộp chữ nhật (Bar3D), hình quạt (Pieslice), đa giác cĩ toạ độ nhập 
vào mảng (Fillpoly), Tơ màu cho miền (Floodfill). 
- Khi vẽ đường trịn hoặc khung chữ nhật thì khơng thể tạo hoa văn và tơ màu trong 
nền. 
- Thủ tục SETFILLSTYLE(n1,n2) cần đưa vào trước các thủ tục vẽ hình đã nêu trong 
mục chú ý. Giá trị của màu và kiểu vân hoa sẽ được giữ cho đến khi ta định nghĩa lại. 
Bảng... Giá trị và ý nghĩa của tham số n1 
Giá trị Tên tiếng Anh ý nghĩa 
0 EmptyFill Khơng tạo hoa văn bên trong hình 
1 SolidFill Tạo hoa văn bằng nét liền 
2 LineFill Tạo bằng nét gạch nối ---- 
3 LTSlashFill Tạo hoa văn bằng nét /// 
4 SlashFill Tạo hoa văn bằng nét /// đậm 
5 BKSlashFill Tạo hoa văn bằng nét \\\ đậm 
6 LTBKSlashFill Tạo hoa văn bằng nét \\\ 
7 HatchFill Kẻ lưới hình ơ vuơng 
8 XHatchFill Kẻ lưới hình ơ vuơng xoay 90 độ 
9 InterleaveFill Tơ bằng nét đứt quãng 
10 WideDotFill Tạo hoa văn bằng dấu chấm thưa 
11 CloseDotFill Tạo hoa văn bằng dấu chấm dày (liền nhau) 
1.5 - Viết chữ trong chế độ đồ hoạ 
Khi đã chuyển sang làm việc ở chế độ đồ hoạ ta khơng thể viết chữ bình thường như 
trong chế độ văn bản. Muốn viết chữ trong các hình vẽ ta sử dụng một số thủ tục sau đây: 
* OUTTEXT(chuỗi) : Thủ tục này sẽ cho hiện chuỗi ký tự tại vị trí con trỏ hiện thời. 
Chuỗi cĩ thể viết trực tiếp hoặc thơng qua biến chuỗi như trong ví dụ 45 sau đây: 
Ví dụ 45 
................... 
Var 
chuviet : string[30] 
Begin 
outtext('cong hoa xa hoi chu nghia ...'); 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 182 
 182 
chuviet:='Viet nam dan chu cong hoa'; 
outtext(chuviet); 
........ 
* OUTTEXTXY(x,y,chuoi) : thủ tục này sẽ viết ra chuỗi ký tự tại toạ độ x,y. 
* SETTEXTSTYLE(Kiểu chữ, Chiều viết, Kích thước); 
Kiểu chữ là một tham số nguyên nhận giá trị trong khoảng 0-4 
Chiều viết chỉ nhận 1 trong hai giá trị : 0 nằm ngang; 1 thẳng đứng 
Kích thước Là hệ số phĩng to chữ cĩ thể chọn từ 0-10 
ðể chấm dứt chế độ đồ hoạ trở về chế độ văn bản ta dùng thủ tục CLOSEGRAPH. Sau 
đĩ muốn quay lại chế độ đồ hoạ ta lại phải gọi lại INITGRAPH. 
Trong một số trường hợp để chuyển nhanh giữa chế độ đồ hoạ và văn bản chúng ta cĩ 
thể dùng hai thủ tục sau đây: 
- RESTORECRTMODE; Tạm ngừng chế độ đồ hoạ chuyển sang chế độ văn bản. 
- SETGRAPHMODE(n); Ngắt chế độ văn bản đã tạo ra bởi Restorecrtmode thiết lập trở 
lại chế độ đồ hoạ. Tham số n cĩ thể lựa chọn trong khoảng 0-2. Ví dụ 46 dưới đây trình bày 
cách sử dụng các thủ tục này. 
Program dohoa_text; 
uses crt,graph; 
var 
gd,gm:integer; 
begin 
gd:=detect; 
initgraph(gd,gm,'a:\tp5\bgi'); 
if graphresultgrok then halt(1); 
moveto(0,0); setcolor(5); 
lineto(300,300); delay(2500); 
circle(400,300,100); delay(1500); 
restorecrtmode; (* Chuyển về chế độ văn bản *) 
gotoxy(20,20);textcolor(9); 
write('Happy New Year'); 
readln; 
setgraphmode(2); (* Trở về chế độ đồ hoạ với n=2 cho màn hình VGA*) 
setcolor(blue); 
circle(100,100,50); 
delay(2000); 
restorecrtmode; (* Chuyển sang chế độ văn bản lần thứ hai*) 
textcolor(3); 
gotoxy(20,0);write('DAI HOC NONG NGHIEP I HA NOI'); 
readln; 
closegraph; (* Kết thúc chế độ đồ hoạ*) 
end. 
Việc sử dụng các thủ tục đồ hoạ khơng cĩ gì phức tạp, với một chút cố gắng bạn cĩ thể 
vẽ đợc những hình rất đẹp theo mong muốn. Dưới đây là một chương trình vẽ đồ thị hình sin. 
Chạy chương trình ta sẽ thấy ba đường hình sin với các biên độ và màu sắc khác nhau. 
Ví dụ 46 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 183 
 183 
Program Do_thi_hinh_sin; 
uses graph,crt; 
const m=0.1; 
Var t3,t4,t1,n,t2,gd,gm:integer; t,x,y,z:real; 
 Begin 
 gd:=detect; 
 Initgraph(gd,gm,'a:\tp5\bgi'); 
 if graphresultgrok then Halt(1); 
 x:=0; t3:=100; n:=0; t2:=10; 
 while t2<=600 do 
 Begin 
 setcolor(green); 
 y:=sin(x); 
 t1:=round(y*50); 
 t3:=round(y*70); 
 t4:=round(y*100); 
 t1:=200-t1; 
 t3:=200-t3; 
 t4:=200+t4; 
 moveto(10,200); 
 lineto(620,200); 
 line(10,80,10,300); 
 settextstyle(3,0,3); 
 outtextxy(610,205,'x'); 
 settextstyle(3,0,3); 
 outtextxy(15,75,'y'); 
 settextstyle(4,0,3); 
 setcolor(5); 
 outtextxy(200,300,'do thi ham sin(x)'); 
 setcolor(12); 
 moveto(10,200); 
 putpixel(t2,t1,11); 
 putpixel(t2,t3,14); 
 setcolor(red); 
 putpixel(t2,t4,random(14)); 
 setcolor(12); 
 delay(5); 
 x:=x+0.07; 
 t2:=t2+1; 
 end; 
 repeat until keypressed; 
 t1:=1; 
 t2:=200; 
 while t1<=220 do 
 begin 
 line(340,240,round(sqrt(440*440-t1*t1)),t1); 
 t1:=t1+1; 
 delay(15); 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 184 
 184 
 end; 
 repeat until keypressed; 
 closegraph; 
 End. 
Chương trình dưới đây thiết kế một đồng hồ ba kim , tốc độ chạy của kim giây tuỳ 
thuộc vào lệnh DELAY(n) , nếu chọn DELAY(1000) thì cứ 1 giây kim giây chuyển một vị trí. 
Khi nhập chương trình vào máy cần lưu ý khai báo lại đường dẫn đến thư mục chứa các tệp 
*.BGI 
Program VEDONGHO; 
uses crt,graph; 
 var 
x,y, maxx,maxy, gd,gm,color,i,j,t:integer; 
 N:real; 
 LAM,TT:CHAR; 
 begin 
 gd:=detect; 
 initgraph(gd,gm,'c:\tp5\BGI'); 
 setcolor(5); 
 rectangle(30,20,610,450); 
 rectangle(31,21,609,449); 
 rectangle(32,22,608,448); 
 setfillstyle(9,2); 
 bar(33,23,607,447); 
 setcolor(red); 
 setbkcolor(red); 
 for i:=1 to 10 do circle(320,240,i); 
 setcolor(11); 
 setbkcolor(white); 
 for i:=11 to 80 do circle(320,240,i); 
 setcolor(14); 
 setbkcolor(white); 
 for i:=80 to 160 do circle(320,240,i); 
 setcolor(white); 
 for i:=160 to 200 do circle(320,240,i); 
 setcolor(11); 
 circle(320,240,79); 
 circle(320,240,80); 
 setcolor(4); 
 circle(320,240,159); 
 circle(320,240,160); 
 settextstyle(3,0,4); 
 outtextxy(310,40,'XII'); 
 outtextxy(405,60,'I'); 
 outtextxy(470,120,'II'); 
 outtextxy(490,200,'III'); 
 outtextxy(480,290,'IV'); 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 185 
 185 
 outtextxy(410,370,'V'); 
 outtextxy(310,400,'VI'); 
 outtextxy(210,370,'VII'); 
 outtextxy(135,290,'VIII'); 
 outtextxy(130,210,'IX'); 
 outtextxy(155,130,'X'); 
 outtextxy(220,60,'XI'); 
 setcolor(blue); 
 Settextstyle(4,0,5); 
 outtextxy(230,100,'DIAMON'); 
 setcolor(random(14)); 
 for i:=1 to 20 do 
 circle(320,360,i ); 
 settextstyle(1,0,2); 
 setcolor(5); 
 outtextxy(200,450,'Copyright by Dr. Duong Xuan Thanh'); 
 for i:=1 to 20 do 
 begin 
 setcolor(random(14)); 
 circle(320,360,i ); 
 end; 
 for i:=1 to 20 do 
 begin 
 setcolor(random(14)); 
 circle(320,360,i ); 
 end; 
 for t:=0 to 12 do {-------- Kim gio --------} 
 begin 
 setcolor(12); 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(xorput); 
 linerel(round(110*cos((t*30-89)*pi/180)),round(110*sin((t*30-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-90)*pi/180)),round(110*sin((t*30-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-91)*pi/180)),round(110*sin((t*30-91)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-92)*pi/180)),round(110*sin((t*30-92)*pi/180))); 
 for i:=0 to 60 do { ---------Kim phut -------} 
 begin 
 setcolor(12); 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(xorput); 
 linerel(round(130*cos((i*6-89)*pi/180)),round(130*sin((i*6-89)*pi/180))); 
 moveto(320,240); 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 186 
 186 
 linerel(round(130*cos((i*6-90)*pi/180)),round(130*sin((i*6-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-91)*pi/180)),round(130*sin((i*6-91)*pi/180))); 
 (*--------Kim giay--------*) 
 for j:=0 to 360 do 
 begin 
 moveto(320,240); 
 setlinestyle(0,0,3); 
 SetWriteMode(XORPut); 
 setcolor(12); 
 linerel(round(150*cos((j-90)*pi/180)),round(150*sin((j-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(150*cos((j-91)*pi/180)),round(150*sin((j-91)*pi/180))); 
 delay(1000); moveto(320,240); 
 linerel(round(150*cos((j-90)*pi/180)),round(150*sin((j-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(150*cos((j-91)*pi/180)),round(150*sin((j-91)*pi/180))); 
 end; 
 moveto(320,240); 
 linerel(round(130*cos((i*6-89)*pi/180)),round(130*sin((i*6-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-90)*pi/180)),round(130*sin((i*6-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(130*cos((i*6-91)*pi/180)),round(130*sin((i*6-91)*pi/180))); 
 end; 
 moveto(320,240); 
 linerel(round(110*cos((t*30-89)*pi/180)),round(110*sin((t*30-89)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-90)*pi/180)),round(110*sin((t*30-90)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-91)*pi/180)),round(110*sin((t*30-91)*pi/180))); 
 moveto(320,240); 
 linerel(round(110*cos((t*30-92)*pi/180)),round(110*sin((t*30-92)*pi/180))); 
 end; 
 repeat until keypressed; 
 END. 
2 – Âm thanh 
Trong các máy PC thơng dụng cơng suất của loa rất nhỏ do đĩ việc tạo âm thanh chỉ cĩ 
tính chất biểu diễn. Muốn tạo ra âm thanh cao thấp khác nhau ta chỉ cần đưa vào loa các xung 
điện với tần số khác nhau. Turbo Pascal đã cĩ ba thủ tục thiết kế sẵn để làm việc này 
SOUND(n) : tạo ra âm thanh với tần số n , ở đây n phải là một số nguyên dương 
DELAY(n) : Kéo dài tín hiệu âm thanh trong khoảng thời gian n miligiây nếu sau đĩ cĩ 
thủ tục ngắt âm Nosound. 
NOSOUND : ngắt tín hiệu âm thanh 
Cần chú ý rằng khi cĩ thủ tục sound và Delay tín hiệu âm thanh sẽ được phát ra chừng 
nào chưa cĩ Nosound mặc dù ta đã định khoảng thời gian trễ qua thủ tục Delay. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 187 
 187 
ðể tạo một bản nhạc chúng ta cũng cần cĩ một chút kiến thức về nhạc lý. ðộ cao thấp 
trong âm nhạc được phân thành các quãng tám. Quãng tám trung tần thì nốt ðơ cĩ tần số 512 
Hz, quãng tám trầm hơn tần số của nốt ðồ sẽ là 256 Hz, cịn quãng tám cao hơn nốt ðố cĩ tần 
số 1024 Hz. 
Tên các nốt nhạc theo quy ước là: 
Quãng tám trầm : đồ, rề, mì, fà, sịn, là, xì 
Quãng tám trung : đơ, rê, mi, fa, son, la , xi 
Quãng tám cao : đố, rế, mí, fá, sĩn, lá, xí 
Về cao độ thì các nốt Mi - Fa và Xi - ðơ cách nhau nửa cung các nốt cịn lại cách nhau 
một cung. Nếu tính từ nốt ðồ (tần số 256) đến nốt ðố (tần số 512) khoảng cách là 6 cung như 
vậy sự chênh leechj về tần số trong mỗi cung sẽ là (512-256)/6 = 43 Hz. Giữa các nốt Mi - Fa 
và Xi - ðơ chênh lệch chỉ là 22 Hz (vì các nốt này cách nhau nửa cung). Ngồi ra cũng cần 
biết cách tạo ra các nốt thăng, giáng để cĩ thể tạo ra một bản nhạc theo ý muốn. 
Nếu chúng ta chỉ muốn nghe một bản nhạc phát ra từ máy thì cĩ thể tạo nên một chương 
trình thiết kế các nốt nhạc sau đĩ ghép chúng lại thành bản nhạc tuỳ ý. 
 Chương trình dưới đây thiết kế bản nhạc Làng tơi, các chương trình con T0, T1...T5 
tạo ra trường độ, ví dụ T0 là nốt trịn, T1 là nốt đen... các chương trình con khác tạo ra các nốt 
nhạc của hai quãng tám trầm và trung, trong đĩ cĩ một số nốt thăng và giáng. 
Program Vancao; 
uses crt; 
 procedure T0; Begin delay(20000); Nosound; End; 
 procedure T1; Begin delay(10000); Nosound; End; 
 procedure T2; Begin delay(5000); Nosound; End; 
 procedure T3; Begin delay(2500); Nosound; End; 
 procedure T4; Begin delay(1250); Nosound; End; 
 procedure T5; Begin delay(30000); Nosound; End; 
 Procedure nt(i:integer); 
 Begin Sound(i); End; 
 Procedure do1; Begin nt(256); End; {quang tam tram} 
 Procedure do11; Begin nt(270); End; {not do thang} 
 Procedure re1; Begin nt(299); End; 
 Procedure mi1; Begin nt(342); End; 
 Procedure fa1; Begin nt(363); End; 
 Procedure son1; Begin nt(406); End; 
 Procedure la1; Begin nt(449); End; 
 Procedure si1; Begin nt(492); End; 
 Procedure do2; Begin nt(534); End; {quang tam trung} 
 Procedure re2; Begin nt(600); End; {not Re giang} 
 Procedure mi2; Begin nt(685); End; 
 Procedure fa2; Begin nt(634); End; 
 Procedure son2; Begin nt(677); End; 
 Procedure la2; Begin nt(712); End; 
 Procedure si2; Begin nt(755); End; 
 Procedure Langtoi; 
 Begin 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 188 
 188 
 clrscr; gotoxy(25,12); textcolor(14); textbackground(red); 
 Write(' LANG TOI * Nhac tien chien '); 
 Repeat 
 do11;t0;mi1;t1;son1;t0;la1;t1;son1;t0; 
 son1;t1;do2;t1;si1;t1;la1;t1;son1;t0; 
 la1;t1;son1;t1;fa1;t1;mi1;t1;son1;t0;t1; 
 do11;t0;re1;t1;mi1;t0;son1;t1;do2;t0;re2;t1;mi2;t0;t1; 
 re2;t1;do2;t1;re2;t1;do2;t1;son1;t0;mi1;t1;son1;t1;do2;t5;t1; 
 do2;t1;do2;t2;la1;t1;la1;t1;si1;t1;la1;t1;son1;t0;t1; 
 fa1;t1;fa1;t1;la1;t0;t4;la1;t1;mi1;t0;re1;t1;son1;t5;t1; 
 do1;t0;re1;t1;mi1;t0;fa1;t1;son1;t0;mi1;t1;re1;t5; 
 do1;t1;do2;t0;si1;t1;re2;t0;son1;t1;do2;t5; 
 Until keypressed; Nosound; 
 End; 
 BEGIN 
 Langtoi; 
 END. 
Dưới đây là ví dụ thiết kế bàn phím thành các phím của một chiếc đàn dương cầm. Các 
nốt đơ, rê, mi, fa, son, la , xi đố sẽ bấm các chữ cái tương ứng ( D, R, M, F, S, L, X, Z). 
Muốn dừng âm ta bấm phím P (PAUSE), cịn muốn dừng chương trình bấm E (EXIT). 
Program nhac; 
uses crt,graph; 
var 
n :char; i,j:integer; 
begin 
 clrscr; 
 textcolor(14); textbackground(white); 
 for i:=1 to 6 do 
 begin 
 gotoxy(16,i+3); 
 for j:=1 to 51 do write(chr(177)); 
 end; 
 gotoxy(17,5); 
 textcolor(red); 
 write('Do-D, Re-R, Mi-M, Fa-F, Son-S, La-L, Xi-X, Do2-Z'); 
 gotoxy(33,6); write(' Re2-W, Mi2-T '); 
 gotoxy(22,7); 
 textcolor(blue); 
 writeln(' P->Ngat am, E-> Dung chuong trinh '); 
 gotoxy(22,8); 
textcolor(5); 
writeln('Moi ban choi moi ban nhac minh ua thich '); 
repeat 
n:= readkey; 
if n = 'd' then begin nosound; delay(3); sound(523); end; 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 189 
 189 
if n = 'r' then begin nosound; delay(10); sound(587); end; 
if n = 'm' then begin nosound; delay(10); sound(659); end; 
if n = 'f' then begin nosound; delay(10); sound(698); end; 
if n = 's' then begin nosound; delay(10); sound(784); end; 
if n = 'l' then begin nosound; delay(10); sound(880); end; 
if n = 'x' then begin nosound; delay(10); sound(988); end; 
if n = 'z' then begin nosound; delay(3); sound(1050); end; 
if n = 'w' then begin nosound; delay(3); sound(1190); end; 
if n = 't' then begin nosound; delay(3); sound(1300); end; 
if n = 'p' then nosound; 
until upcase(n) ='E'; 
nosound; 
end. 
Bài tập chương VII 
1. Viết chương trình vẽ n hình vuơng lồng nhau. 
2. Viết chương trình vẽ bàn cờ hình vuơng cĩ 64 ơ ( mỗi chiều là 8), xen kẽ cứ một ơ đỏ rồi 
đến 1 ơ trắng. 
3. Viết chương trình vẽ đị thị hình Cosin trong lương giác. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Tin học đại cương --------------------------------------------- 190 
 190 
Tài liệu tham khảo 
1. Bùi Thế Tâm. Windows 2000, Word 2000, Excel 2000, Powerpoint 2000. Nhà xuất bản 
 Giao thơng vận tải , năm 2003. 
2. Bùi Thế Tâm. Turbo Pascal 7.0. Nhà xuất bản thống kê, năm 1996 
3. Charles rubin. Microsoft Word (bản dịch). Nhà xuất bản trẻ, năm 1999. 
4. ðỗ Xuân Lơi. Cấu trúc dữ liệu và Giải thuật. Nhà xuất bản Khoa học và Kỹ thuật, 
 năm 1998. 
5. ðỗ Xuân Thụ - Hồ Khánh Lâm. Kĩ thuật vi xử lý và máy vi tính. Nhà xuất bản giáo dục, 
 năm 2000. 
 6. Kain Richard. Advance Computer architecturre: A system Design Approach. Prentice 
 Hall USa, 1996 
7. Hồng Hồng. Giáo trình tin học văn phịng. Nhà xuất bản Giao thơng vận tải, năm 2002. 
8. Hayes John. Computer Architecturre and Orgnizassion. McGaw Hill USA. 1998 
9. Nguyễn Nam Trung. Cấu trúc máy tính và thiết bị ngoại vi. Nhà xuất bản Khoa học và 
 kỹ thuật, năm 2003. 
10. Nguyễn Xuân Phong - Trương Lê Ngọc Thường. Tin học đại cương. Nhà xuất bản 
 Thanh niên, năm 2002. 
11. Nguyễn Xuân Huy. Thuật tốn . Nhà xuất bản Thống kê, năm 1988 
12. Xuân Thành. Internet, Explorer 6.0. Nhà xuất bản Thống kê, năm 2002. 

File đính kèm:

  • pdfgiao_trinh_tin_hoc_dai_cuong_phan_ii_ngon_ngu_lap_trinh_turb.pdf