YOMEDIA
ADSENSE
Lập trình bằng Turbo Pascal part 2
127
lượt xem 58
download
lượt xem 58
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
1. Khai báo hằng và biến Một nguyên tắc chung khi viết một chương trình Pascal lμ mọi thứ đều phải được khai báo (và xây dựng) trước khi sử dụng. Vì lẽ đó mμ ngay sau tên chương trình lμ phần khai báo, rồi sau đó mới là thân chương trình. Như đã nêu trong phần giới thiệu cấu trúc một chương trình Pascal, phần khai báo phải theo đúng trình tự dưới đây.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình bằng Turbo Pascal part 2
- LËp tr×nh b»ng Turbo Pascal Ch−¬ng 3 C¸c khai b¸o vμ c©u lÖnh ®¬n gi¶n 1. Khai b¸o h»ng vµ biÕn Mét nguyªn t¾c chung khi viÕt mét ch−¬ng tr×nh Pascal lμ mäi thø ®Òu ph¶i ®−îc khai b¸o (vμ x©y dùng) tr−íc khi sö dông. V× lÏ ®ã mμ ngay sau tªn ch−¬ng tr×nh lμ phÇn khai b¸o, råi sau ®ã míi lμ th©n ch−¬ng tr×nh. Nh− ®· nªu trong phÇn giíi thiÖu cÊu tróc mét ch−¬ng tr×nh Pascal, phÇn khai b¸o ph¶i theo ®óng tr×nh tù d−íi ®©y. PhÇn nμo kh«ng cÇn ®Õn th× bá qua. 1- Khai b¸o c¸c th− viÖn ch−¬ng tr×nh mÉu sÏ dïng ®Õn trong ch−¬ng tr×nh. Có ph¸p: Tõ kho¸ User, sau ®ã lμ danh s¸ch c¸c Unit. 2- Khai b¸o c¸c h»ng. Có ph¸p: Tõ kho¸ Const, sau ®ã lμ danh s¸ch khai b¸o h»ng 3- Khai b¸o c¸c kiÓu. Có ph¸p: Tõ kho¸ Type, sau ®ã lμ danh s¸ch c¸c khai b¸o kiÓu 4- Khai b¸o c¸c biÕn. Có ph¸p: Tõ kho¸ Var, sau ®ã lμ danh s¸ch c¸c khai b¸o biÕn 5- PhÇn c¸c ch−¬ng tr×nh con. Tõ kho¸ Procedure ®Ó khai b¸o thñ tôc. Tõ kho¸ Function ®Ó khai b¸o hμm. D−íi ®©y sÏ tr×nh bμy vÒ khai b¸o h»ng vμ khai b¸o biÕn. C¸ch thùc hiÖn c¸c khai b¸o kh¸c sÏ ®−îc giíi thiÖu sau, khi bμn ®Õn c¸c chñ ®Ò cã liªn quan. §Ó tiÖn tr×nh bμy c¸c quy ®Þnh vÒ có ph¸p ta quy −íc r»ng ngoμi c¸c tõ kho¸, tªn chuÈn cña Turbo Pascal lμ phÇn khung ph¶i gi÷ nguyªn (®−îc in ®Ëm), nh÷ng thμnh phÇn ®−îc nhÊn m¹nh b»ng kiÓu ch÷ nghiªng lμ c¸c thμnh phÇn mμ ng−êi x©y dùng ch−¬ng tr×nh cÇn ph¶i bæ xung thªm vμo. 1.1 Khai b¸o h»ng 1.1.1 H»ng lμ g×. H»ng lμ ®¹i l−îng nhËn mét gi¸ trÞ x¸c ®Þnh vμ kh«ng thay ®æi trong suèt ch−¬ng tr×nh. Khai b¸o mét h»ng lμ ®Æt tªn h»ng øng víi gi¸ trÞ kh«ng NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 21
- LËp tr×nh b»ng Turbo Pascal 1.1.2 Có ph¸p vμ vÝ dô. Có ph¸p: Const tªn h»ng = gi¸ trÞ h»ng ; ë vÕ ph¶i, gi¸ trÞ h»ng lμ mét gi¸ trÞ trùc tiÕp ( literal value). Gi¸ trÞ trùc tiÕp lμ mét gi¸ trÞ lÊy tõ trong miÒn gi¸ trÞ cña kiÓu d÷ liÖu, kh«ng ph¶i thùc hiÖn tÝnh to¸n g× thªm. Cã thÓ viÕt nhiÒu khai b¸o h»ng liªn tiÕp nhau. VÝ dô: const maxSize = 50 ; tieuDe = 'Cong hoa xa hoi chu nghia Viet nam' ; sigma = 0.1/ (2*pi) ; laiXuat = 0.05 ; 1.1.3 T¹i sao nªn khai b¸o h»ng. Mét c©u hái tù nhiªn ®Æt ra lμ, t¹i sao nªn dïng khai b¸o gi¸ trÞ h»ng thay cho viÖc viÕt trùc tiÕp gi¸ trÞ Êy t¹i nh÷ng n¬i cÇn ®Õn nã. Sö dông khai b¸o h»ng sÏ cã hai −u ®iÓm sau ®©y: - Ch−¬ng tr×nh râ rμng, dÔ hiÓu h¬n. C¸c tªn h»ng maxSize, sigma, laiXuat... trong c¸c vÝ dô trªn râ rμng lμ dÔ hiÓu, dÔ nhí h¬n lμ c¸c con sè kh« khan mμ chóng thay thÕ. - Ch−¬ng tr×nh dÔ chØnh söa h¬n. VÝ dô nÕu sau nμy cÇn t¨ng kÝch th−íc lín nhÊt cho phÐp lªn 100 chø kh«ng ph¶i lμ 50 th× chØ cÇn söa duy nhÊt mét chç lμ dßng khai b¸o. NÕu l·i xuÊt ®−îc ®iÒu chØnh l¹i lμ 0.04 th× còng kh«ng ph¶i söa l¹i hÕt toμn bé c¸c c«ng thøc liªn quan mμ chØ cÇn söa ë dßng khai b¸o møc l·i xuÊt lμ ®ñ. 1.2 Khai b¸o biÕn 1.2.1 BiÕn lμ g×. BiÕn lμ c¸c ®¹i l−îng mμ gÝa trÞ cã thÓ biÕn ®æi trong ch−¬ng tr×nh. BiÕn lμ c¸i dïng ®Ó chøa c¸c d÷ liÖu phôc vô cho qu¸ tr×nh tÝnh to¸n, xö lÝ trong ch−¬ng tr×nh. Nã cã thÓ chøa d÷ liÖu ®Çu vμo, kÕt qu¶ trung gian hay kÕt qu¶ cuèi cïng cña qu¸ tr×nh xö lÝ. Mçi biÕn chøa d÷ liÖu thuéc mét kiÓu d÷ liÖu nhÊt ®Þnh. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 22
- LËp tr×nh b»ng Turbo Pascal Khai b¸o biÕn lμ ®¨ng kÝ tªn cña biÕn kÌm víi kiÓu d÷ liÖu cña nã. C¸c biÕn kh¸c nhau kh«ng ®−îc trïng tªn nhau. Tr×nh biªn dÞch sÏ dμnh cho mçi biÕn mét vïng nhí x¸c ®Þnh, ®ñ ®Ó chøa d÷ liÖu kiÓu t−¬ng øng. Vïng nhí nμy réng hay hÑp (dμi, ng¾n) ®Õn ®©u lμ do kiÓu d÷ liÖu cña biÕn quyÕt ®Þnh. 1.2.2 Có ph¸p vμ vÝ dô. Có ph¸p: Var tªn biÕn: kiÓu d÷ liÖu ; - Sau tõ kho¸ VAR cã thÓ viÕt nhiÒu khai b¸o biÕn liªn tiÕp nhau, c¸ch nhau dÊu chÊm phÈy. - Cã thÓ khai b¸o ®ång thêi nhiÒu biÕn cïng kiÓu. Thay cho mét tªn biÕn lμ danh s¸ch c¸c tªn biÕn c¸ch nhau dÊu phÈy. - Cã thÓ võa khai b¸o võa g¸n gi¸ trÞ khëi ®Çu cho biÕn, viÕt dÊu b»ng, theo sau lμ mét gi¸ trÞ trùc tiÕp. VÝ dô: VAR x,y,z: real ; GoPhim, Chon: char; TimThay: boolean = true ; Dem: integer = 0 ; 2. BiÓu thøc trong ng«n ng÷ Pascal. 2.1 Biªñ thøc lµ g×. Ta ®· quen víi kh¸i niÖm biÓu thøc to¸n häc. VÝ dô c¸c biÓu thøc sè häc 2πR 10.34 + sin 2x 2 π R / (10.34 + sin 2x) vμ c¸c biÓu thøc l«gic Δ≠0 (Δ ≠ 0) AND (a = 0). NhËn thÊy r»ng c¸c thμnh phÇn cña biÓu thøc cã thÓ lμ mét gi¸ trÞ trùc tiÕp nh− 2, 10.34, cã thÓ lμ mét h»ng nh− sè Pi, cã thÓ lμ biÕn nh− x, cã thÓ lμ hμm nh− sin2x hoÆc còng cã thÓ lμ mét biÓu thøc kh¸c. Hoμn toμn t−¬ng tù cã thÓ ®Þnh nghÜa biÓu thøc trong Pascal nh− sau: BiÓu thøc lμ mét kÕt hîp c¸c phÐp to¸n víi c¸c to¸n h¹ng kh¸c nhau. C¸c NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 23
- LËp tr×nh b»ng Turbo Pascal to¸n h¹ng cã thÓ lμ mét gi¸ trÞ trùc tiÕp, mét h»ng, mét biÕn, mét hμm hoÆc mét biÓu thøc kh¸c. V× to¸n h¹ng cã thÓ lμ mét biÓu thøc kh¸c, nÕu kÕt hîp nhiÒu biÓu thøc b»ng c¸c dÊu phÐp to¸n ta l¹i cã biÓu thøc míi. B»ng c¸ch nμy ta cã thÓ x©y dùng c¸c biÓu thøc ngμy cμng lín vμ phøc t¹p. ViÖc thùc hiÖn c¸c phÐp to¸n ®Ó nhËn ®−îc kÕt qu¶ cuèi cïng gäi lμ tÝnh gi¸ trÞ cña biÓu thøc. VÝ dô, c¸c biÓu thøc sè häc ë trªn cã thÓ ®−îc viÕt l¹i trong Pascal nh− sau 2 * pi * BanKinh 1 + sin(2*x) 2 * pi * BanKinh / (1 + sin(2*x)) vμ c¸c biÓu thøc l«gic lμ Delta 0. (Delta 0) AND (a = 0). 2.2 B¶ng thø tù −u tiªn Khi thùc hiÖn c¸c phÐp to¸n trong biÓu thøc ph¶i tu©n theo quy ®Þnh vÒ "thø tù −u tiªn". D−íi d©y lμ b¶ng thø tù −u tiªn cña c¸c phÐp to¸n xÕp theo møc −u tiªn gi¶m dÇn tõ trªn xuèng d−íi. Lo¹i PhÐp to¸n KÝ hiÖu KiÓu cña to¸n KiÓu cña kÕt qu¶ h¹ng Mét ng«i ®æi dÊu - Nguyªn, thùc Gièng to¸n h¹ng Phñ ®Þnh NOT Logic logic Nh©n * Nguyªn, thùc Gièng to¸n h¹ng Chia / Nguyªn, thùc Thùc Nh©n Chia bá d− DIV Nguyªn Nguyªn Chia lÊy d− MOD Nguyªn Nguyªn Vμ AND Logic logic Céng + Nguyªn hoÆc Gièng to¸n h¹ng Céng Trõ - thùc HoÆc OR Logic logic So s¸nh = < >= NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 24
- LËp tr×nh b»ng Turbo Pascal 2.3 ViÕt ®óng biÓu thøc L−u ý: 1- Kh«ng ®−îc bá qua dÊu phÐp nh©n “ * ” gi÷a hai thõa sè. BiÓu thøc to¸n häc 2x, trong Pascal ph¶i viÕt ®Çy ®ñ lμ 2*x. 2- DÊu phÐp chia lμ kÝ hiÖu g¹ch xiªn “/ ”. VÝ dô 1 / (2* Pi). Kh«ng dïng dÊu hai chÊm. Kh«ng dïng c¸ch viÕt tö sè vμ mÉu sè trªn hai dßng kh¸c nhau. 3- NÕu d·y liÒn nhau nhiÒu phÐp to¸n cã cïng thø tù −u tiªn th× thùc hiÖn tõ tr¸i sang ph¶i. 4- §Ó thay ®æi thø tù −u tiªn, dïng cÆp dÊu ngoÆc ®¬n “( , )”. Mét cÆp dÊu ngoÆc ®¬n sÏ x¸c ®Þnh mét biÓu thøc con, nh− mét to¸n h¹ng tham gia cÊu thμnh biÓu thøc lín h¬n chøa nã. §Ó thÓ hiÖn ®óng vμ râ rμng mét biÓu thøc phøc t¹p cÇn ph¶i sö dông c¸c cÆp dÊu ngoÆc ®¬n. VÝ dô: TÝnh nghiÖm cña tam thøc bËc hai, nÕu ta viÕt x1:= -b + sqrt (delta) / 2*a sÏ nhËn ®−îc x1 = -b + (sqrt(delta) /2) * a. §Ó tÝnh ®óng nghiÖm cña ph−¬ng tr×nh bËc hai cÇn söa l¹i lμ x1:= ( -b + sqrt (delta)) / (2*a) ; 3. C¸c c©u lÖnh ®¬n gi¶n Turbo Pascal lμ mét ng«n ng÷ lËp tr×nh cÊu tróc. Ngoμi nh÷ng c©u lÖnh ®¬n thùc hiÖn mét c«ng viÖc x¸c ®Þnh, cã nh÷ng c©u lÖnh cho phÐp phèi hîp tæ chøc nhiÒu c«ng viÖc theo mét quy t¾c nhÊt ®Þnh. §ã gäi lμ c¸c c©u lÖnh t¹o cÊu tróc ®iÒu khiÓn hay ng¾n gän lμ c¸c lÖnh cÊu tróc. Ta cã s¬ ®å ph©n lo¹i c¸c c©u lÖnh nh− sau 1 - C©u LÖnh ®¬n gi¶n: -LÖnh g¸n := -LÖnh xuÊt write -LÖnh nhËp read -C¸c lÖnh kh¸c: goto, halt, exit .. 2- C©u lÖnh cÊu tróc -LÖnh ghÐp begin - end -LÖnh lùa chän if, case -LÖnh lÆp for, repeat, while D−íi ®©y sÏ tr×nh bμy c¸c c©u lÖnh ®¬n gi¶n. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 25
- LËp tr×nh b»ng Turbo Pascal 3.1 LÖnh g¸n G¸n gi¸ trÞ cho mét biÕn. Ng«n ng÷ Pascal quy ®Þnh dÊu phÐp g¸n lμ dÊu hai chÊm, tiÕp theo lμ dÊu b»ng “:=”, ®äc lμ “g¸n b»ng”. Có ph¸p: biÕn:= biÓu thøc ; Thùc hiÖn: tÝnh biÓu thøc ë vÕ ph¶i, sau ®ã g¸n cho biÕn ë vÕ tr¸i. x:= 2 + 3*sin(2*a) ; VÝ dô: i:= maxSize MOD 3; L−u ý: - ChØ cã biÕn míi ®−îc thay ®æi gi¸ trÞ, do ®ã vÕ tr¸i cña lÖnh g¸n b¾t buéc ph¶i lμ mét biÕn. - PhÐp g¸n ph¶i t−¬ng thÝch vÒ kiÓu d÷ liÖu, nghÜa lμ biÕn ë vÕ tr¸i ph¶i cã kiÓu gièng nh− gi¸ trÞ cña biÓu thøc ë vÕ ph¶i. - PhÐp g¸n chÊp nhËn mét sè chuyÓn ®æi kiÓu "tù nhiªn". VÝ dô, cã thÓ g¸n mét gi¸ trÞ nguyªn cho biÕn thùc. §Ò phßng: nhÇm lÉn viÕt dÊu phÐp g¸n chØ cã dÊu b»ng, thiÕu dÊu hai chÊm. DÊu b»ng “=” lμ dÊu cña phÐp “so s¸nh b»ng nhau”. 3.2 LÖnh in ra mµn h×nh kh«ng kÌm ®Þnh d¹ng. 3.2.1 Có ph¸p Cã 4 d¹ng c©u lÖnh in ra mμn h×nh: Write( biÓu thøc) ; (1) Write( biÓu thøc1 , biÓu thøc2 , ... , biÓu thøc n ) ; (2) Writeln( biÓu thøc1 , biÓu thøc2 , ... , biÓu thøc n ); (3) Writeln ; (4) 3.2.2 Thùc hiÖn Nh− ®· biÕt, mμn h×nh ë chÕ ®é v¨n b¶n ®−îc chia bëi c¸c cét vμ c¸c dßng thμnh c¸c « h×nh ch÷ nhËt (th«ng th−êng cã 80 cét vμ 25 dßng, tøc lμ 2000 « ch÷ nhËt). Mçi « cã thÓ hiÓn thÞ mét kÝ tù trong b¶ng m· ASCII. Ta gäi mçi « kÝ tù lμ mét vÞ trÝ. C¸c lÖnh Write tr−íc hÕt tÝnh gÝa trÞ cña c¸c biÓu thøc, sau ®ã in ra mμn h×nh theo c¸ch thøc nh− sau. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 26
- LËp tr×nh b»ng Turbo Pascal D¹ng (1): b¾t ®Çu tõ vÞ trÝ con ch¹y, in ra mμn h×nh gi¸ trÞ cña biÓu thøc theo quy c¸ch mÆc ®Þnh ®èi víi kiÓu d÷ liÖu cña biÓu thøc ®ã. In xong con ch¹y dõng t¹i vÞ trÝ cuèi cïng. D¹ng (2): b¾t ®Çu tõ vÞ trÝ con ch¹y, in ra mμn h×nh lÇn l−ît c¸c gi¸ trÞ cña c¸c biÓu thøc 1 ®Õn biÓu thøc n, nèi tiÕp liÒn nhau. Gi¸ trÞ cña tõng biÓu thøc ®−îc in ra theo quy c¸ch mÆc ®Þnh ®èi víi tõng kiÓu d÷ liÖu. In xong con ch¹y dõng t¹i vÞ trÝ cuèi cïng. Nh− vËy, thùc chÊt c©u lÖnh d¹ng 2 lμ viÕt gän cña n c©u lÖnh d¹ng 1 liÒn nhau. D¹ng (3): t¸c dông nh− d¹ng (1) nh−ng in xong th× thªm mét dÊu xuèng dßng, con ch¹y dõng t¹i cét ®Çu tiªn cña dßng d−íi. D¹ng (4): chØ in ra mét dÊu xuèng dßng tøc lμ con ch¹y xuèng cét ®Çu dßng d−íi. 3.3 Quy c¸ch mÆc ®Þnh in ra c¸c kiÓu d÷ liÖu . 3.3.1 Minh häa LÖnh SÏ in ra Write(1234); 1234 Write(-123.456); -1.2345600000E+02 Write('A'); A write(chr(65)); A write(#7); Write(2>1); TRUE Write(' Ha Ha noi noi' ); 3.3.2 Quy c¸ch Tãm l¹i quy c¸ch mÆc ®Þnh in ra cña tõng kiÓu d÷ liÖu lμ: - Sè nguyªn: cã bao nhiªu ch÷ sè th× in ra ®óng bÊy nhiªu. - Sè thùc: in ra d−íi d¹ng dÊu phÈy ®éng, theo tr×nh tù nh− sau: dÊu +/-, mét ch÷ sè phÇn nguyªn (lu«n kh¸c 0), dÊu chÊm thËp ph©n, 10 ch÷ sè phÇn lÎ (thªm sè 0 vμo bªn ph¶i nÕu cÇn), ch÷ E, dÊu cña phÇn mò, hai ch÷ sè gi¸ trÞ cña phÇn mò. - KÝ tù: chiÕm ®óng mét vÞ trÝ. NÕu lμ kÝ tù ®iÒu khiÓn th× thùc hiÖn hμnh vi t−¬ng øng. - X©u kÝ tù: in ra ®óng nh− néi dung, nh−ng lo¹i bá c¸c dÊu c¸ch thõa bªn ph¶i. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 27
- LËp tr×nh b»ng Turbo Pascal 3.3.3 VÝ dô tæng hîp. Ch−¬ng tr×nh bªn tr¸i sÏ in ra mμn h×nh nh− tr×nh bμy ë cét bªn ph¶i Program In_ra_khong_dinh_dang; KÕt qu¶ in ra Uses crt; Var i: integer = 123; R: real = 123.456; Ch: char ='a'; B: boolean = 2>1; Xau: string = ' Vietnam '; 123 1.2345600000E+02 BEGIN 123 1.2345600000E+02 Write(i); write(r); a VietnamTRUE writeln; Writeln(i,r); Write(ch,Xau,B); END. Ta ®· cã thÓ viÕt thö nh÷ng ch−¬ng tr×nh Pascal ®¬n gi¶n ®Çu tiªn thùc hiÖn mét vμi tÝnh to¸n cã Ých. Program HinhChuNhat; Uses crt; Var Dai,Rong,ChuVi,DienTich: real; Begin Clrscr; Dai:= 5.0; Rong:= 3.5; ChuVi:= 2* (Dai + Rong); DienTich:= Dai * Rong ; Writeln(' Chu vi la = ' , ChuVi ); Writeln(' Dien tich la = ' , DienTich); End. 3.4 LÖnh in ra cã kÌm quy c¸ch §Ó bè trÝ mμn h×nh kÕt qu¶ ®Ñp ®Ï vμ dÔ ®äc h¬n, ta cÇn s¾p xÕp c¸c môc in ra sao cho ®óng vÞ trÝ, dãng th¼ng hμng, cét. Turbo Pascal cung cÊp c¸c lÖnh in ra cã quy c¸ch. Nguyªn t¾c chung lμ: - Ên ®Þnh sè vÞ trÝ dμnh ®Ó in ra gi¸ trÞ cña mét biÓu thøc b»ng c¸ch thªm vμo sau biÓu thøc dÊu hai chÊm vμ sè vÞ trÝ n ®· Ên ®Þnh. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 28
- LËp tr×nh b»ng Turbo Pascal Có ph¸p: Write( biÓu thøc: n); PhÇn “: n” thªm vμo sau biÓu thøc gäi lμ phÇn ®Þnh d¹ng in ra. - Riªng víi sè thùc, cã thÓ in ra d−íi d¹ng biÓu diÔn thËp ph©n th«ng th−êng b»ng c¸ch chØ râ sè vÞ trÝ dμnh cho toμn bé con sè lμ n vμ sè vÞ trÝ dμnh cho phÇn lÎ lμ m. Có ph¸p: Write( biÓu thøc sè thùc: n: m); VÝ dô, víi c¸c khai b¸o vμ g¸n trÞ nh− trong ch−¬ng tr×nh trªn ta sÏ cã LÖnh SÏ in ra Write (i:10); 123 Write (r:10); -1.234E+02 Write (r:12:5); -123.45600 Write (ch:12); a Write (b:12); TRUE Tãm l¹i, nÕu cã Ên ®Þnh quy c¸ch m¸y sÏ dμnh sè vÞ trÝ ®Ó in ra gi¸ trÞ cña biÓu thøc, c¨n lÒ tõ bªn ph¶i, bá trèng sè vÞ trÝ thõa bªn tr¸i, c¾t côt (lμm sai gi¸ trÞ !) nÕu thiÕu chç. 3.5 LÖnh in ra m¸y in §Ó in ra m¸y in tr−íc hÕt cÇn bæ xung thªm vμo ®Çu ch−¬ng tr×nh dßng khai b¸o sö dông m¸y in. Uses printer; Sau ®ã trong mçi c©u lÖnh Write, tr−íc d·y c¸c môc cÇn in ra, cÇn thªm tham sè LST lμ biÕn tÖp ®¹i diÖn cho m¸y in: Write( Lst, c¸c môc cÇn in ra ) ; NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 29
- LËp tr×nh b»ng Turbo Pascal 3.6 LÖnh nhËp d÷ liÖu tõ bµn phÝm. 3.6.1 Có ph¸p Cã 4 d¹ng c©u lÖnh ®äc d÷ liÖu tõ bμn phÝm Read( biÕn ); (1) Read( biÕn 1 , biÕn 2 , ... , biÕn n) ; (2) Readln( biÕn 1 , biÕn 2 , ... , biÕn n ); (3) Readln ; (4) 3.6.2 T hùc hiÖn . Khi nhËp d÷ liÖu tõ bμn phÝm th× mçi môc d÷ liÖu lμ mét gi¸ trÞ trùc tiÕp. C¸c c©u lÖnh trªn sÏ g¸n c¸c gi¸ trÞ trùc tiÕp ®äc ®−îc cho biÕn t−¬ng øng. D¹ng (1): khi gÆp lÖnh nμy m¸y sÏ ®äc tõ bμn phÝm mét môc d÷ liÖu, chuyÓn thμnh mét gi¸ trÞ trùc tiÕp cña kiÓu d÷ liÖu cña biÕn vμ g¸n cho biÕn. D¹ng (2): khi gÆp lÖnh nμy m¸y sÏ ®äc tõ bμn phÝm n môc d÷ liÖu lμ n gi¸ trÞ trùc tiÕp vμ g¸n lÇn l−ît cho n biÕn theo ®óng tr×nh tù. §©y lμ viÕt gän cña n c©u lÖnh d¹ng 1. D¹ng (3): nh− d¹ng (2), sau ®ã t×m ®äc thªm 1 dÊu xuèng dßng. Con ch¹y dõng sau dÊu xuèng dßng. D¹ng (4): T×m ®äc mét dÊu xuèng dßng. Sau c©u lÖnh nμy, con ch¹y ë ®Çu dßng tiÕp theo. C©u lÖnh nμy th−êng dïng ®Ó t¹m dõng ch−¬ng tr×nh, ®îi gâ phÝm Enter. Ng−êi sö dông ch−¬ng tr×nh cã th× giê xem c¸c th«ng b¸o, kÕt qu¶ trung gian, kÕt qu¶ cuèi cïng khi thùc thi ch−¬ng tr×nh. 3.6.3 Quy c¸ch ®äc d÷ liÖu vμo 1- ChØ cã thÓ nhËp tõ bμn phÝm c¸c kiÓu d÷ liÖu: sè nguyªn, sè thùc, kÝ tù vμ x©u kÝ tù. Kh«ng thÓ nhËp tõ bμn phÝm d÷ liÖu kiÓu logic. 2- Ph¶i ®¶m b¶o gâ vμo t−¬ng øng sè môc d÷ liÖu vμ ®óng kiÓu d÷ liÖu. D÷ liÖu ®−îc gâ vμo ph¶i lμ mét gi¸ trÞ trùc tiÕp hîp lÖ. Mét gi¸ trÞ sè thùc ph¶i viÕt d−íi d¹ng thËp ph©n víi dÊu chÊm thËp ph©n. Gi¸ trÞ kiÓu kÝ tù vμ x©u kÝ tù kh«ng cã cÆp dÊu nh¸y ®¬n bao quanh. §Ó hiÓu râ hμnh vi cña thñ tôc Read khi ®äc nhiÒu môc d÷ liÖu liªn tiÕp cÇn n¾m v÷ng dÊu hiÖu ph©n c¸ch gi÷a c¸c môc d÷ liÖu. 1- C¸c môc d÷ liÖu kiÓu sè (sè nguyªn, sè thùc) ®−îc ph©n c¸ch nhau b»ng mét (hoÆc vμi) dÊu c¸ch, hoÆc dÊu Tab, hoÆc dÊu xuèng dßng Enter. 2- Môc d÷ liÖu kiÓu kÝ tù kh«ng cã dÊu ph©n c¸ch phÝa tr−íc vμ phÝa sau. NghÜa lμ víi kiÓu kÝ tù m¸y ®äc ®óng mét kÝ tù tiÕp theo kÓ tõ vÞ trÝ hiÖn t¹i, kÓ c¶ ®ã lμ kÝ tù kho¶ng trèng. 3- Víi kiÓu x©u kÝ tù String[n] th× ph©n c¸ch b»ng ®é dμi cùc ®¹i n trong khai b¸o biÕn. M¸y sÏ ®äc vμo ®óng n kÝ tù, kÓ c¶ c¸c kÝ tù kho¶ng NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 30
- LËp tr×nh b»ng Turbo Pascal trèng. D·y kÝ tù xÕp liÒn nhau sÏ ®−îc ng¾t ®óng theo ®é dμi n cña tõng biÕn x©u kÝ tù t−¬ng øng. Do ®ã, khi ®äc vμo nhiÒu môc d÷ liÖu cÇn l−u ý sö dông dÊu ph©n c¸ch cho ®óng. M¸y chØ ®äc vμ ph¶i ®äc ®óng n môc d÷ liÖu, sau ®ã thùc hiÖn c©u lÖnh tiÕp theo. NÕu ch−a ®ñ n môc d÷ liÖu th× m¸y vÉn chê ®äc tiÕp. NÕu gâ nhiÒu h¬n th× c¸c môc sau lμ thõa. 3.6.4 C¸c vÝ dô minh ho¹ VÝ dô: Gi¶ sö m, n lμ biÕn nguyªn, x lμ biÕn thùc. C©u lÖnh ®äc vμo lμ Read(m,n,x); Cã thÓ gâ d÷ liÖu vμo nh− sau: 1 2 3.4 hoÆc 1 2 3.4 hoÆc 1 2 3.4 KÕt qu¶ sÏ cã m:=1, n:=2, x:= 3.4. VÝ dô 2: Gi¶ sö ®· khai b¸o c¸c biÕn x©u kÝ tù cã ®é dμi 5 kÝ tù Var s1,s2,s3: string[5]; C©u lÖnh nhËp d÷ liÖu vμo lμ Readln (s1,s2,s3); NÕu gâ tõ bμn phÝm AB12CD34 Hanoi th× sÏ cã s1:= AB12C s2:= D34 Ha, s3:= noi. VÝ dô 3: Minh ho¹ c¸ch sö dông c¸c thñ tôc Readln. Gi¶ sö m, n lμ biÕn nguyªn, x lμ biÕn thùc nh− trong vÝ dô 1. NÕu cã c¸c lÖnh ®äc vμo readln(m,n); readln(x); vμ ta gâ vμo 1 2 3.4 th× m¸y sÏ ®äc vμ g¸n ®−îc m:=1, n:=2 sau ®ã sÏ xuèng dßng. M¸y sÏ chê ®Ó nhËn tiÕp gi¸ trÞ cho x do c©u lÖnh sau ch−a nhËn ®−îc d÷ liÖu vμo. §Ó nhËp ®óng cÇn söa l¹i thμnh read(m,n); readln(x); NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 31
- LËp tr×nh b»ng Turbo Pascal 4. Mét sè hµm, thñ tôc tr×nh bµy mµn h×nh. Nh¾c l¹i r»ng mμn h×nh ë chÕ ®é v¨n b¶n ®−îc chia bëi c¸c cét vμ c¸c dßng thμnh c¸c « h×nh ch÷ nhËt (th«ng th−êng cã 80 cét vμ 25 dßng, tøc lμ 2000 « ch÷ nhËt). Mçi « cã thÓ hiÓn thÞ mét kÝ tù trong b¶ng m· ASCII. §Ó trá ®Õn mét « nμo ®ã, ta dïng cÆp 2 sè nguyªn x,y gäi lμ täa ®é mμn h×nh (x:= 1..80, y:=1..25). Turbo Pascal cung cÊp mét sè hμm, thñ tôc phôc vô viÖc tr×nh bμy mμn h×nh ë chÕ ®é v¨n b¶n. §©y lμ mét th− viÖn mÉu c¸c ch−¬ng tr×nh con gäi lμ unit CRT - Catot Ray Tube. §Ó sö dông c¸c hμm, thñ tôc ®ã ph¶i khai b¸o sÏ sö dông unit CRT t¹i ®Çu ch−¬ng tr×nh: Uses crt; PhÇn d−íi ®©y sÏ tr×nh bμy c«ng dông cña mét sè hμm, thñ tôc chÝnh hay dïng. Clrscr: Clear screen − xo¸ s¹ch mμn h×nh, con ch¹y vÒ vÞ trÝ (1,1) gãc trªn tr¸i. GotoXY(x,y) : Di chuyÓn con ch¹y ®Õn to¹ ®é (x,y) Clreol: clear to end of line - xo¸ c¸c kÝ tù tõ vÞ trÝ con ch¹y ®Õn cuèi dßng. Sau ®ã, con ch¹y dõng t¹i vÞ trÝ tr−íc khi thùc hiÖn thñ tôc nμy. Delline: Xo¸ toμn bé dßng cã con ch¹y. Sau ®ã, con ch¹y dõng t¹i vÞ trÝ tr−íc khi thùc hiÖn thñ tôc nμy. WhereX: hμm cho biÕt con ch¹y ®ang ë cét nμo. WhereY: hμm cho biÕt con ch¹y ®ang ë dßng nμo. Windows (x1,y1,x2,y2): thiÕt lËp mét khung v« h×nh cña cöa sæ hiÓn thÞ míi. Gãc trªn tr¸i lμ (x1,y1) gãc d−íi ph¶i lμ (x2,y2). Tõ lóc nμy trë ®i, mμn h×nh coi nh− thu nhá l¹i trong h×nh ch÷ nhËt nμy. To¹ ®é x=1, y=1 sÏ trïng víi gãc trªn-tr¸i cña mμn h×nh thu nhá. Tãm l¹i, c¸c to¹ ®é ®−îc tÝnh l¹i nh− sau Xmíi = Xcò - x1 + 1. Ymíi = Ycò - y1 + 1. C©u hái vμ bμi tËp 1. Nh÷ng ®¹i l−îng nμo nªn khai b¸o lμ h»ng trong mét ch−¬ng tr×nh Pascal. Khai b¸o h»ng cã lîi g× so víi viÕt trùc tiÕp gi¸ trÞ cña chóng. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 32
- LËp tr×nh b»ng Turbo Pascal 2. C¸c c©u lÖnh sau ®©y thùc hiÖn viÖc g×. Writeln(' Cho 2 so '); Readln(M,N); M:=M+5; N:=N*3; Writeln(' M = ', M); Writeln(' N = ', N); 3. Trong mét ch−¬ng tr×nh cã c¸c khai b¸o kiÓu d÷ liÖu vμ c¸c c©u lÖnh nh− d−íi ®©y. T×m ra c¸c c©u lÖnh ®óng, tÝnh gi¸ trÞ biÓu thøc, t×m c¸c c©u lÖnh sai vμ gi¶i thÝch t¹i sao. Const MaxI = 1000; Var x,y: real; M,N, I: integer; Y:= -1.0; M:=3; N:=4; I:= M mod (990 - maxI); I:= M mod N; I:= (maxI - 990) div M; X:= M/y; I:=(990 - maxI) div M; I:= PI * M; I:= M mod y; X:= PI div y; X:= PI * y; X:= M div N; I:= M/N; I:= (maxI - 990) mod M; X:= M/N; I:= M mod 0; X:= M mod (M/N); I:= M mod (maxI - 990); 4. Tr×nh bμy kÕt qu¶ thùc hiÖn c¸c lÖnh sau. Write (-88:4); Writeln(‘Ha noi’: 10); Writeln(‘-88’: 4, 88: 8: 2); 5. Gi¶ sö x lμ biÕn thùc, nhËn gi¸ trÞ -23.621. C¸c ®Þnh d¹ng in sau ®©y sÏ in ra x nh− thÕ nμo. x:8:4 x:8:3 x:8:2 x:8:0 x:8 6. Gi¶ sö dïng thñ tôc Readln (a,b) ®Ó ®äc vμo 2 sè tõ bμn phÝm. Ph¶i gâ phÝm nμo sau khi gâ xong sè thø nhÊt ? sau khi gâ xong sè thø hai ? NÕu ®äc vμo hai biÕn kiÓu kÝ tù a,b th× cã g× thay ®æi kh«ng. 7. Gi¶ sö dïng thñ tôc Read ®Ó ®äc vμo nhiÒu môc d÷ liÖu tõ bμn phÝm. §iÒu g× sÏ x¶y ra nÕu ta gâ thõa, gâ thiÕu so víi sè môc cÇn thiÕt. thùc hμnh. H·y viÕt ch−¬ng tr×nh thùc hiÖn c¸c c«ng viÖc sau: 1. Gi¶i ph−¬ng tr×nh bËc nhÊt ax + b = 0. 2. Gi¶i hÖ ph−¬ng tr×nh tuyÕn tÝnh cÊp 2: ax+ by = e , cx + dy = f, gi¶ thiet r»ng hÖ duy nhÊt nghiÖm. 3. L·i xuÊt tiÕt kiÖm hμng th¸ng lμ k= 1%. TÝnh sè tiÒn cã ®−îc sau 12 th¸ng nÕu sè göi ban ®Çu lμ x. 4. TÝnh sè gi©y cña qu·ng thêi gian liªn tôc ®óng 12 n¨m. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 33
- LËp tr×nh b»ng Turbo Pascal 5. Cho sè ®o ®é dμi 3 c¹nh cña mét tam gi¸c lμ a,b,c. TÝnh diÖn tÝch tam gi¸c. 6. Cho 3 ®IÓm A(x1, y1 ), B( x2, y2) vμ C(x3 ,y3) t¹o thμnh mét tam gi¸c. TÝnh chu vi, diÖn tÝch cña tam gi¸c. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 34
- LËp tr×nh b»ng Turbo Pascal Ch−¬ng 4 C¸c cÊu tróc ®iÒu khiÓn Pascal lμ mét ng«n ng÷ lËp tr×nh cã cÊu tróc. Mét ng«n ng÷ lËp tr×nh cÊu tróc cã c¸c c©u lÖnh t¹o cÊu tróc ®iÒu khiÓn. Nh÷ng c©u lÖnh cÊu tróc nμy cho phÐp kÕt hîp - hay "cÊu tróc" - nhiÒu c©u lÖnh thμnh mét ®¬n vÞ thèng nhÊt, liªn quan chÆt chÏ víi nhau. Nh÷ng c©u lÖnh cã cÊu tróc lμm cho ch−¬ng tr×nh trong s¸ng dÔ hiÓu, ®Ô theo dâi h¬n. Cã 3 lo¹i cÊu tróc ®iÒu khiÓn: tuÇn tù, rÏ nh¸nh, vßng lÆp. 1. C©u lÖnh ghÐp Cã thÓ nhãm nhiÒu c©u lÖnh kh¸c nhau thμnh mét khèi, dïng 2 tõ kho¸ Begin, End. Có ph¸p: Begin c©u lÖnh 1 ; ..... c©u lÖnh n ; End; T¸c dông: C¸c lÖnh bªn trong vÉn ®−îc thùc hiÖn tuÇn tù tõ c©u lÖnh 1 ®Õn c©u lÖnh n nh− th«ng th−êng, kh«ng cã g× thay ®æi. Tuy nhiªn c©u lÖnh ghÐp cã t¸c dông ®Ó nhãm nhiÒu lÖnh l¹i thμnh mét c©u lÖnh duy nhÊt ®Ó phï hîp víi có ph¸p cña c¸c cÊu tróc ®iÒu khiÓn sau nμy. 2. C©u lÖnh IF. C©u lÖnh If ®Ó thùc hiÖn mét cÊu tróc rÏ nh¸nh, lùa chän mét trong hai tr−êng hîp: nÕu tho¶ m·n mét ®iÒu kiÖn nμo ®ã th× tiÕn hμnh lμm viÖc 1, nÕu tr¸i l¹i th× lμm viÖc 2. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 35
- LËp tr×nh b»ng Turbo Pascal 2.1 Có ph¸p vµ c«ng dông. Có ph¸p: - Tr−êng hîp ®Çy ®ñ If biÓu thøc l« gic then c©u lÖnh 1 else c©u lÖnh 2 ; Thùc hiÖn: nÕu biÓu thøc l« gic ®óng th× thi hμnh c©u lÖnh 1, nÕu tr¸i l¹i, biÓu thøc l« gic lμ sai th× thi hμnh c©u lÖnh 2. - Tr−êng hîp mét lùa chän: Trong cÊu tróc trªn cã thÓ thiÕu thμnh phÇn Else. Lóc nμy c©u lÖnh sÏ trë thμnh If biÓu thøc logic then c©u lÖnh ; Thùc hiÖn: nÕu biÓu thøc l« gic ®óng th× thi hμnh c©u lÖnh 1, nÕu tr¸i l¹i, biÓu thøc l« gic lμ sai th× kh«ng lμm g× c¶. D−íi ®©y lμ l−u ®å (flow chart) minh ho¹. true false true false C©u lÖnh C©u lÖnh 1 C©u lÖnh 2 H×nh 4.1: L−u ®å minh ho¹ ý nghÜa cña c©u lÖnh If. VÝ dô: IF a>b THEN max:= a ELSE max:=b; IF a 0 THEN x:= -b/a; Chó ý: 1- Tr−íc tõ kho¸ Else kh«ng cã dÊu chÊm phÈy “ ; ”. 2 - PhÇn c©u lÖnh trong c©u lÖnh If cã thÓ lμ c©u lÖnh ®¬n gi¶n hay c©u lÖnh ghÐp, c©u lÖnh cã cÊu tróc kh¸c. NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 36
- LËp tr×nh b»ng Turbo Pascal 2.2 C¸c vÝ dô minh ho¹. VÝ dô 1. ViÕt ch−¬ng tr×nh nhËn vμo tõ bμn phÝm mét sè kh¸c kh«ng, nÕu lμ sè d−¬ng th× in ra th«ng b¸o "sè d−¬ng", nÕu lμ sè ©m th× in ra th«ng b¸o "sè ©m". True false x>0 Sè d−¬ng Sè ©m H×nh 4.2: L−u ®å cña ch−¬ng tr×nh xÐt dÊu. Program XetDau ; Var x: real; Begin Write(' cho mot so thuc khac khong' ); Readln(x) ; IF x > 0 then write(' so duong' ) ELSE write (' so am' ) ; End. VÝ dô 2. Gi¶i ph−¬ng tr×nh bËc hai a x2 + b x + c. §Ó ®¬n gi¶n, ta chØ xÐt tr−êng hîp hÖ sè a kh¸c kh«ng. True false Delta < 0 V« nghiÖm Cã nghiÖm True False Delta = 0 NghiÖm kÐp hai nghiÖm NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 37
- LËp tr×nh b»ng Turbo Pascal H×nh 4.3: L−u ®å cña ch−¬ng tr×nh gi¶i tam thøc bËc hai. Program PhuongTrinhBacHai; Uses crt; Var a,b,c,delta,x1,x2: real; Begin Clrscr; Write(' Cho ba he so a b c:') ; Readln (a,b,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 nghiem kep x1=x2= -b/(2*a) Else {truong hop delta > 0} Begin x1:= (-b + sqrt(delta)) /(2*a) ; x2:= (-b - sqrt(delta)) /(2*a) ; Writeln(' Phuong trinh co 2 nghiem x1= ',x1: 10:4,' x2 = ', x2:10:4 ); End; End. 2.3 If lång nhau hay d∙y if Khi nhiÒu lùa chän cã thÓ dïng c©u lÖnh If lång nhau. VÝ dô, khi gi¶i ph−¬ng tr×nh bËc hai, ta cã 3 tr−êng hîp delta 0 vμ sö dông c©u lÖnh If lång nhau nh− trong vÝ dô trªn. Nh−ng còng hay gÆp c¸ch dïng d·y c©u lÖnh If: IF delta < 0 THEN write('ph−¬ng tr×nh v« nghiªm'); IF delta = 0 THEN write('ph−¬ng tr×nh cã nghiÖm kÐp'); IF delta > 0 THEN write('ph−¬ng tr×nh cã hai nghiÖ'); VÒ mÆt l« gic hai c¸ch viÕt lμ t−¬ng ®−¬ng, nh−ng víi c©u lÖnh If lång nhau th× cã thÓ chØ kiÓm tra mét ®iÒu kiÖn vμ c©u lÖnh kÕt thóc, trong khi nÕu dïng d·y c©u lÖnh If th× lu«n ph¶i kiÓm tra mäi ®iÒu kiÖn. NÕu c¸c ®iÒu kiÖn lμ phøc t¹p th× mÊt th× giê v« Ých. Theo quy ®Þnh có ph¸p, khi viÕt nhiÒu c©u lÖnh If lång nhau, thμnh phÇn Else lu«n g¾n víi If gÇn nhÊt. Phong c¸ch viÕt ®Ó tr¸nh nhÇm lÉn: if ®iÒu kiÖn_1 then c©u lÖnh_1 else if ®iÒu kiÖn_2 then NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 38
- LËp tr×nh b»ng Turbo Pascal c©u lÖnh_2 ... else if ®iÒu kiÖn_n then c©u lÖnh_n else c©u lÖnh_E NÕu nh− c¸c ®iÒu kiÖn kh«ng lo¹i trõ nhau, mét gi¸ trÞ ®Çu vμo cã thÓ tho¶ m·n nhiÒu h¬n mét ®iÒu kiÖn th× thø tù cña c¸c ®iÒu kiÖn lμ quan träng. VÝ dô: XÕp h¹ng häc sinh c¨n cø theo ®iÓm tæng kÕt nh− sau §iÓm XÕp h¹ng ≥9 Giái ≥7 Kh¸ Trung b×nh ≥5 KÐm cßn l¹i C¸c c©u lÖnh cña ch−¬ng tr×nh thùc hiÖn viÖc xÕp h¹ng häc sinh ph¶i ®−îc viÕt ®óng thø tù nh− sau If Diem >= 9 then Writeln(' Giái') Else if Diem >= 7 then Writeln(' Kh¸') Else if Diem >= 5 then Writeln(' Trung b×nh') Else Writeln(' Kh«ng ®¹t '); NÕu ®¶o ng−îc l¹i thø tù th× kÕt qu¶ sai v× chØ ®iÒu kiÖn ®óng ®Çu tiªn ®−îc thùc hiÖn. BÊt k× häc sinh nμo cã ®iÓm ≥ 5 ®Òu bÞ xÕp h¹ng trung b×nh. CÇn l−u ý tiÕt kiÖm thêi gian, ®iÒu kiÖn hay x¶y ra nhÊt, cã x¸c suÊt tho¶ m·n cao nhÊt, nªn kiÓm tra tr−íc. 2.4 AND hay IF lång nhau Cã nh÷ng tr−êng hîp cÇn lùa chän nhiÒu ®iÒu kiÖn phô thuéc nhiÒu biÕn kh¸c nhau. VÝ dô, tiªu chuÈn tuyÓn nh©n viªn: nam, tuæi 18-25, cao >=170, ... Th«ng th−êng c¸c ®iÒu kiÖn ®−îc kÕt hîp b»ng c¸c to¸n tö l« gic And, Or .... Còng cã thÓ dïng c©u lÖnh If lång nhau nh− sau. IF gioi = nam THEN IF tuoi >= 18 THEN IF tuoi =170 THEN Write(' tróng tuyÓn '); NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 39
- LËp tr×nh b»ng Turbo Pascal Cã tr−êng hîp chØ nªn dïng If lång nhau. VÝ dô ®iÒu kiÖn (x 0) AND (y/x > 2.5) cã thÓ g©y ra lçi chia cho kh«ng nÕu tr×nh biªn dÞch thùc hiÖn ®¸nh gi¸ biÓu thøc l«gic tõ ph¶i sang. Nªn chuyÓn thμnh IF x 0 THEN IF y/x > 2.5 THEN ... 3. C©u lÖnh CASE. Kh¸c víi lÖnh If, chØ rÏ hai nh¸nh tuú theo biÓu thøc logic ®óng hay sai, c©u lÖnh Case ®Ó rÏ nhiÒu nh¸nh, tuú theo c¸c gi¸ trÞ kh¸c nhau cña mét biÓu thøc. BiÓu thøc nμy gäi lμ c¸i chän - selector. 3.1 Có ph¸p vµ t¸c dông. 3.1.1 Có ph¸p. - Tr−êng hîp ®Çy ®ñ Case biÓu thøc of TËp h»ng 1 : c©u lÖnh 1 ; ...... TËp h»ng n : c©u lÖnh n else c©u lÖnh n+1 ; end ; - Cã thÓ kh«ng cã thμnh phÇn Else, lóc nμy c©u lªnh Case trë thμnh Case biÓu thøc of TËp h»ng 1 : c©u lÖnh 1 ; ...... TËp h»ng n : c©u lÖnh n end ; 3.1.2 Thùc hiÖn - TÝnh gi¸ trÞ cña biÓu thøc lùa chän. - So khíp lÇn l−ît víi c¸c gi¸ trÞ h»ng trong c¸c tËp h»ng i, tõ trªn xuèng d−íi. NÕu tËp h»ng i lμ tËp ®Çu tiªn chøa mét gi¸ trÞ h»ng trïng víi gi¸ trÞ cña biÓu thøc lùa chän th× m¸y sÏ thùc hiÖn c©u lÖnh i t−¬ng øng, sau ®ã tho¸t khái lÖnh Case. - Tr−êng hîp gi¸ trÞ cña biÓu thøc kh«ng thuéc bÊt cø tËp h»ng i nμo th× m¸y sÏ thùc hiÖn c©u lÖnh n+1 cña thμnh ph©n Else (nÕu cã) råi míi NguyÔn §×nh Ho¸, ViÖn CNTT - §HQG Hμ néi 40
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn