intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Tin học đại cương part 10

Chia sẻ: Akjshdj Aksjdh | Ngày: | Loại File: PDF | Số trang:19

227
lượt xem
69
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'giáo trình tin học đại cương part 10', tài liệu phổ thông, tin học phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Giáo trình Tin học đại cương part 10

  1. 2: sua; 3: them; 4: doc; end; until i=5; readln; end. 2.7 - T p văn b n * Khai báo t p văn b n Trong Pascal có m t ki u t p ñã ñư c ñ nh nghĩa trư c ñó là t p văn b n, ñư c ñ nh nghĩa v i t chu n TEXT. Khai báo ki u t p văn b n; Var Ten_bien: TEXT; Các ph n t c a TEXT là các ki u kí t , ñư c t ch c thành các dòng v i ñ dài c a các dòng khác nhau, nh có thêm các d u h t dòng (End of Line). ðó là c p kí t ñi u khi n CR (Carriage Return, nh y v ñ u dòng, mã ASCII là 13) và LR(Line Feed: xu ng dòng, mã ASCII là10), chúng dùng ñ ngăn cách các dãy kí t tương ng v i 2 dòng khác nhau. Ví d : ðo n văn b n sau: HANOI 123 THUDO ðư c ch a trong t p văn b n thành m t dãy như sau: HANOI CR LF 123 CR LF THUDO CR LF EOF Do t p văn b n ñư c t ch c thành t ng dòng nên vi c ghi và ñ c t p văn b n có th t c ghi và ñ c theo dòng. * Ghi vào t p văn b n Có th ghi các giá tr ki u Integer, real, boolean, string vào t p văn b n b ng l nh Write ho c Writeln, các l nh này cho phép chuy n các giá tr ki u nói trên sang d ng kí t . Có 3 d ng sau: D ng 1: Write(bi n _t p, bi u_th c_1, bi u_th c_2,..., bi u_th c_n); Ghi các giá tr c a bi u th c vào t p không có d u h t dòng D ng 2: Writeln(bi n _t p, bi u_th c_1, bi u_th c_2,..., bi u_th c_n); Ghi các giá tr c a bi u th c vào t p có d u h t dòng. D ng 3: Writeln(bi n _t p); Ghi d u h t dòng vào t p. * ð c d li u t t p vănb n Chúng ta có th ñ c các kí t , các s nguyên, s th c, boolean t t p văn b n thông qua các th t c sau: D ng 1: read(bi n _t p, bi n1, bi n2, bi n3,..., bi nn); ð c các giá tr t t p gán cho các bi n tương ng và không sang ñ u dòng ti p theo. D ng 2: 172 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 172
  2. readln(bi n _t p, bi n1, bi n2, bi n3,..., bi nn); ð c các giá tr t t p gán cho các bi n tương ng và ñưa con tr sang ñ u dòng ti p theo. D ng 3: readln(bi n _t p); ðưa con tr sang ñ u dòng ti p theo. Hàm chu n EOLN(f) s phát hi n ra d u h t dòng c a t p f. Hàm này cho giá tr là True n u k t thúc dòng, ngư c l i là False. * Các chương trình x lý t p văn b n Bài toán 1: T o t p văn b n ghi l i n dòng văn b n nh p vào t bàn phím. ð c t p ñã t o và hi n ra trên màn hình. Program Tao_doc_tep_van_ban; uses crt; var i,n: integer; f: text; s: string; {**************} procedure tao; { thu tuc tao } begin clrscr; assign(f, ‘vanban.txt’); rewrite(f); write(‘ So dong van ban: ‘); readln(n); for i:=1 to n do begin write(‘ Nhap dong ‘, i ); readln(s); writeln(f, s); end; close(f); end; { ket thuc thu tuc tao} { ***************} Procedure doc; { thu tuc doc } begin clrscr; Assign(f, 'vanban.txt' ); reset(f); Writeln(‘ Tep van ban da tao’); while not eof(f) do begin readln(f,s); writeln(s); end; close(f); end; { ket thuc thu tuc doc} {******************} { than chuong trinh chinh} repeat clrscr; 173 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 173
  3. writeln(‘ 1- Tao tep’); writeln(‘ 2- Doc tep’); writeln(‘ 3- Ket thuc’); write(‘ Hay chon mot viec ? ‘); readln(i); case i of 1: tao; 2: doc; end; until i=3; readln; end. Bài toán 2: ð c xâu văn b n t t p, ki m tra xem xâu ñó có ñ i x ng không, sau ñó s p x p các ch s trong xâu theo th t tăng d n. chương trình PROGRAM DOC_XAU_SAP_TT_SO; USES CRT; TYPE MANG=ARRAY[1..200] OF CHAR; VAR I,K,L,N:INTEGER;T:BOOLEAN;S:STRING;A:MANG;F:TEXT; PROCEDURE SAPTANG(VAR X:MANG;M:INTEGER); VAR J,Z:INTEGER;P:CHAR; BEGIN FOR J:=1 TO M-1 DO FOR Z:=1 TO M-J DO IF X[Z]>X[Z+1] THEN BEGIN P:=X[Z]; X[Z]:=X[Z+1]; X[Z+1]:=P; END; END; BEGIN { thân chương trinh chính} CLRSCR; ASSIGN(F,'VB.TXT'); RESET(F); READLN(F,S); WRITELN(' XAU DOC DUOC'); WRITELN(S); N:=LENGTH(S); {tim xau doi xung} K:=1;L:=N;T:=TRUE; WHILE (K=48) AND (ORD(S[I])
  4. A[K]:=S[I]; END; SAPTANG(A,K); L:=0; FOR I:=1 TO N DO IF (ORD(S[I])>=48) AND (ORD(S[I])
  5. Bài t p chương VI 1. Vi t chương trình g m 2 CT con làm các công vi c sau: Ghi 1 bài thơ có n dòng, n i dung nh p vào t bàn phím lên t p văn b n có tên ‘BAITHO.TXT’ và ñ c t p văn b n ñã t o t ñĩa và cho hi n n i dung lên màn hình. Dùng câu l nh l a ch n ñ ch n công vi c: 1= Ghi, 2=Doc. 2. Vi t chương trình t o t p d li u ‘DIEM.DAT’ ch a b ng ñi m c a n ngư i và in k t qu ra màn hình. B ng ñi m g m các c t: H tên, ði m Toán, ði m Lý, ði m Hoá , T ng, Lo i. Nh p vào: H tên, ði m toán, ði m lý, ði m hoá. Tính T ng, Lo i : T ng = ði m toán + ði m lý + ði m hoá . Lo i = ‘ DO ’ n u T ng > 19 Lo i = ‘ TRUOT' n u T ng 25 Thư ng = Lương chính n u Ngày công 500000. Lo i = ‘THAP’ n u Ti n 50000 Lo i = ‘TB’ n u 20000
  6. CHƯƠNG VII HO VÀ ÂM THANH ð 1- ð ho 1.1 - Khái ni m chung Màn hình máy vi tính hi n nay có nhi u lo i khác nhau, các máy AT-386, AT-486, AT- 586... thư ng dùng lo i màn hình VGA (Video Graphic Adapter), TVGA (Top of VGA) ho c SVGA (Supper VGA), ñây là lo i màn hình có th dùng m t trong hai ch ñ : ch ñ TEXT - hi n th văn b n và ch ñ GRAPHIC - hi n th ñ ho . Trong ch ñ TEXT màn hình ñư c chia thành 25 dòng và 80 c t, n u vi t kín màn hình ta có th vi t ñư c 2000 ký t . Chúng ta có th thay ñ i ch ñ phân gi i ñ vi t ra 25 dòng x 40 c t ho c 80 dòng x 50 c t.... Mu n v hình, tô màu các hình ta ph i chuy n sang ch ñ ñ ho , trong ch ñ này màn hình ñư c xem là m t ma tr n ñi m, tuỳ thu c ñ phân gi i ta có th có ma tr n 640x480 ñi m ho c 1024x720 ñi m.... M i ñi m trên màn hình ñư c g i là 1 Pixel t c là m t ph n t nh ( Picture Element ), ta có th hoàn toàn ch ñ ng trong vi c thay ñ i màu s c, cư ng ñ sáng c a t ng ñi m ñ t o ra m t b c tranh theo ý mu n. V trí c a m i ñi m trên màn hình ñư c bi u di n b i hai to ñ : Hoành ñ và Tung ñ , g c to ñ (0,0) là ñi m góc trên bên trái màn hình còn ñi m góc dư i bên ph i có to ñ là 639,479. Mu n chuy n sang làm vi c ch ñ ñ ho , trong thư m c hi n hành (thư m c ch a chương trình Pascal) ph i có các t p GRAPH.TPU, *.BGI và *.CHR. L i g i ñơn v chương trình ñ ho ph i ñ t ñ u chương trình sau t khoá USES như ví d 43. Ví d 43 Program Ve_hinh; Uses GRAPH; ....... 1.2 - Kh i ñ ng ch ñ ñ ho Trong ph n thân chương trình c n ph i ñưa vào các thông báo v ki u màn hình, ch ñ ñ ho (MODE) tương ng. Nh ng ngư i làm tin h c ng d ng thư ng không quan tâm l m ñ n các thông s này do v y d lúng túng khi c n khai báo. ð kh c ph c như c ñi m ñó trong Turbo Pascal ñã có s n m t th t c kh i t o ch ñ ñ ho là Initgraph(var GD,GM: Integer, DP:string[n]); Khi g i th t c này v i các tham s h p l Initgraph s t xác ñ nh ki u màn hình và Mode ñ ho t i ưu . Ngư i l p trình có th t mình khai báo các tham s GD, GM (Trong ñó GD: Graph Driver - là m t s nguyên xác ñ nh ki u màn hình; GM: Graph Mode - cũng là m t s nguyên xác ñ nh Mode ñ ho ). Trư c h t trong ph n khai báo bi n các tham s này ph i khai thu c ki u Integer, sau ñó trong ph n thân chương trình ph i ch n các giá tr thích h p cho ki u màn hình và Mode ñ ho . Thông thư ng chúng ta không bi t chính xác ki u màn hình và Mode ñ ho c a máy tính ñang s d ng nên s g p lúng túng khi khai báo. Trong trư ng h p này t t nh t là ñ Pascal t xác ñ nh giúp chúng ta các tham s này. N u ngay sau t khoá Begin c a ph n thân chương trình chúng ta khai báo 177 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 177
  7. GD:= DETECT; thì Initgraph hi u là nó ph i t ñi xác ñ nh ki u màn hình và Mode ñ ho sao cho ñ t k t qu t i ưu. Nói chung tr nh ng trư ng h p ñ c bi t, chúng ta không nên t xác ñ nh nh ng thông s này làm gì. B ng .... cho bi t giá tr c a các tham s GD,GM và ñ phân gi i màn hình c a ba lo i màn hình ñã có, lo i thông d ng nh t hi n nay là VGA. B ng ... Ki u màn hình Mode ñ ho ð phân gi i Tên Tên Giá tr Giá tr CGA 1 CGAC0 0 320x200 CGAC1 1 320x200 CGAC2 2 320x200 CGAC3 3 320x200 CGACHi 4 640x200 EGA 3 EGALO 0 640x200 EGAHi 1 640x350 IBM8514 6 IBM8514L 0 640x480, 256 màu O 1 1024x768, 256 màu IBM8514Hi VGA 9 VGALO 0 640x200 VGAMed 1 640x350 VGAHi 2 640x480 Ví d 44 trình bày cách s d ng th t c Initgraph ñ thi t k chương trình v m t ñư ng tròn có tâm t i chính gi a màn hình và bán kính là 50 Pixel. Các tham s GD,GM s do Pascal t xác ñ nh, các t p ñi u khi n ñ ho ñ t trong thư m c TP trên ñĩa c ng C. Ví d 44 Program Ve_hinh_tron; Uses graph; Var GD,DM: Integer; BEGIN GD:= detect; Initgraph(GD,GM,'C:\tp\bgi'); If graphresult grok then halt(1); Circle(320,240,50); Readln; CloseGraph; END. N u chúng ta mu n t mình khai báo GD và GM (Ví d : màn hình VGA, ki u ñ ho là ñ phân gi i cao, t p tin ñ ho ch a trong thư m c TP5 trên ñĩa A) thì b l nh GD:=DETECT Và vi t l i ño n ñ u c a ví d 44 như sau: ..... 178 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 178
  8. GD:=VGA; GM:=VGAHi; INITGRAPH(GD,GM,'C:\TP\BGI'); Chú ý: Có th thay th tên màn hình b ng giá tr tương ng ñã có trong b ng. Tham s DP ( Driver Path ) là ñư ng d n t i thư m c ch a các t p ñi u khi n ki u màn hình ñ ho , trong ví d trên ñư c khai là 'c:\tp\bgi' nghĩa là ñĩa C thư m c TP, còn BGI là ñuôi t p ñ u khi n. Trong trư ng h p chúng ta không khai báo gì cho DP, nghĩa là ñ m t chu i r ng '' thì Pascal s t tìm các t p ñi u khi n ñ ho trong thư m c ch (là nơi mà Pascal ñư c kh i ñ ng). 1.3 - Ki m tra l i ñ ho Dòng th 8 trong ví d 44 If graphresult grok then halt(1); Là câu l nh ki m tra l i ñ ho . Vi c ki m tra ñư c th c hi n thông qua hàm c a hàm graphresult. 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 H ng chu i ý nghĩa Giá tr 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. 179 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 179
  9. 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à hoành ñ , y là tung ñ ) x,y là các giá tr ki u Integer, v i màn hình VGA thì 0
  10. 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
  11. 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 182 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 182
  12. 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
  13. 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'); 184 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 184
  14. 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); 185 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 185
  15. 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. 186 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 186
  16. ð 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). Ngoà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 187 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 187
  17. 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; 188 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 188
  18. 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. 189 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 189
  19. 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. Hoà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 toá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. 190 Trư ng ð i h c Nông nghi p 1 - Giáo trình Tin h c ñ i cương --------------------------------------------- 190
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2