Phép toán DIV, MOD không dùng cho các s th!c... Các phép toán lôgic g m có: NOT, AND, OR và XOR..[r]
(1)Tr ng Cao ng KTKT Bình D CH ng Ch Biên so n : V Bi n ng I NG TRÌNH VÀ THU T GI I I Ch ng trình (Program) 1.Khái ni m Ch ng trình là m t dãy liên ti p các l nh Th c hi n các l nh ó g i là thi hành ch ng trình Các ch ng trình u có các tính ch t chung sau ây: - Các l nh c thi hành m t cách tu n t , thi hành xong m t l nh m i thi hành l nh k ti p - Khi thi hành ch ng trình c n thêm d li u t bên ngòai, i u này làm cho ch ng trình tr nên phong phú và t ng quát Ch ng trình có th c vi t b ng các ngôn ng l p trình khác 2.Ngôn ng l p trình Có hàng tr m lo i ngôn ng l p trình khác nhau, m i lo i ngôn ng u có cú pháp riêng c a nó Ngôn ng l p trình có th c phân chia thành lo i chính : ngôn ng máy, h p ng và ngôn ng c p cao 2.1 Ngôn ng máy Ngôn ng máy (mã máy) là ngôn ng n n t ng c a b vi x lý Bao g m các câu l nh là nh ng dãy s nh phân và r t khó c, khó vi t Ch có các chuyên gia v máy tính m i vi t c u i m c a vi c vi t ch ng trình b ng ngôn ng máy là l p trình viên có th i u n máy tính tr c ti p và t c chính xác i u mình mu n làm, t c thi hành ch ng trình nhanh và kích th c ch ng trinh nh Nh c i m c a ch ng trình ngôn ng máy là thông th !ng s" m t r t nhi u th!i gian vi t, r t khó c, khó tìm l i và ch ng trình ph# thu c vào b vi x lý nên ch ng trình ch ch y c trên nh ng máy tính có cùng b vi x lý mà thôi Ngôn ng máy còn c g i là ngôn ng c p th p (low-level language) 2.2 H p ng H p ng c phát tri n nh m giúp các l p trình viên d$ nh các ch th c a ch ng trình h n Các ch ng trình h p ng còn bao g m các ch th v% mô (macro instruction) có th t o nhi u l nh mã máy Các ch ng trình h p ng c chuy n sang mã máy thông qua m t ch ng trình &c bi t g i là trình h p d ch (assembler) M&c dù h p ng t ng i d$ dùng h n mã máy nh ng h p ng v'n c xem là ngôn ng c p th p b i vì nó v'n còn r t g n v i t ng thi t k c a máy tính 2.3 Ngôn ng c p cao Ngôn ng c p cao g n g(i h n v i ý ni m ngôn ng mà h u h t m i ng !i u bi t, nó bao g m các danh t , ng t , ký hi u h c, liên h và các thao tác lu n lý Các y u t này có th c ph i h p, liên k t v i t o thành m t hình th)c c a câu Các "câu" này c g i là các m nh c a ch ng trình (program statement) Chính vì nh ng &c i m này, các l p trình viên d$ dàng c và d$ h c ngôn ng c p cao h n so v i ngôn ng máy ho&c h p ng M t l i i m quan tr ng là ngôn ng c p cao thông th !ng không ph# thu c vào máy tính, ngh%a là các ch ng trình vi t b ng ngôn ng c p cao có th ch y trên các lo i máy tính khác (s d#ng các b vi x lý khác nhau) 2.4 Các ngôn ng l p trình thông d ng Hi n có r t nhi u ngôn ng l p trình c p cao là :BASIC, COBOL, C, FORTRAN, PASCAL.v.v Ngày này còn có thêm r t nhi u các ngôn ng l p trình h ng i t ng r t ti n l i cho các l p trình viên nh : C++, Visual Basic , Visual C, Denphi, Javal v.v Ch ng 1: Ch ng trình và thu t gi i Lop11.com Trang (2) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n 3.Trình thông d ch và biên d ch M i ch ng trình c vi t b ng các ngôn ng không ph i là ngôn ng máy cu i cùng u ph i c chuy n i sang ngôn ng máy tr c c thi hành Ch ng trình ngôn ng c p cao c d ch sang ngôn ng máy b ng m t hai cách: b ng trình biên d ch (compiler) ho&c trình thông d ch (interpreter) 3.1 Trình biên d ch : S" chuy n i toàn b ch ng trình sang mã máy, r i ch)a k t qu vào %a có th thi hành v sau Trình biên d ch t o m t danh sách l i c a t t c m nh ch ng trình vi ph m cú pháp c a ngôn ng Danh sách này giúp l p trình viên d$ dàng s a i ch ng trình 3.2 Trình thông d ch : Thay vì chuy n i toàn b ch ng trình ngu n nh trình biên d ch, trình thông d ch ch d ch t ng l nh và thi hành t ng l nh L i i m c a trình thông d ch là l p trình viên v'n có th ch y m t ch ng trình v'n còn l i cú pháp Ch thông d ch n câu l nh có l i cú pháp, quá trình thi hành ch ng trình m i b ng ng l i và trình thông d ch s" thông báo l i ng !i l p trình c n c) vào l i s a ch a II.Thu t gi i Ý ngh a Thu t gi i là m t ph ng pháp, t ng b c h ng d'n, th hi n l!i gi i c am tv n - m t bài toán Trong khoa h c máy tính, thu t gi i c nh ngh a là m t dãy h u h n các b c rõ ràng và có th thi hành c, quá trình hành ng theo các b c này ph i d ng và cho c k t qu nh mong mu n 2.Các c tr ng c a thu t gi i Thu t gi i có các &c tr ng c b n là : 2.1.Xác nh : M i thu t gi i u ph i xác nh rõ ràng, không m p m! 2.2 H u h n: M i thu t gi i sau m t s h u h n b c ph i k t thúc và cho k t q a 2.3: úng : Thu t th c hi n xong các b c , ph i cho k t qu úng *n Ngoài thu t gi i có các &c tr ng khác nh : + u vào, u ra, tính hi u q a và tính t ng quát Các ph ng pháp bi u di n thu t gi i Trong th c t ng !i ta th !ng có ph ng pháp bi u di$n thu t : - Dùng ngôn ng t nhiên - Dùng L u -S 3.1 Ngôn ng t nhiên Ng !i l p trình dùng ngôn ng c a mình mô t thu t Ng !i l p trình li t kê có th) t các b c c a thu t gi i Tuy v y thu t gi i th !ng dài dòng khó hi u và th !ng không theo m t qui t*c nh t nh Ví d : Thu t gi i ph ng trình b c hai ax2+bx+c=0 (a<>0) B*t u Yêu c u cho bi t giá tr c a h s a, b, c N u a=0 thì 2.1 Yêu c u u vào không m b o 2.2 K t thúc gi i thu t Tr !ng h p a khác thì 3.1 Tính giá tr ∆ = b2-4ac Ch ng 1: Ch ng trình và thu t gi i Lop11.com Trang (3) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n 3.2 N u ∆ > thì 3.2.1 Ph ng trình có hai nghi m phân bi t x1 và x2 3.2.2 Giá tr c a hai nghi m c tính theo công th)c sau x1 = −b+ ∆ 2a x2 = −b− ∆ 2a 3.2.3 K t thúc 3.3 N u ∆ = thì 3.3.1 Ph ng trình có nghi m kép x0 3.3.2 Giá tr c a nghi m kép là : x=-b/2a 3.3.3 K t thú c 3.4 N u ∆ < thì 3.4.1 Ph ng trình vô nghi m K t thúc Ví d :Thu t gi i tìm h p có tr ng l ng n&ng nh t tv n : Có n h p có kh i l ng khác và m t cái cân %a Hãy ch cách cân tìm c h p có tr ng l ng n&ng nh t : Thu t gi i c# th nh sau: B*t u N u ch có h p (n=1) thì 1.1 H p ó chính là h p n&ng nh t 1.2 K t thúc gi i thu t Ng c l i n u có t hai h p tr lên (n>1) 2.1 Ch n hai h p b t k, và &t lên bàn cân 2.2 Gi l i h p n ng h n, c t h p nh- h n sang ch khác N u còn h p ch a c cân th c hi n các b c sau, n u không còn h p nào n a, sang b c 3.1 Ch n m t h p b t k, và lên %a cân còn tr ng 3.2 Gi l i h p n ng h n, c t h p nh- h n sang ch khác Tr l i b c H p còn l i trên cân chính là h p n&ng nh t K t thúc 3.2 L u -s kh i L u hay s kh i là m t công c# tr c quan di$n t các thu t gi i Bi u di$n thu t gi i b ng l u s" giúp ng !i c theo dõi c s phân c p các tr !ng h p và quá trình x lý c a thu t Ph ng pháp l u th !ng c dùng nh ng thu t có tính r*c r i, khó theo dõi c quá trình x lý Trong thu t gi i dùng l u th !ng dùng các hình v" qui c sau mô t các b c Ch !ng i c a d li u Ch i m b*t u và k t thúc Ch)a các thao tác x lý Ch thao tác ki m tra Ch ng 1: Ch ng trình và thu t gi i Lop11.com i u ki n Trang (4) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n trên ch là các ký hi u c b n và th !ng c dùng nh t Trong th c t ,l u còn có nhi u ký hi u khác nh ng th !ng ch c dùng nh ng l u l n và ph)c t p Ví d : L u thu t gi i, gi i Ph ng trình b c hai B*t u Nh p a Thông báo sai Nh p l i a=0 s Nh p b,c D:=b2-4ac D=0 s D>0 s Pt vô nghi m Pt có nghi m kép x1,2=-b/2a Pt có nghi m x1=-b+ D /2a x2=-b- D /2a K t thúc Ví d 2: L u Ch ng 1: Ch tìm ph n t l n nh t dãy s ng trình và thu t gi i Lop11.com Trang (5) Tr ng Cao ng KTKT Bình D Bài t p : 1.Hãy vi t thu t gi i h ph a1x+b1y =c1 a2x+b2y =c2 Bi t r ng : c1 ng Biên so n : V Bi n ng trình b c nh t /n s b1 c1 c b c1b − b1c Dx x= = = a1 b1 a1b − b1a D a b2 a1 c a a1a − a1c Dy y= = = a1 b1 a1b − b1a D a b2 2.Vi t thu t gi i tim s l n nh t s a, b, c 3.Vi t thu t gi i tìm s Pibonanci th) n v i F0 =0, F1=1, Fn=Fn-2+Fn-1 4.Vi t thu t gi i tim các s nguyên t dãy s n s t a1 an 5.Vi t gi i thu t tìm USCLN, BSCNN c a s a, b 6.Vi t gi i thu t tính t ng l0 , t ng ch1n c a dãy n s t nhiên a1 an 7.Vi t thu t gi i tìm n! =1*2*3* .*n 8.Xác nh d li u và d li u cho các thu t gi i sau a.Ki m tra xem ba s cho tr c a, b, c có th là dài ba c nh c a m t tam giác hay không ? b.Tính trung bình c ng c a s a, b c.Dùng m t c c ph# tráo n c hai c c cho tr c d.Tìm chu vi và di n tích c a hình tròn có bán kính cho tr c 9.Có hai bình A và B Bình A có dung tích lít, bình B có dung tích lít Trình bày các b c th c hi n l y c lít n c 10.Vi t thu t gi i vi t gi i thu t xác nh ma tr n n v 11.Vi t thu t gi i in ma tr n chuy n v c a ma tr n ã nh p tr c 12.Vi t thu t gi i In ma tr n tích cu hai ma tr n ã nh p tr c 13 Có bình A, B, C Bình A có dung tích lít và ng y lít r u, bình B có dung tích lít, bình C có dung tích lít Trình bày các b c th c hi n có c lít r u bình A và lít r u bình B 14 M t ng !i có g u, dê và cái b*p c i N u không có ng !i bên chúng thì g u s" n th t dê ho&c dê s" n b*p c i Thuy n ch có th ch c ng !i ó v i g u ho&c dê ho&c b*p c i Ng !i ó làm th nào mang chúng sang sông Ch ng 1: Ch ng trình và thu t gi i Lop11.com Trang (6) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Ch ng GI I THI U NGÔN NG L P TRÌNH PASCAL I.Gi i thi u chung 1.Xu t x : PASCAL là ngôn ng l p trình c p cao c giáo s Niklaus Wirth tr !ng i h c K2 thu t Zurich (Th#y s%) thi t k và công b vào n m 1971 Ông &t tên cho ngôn ng c a mình là Pascal t ng nh nhà h c n i ti ng ng !i Pháp th k3 17: Blaise Pascal, ng !i ã sáng ch chi c máy tính c khí u tiên c a nhân lo i Thành công c a ngôn ng Pascal là ch : nó là ngôn ng u tiên a và th hi n c khái ni m l p trình có c u trúc Ý t ng v m t ch ng trình có c u trúc xu t phát t suy ngh% cho r ng có th chia m t bài l n, ph)c t p thành nhi u bài nh , n gi n h n N u m i bài nh c gi i quy t b ng m t ch ng trình con, thì liên k t các ch ng trình này l i s" t o nên m t ch ng trình l n gi i quy t c bài ban u B ng cách chia m t ch ng trình thành các ch ng trình nh v y, ng !i th o ch ng có th l p trình gi i quy t riêng l0 t ng ph n m t, t ng kh i m t, ho&c có th t ch)c nhi u ng !i cùng tham gia, m i ng !i ph# trách m t vài kh i Ð&c bi t ph i thay i hay s a ch a m t kh i thì i u ó s" ít nh h ng n các kh i khác Ngày nay, Ngôn ng Pascal c dùng vi t các ch ng trình )ng d#ng nhi u l%nh v c V i v n ph m sáng s a, d$ hi u, v i kh n ng m nh, Pascal c xem là ngôn ng thích h p nh t gi ng d y các tr !ng ph thông và i h c Turbo Pascal T ph n m m Pascal c a Niclau Wirth !i các hãng ph n m m ã liên t#c phát tri n thành các Pascal riêng nh : IOS Pascal chu/n , IBM Pascal c a MicroSoft, Turbo Pascal c a hãng Borland , nh ng Turbo Pascal (TP) có nhi u u i m nên c s d#ng r ng rãi gi ng d y II.S d ng ph!n m"m Turbo Pascal Kh#i $ng Turbo Pascal: Trong ph n này s" trình bày cách s d#ng Turbo Pascal 7.0.phiên b n th !ng c dùng ph bi n hi n 1.1 Các t p tin chính c a Turbo Pascal: TP có hàng tr m t p tin nh ng ch y c Turbo Pascal 7.0, ch c n hai t p tin sau là : - TURBO.EXE : t p tin chính c a TP - TURBO.TPL : t p tin ch)a các th vi n c a TP N u mu n v" h a thì ph i có thêm các t p tin:GRAPH.TPU, t p tin ch)a th vi n h a *.BGI : các t p tin màn hình h a *.CHR : các t p tin t o ki u ch N u mu n xem h ng d'n s d#ng Turbo Pascal thì c n có thêm t p tin TURBO.HLP 1.2 Kh#i $ng Turbo Pascal: Thông th !ng hi n các máy s d#ng h i u hành Windows nên có các kh i ng nh sau : - Tr !ng h p có s1n m t Shortcut ch)a Turbo Pascal trên Desktop : hãy Double click vào bi u t ng Shortcut c a Turbo Pascal - Tr !ng h p không có s1n m t Shortcut ch)a Turbo Pascal: hãy ch n l nh Start, ch n ti p l nh Run, r i gõ vào !ng d'n y c a t p tin TURBO.EXE, ch4ng h n: C:\TP\TURBO.EXE ↵ , n u kh i ng TP t %a C Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang (7) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n A:\TP\TURBO.EXE ↵ , n u kh i ng TP t %a A 1.3 C a s màn hình Turbo Pascal và cách ch n l nh : Con tr dùng so n th o ch ng trình Trong c a s này, dòng trên cùng là m t th c n ngang, li t kê nhóm l nh chính c a TP Mu n ch n m t l nh th c n này, có th ti n hành theo m t hai cách: + Cách 1: Gõ phím F10 Lúc này, trên th c n xu t hi n m t khung sáng (th !ng là màu xanh) Mu n ch n l nh nào thì gõ các phím m(i tên ← , → d!i khung sáng n l nh ó r i Enter M t th c n c a l nh v a ch n hi n ra, g i là th c n hàng d c Ví d#, ch n l nh File, ta c th c n nh sau: + ch n m t l nh th c n hàng d c, hãy gõ các phím m(i tên ↑ , ↓ d!i khung sáng n l nh ó r i Enter Khi không mu n ch n l nh nào thì gõ phím ESC tr v vùng so n th o + Cách : Ch n m t l nh th c n ngang b ng cách gõ ng th!i phím Alt v i phím ch cái u tiên c a tên l nh mu n ch n Ví d#, mu n ch n menu File thì gõ ng th!i hai phím Alt và F (vi t t*t là Alt-F), t ng t , mu n ch n menu Compile thì gõ Alt-C + Cách : Dùng phím gõ t*t Có m t s l nh c gán cho nh ng phím &c bi t g i là phím "gõ t*t”, ví d# l nh Open: F3, l nh Save : F2, l nh Exit : Alt-X + th c hi n nh ng l nh này, thay vì ph i ch n nó t th c n, ta ch c n gõ phím nóng t ng )ng v i Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang (8) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n nó Ví d#, thay vì ch n l nh Open thì gõ phím F3, thay vì ch n l nh Save thì gõ phím F2, D i th c n ngang là vùng so n th o dùng gõ ch ng trình vào + u c a vùng này hi n tên c a t p tin ang so n, và n u ng !i th o ch ng ch a &t tên thì TP s" &t m t tên m&c nhiên là NONAME00.PAS Dòng cu i cùng tóm t*t m t s phím " gõ t*t" hay dùng, nh phím F1 xem h ng d'n, phím F2 l u t p tin lên %a, phím F3 dùng m xem m t t p tin, phím F10 kh i ng th c n,.v.v 1.4 Thoát kh i Turbo Pascal Ch n l nh File th c n ngang, ch n ti p l nh Exit th c n d c (vi t g n là ch n l nh File/ Exit) ho&c gõ c&p phím gõ t*t Alt-X 1.5 Các b c th c hi n m t ch ng trình Pascal + so n và ch y m t ch ng trình Pascal Turbo Pascal, nên ti n hành các b c nh sau: - B c 1: Kh i ng Turbo Pascal - B c 2: Nh n F2 &t tên cho ch ng trình - B c 3: So n th o ( gõ ) ch ng trình B n hãy gõ ch ng trình m'u sau vào vùng so n th o c a Turbo Pascal : -B c 4: D ch và s a l i: Ch n l nh Compile/ Compile (ho&c gõ c&p phím Alt-F9 hay F9) Máy s" d ch ch ng trình sang mã máy, n u g&p l i thì d ng và hi n thông báo l i màu u màn hình, ng th!i tr &t v trí có l i Ng !i th o ch ng ph i t mình s a l i, r i gõ Alt-F9 d ch và s a l i ti p cho n h t l i D u hi u cho bi t vi c d ch ã xong là màn hình xu t hi n c a s thông báo có dòng ch &c tr ng là: - B c 5: L u tr l i ch ng trình lên %a: ch n l nh File/ Save ho&c gõ phím F2 - B c 6: Ch y th ch ng trình: Ch n l nh Run/ Run ho&c gõ phím nóng Ctrl-F9 (vi t t*t là ^F9) M i l n ch y th , ta c n nh p m t b d li u c# th và Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang (9) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n ki m tra xem k t q a in lên màn hình có úng không và có phù h p v i th c ti$n không? n u sai c n ki m tra l i M$t vài k% thu t so&n th o 2.1 Thao tác trên kh i: Ta g i kh i là m t o n v n b n g m m t hay nhi u dòng liên ti p Ký t u tiên c a kh i g i là u kh i, ký t cu i cùng c a kh i g i là cu i kh i D i ây là m t kh i g m hai dòng l nh: Write(‘ Nhap chieu dai va chieu rong hinh chu nhat: ‘); Readln(a,b); a) +ánh d u kh i: - + a tr v u kh i - Gi phím Shift, ng th!i nh n liên ti p các phím m(i tên ← , ,↓ ,→ kéo vùng sáng ph n cu i kh i b) Sao chép kh i: - +ánh d u kh i c n chép - + a tr n n i c n chép t i - Gõ l nh ^K_C c) Di chuy n kh i: - +ánh d u kh i c n di chuy n - + a tr n n i c n chuy n kh i t i -Gõ l nh ^K_V d) Xóa kh i: - +ánh d u kh i c n xóa - Gõ l nh ^K_Y e) Che ho&c hi n l i kh i ã ánh d u : l nh ^K_H 2.2 Các phím l nh so n th o thông d ng - Phím Home : a tr v u dòng hi n th!i - Phím End : a tr v cu i dòng hi n th!i - Phím Delete : xóa ký t t i v trí tr N u tr ang )ng cu i c a dòng trên mà gõ phím Delete thì s" n i dòng d i vào cu i dòng trên -Phím Back Space : Xóa ký t tr c tr - C&p phím Ctrl_Y:xóa toàn b dòng hi n th!i và ôn các dòng d i lên - Nhóm phím Ctrl_Q_Y : xóa t v trí tr n cu i dòng - Các phím ← , ,↓ ,→ : d!i tr theo h ng m(i tên - Phím Insert :Dùng chuy n i ch chèn è - Phím Enter : Xu ng dòng Trong ch vi t chèn: gõ Enter có tác d#ng a tr xu ng u dòng d i, ó toàn b các ch )ng sau tr (n u có) s" b c*t xu ng dòng d i Khi tr ang )ng u m t dòng mà Enter thì s" t o m t dòng tr ng t i v trí ó III Các ph!n t c b n c a ngôn ng Pascal 1.T p ký t c b n : M i ngôn ng u c xây d ng t m t t p ký t nào ó Ngôn ng Pascal c xây d ng trên b ký t c b n, g m: - Các ch cái la tinh: A, B, C, ,Z, a, b, c, , z - Các ch s :0, 1, 2, 3, 4, 5, 6, 7, 8, - Các ký hi u &c bi t: +, -, *, /, =, <, {, }, [, ], %, $, &, #, - Ký t g ch n i ‘_’ và ký t tr*ng ‘ ‘ ( space) Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang (10) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n T' khóa (Keyword) Có m t s t c Pascal dành riêng cho vi c xây d ng các câu l nh, các khai báo, các phép tính, g i là t khóa Ng !i l p trình không c &t m t tên m i (tên bi n, tên h ng, tên hàm, tên th t#c, ) trùng v i m t các t khóa D i ây là danh sách các t khóa c a Pascal : Absolute, and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor Các t khóa có th vi t d i d ng ch hoa hay ch th ng hay xen k ch hoa v i ch th ng u c Ví d# vi t begin hay Begin hay BEGIN là nh 3.Tên (identifier) Các bi n, các h ng, các hàm, các th t#c, c s d#ng ch ng trình u c n ph i &t tên, còn g i là nh danh hay danh hi u Các tên này ng !i th o ch ng t &t và ph i m b o úng quy t*c: tên ph i b*t u b ng ch cái, k ó có th là ch cái, ch s , hay d u g ch n i ‘_’ Tên không c &t trùng v i t khóa Chi u dài c a tên t i a là 127 ký t Thông th !ng tên nên &t ng*n g n và có tính g i nh Ví d#:Delta, X1, X2, i, j , Chuc_vu, Luong,Phuong_Trinh_Bac_Hai… 4.Tên chu(n Trong Pascal có m t s tên ã c &t s1n r i, g i là tên chu/n, ch4ng h n : Abs, Arctan, Boolean, Byte, Char, Cos, Copy, Delete, Eof, False, Longint, Ord, Integer, Real, Readln, Writeln, True, Text, Pasal có th cho phép ng i th o ch ng t l i tên chu n, nh ng không nên t l i 5.Câu l nh Pascal Câu l nh là ph n vi c mà ch ng trình ph i th c hi n x lý d li u ã c khai báo Trong ch ng trình các câu l nh c vi t cách m t d u ch m ph y (;) Có lo i : Câu l nh n và l nh ghép 5.1 Câu l nh n gi n : Bao g m các l nh +L nh gán (:=) : Dùng gán giá tr cho bi n s ã khai báo -D ng l nh : Bi n s := Bi u th)c; Ví d# : x:=10; d:=a*b; +L nh G i th t#c : Dùng g i th t#c ch ng trình -D ng l nh <Tên th t#c> Ví d#: Clrscr; Halt; 5.2 L nh ghép : Bao g m m t nhóm l nh t l nh tr lên c &t hai t khoá Begin và End; Ví d# : Begin TG:=A; A:=B;B:=TG; End; IV C u trúc c a ch ng trình Pascal 1.C u trúc chung Ch ng trình là m t dãy các câu l nh ch th cho máy các công vi c ph i th c hi n M t ch ng trình Pasccal y g m ba ph n chính : - Ph n tiêu - Ph n khai báo - Ph n thân ch ng trình 1.1 Ph!n tiêu " ch ng trình Ph n này b*t u b ng t khóa Program, ti p n là tên ch ng trình ng !i s d#ng t &t, cu i cùng k t thúc b ng d u ch m ph/y ‘;’ Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 10 (11) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Ví d# : Program Btap1; ho&c : Program Giai_pt_bac2; Ph n tiêu chi m m t dòng, còn g i là ph n u c a ch ng trình, nó có th không có 1.2 Ph!n khai báo Ph n khai báo có nhi m v# gi i thi u và mô t các i t ng, các i l ng s" tham gia ch ng trình Nó g m có lo i khai báo sau - USES Khai báo n v s d#ng (Unit) - LABEL Khai báo nhãn, - CONST Khai báo h ng - TYPE khai báo ki u d li u m i, - VAR Khai báo bi n - PROCEDURE khai báo các ch ng trình là th t#c - PUNCTION Khai báo các ch ng trình là hàm Tùy theo yêu c u c# th mà m i khai báo này có th có ho c không có khai báo 1.3 Ph!n thân ch ng trình +ây là ph n ch y u nh t c a m t ch ng trình, b t bu c ph i có Thân ch ng trình b*t u b ng t khóa BEGIN và k t thúc b ng END (có d u ch m cu i) Gi a kh i BEGIN và END là các l nh M i l nh ph i k t thúc b ng d u ch m ph/y ‘;’ Begin Các l nh; End 2.Khai báo ch ng trình Turbo Pascal 2.1 Khai báo n v s d ng (Unit) Turbo Pascal có s1n trên 300 hàm và th t#c chu/n, chúng c phân thành t ng nhóm theo ch)c n ng, g i là các th vi n hay n v ch ng trình ( Unit) bao g m : System ,Crt, Graph, Dos, Printer, v.v Mu n s d#ng các hàm hay th t#c c a n v nào, tr System còn l i ta ph i khai báo, Cách khai báo nh sau : Uses Tendonvi ; Ví d : - Mu n s d#ng n v CRT Uses CRT ; - Mu n s d#ng c hai th vi n CRT và GRAPH, ta khai báo : Uses CRT, GRAPH ; Chú thích : M t s hàm và th t c n v s d ng màn hình CRT +Th t c ClsScr - D ng th t c: ClrScr; - Ch c n ng : Xóa màn hình k t qu , a tr v t a 1,1 +Th t c GotoXY - D ng th t c : GotoXY(x,y); - Ch c n ng : + a tr nt a c t x, dòng y - Ví d# : GotoXY(10,5) : + a tr v t a c t 10, dòng +Th t c Delay - D ng th t c Delay(time) - Ch c n ng : D ng th c hi n ch ng trình time miligiây -Ví d# : Delay(200); +Th t c TextColor - D ng th t#c TextColor(màu) Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 11 (12) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n - + nh mà cho dòng ch vi t lên màn hình theo b ng màu sau : Color Màu Color Màu Color Màu Black Brown 12 LightRed Blue LightGray 13 LightMagenta Green DarkGray 14 Yellow Cyan LightBlue 15 Whlte Red 10 LightGreen Magenta 11 LightCyan Ví d# : Tectcolor(Red) hay Textcolor(4) 2.2 Khai báo h)ng s H ng là i l ng có gía tr không i, khai báo h ng ta dùng t khóa Const cách khai báo nh sau : Const Tên_h ng_s = H ng s ; Ví d# : Const N=10 ; 2.3 Khai báo bi n s Bi n là i l ng có giá tr thay i ch ng trình, chúng c dùng ch ng trình l u tr các d li u, tham gia vào các bi u th)c tính và các quá trình x lý máy Cách khai báo bi n s nh sau : Var Tên_bi n_s : ki u d li u; Ví d# : Var x, y : Real ; i, k : Integer; 2.4 Khai báo ( nh ngh a) m$t ki u d li u m i Ngoài các ki u d li u mà b n thân ngôn ng ã có s1n nh ki u th c, ki u nguyên, ki u ký t , ki u lôgic,.v.v ng !i dùng có th t xây d ng các ki u d li u m i ph#c v# cho ch ng trình c a mình, nh ng ph i mô t sau t khóa TYPE cách khai báo nh sau TYPE tên ki u d li u m i = ki u d li u m i Ví d#, ta nh ngh%a m t ki u d li u m i có tên là Mang : Type Mang = Array[1 10] of Real; 4.Ví d Vi t ch ng trình cho phép nh p vào h tên, mã s , các i m , Lý c a m t sinh viên, tính i m trung bình theo công th)c : Dtb=(Toan+ly)/2 In H tên, mã s , các i m , Lý và i m trung bình c a sinh viên ó lên màn hình PROGRAM VIDU; Uses CRT; Var Ho_ten, Maso : String[20]; Toan, Ly, Dtb : Real; Begin Write(‘ Nhap Ho va ten : ‘); Readln(Ho_ten); Write(‘ Nhap ma so : ‘); Readln(Maso); Write(‘ Nhap diem Toan : ‘); Readln(Toan); Write(‘ Nhap diem Ly : ‘); Readln(Ly); Dtb:= (Toan+Ly) / 2; { In lên màn hình các d li u v sinh viên } TextBackGround(Green); { &t màu n n là Green } TextColor(Red); { &t màu ch là Red} Clrscr ; Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 12 (13) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Writeln(‘ KET QUA THI CUA SINH VIEN:’); Writeln(‘Ho va ten : ‘, Ho_ten); Writeln(‘Ma so : ‘, Maso); Writeln(‘Diem Toan : ‘, Toan:3:1); Writeln(‘Diem Ly : ‘, Ly:3:1); Writeln(‘Diem Tbinh : ‘, Dtb:3:1); Readln; END Ghi chú : + so n và ch y c m t ch ng trình nh trên c n ph i bi t s d#ng ph n m m Turbo Pascal ( vi t t*t là TP ) IV.Các ki u d li u n gi n dùng Pascal Trong TP dùng m t s ki u d li u g i là d li u n gi n chu/n nh sau: 1.Ki u nguyên : Dùng bi u di$n các s nguyên, ph m vi bi u di$n c a s nguyên t byte n byte Tên ki u Ph m vi gía tr S byte ShortInt -128 127 Byte 255 Integer -32768 32767 Word 65535 LongInt -2147483648 2147483647 +Các phép toán trên ki u nguyên : - Các phép toán : C ng(+), tr (-), nhân(*),chia(/) - Phép chia l y ph n nguyên (DIV): 10 Div =3, 10 div =2 - Phép chia l y ph n d (Mod): 15 mod =0, 16 mod =1 + Các hàm có i s nguyên : -Hàm PRED(k) : i s k nguyên, tr v s nguyên )ng tr c k, t)c là k-1 Ví d#: Pred (5) = 4, Pred (-6) = -7 -Hàm SUCC(k) : i s k nguyên, tr v s nguyên )ng sau k, t)c là k+1 Ví d#: Succ (5) = 6, Succ (-6) = -5 +Các th t#c có i s nguyên: Có hai th t#c khá thông d#ng là: -Th t c INC(k) : t ng k lên m t n v Ví d#, sau th c hi n các l nh : k:=5; Inc(k); thì gía tr sau cùng c a k là V y, l nh Inc(k); t ng ng v i l nh k:=k+1; hay k:=Succ(k); -Th t c DEC(k) : gi m k i m t n v Ví d#, sau th c hi n các l nh : k:=5; Dec(k); thì gía tr c a k s" là V y, l nh Dec(k) ; t ng ng v i l nh k:=k-1; hay k:=Pred(k); 2.Ki u th c : Dùng bi u di$n các s th c, ph m vi bi u di$n c a s th c t n 10 byte Ph m vi gía tr Tên ki u S byte Real 2.9*10-39 1.7*1038 -45 38 Single 1.5*10 3.4*10 Double 5.0*10-324 1.7*10308 10 Extended 3.4*10-4932 1.1*104932 Comp -9.2*1018 9.2*1018 +Các phép toán trên s th c : Có phép toán s h c là nhân (*), chia (/), c ng (+) và tr (-) Khi m t các s h ng tham gia tính toán là ki u th c thì k t q a c a phép toán c(ng là m t s th c (Phép toán DIV, MOD không dùng cho các s th!c ) Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 13 (14) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n +Các hàm có i s nguyên ho c th c -Hàm ABS(x): tính tr t i c a x Ví d#: Abs(5 - 8) = -Hàm SQR(x): tính bình ph ng c a x: Ví d#: Sqr(4.0) = 16.0, Sqr(2) = Trong các hàm d i ây, i s x có th là nguyên hay th c, nh ng gía tr tr v luôn luôn là ki u th!c: -Hàm SQRT(x): tính , (x ? 0) - Hàm EXP(x) : tính ex - Hàm LN(x): tính lnx, (x > 0) - Các hàm SIN(x), COS(x), và ARCTAN(x): tính sinx, cosx và arctgx - Hàm INT(x) : cho s th c b ng ph n nguyên c a x Ví d# : Int(12.55) = 12.0 Int(1+10/3)=4.0 -Hàm FRAC(x) : cho s th c b ng ph n l0 c a x Ví d# : Frac(12.55) = 0.55 Hai hàm c bi t d i ây cho k t q a là s nguyên: -Hàm TRUNC(x): cho s nguyên là ph n nguyên c a x Ví d# : Trunc(12.55) = 12 Trunc(-2.98) = -2 - Hàm ROUND(x): cho s nguyên b ng cách làm tròn x Ví d# : Round(12.45) = 12 Round(-2.98) = -3 3.Ki u ký t (Char): Nh n m t các ký t b ng mã ASCII, M i ký t b ng mã ASCII g i là m t h ng ký t , chi m dài byte, và vi t Pascal ph i c &t c&p nháy n: ‘0’, ‘1’, ‘A’, ‘B’, ‘$’, +Các hàm liên quan n ký t : - Hàm PRED(ch): cho ký t )ng tr c ký t ch b ng mã Ví d#: Pred(‘B’)=‘A’ -Hàm SUCC(ch): cho ký t )ng sau ký t ch b ng mã Ví d#: Succ(‘A’)=‘B’ -Hàm UpCase(ch): i ký t ch thành ch hoa Ví d#: Upcase( ‘a’ ) = ‘A’, Upcase( ‘b’ ) = ‘B’, Upcase( ‘A’ ) = ‘A’ -Hàm ORD(ch) : cho mã c a ký t ch Ví d#: Ord (‘A’) = 65, Ord (‘a’) = 97 -Hàm CHR(k) : i s k nguyên, 0< k < 255, cho ký t có mã b ng k Ví d#: Chr (65)= ‘A’ , Chr (97)= ‘a’, Chr(32) là ký t tr*ng 4.Ki u logic (boolean) Ki u boolean ch có hai gía tr là TRUE ( úng) và FALSE (sai), không phân bi t ch hoa hay ch th !ng V quan h th) t thì FALSE< TRUE M i gía tr boolean chi m m t byte b nh Các phép toán lôgic g m có: NOT, AND, OR và XOR N u A và B là hai i l ng lôgic thì NOT A, A and B, A or B và A xor B c(ng là nh ng i l ng lôgic có k t q a c cho b ng sau: A B A and B A or B A xor B True True True True False True False False True True False True False True True False False False False False 5.Ki u chu*i (String) : là m t chu i ký t Khi gán h ng chu i , h ng chu i ph i c rào c&p d u nháy n Ví d# : ‘Turbo Pacal’, ‘12345’ Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 14 (15) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n V.Các l nh nh p xu t d li u Nh p và xu t d li u là hai khâu quan tr ng qúa trình x lý thông tin H u nh ch ng trình nào c(ng ph i gi i quy t v n nh p, xu t d li u Có nh p c d li u thì m i có d li u tính hay x lý Có d li u xu t thì m i bi t c k t q a c a qúa trình x lý máy L nh nh p d li u 1.1.Ý ngh a :Dùng nh p d li u cho bi n nguyên hay th c hay chu i 1.2 D ng l nh có d ng nh sau : Read(x1, x2, , xn); Readln(x1, x2, , xn); Readln; Trong ó x1,x2…xn ã c khai báo ki u d li u ph n khai báo - D ng và d ng dùng nh p d li u cho các bi n s ã c khai báo - D ng nh p xong d li u sau bi n s xn, còn d ng nh p xong tr t ng nh y xu ng u hàng k ti p - D ng không dùng nh p d li u, mà có tác d#ng d ng th c hi n ch ng trình ch! nh n phím enter Ghi chú : Khi nh p d li u cho các bi n s , các giá tr vi t cách ít nh t m t kh ang tr*ng L nh xu t d li u 2.1 Ý ngh a : Dùng in các d li u lên màn hình 2.2 D ng l nh : có d ng th t#c in d li u nh sau: Write( bt1, bt2 , , btn ); Wrteln(bt1, bt2 , , btn ); Writeln; Trong ó bt1, bt2, , btn là các bi u th)c c n ph i in gía tr lên màn hình Trong tr !ng h p n gi n, m i bi u th)c này có th là m t bi n, m t h ng, hay m t hàm - D ng 1: in d li u xong tr sau btn, còn d ng in xong tr nh y xu ng u hàng k ti p - D ng 3: không dùng in d li u lên màn hình mà có tác d#ng a tr xu ng u hàng k ti p Ví d : cho x, y là hai bi n th c và gán x:=100/4; y:=-9/300; thì hai l nh sau : Writeln(‘ x= ‘, x); Writeln(‘ y= ‘, y); s" in lên màn hình : x = 2.5000000000E+01 y = -3.0000000000E-02 2.2 In d li u d ng s có nh d ng: a) In s th!c có nh d ng: In các s th c theo cách trên r t khó c Vì th các s th c th !ng c in có nh d ng, gi ng nh cách vi t s thông th !ng, b ng l nh: Writeln( bi uth)c : n : k ); Trong ó n và k là các s t nhiên, n nh dùng n c t in gía tr c a bi u th)c, ó có k c t dành cho ph n th p phân Ví d#: cho x, y là các bi n ki u th c và: x:=100/4; y:=-123.4824; Hai l nh sau : Writeln(‘ x=‘, x:6:2); Writeln(‘ y=‘, y:10:3); s" in lên màn hình: x= 25.00 ( tr c s có ký t tr*ng) Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 15 (16) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n y= -123.482 (tr c d u - có ký t tr*ng) N u n nh h n chi u dài c a s c n in thì s s" c in v i y các ch s ph n nguyên Ví d#, th c hi n các l nh sau : x:=12345.675; Writeln(‘x= ‘, x:0:2); trên màn hình s" hi n : x=12345.68 ây máy ã làm tròn s b s l0 cu i cùng 2.3 Ví d PROGRAM VIDU; Uses CRT; Var Ten : String[18]; Maso : String[11]; Begin CLRSCR; Write(‘ Nhap ho va ten: ‘); Readln(Ten); Write(‘ Nhap ma so sv : ‘); Readln(Maso); Writeln; Writeln(‘ ********************** ’); { in 22 d u * } Writeln(‘*’, Ten:19, ‘*’:2); { in d u *, in Ten chi m 19 c t, in ti p d u * chi m c t } Writeln(‘* Ma so:’ , Maso:12, ‘*’:2); { in * Ma so, in Maso chi m 12 c t, in ti p d u * chi m c t } Writeln(‘**********************’); { in 22 d u * } Readln; End Bài t p ch ng Nh p s nguyên a, b t bàn phím In t ng, tích, hi u, th ng c a a và b + c t bàn phím di n tích c a áy l n B1 và di n tích áy nh B2 và chi u cao h c a m t hình chóp c#t Tính th tích hình chóp c#t theo công th)c sau : V = (1/3)* (B1+B2 + B1*B2) *h + c t bàn phím bàn kính R1, bán kính R2, là !ng sinh l và chi u cao h c a m t hình chóp c#t Tính di n tích xung quanh và th tích hình chóp c#t theo công th)c sau: Di n tích xung quanh S = (PI/2 * (R1R2) *I Th tích V = (1/3) * (PI*h*(R1² + R2² + R1*R2)) Vi t ch ng trình nh p vào i m Toán, Lí, Hoá c a m t thí sinh theo h s t ng )ng : : Hãy tính và in i m trung bình 5.Vi t ch ng trình tính l c hút F gi a hai v t có kh i l ng M và N cách m t kh ang d theo công th)c : M *N F =G d2 –8 2 V i G là l c h p d'n = 6.673* 10 cm /gs (M tính b ng gram,D tính b ng cm) 6.Vi t ch ng trình nh p s nguyên d ng a, b, c sau ó tính và in màn hình giá tr trung bình c ng s , c và trung bình nhân p c a s ó a+b+c Bi t r ng : s = p = (abc)1 / 3 7.Vi t ch ng trình nh p s nguyên d ng a, b, c là s ó c nh c a m t tam giác Hãy tính và in màn hình di n tích s c a tam giác ó Bi t r ng : s=sqrt(p*(p-a)*(p-a)*(p-c)) ó p=0.5*(a+b+c) Ch ng 2:Gi i thi u Ngôn ng l p trình Pascal Lop11.com Trang 16 (17) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Ch ng III CÁC L NH +I,U KI N – VÒNG L-P I Các l nh i"u ki n 1.L nh nh y không i"u ki n - Cú pháp : Goto <Nhãn> - Ch c n ng : Nh y n l nh ã c ánh d u b ng nhãn ã khai báo Ghi chú: Cách khai báo nhãn ph n khai báo Label <Nhãn> V i <Nhãn> là m t t t &t Câu l nh IF 2.1 Câu l nh If d ng Cú pháp : IF <Ði"uki n> THEN <L nh> ; Ði u ki n là m t bi u th)c lôgic cho k t q a TRUE ( úng) hay FALSE (sai) L nh có th là m t l nh n gi n ho&c m t l nh có c u trúc Ý ngh a: Máy ki m tra i u ki n, n u Ði uki n là úng thì th c hi n l nh L nh, ng c l i n u Ði uki n là sai thì th c hi n l nh k ti p sau if Ví d : Nh p vào h tên và i m trung bình (DTB) c a m t sinh viên Hãy phân lo i sinh viên theo DTB nh sau: Lo i là Kém n u DTB<5, là Tbình n u =< DTB<7, là Khá n u <= DTB<9, là Gi i n u DTB >= In h tên, i m trung bình và phân lo i sinh viên PROGRAM PhanloaiSinhvien; { Phân lo i sinh viên } Var Ho_ten: String[18]; DTB: Real; Loai: String[6]; Label aa; Begin Write(‘ Nhap ho va ten :’); Readln(Ho_ten); aa:Write(‘ Nhap iem trung binh :’);Readln(DTB); If DTB<0 then Begin Writeln(‘Diem trung binh <0 ! Xin nhap lai ‘); Readln; Goto aa; End; { phân lo i theo DTB } If DTB< then Loai:=‘Kem’; If (DTB>= 5) and (DTB<7) then Loai:=‘Tbinh’; If (DTB >= 7) and (DTB< 9) then Loai:=‘Kha’; If DTB >= then Loai:=‘Gioi’; Writeln(Ho_ten, #32 , DTB:4:1 , #32 , Loai); { #32 là ký t tr*ng } Ch ng 3: Các l nh i u ki n – vòng l p Lop11.com c Trang 17 (18) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Readln; End 2.2 Câu l nh IF d ng +Cú pháp : IF Ði"uki n THEN L nh1 Sai ELSE L nh2 ; +ki n Chú ý : -Tr c ELSE không có d u ch m ph/y +úng -L nh1 và L nh2 có th là m t l nh ghép, t)c là g m nhi u l nh c &t kh i begin và end; L nh L nh +Ý ngh a c a l nh: Máy ki m tra i u ki n, N u Ði uki n là úng thì th c hi n L nh1, ng c l i, n u Ði uki n là sai thì th c hi n Lênh2 Ví d : Vi t ch ng trình nh p vào hai s a và b, L nh k ti p tìm và in s nh nh t và s l n nh t c a chúng: PROGRAM Tim_Max_Min; { Tim so lon nhat va so nho nhat c a hai so } Var a, b, Max, Min : Real; Begin Write(‘ Nhap a va b :’);Readln(a,b); If a < b then begin Max:= b; Min:= a; end else { tr c else không có d u ; } begin Max:= a; Min:= b; end; Writeln(‘ So lon nhat la: ‘ , Max:6:2); Writeln(‘ So nho nhat la: ‘ , Min:6:2); Readln; End 2.3 Câu l nh IF l ng : Trong câu l nh IF, n u L nh1 ho&c L nh2, ho&c c hai, l i là câu l nh IF thì ta có c u trúc IF l ng Ch4ng h n d i ây là hai câu l nh IF ELSE l ng : IF Ði"uki n1 THEN If Ði"uki n2 then L nh1 else L nh2 ELSE L nh3 ; Ch ng 3: Các l nh i u ki n – vòng l p Lop11.com Trang 18 (19) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n Ví d# : Vi t ch ng trình nh p vào h tên m t ch h , ch s i n k tháng tr c (chiso1) và ch s i n k tháng này (chiso2), tính ti n i n tháng này cho h , bi t r ng : M i kw 100 kw u tiên có n gía là 500 , T kw th) 101 n kw th) 200 có n giá 800 , T kw th) 201 tr lên có n gía 1000 PROGRAM Tinh_tien_dien; { Tính ti n i n } Var Ho_ten: String[18]; chiso1, chiso2, Ldtt, Tien : Real; Label aa; Begin Write(‘ Nhap ho va ten :’); Readln(Ho_ten) aa: Write(‘ Nhap ch s tháng tr c, ch s tháng này: ‘);Readln( chiso1, chiso2); If chiso2<chiso1 Then Begin Writeln(‘Ban nhap sai du lieu ! Xin nhap lai’); Readln; Goto aa; End; Ldtt:=chiso2 - chiso1; If Ldtt<= 100 then Tien:=Ldtt*500 else if Ldtt <=200 then Tien:=100*500+(Ldtt - 100)*800 else Tien:=100*500 + 100*800 + (Ldtt - 200) * 1000; Writeln(‘ H và tên là ‘, Ho_ten); Writeln(‘ Ti n ph i tr là ‘ , Tien:10:2); Readln; End Câu l nh CASE 3.1 Cú pháp L nh CASE có hai d ng, chúng ch khác m t i m là d ng có ELSE L nh n+1, còn d ng thì không ( hình v") CASE bi uth)c OF h ng1 : L nh1; h ng2 : L nh2; h ngn : L nhn; END; D ng CASE bi uth)c OF h ng1 : L nh1; h ng2 : L nh2; h ngn : L nhn; ELSE L nhn+1; END; D ng Chú ý - L nh CASE ph i k t thúc b ng END; Ch ng 3: Các l nh i u ki n – vòng l p Lop11.com Trang 19 (20) Tr ng Cao ng KTKT Bình D ng Biên so n : V Bi n - Ki u d li u c a bi uth)c ch là ki u d li u m c nh : nguyên, ký t , Lôgic, ho&c ki u li t kê hay ki u o n con, không c là ki u th c hay ki u chu i 3.2: Ý ngh a: Khi g&p l nh Case ch ng trình máy th c hi n theo các b c sau : B c 1: Tính gía tr c a bi uth)c B c 2: So sánh và l a ch n: - N u gía tr c a bi uth)c = Gt1 thì th c hi n L nh1 - N u gía tr c a bi uth)c = Gt2 thì th c hi n L nh2 - N u gía tr c a bi uth)c = Ctn thì th c hi n L nhn B c 3: a) chuy n sang l nh k ti p sau End ( n u là d ng 1) b) th c hi n L nh n+1, r i chuy n sang l nh k ti p sau End (n u là d ng 2) S Sai GT=gt GT=gt Sai L nh1 Sai +úng GT=gt L nh2 +úng L nh3 L nh k 2.3 Các ví d : PROGRAM Tim_so_ngay_cua_thang; { Xác nh s ngày c a tháng } Var Thang, Nam, Songay : Integer ; Begin Write(‘Nh p Thang, Nam : ‘); Readln(Thang, Nam); If (Thang<1) or ( Thang>12) then writeln(‘ Nh p sai ’) else begin Case Thang OF 4, 6, 9, 11 : Songay:=30; 1, 3, 5, 7, 8, 10, 12 : Songay:=31; : begin If Nam mod = then Songay:=29 else Songay:=28; end; Ch ng 3: Các l nh i u ki n – vòng l p Lop11.com Trang 20 (21)