1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGÔN NGỮ LẬP TRÌNH PASCAL

66 229 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 384,45 KB

Nội dung

Nguy n Xuân My Tr i hu n luy n IOICamp.net NGÔN NG L CV L P TRÌNH PASCAL 1.1 Nh ng nét chung c a ngôn ng l p trình Nh ta ã nói n ch ng 1, mu n trao cho máy tính th c hi n m t công vi c ó hay nói cách khác gi i m t toán ó, thu t toán gi i toán ph i c di n t thành m t ch ng trình vi t b ng m t ngôn ng l p trình Có r t nhi u lo i ngôn ng l p trình b c cao (v n n ng) Tuy nhiên chúng u có m t nét chung nh sau: Quy nh m t s ký t dùng vi t ch ng trình, T p ký t cg i ng ch c a ngôn ng Quy nh m t s t c bi t v i hàm ý c th g i khoá Quy nh cách vi t tên i l ng mà ch ng trình c p n Quy nh u trúc chung c a m t ch ng trình quy nh vi t t ng ph n a ch ng trình ch c m t th vi n ch ng trình chu n h tr ng i vi t ch ng trình Khi dùng m t ngôn ng ó vi t ch ng trình, ch ng trình ó c g i ch ng trình ngu n (SourceProgram) có th th c hi n c, ch ng trình ó c n c d ch sang ngôn ng máy Công vi c ó IDE m nhi m IDE vi t t t a ba ch ti ng Anh Integrated Development Envirement (Môi tr ng phát tri n tích h p) V c b n máy tính không th "hi u" th c hi n ch ng trình ngu n không vi t b ng ngôn ng máy (Xem ph n i c ng v Tin h c) IDE cho phép ta ch ch ng trình vi t b ng ngôn ng l p trình sang ngôn ng máy t o thêm ti n nghi cho vi c vi t th c hi n ch ng trình c s ngôn ng l p trình C n ý r ng m t ngôn ng l p trình, có nhi u IDE khác Ví d ngôn ng l p trình Pascal có hai IDE ang c dùng ph bi n: Turbo Pascal Free Pascal Tuy nhiên Free Pascal s IDE c dùng lâu dài có th ch y c môi tr ng Windows Linux Trong ph n l n tr ng th gi i, d y ngôn ng l p trình u tiên, ng i ta th ng ch n ngôn ng Pascal M t nh ng lý Pascal m t ngôn ng chu n m c th hi n thu t toán ki u d li u liên quan; thông qua trình h c ngôn ng này, h c sinh có th hi u c nh ng ý t ng c b n c a t ngôn ng l p trình b c cao Trong ch ng này, s gi i thi u nh ng ki n th c c b n v ngôn ng v i m c tiêu vi t ch ng trình gi i toán thông th ng c s IDE Turbo Trong cu i ch ng này, s có m t ph l c IDE Free-Pascal Ta c n ý th c r ng Pascal m t ph ng ti n giao ti p gi a ng i máy tính B n thân máy tính m t thi t b v t lý, "giao vi c" cho máy thông qua m t ch ng trình, c n ph i tuân th úng nh ng quy nh r t nghiêm ng t c a l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net ngôn ng ch nh v y, ch ng trình m i có th d ch c sang ngôn ng máy ó máy m i có th "hi u" th c hi n c 1.2 B ch vi t l nh, Pascal ch n m t s ký t b ng mã ASCII dùng làm b ch a B ch g m: - Các ch th ng hoa c a ti ng Anh: A Z, a z - Các ch s th p phân - D u g ch chân (th ng dùng n i ch ) _ (có mã ASCII th p phân b ng 95) - Ký t tr ng (mã ASCII th p phân b ng 32) gõ b ng phím dài Space - Các ký t v i mã ASCII th p phân t n 31 (các mã u n) - Các ký t c bi t + ( ) * : / ; = ^ < @ > { [ } ] $ # , ' - Các c p ký t vi t li n dùng nh m t ký t = Gán := (* *) ( .) i v i ký t khác c a b ng mã ASCII, Pascal không th c dùng làm ch c a Tuy nhiên, có th x lý thích ho c dòng thông báo, ta có th dùng c ký t n ý r ng, khác v i cách vi t Toán h c, c p d u ngo c (, ), {, }, [, ] dùng Pascal có ý ngh a khác nhau: (, ) dùng phân bi t s h ng bi u th c {, } dùng ghi thích ch ng trình gi i thích m t ph n ch ng trình ó, ta có th vi t thích cho ph n ó ph n thích ph i t gi a { } [, ] dùng cho ki u d li u xâu, m ng t p h p (Xem ph n sau) 1.3 Khái ni m tên Pascal có m t s t c bi t g i khoá (Keyword) g m 52 t sau: l ABSOLUTE EXTERNAL MOD SHR AND FILE NIL STRING ARRAY FOR NOT THEN BEGIN FORWARD OBJECT TO CASE FUNCTION OF TYPE CONST GOTO OR UNIT CONSTRUCTOR IF PACKED UNTIL c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net DESTRUCTOR IMPLEMENTATION PROCEDURE USES DIV IN PROGRAM VAR DO INLINE RECORD VIRTUAL DOWNTO INTERFACE REPEAT WHILE ELSE INTERRUPT SET WITH END LABEL SHL XOR Khi s d ng Pascal gi i toán (theo ngh a nêu ch ng tr c), phát bi u c a toán trình gi i toán, có i l ng ho c ã cho ho c c n tính toán Khi vi t ch ng trình, ta c n khai báo tên i l ng kèm theo ki u d li u t ng ng Tên t ph i tuân theo quy nh sau: Ch g m ch cái, ch s ho c d u g ch chân không b t u b ng ch , ó ch hoa hay th ng u c hi u nh Không c trùng v i t khoá nêu i v i ng i Vi t Nam, u không gây nên khó kh n m t s t khoá n gi n th ng c dùng nhi u ch ng trìntr, t khoá r c r i ch c không dùng t tên dài có th tu ý nh ng Pascal ch quan tâm n không 63 ký t u Nói chung, t tên i l ng c n tính toán ch ng trình, ta nên dùng tên t t g i nh ý ngh a c a Trong m c ti p theo, ta s l n l t gi i thi u v ki u d li u mà Pascal cho phép dùng th hi n i l ng khác th ng g p toán cách khai báo v chúng 1.4 C u trúc chung c a m t ch ng trình Pascal t ch ng trình Pascal t ng quát g m ph n sau: Ph n khai báo, Ph n ch ng trình con, Ph n ch ng trình Ph n ch ng trình nh t thi t ph i có, hai ph n khác tu theo yêu c u c th c a ng i vi t ch ng trình, không nh t thi t ph i có 1.4.1 Ph n khai báo Ph n khai báo g m m c sau: a) Tên ch ng trình (m c có th không c n có nh ng n u vi t, ph i vi t úng) Cách vi t Program tên ch ng trình; ó tên ch ng trình c n t theo úng quy nh v tên b) Các h ng d n biên d ch (s c gi i thi u d n c n) c) Khai báo n v (unit) ch ng trình c n dùng File TURBO.TPL file *.TPU bao g m m t s unit nh CRT, DOS, SYSTEM, GRAPH ó th vi n th t c hàm chu n c a Pascal cho phép ng i vi t trình c s d ng l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net th t c hàm chu n ã có s n Ngoài ra, ng i vi t ch ng trình c ng có th t o l p unit c a riêng theo quy nh c a Pascal Cách vi t USES danh sách unit; Trong danh sách này, hai unit liên ti p cách m t d u ph y d) M c Label Li t kê tên m c c a ch ng trình Cách t tên m c gi ng nh cách t tên ngo i tr u ki n b t u b ng ch Nói chung không ng vi c vi t ch ng trình có khai báo che d u tính c u trúc c a ch ng trình Cách vi t Label danh sách m c; Trong danh sách này, hai m c liên ti p cách m t d u ph y e) M c Const Khai báo h ng (các i l ng không i) Cách vi t Const danh sách tên h ng Trong danh sách này, hai tên h ng liên ti p cách m t d u ch m ph y Cách vi t m i h ng Tên h ng=giá tr ; g) M c Type Khai báo ki u d li u Cách vi t Type danh sách ki u Cách vi t m i ki u Tên ki u = Mô t ki u; h) M c Var Khai báo i l ng (các bi n) dùng ch ng trình Cách vi t Var danh sách bi n Cách vi t m i bi n Tên bi n:tên ki u c a bi n; u m t s bi n có ki u, ta có th khai báo chung ki u, ó hai bi n liên ti p khai báo chung ki u cách m t d u ph y 1.4.2 Các ch ng trình u trúc m i ch ng trình hoàn toàn t ng t nh m t ch ng trình Pascal ngo i tr vi c ch ng trình ph i k t thúc b ng END; Ta s có m t m c riêng gi i thi u chi ti t h n v ch ng trình 1.4.3 Ph n ch ng trình Ph n b t u b ng t khoá Begin ti p theo l nh k t thúc b ng END ây t khoá end nh t ch ng trình có d u ch m kèm theo sau ánh u k t thúc c a ch ng trình 1.4.4 M t lo i ch ng trình n gi n: vi t thông báo hình l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net minh ho cho khái ni m v m t ch ng trình Pascal ng th i gi i thi u l nh vi t hình nh ng thông báo c n thi t gi i thích cho l nh ph c t p sau này, ta a m t vài ví d v nh ng ch ng trình n gi n nh t Ví d Gi s ta mu n vi t hình thông báo Day la lop 10 Tin hoc, ch ng trình sau th c hi n công vi c Begin Writeln('Day la lop 10 Tin hoc'); End Ví d Gi s ta mu n vi t hình thông báo Day la lop 10 Tin hoc dòng ti p theo thông báo 'M i b n làm quen v i Turbo-Pascal', ch ng trình sau th c hi n công vi c Begin Writeln('Day la lop 10 Tin hoc, '); Writeln('Moi ban lam quen voi Turbo-Pascal'); End u ch ng trình c s a thành Begin Write('Day la lop 10 Tin hoc, '); Writeln('Moi ban lam quen voi Turbo-Pascal'); End Hãy th c hi n c hai th y s khác gi a hai l nh Write Writeln Qua hai ví d trên, mu n vi t m t dòng thông báo ó hình, ta có th dùng l nh Write ho c Writeln, dòng thông báo c vi t gi a m t c p d u nháy ' t gi a m t c p ngo c tròn t nh n xét r t b ích cho sau dòng l nh c a Pascal ph n l n u k t thúc b ng d u ; 1.5 Môi tr ng Pascal Nói m t cách t ng quát, Tin h c, s d ng m t ph n m m ó, ti n nghi mà ph n m m ó cung c p cho ng i s d ng c g i môi tr ng c a ph n m ó Ví d ng i ta th ng nói n môi tr ng DOS, môi tr ng WINDOWS, môi tr ng Linux Khi làm vi c v i Pascal v i t cách nh m t ph n m m, ta có môi tr ng Pascal làm vi c v i Pascal, máy tính c n có file ch ng trình c n thi t N u mu n cài t y , hi n có hai b ch ng trình TP7.0 dùng cho môi tr ng DOS BP dùng cho môi tr ng WINDOWS Tuy nhiên, có th h c nh ng ph n p n giáo trình này, ta ch c n hai file TURBO.EXE, TURBO.TPL b t u làm vi c v i Pascal, n u môi tr ng DOS, ta vào th m c ch a file gõ TURBO r i gõ phím ENTER, môi tr ng WINDOWS, ta m kép chu t vào bi u t ng c a Pascal hay BP Sau ó s xu t hi n hình so n th o ch ng trình Pascal nh hình v d i ây Ta c ng g i hình nàylà m t c a File l Edit Search Run c v ngôn ng l p trình Pascal Compile Debug Tools Options Windows Help Nguy n Xuân My Tr i hu n luy n IOICamp.net -NONAME00.PAS _ 1:1 -F1 Help F2 Save F3 Open Alt+F9 Compile F9 Make Alt+F10 LocalMenu Hai dòng d i c g i Menu, m i m c Menu t ng ng v i m t lo i vi c ta có th l a ch n, hai s dòng cu i ng n cách b ng d u hai ch m (:) cho ta bi t v trí c a tr so n th o ang dòng (s tr c) c t (s sau) c a ch ng trình ang so n Vi c gi i thi u chi ti t v Menu s c c p n d n qua t ng m c Sau ây ta ch gi i thi u m t s m c c n thi t nh t giai n ban u so n th o ch y m t ch ng trình vi t b ng Pascal ây ta có th làm vi c sau: So n m i m t ch ng trình: Các b c l n l t ti n hành Gõ ch ng trình Các thao tác so n th o v c b n gi ng nh m t h so n th o v n b n Ghi file ch ng trình vào a: gõ phím ch c n ng F2, gõ ph n tên c b n c a file r i gõ phím Enter Biên d ch ch ng trình: gõ ng th i hai phím Alt+F9 N u ch ng trình có i, s có m t v t thông báo màu , gõ phím Enter ho c Esc, v t s bi n t v trí tr n m sát ch sai u tiên c a ch ng trình Sau a sai n u có, c n ghi l i ti n hành biên d ch l i cho t i ch ng trình không l i Ch y ch ng trình: gõ ng th i hai phím Ctrl+F9 Sau dùng xong ch ng trình, ta có th óng c a s c a ch ng trình ó ng cách gõ ng th i hai phím Alt+F3 N u mu n so n m t ch ng trình m i khác, ta có th l n l t gõ phím F10, F, N, ta s c m t c a s m i có th b t u m t vòng làm vi c nh Khi làm vi c v i Pascal, ta có th m nhi u c a s , m i c a s ng v i m t ch ng trình ho c m t file d li u Th ng c a s x p ch ng lên nhau, b ng cách gõ phím F6, ta có th chuy n c a s cu i lên N u mu n m m t file m t c a s , ta gõ phím F3 r i gõ tên file c n m sau ó gõ phím Enter kh i Pascal, ta gõ ng th i hai phím Alt+X D LI U KI U N GI N Khi vi t ch ng trình Pascal, i i l ng xu t hi n ch ng trình c n ph i c khai báo tên ki u c a m c Var Tu theo toán c th , i l ng ó có th i l ng cho tr c, i l ng c n tính nh ng i l ng phát sinh l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net trình tính toán Tu theo ý ngh a th c t c a chúng, ta c n ch n ki u d li u khai báo i dung c a m c nh m gi i thi u ki u d li u n gi n Lý c a vi c ch n thu t ng n gi n không ch nói chung chúng n gi n mà ti n dùng sau ph n ch ng trình 2.1 D li u ki u s nguyên 2.1.1 Cách khai báo bi n ki u s nguyên Khi có m t bi n ki u s nguyên, m c Var, ta có th ch n m t n m cách khai báo sau ây Tên bi n:Shortint; i khai báo này, bi n s nh n giá tr mi n -128 127 m i bi n c n byte b nh Tên bi n:Byte; i khai báo này, bi n s nh n giá tr mi n 255 m i bi n c n byte b nh Tên bi n:Integer; i khai báo này, bi n s nh n giá tr mi n -215 215-1 m i bi n c n byte nh Tên bi n:Word; i khai báo này, bi n s nh n giá tr mi n 216-1 m i bi n c n byte b nh Tên bi n:Longint; i khai báo này, bi n s nh n giá tr mi n -231 231-1 m i bi n c n byte nh Pascal cho phép ta dùng hai h ng chu n: m t h ng ký hi u MaxInt có giá tr b ng giá tr l n nh t c a bi n ki u Integer (= 215-1), m t h ng ký hi u MaxLongInt có giá tr b ng giá tr l n nh t c a bi n ki u LongInt (= 231-1) Khi mu n vi t u ki n so sánh gi a bi n ki u s , ≤, ≥, ≠, =, ch ng trình ta vi t t ng ng nh sau: , =, , = 2.1.2 Các hàm th t c chu n Khi vi t bi u th c s h c, phép tính c ký hi u nh sau: C ng + Tr Nhân * X Mod Y: Ph n d c a phép chia X cho Y X Div Y: Th ng c a phép chia X cho Y Chú ý r ng hàm X Mod Y X Div Y ch xác nh v i Y ≠ ng nh toán h c, phân bi t s h ng m t bi u th c, ta có th dùng d u ngo c Tuy nhiên, c n ý r ng m c dù Toán h c, ta c phép l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net dùng lo i d u ngo c khác nhau, nh ng Pascal, vi t bi u th c, ta ch c dùng m t lo i d u ngo c nh t d u m óng ngo c tròn (, ) u không dùng d u ngo c, th t u tiên th c hi n phép toán s là: Div Mod, nhân, c ng tr Ví d , a*(b+c) bi u th c c vi t úng nh ng n u vi t a*[b+c] sai, không c hi u a nhân v i t ng c a b c N u vi t a*b+c bi u th c s có giá tr b ng (a*b)+c i v i bi n ki u s nguyên, Pascal có s n m t s hàm chu n m t s th t c chu n ph c v tính toán ph bi n nh t Hàm (Function) chu n hàm có s n c a Pascal Hàm có th có ho c bi n Giá tr c a hàm ch có th dùng tính toán, so sánh ho c gán cho m t bi n khác ki u Khi dùng hàm, c n bi t rõ bi n (n u có) c a ph i có ki u ki u li u c a hàm ki u Sau ây m t s hàm chu n Hàm Sqr(X): Hàm có bi n X ki u s nguyên giá tr b ng bình ph ng c a X Hàm Pred(X): Hàm có bi n X ki u s nguyên có giá tr b ng X-1 Hàm Succ(X): Hàm có bi n X ki u s nguyên có giá tr b ng X+1 Hàm Random(X): Hàm có bi n X ki u Word có giá tr m t s nguyên ng u nhiên ph m vi X-1 Khi dùng hàm ta ph i khai báo n v ch ng trình CRT m c Uses tr c ó ph i g i th t c Randomize; Bi u th c nguyên bi u th c nh n c t bi n s nguyên liên k t b i hàm chu n nêu Th t c (Procedure) chu n l nh có s n c a Pascal L nh cho phép ta th c hi n m t vi c ó Th t c có th có ho c bi n n u có bi n, ta c n bi t rõ bi n ó có ki u Mu n dùng th t c, ta vi t nh vi t m t l nh Th t c Inc(X); t ng giá tr c a bi n X ki u s nguyên m t n v Th t c Dec(X); gi m giá tr c a bi n X ki u s nguyên m t n v Th t c Inc(X,Y); thay giá tr A ang có c a bi n X ki u s nguyên b ng A c ng i giá tr c a bi n ki u s nguyên Y ho c giá tr nguyên Y Th t c Dec(X,Y); thay giá tr A ang có c a bi n X ki u s nguyên b ng A tr i giá tr c a bi n ki u s nguyên Y ho c giá tr nguyên Y 2.1.3 Các cách nh n giá tr cho bi n ki u s nguyên nh n giá tr c a m t bi n ki u s nguyên, ta có th dùng m t hai cách sau: - Dùng l nh gán Tên bi n:=bi u th c có giá tr ki u s nguyên; - Nh n t bàn phím b ng l nh Read(tên bi n); ho c Readln(tên bi n); Khi nh n giá tr t bàn phím, ta có th nh n giá tr cho m t s bi n b ng l nh Read/Readln(tênbi n1, tênbi n2, , tênbi nk); Khi th c hi n l nh này, hình s xu t hi n tr , mu n cho bi n giá tr bao nhiêu, ta gõ t bàn phím sau ó gõ phím Enter l c v ngôn ng l p trình Pascal Nguy n Xuân My Tr i hu n luy n IOICamp.net Tuy nhiên có th dùng ch ng trình m t cách ti n l i, nh n giá tr bi n t bàn phím, ta nên vi t kèm thêm dòng thông báo gi i thích c n nh p giá tr nh th Do ó, ta nên dùng l nh nh n giá tr t ng bi n t bàn phím d i d ng m t c p l nh: Write('Dòng thông báo');Readln(tên bi n); Dòng thông báo s c vi t hình gi i thích cho ng i ch y ch ng trình n nh p t bàn phím Ví d , n u ta c n nh p m t s nguyên d ng N≤100 t bàn phím, ta có th dùng c p nh Write('Nhap so nguyen duong N [...]... gi i ph ng trình b c nh t bX + c = 0 USES CRT; VAR B,C:REAL; BEGIN CLRSCR; WRITE('NH P S TH C B: ');READLN(B); WRITE('NH P S TH C C: ');READLN(C); WRITELN('C N GI I PH NG TRÌNH BX + C = 0'); IF B=0 THEN BEGIN IF C=0 THEN WRITELN('PH NG TRÌNH VÔ NH') ELSE WRITELN('PH NG TRÌNH VÔ NGHI M') END ELSE WRITELN('PH NG TRÌNH CÓ M T NGHI M DUY NH T = ',-C/B:0:2); END 2.3 Bi u th c s h c Trong l p trình, bi u... c v ngôn ng l p trình Pascal 12 Nguy n Xuân My Tr i hu n luy n IOICamp.net Write/writeln(Tên bi n:K:L); có ngh a là ta dùng K v trí vi t giá tr c a bi n trong ó dùng L v trí cho các ch c a ph n phân c a s Vi c l a ch n các giá tr c a K và L do ng i l p trình c ng s ch s c a s c n vi t ra, tuy nhiên rõ ràng L không th l n h n K-2 Tr ng h p K=0, l nh có ngh a là dùng ch vi t giá tr Ví d Ch ng trình. .. c, không Khi vi t các u ki n lô gic ph c h p, Pascal dùng các t khoá sau th hi n các liên t ó: AND - và OR - hay là/ho c NOT - không l c v ngôn ng l p trình Pascal 14 Nguy n Xuân My Tr i hu n luy n IOICamp.net Khi ó, n u các u ki n thành ph n là các u ki n so sánh, u ki n này ph i c t trong m t c p ngo c n Ví d v m t toán h c, ta vi t 3 ... DOS, môi tr ng WINDOWS, môi tr ng Linux Khi làm vi c v i Pascal v i t cách nh m t ph n m m, ta có môi tr ng Pascal làm vi c v i Pascal, máy tính c n có file ch ng trình c n thi t N u mu n... Pascal, n u môi tr ng DOS, ta vào th m c ch a file gõ TURBO r i gõ phím ENTER, môi tr ng WINDOWS, ta m kép chu t vào bi u t ng c a Pascal hay BP Sau ó s xu t hi n hình so n th o ch ng trình Pascal. .. l ng khác th ng g p toán cách khai báo v chúng 1.4 C u trúc chung c a m t ch ng trình Pascal t ch ng trình Pascal t ng quát g m ph n sau: Ph n khai báo, Ph n ch ng trình con, Ph n ch ng trình

Ngày đăng: 04/04/2016, 01:04

TỪ KHÓA LIÊN QUAN

w