Kỹ thuật lập trình turbo pascal

117 423 0
Kỹ thuật lập trình turbo pascal

Đ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

CH NG M đ u I Ch ng trình (program) Ch ng trình (CHTR) dãy liên ti p l nh (instructions, commands), hay câu l nh (statements) Ch y ch ng trình (run hay execute) cho máy tính th c hi n l n l t l nh c a CHTR M t CHTR ch y t o m t ti n trình (process) Các ti n trình th ng có tính ch t sau : Các l nh c a CHTR đ c th c hi n m t cách tu n t (sequantial), h t m t l nh l i th c hi n l nh k ti p M t ti n trình luôn có k t qu (result) K t qu đ c đ a th c hi n CHTR ho c sau th c hi n xong K t qu có th ho c sai Thông th ng k t qu đ c in (print) gi y ho c hi n th (display) lên hình CHTR th ng đòi h i d li u (data) Các d li u có th đ c đ a vào tr c ti p ch y CHTR, ho c t thi t b nh bàn phím (keyboard), đ a t (disk), b ng t (tape) , nh ng c ng có th đ t s n CHTR M t s l nh dùng đ mô t (declare) d li u c a CHTR Trong m t s ngôn ng , ng i l p trình (NLT) ph i đ t l nh ph n đ u c a CHTR đ máy s d ng ph n sau M t s l nh d n đ n s quy t đ nh (decision) s th c hi n nhóm l nh ti p theo Ví d , gi i m t ph ng trình b c 2, n u bi t s Δ âm s tr l i ph ng trình nghi m th c, ng c l i, th c hi n l nh tính nghi m th c Th c t , NLT không bi t lúc ch y CHTR, bi t s Δ âm, d ng hay tri t tiêu ? M t s l nh đ c th c hi n l p l p l i nhi u l n NLT có th bi t tr c ho c không bi t tr c s l n l p NLT c ng có th n đ nh vi c l p đ c b t đ u nh th II Ngôn ng l p trình (programming language) II.1 Khái ni m v ngôn ng l p trình Ngôn ng l p trình (NNLT) công c đ ng i giao ti p v i máy tính Trong Tin h c, l nh v c xây d ng phát tri n ngôn NNLT luôn đ t nh ng v n đ m i Ng i ta th ng chia hai lo i NNLT : ngôn ng b c th p (low-level programming language) ngôn ng b c cao (high-level programming language) Ngôn ng b c th p g m ngôn ng máy (machine language) h p ng (assembly language) Trong m t CHTR vi t b ng ngôn ng b c th p, m i câu l nh ch t ng ng v i m t thao tác s c p c a b x lý Vì v y, l p trình ngôn ng b c th p r t phi n ph c d nh m l n PGS.TS PHAN HUY KHÁNH biên so n K thu t l p trình Pascal Ngôn ng b c cao ph ng theo ngôn ng Toán h c g n g i v i ngôn ng t nhiên L p trình ngôn ng b c cao tho i mái h n nh m l n h n s d ng nh ng câu l nh g n g i v i l i gi i toán, d ki m tra, d s a, v.v Hi n có r t nhi u ngôn ng b c cao đ c phát tri n, m i ngôn ng đ c tr ng cho m t phong cách, m t tr ng phái l p trình Vi c ch n m t NNLT ph thu c vào tính ch t c a toán gi i nhi u khi, ph thu c vào thói quen c a NLT Khi th c thi m t CHTR vi t m t ngôn ng c p cao, b x lý ph i chuy n đ i CHTR sang d ng m t CHTR b ng ngôn ng máy t ng đ ng M t CHTR th c hi n ch c n ng g i ch ng trình d ch (compiler) CHTR vi t m t ngôn ng c p cao đ c g i ch ng trình ngu n (source program) CHTR đ c d ch sang d ng ngôn ng máy t ng đ ng đ c g i ch ng trình đích (object program) Máy th c hi n ch ng trình đích v i d li u nh p (input data) đ cho k t qu Khi ch y CHTR có th gây l i (error) L i sinh d ch đ c g i l i th i gian d ch (compile-time error) L i sinh ch y CHTR đ c g i l i th i gian th c hi n (run-time error) Ngoài có th có l i sai sót v thu t gi i ho c sai sót v d li u nh p D li u nh p CHTR ngu n CHTR d ch Máy tính CHTR đích Máy tính D li u k t qu L i th i gian th c hi n L i th i gian d ch II.2 Các y u t c a ngôn ng l p trình Các NNLT b c cao đ c t o thành t ba y u t : b kí t , b t v ng cú pháp II.2.1 B kí t (Character Set) G m kí t đ c phép dùng ngôn ng Các máy vi tính IBM t ng thích th ng s d ng kí t ASCII Có th hi u b kí t có vai trò nh b ng ch (alphabet) c a m t ngôn ng t nhiên M đ u II.2.2 B t v ng (Vocabulary) G m t (word) hay đ n v t v ng (token) dùng đ t o thành câu l nh đ c phân lo i tu theo vai trò c a chúng ngôn ng M i lo i l i đ c chia thành nhóm nh h n tu theo ch c n ng Ví d : Ch ng trình Pascal : Các đ n v t v ng : Program P; var ×, y : integer; begin Read(x); y:=x+2; write(y) end Tên (Identifier) Read, Write, P, x, y H ng (Constant) Toán t (Operator) +, := D u phân cách Program var : ( ) begin end (Delimiter) II.2.3 Cú pháp (Syntax) Cú pháp c a m t NNLT quy đ nh cách th c k t h p kí t thành t , k t h p t thành câu l nh đúng, k t h p câu l nh thành m t ch ng trình hoàn ch nh v m t v n ph m (grammaire) Có th hình dung cách k t h p gi ng cách đ t câu m t ngôn ng t nhiên Th ng ng i ta dùng s đ cú pháp (syntax diagram) ho c d ng chu n Backus-Naur (Backus-Naur Form) đ bi u di n cú pháp II.3 S đ cú pháp II.3.1 Khái ni m S đ cú pháp dùng đ mô t m t ngôn ng l p trình S đ cú pháp giúp ng i s d ng (NSD) hi u đ c d ng th c c a y u t c u t o nên m t CHTR S đ cú pháp đ c c u t o t ph n t sau : Khung tròn, ho c ôval : ch a ký hi u k t thúc (termiral symbol) nh ng ký hi u c th , có ý ngh a có m t xác CHTR Ví d : program, begin, end Khung ch nh t : ch a ký hi u không k t thúc (non-terminal symbol) nh ng khái ni m đ c đ nh ngh a qua nh ng ký hi u k t thúc và/ho c không k t thúc khác Ví d : identifier (tên), program (ch ng_trình), file_name (tên t p) ng n i : đ ng có m i tên đ ch th t xu t hi n c a ph n t khung tròn, hay ch nh t Ví d : Tên NNLT th ng có s đ cú pháp nh sau : s tên ch ch s A Z a z ch T có th xây d ng tên nh : Delta, x1, x2, Sqrt, bánkính v.v Trái l i, chu i kí t sau đ u không ph i tên : K thu t l p trình Pascal 1A β, π bán kính Chú ý d u ti tác máy b t đ u b ng s , không thu c b kí t , có d u cách gi a, v.v ng vi t đ c thêm vào cho d hi u mà không đ a vào CHTR thao II.3.2 Cách đ c s đ cú pháp c theo đ ng n i có m i tên N u g p ký hi u không k t thúc (khung vuông) ti p t c đ c s đ cú pháp c a Ví d : c s đ cú pháp c a tên : b t đ u b ng m t ch cái, sau có th ch cái, ch s (đ ng n i m i tên có th t o thành vùng l p) II.3.3 ánh giá v s đ cú pháp S đ cú pháp ph ng ti n t t đ quen v i ngôn ng l p trình nh ng s đ cú pháp không mô t đ c đ y đ ng pháp c a m t ngôn ng l p trình Ví d : không th hi n đ c s ki n bi n, h ng s c p không đ c trùng tên không mô t đ c nhãn (label) s có th t đ n 9999, có th mô t đ c nh ng r t r c r i II.4 D ng BNF D ng BNF mô t m t v n ph m d i d ng đ nh ngh a M i đ nh ngh a g m hai v đ t cách m t ký hi u đ c bi t, v trái m t ký hi u không k t thúc, v ph i m t dãy ký hi u có th v a có ký hi u không k t thúc, v a có ký hi u k t thúc D ng BNF th ng dùng kí t quy c nh sau : Ký hi u Ý ngh a đ c đ nh ngh a (đ t gi a hai v trái ph i) ::= ho c → ho c = chu i c a hay nhi u m c li t kê {} ho c ho c m c li t kê [] m c li t kê đ c thay th ho c (theo ng a lo i tr ) | Ví d : Tên đ c mô t d i d ng BNF nh sau : = { | } = ‘A’ | | ‘Z’ | ‘a’ | | ‘z’ = ‘0’ | | ‘9’ M đ u III L p trình (programming) Ngôn ng l p trình m i ch công c đ NSD u n máy theo ý mu n, vi c s d ng công c nh th cho có hi u qu l i tu thu c vào k thu t l p trình c a m i ng i L p trình vi c vi t ch ng trình m t ngôn ng l p trình c th đ gi i quy t m t v n đ l p trình, ph i trãi qua b c : Phân tích v n đ c n gi i quy t : N i dung v n đ ? Ph i làm ? Xây d ng thu t gi i c u trúc d li u đ gi i quy t v n đ (làm nh th ?) Công th c c a Niclaus Wirth : Algorithms + Data Structures = Programs Ngh a : Thu t gi i + C u trúc d li u = Ch ng trình Vi t ch ng trình m t ngôn ng l a ch n, ví d Turbo Pascal Ch y th ch ng trình, s a sai, hoàn thi n, cài đ t đem vào ng d ng III.1 Phân tích v n đ Có nhi u ph ng pháp phân tích v n đ Th ng s d ng ph ng pháp phân tích t xu ng (Top-Down Analysis) N i dung ph ng pháp chia v n đ c n gi i quy t thành v n đ nh h n, m i v n đ l i đ c ti p t c chia thành v n đ nh h n n a, v.v cho đ n nh ng công vi c đ n gi n d gi i quy t v nđ vi c vi c vi c 1.1 vi c 1.2 vi c 1.2.1 vi c 1.2.2 vi c vi c 1.2.3 Ví d : Phân tích toán c ng hai phân s đ đ a v toán tìm hai s nguyên c s chung l n nh t c a c ng hai phân s , tr c tiên c n c l c chúng ( LPS), sau quy đ ng m u s (Q MS) C ng hai t s c a hai phân s quy đ ng đ đ c t s L y m u s chung K thu t l p trình Pascal a⎯ + c⎯ b d LPS(a ⁄ b) LPS(c ⁄ d) SCLN(a/b) SCLN(c/d) Q MS(a’ ⁄ b’, c’⁄d’) a” ⁄ M + b” ⁄ M BSCNN(b’, d’) SCLN(b’, d’) Vi c c l c phân s đ c đ a v tìm c s chung l n nh t c a t s m u s quy đ ng m u s , c n tìm b i s chung nh nh t (BSCNN) Vi c tìm b i s chung nh nh t c a hai s l i đ c đ a v tìm c s chung l n nh t c a chúng : tìm BSCNN(b’, d’) = b’ * d’ / SCLN(b’,d’) c s chung l n nh t, s d ng thu t gi i Euclide III.2 Thu t gi i (Algorithm) III.2.1 Khái ni m v thu t gi i Thu t gi i, hay g i thu t gi i (gi i thu t), t p h p đ c tr ng trình t logic toán h c đ n gi n, đ c xác đ nh rõ ràng, đ theo gi i quy t m t v n đ v i m t s b c nh t đ nh C ng có th đ nh ngh a thu t gi i cách gi i quy t toán b ng b c c th theo trình t nh t đ nh ph i k t thúc sau h u h n b c Ví d : Sau thu t gi i tìm s l n nh t Max s a, b, c c vào s a, b, c B c1: B c : Cho a s l n nh t : Max = a B c : So sánh Max v i b, n u Max nh thua b Max l y giá tr b : Max = b B c : So sánh Max v i c, n u Max nh thua c Max l y giá tr c : Max = c B c : In k t qu Max Có th hình dung vi c tìm Max qua bi u th c d ng hàm nh sau : Max (a, b, c) = Max(Max (a, b), c), : Max ( a, b) = if a>b then a else b Có th hi u thu t gi i ph ng pháp gi i m t toán b ng cách chia nh toán thành nh ng thao tác đ n gi n, d th c hi n có trình t h p lý Các b c đ làm m t n, đ s p x p đ v t theo th t , đ gi i m t ph toán h c, v.v đ u có th coi nh ng thu t gi i ng trình Không th có trình t th c hi n gi ng cho m i thu t gi i M t thu t gi i ph i tho mãn ba u ki n sau : M đ u Các thao tác có tính kh thi (th c hi n đ xác đ nh c máy) có trình t M i thao tác ph i c th , rõ ràng ch đ nh t c hi u theo m t ngh a Thu t gi i ph i k t thúc sau m t s h u h n b c Vi c gi i quy t m t toán có th có nhi u thu t gi i khác M i thu t gi i l i có th có hi u qu nh cho m t l p toán Ví d , có nhi u thu t gi i đ s p x p m t da s theo th t t ng d n Tuy nhiên, v i m i thu t gi i s p x p, có th áp d ng cho m t dãy s b t k (đ l n b t k c a m i s s l ng b t k s ph i s p x p) C n phân bi t thu t gi i v i m t s thu t ng g n g i v i thu t gi i nh k ch b n v n ngh , cách s d ng m t đ v t, ch ng trình hành đ ng, v.v III.2.2 Các công c đ trình bày thu t gi i Có hai công c ph bi n : l u đ ngôn ng gi a L u đ (Flowchart) L u đ hay s đ kh i s đ ch a hình ký hi u đ i di n cho thao tác c n ph i làm Trong s đ , hình đ c n i v i b i m i tên ch trình t th c hi n thao tác L u đ g m hình c b n sau : ánh d u b t đ u k t thúc thu t gi i Nh p / xu t d li u X lý (tính toán) d li u Quy t đ nh r nhánh ho c Các h ng r nhánh K thu t l p trình Pascal Ví d : S đ kh i thu t gi i tìm s l n nh t s a, b, c : B tđ u c a, b, c Max = a Max < b Sai úng Max = b Sai Max < c úng Max = c In Max K t thúc Ví d : Gi i ph ng trình b c hai : B tđ u c a, b, c Δ = b*b - 4*a*c Sai D then Writeln (‘Di n tích = ‘, Dientich (bk) ) ; Until bk = End {HINHTRON} Unit DTHTRON ; {T p DTHTRON.PAS} Interface Const Pi = 3.1415926535 ; {1/π = 0.318309886} Function Dientich (R : Real) : Real; Implementation Function Dientich; Begin Dientich := Pi * Sqr (R) End; Begin {ph n kh i đ ng Inilialization} Writeln (‘trong ch ng trình s s d ng Unit DTHTRON !’) End BÀI T P Các t p sau yêu c u th c hi n b c sau : Vi t s đ thu t gi i b ng ngôn ng gi đ nh ho c s đ kh i (b qua b c n u thu t gi i đ n gi n) Vi t ch ng trình đ y đ Turbo Pascal Ch y máy có k t qu (t cho d li u vào c th ) D li u đ c đ c vào t bàn phím K t qu đ c đ a hình Câu l nh gán Các th t c READ WRITEC u trúc r nhánh IF THEN CASE Cho giá tr c a bi n x Tính giá tr bi u th c sau r i đ a k t qu v i ch s l : ⎧5 nãú u0 < x < ⎪ x + ⎪ y = ⎨log ( x + 2) nãú ux ≥ ⎪ x −1 nãú ux ≤ ⎪⎩2 Cho a, b, c (a ≠ 0) Gi i b t ph ng trình b c hai ax2 + bx + c > Các k t qu đ c vi t v i ch s l 105 BÀI T P Nh p vào m t kí t Tùy kí t đ c g vào mà ch ng trình thông báo nh sau : - Là ch s n u kí t ch s - Là ch n u kí t ch A Z ho c a z - Là d u phép toán n u kí t m t d u + - * / = < > có th ng báo - Là d u ngo c n u kí t m t d u ( ) [ ] { } - Là d u t n u kí t m t d u , ; : Là kí t đ c bi t n u kí t khác kí t oán gi i đ c đ c : ch ng trình ch nh n phím Enter, sau đ a s c a gi i đ c đ c m t cách ng u nhiên theo d ng sau : CCnnnn : CC ch vi t hoa b t k (A Z) nnnn ch s b t k (0 9) Ví d : DQ0405, v.v Các c u trúc l p : WHILE, REPEAT FOR Cho x th c n nguyên d ng Tinh t ng : x2 xn S = + x + + + + 2! n! Cho x th c Tính t ng : n x3 x2 n x S = - x + + + + (-1) n! 3! 2! v i đ xác ε cho tr c Ch ng h n ε = 10-5 Bi n th c x thay đ i t đ n b c t ng 0.01 Hãy tính : f (x) = e-x sin (2px) g (x) = e-2xsin (2px ) + cos (2px) Cho giá tr h ng nguyên n Tính : n S= ∑ (a i + 2ai + 4) i =1 n S= ∑ v i > i =1 Tìm t t c s có ch s cho s b ng t ng l p ph Cho x th c n nguyên d ng Tính giá tr ng c a ch s c a n>1d uc n y = x + x + + x Cho tr c s nguyên N Hãy in s nguyên t t đ n N Dãy Fibonaci đ c đ nh ngh a nh sau : F0 = F1 = Fn = Fn-1 + Fn-2 v i n ≥ Cho tr c m t s nguyên n, tính giá tr Fn Ki u m ng (ARRAY) Nh p m t dãy s nguyên sau đ a gía tr sau : - Giá tr trung bình c a c dãy - Giá tr nguyên d ng nh nh t c a dãy Nh p m t dãy s th c o ng c th t c a dãy cho b ng cách đ i ch ph n t th nh t cho ph n t cu i cùng, ph n t th hai cho ph n t sát cu i , sau đ a dãy đ o ng c 106 K thu t l p trình Pascal Nh p m t dãy s nguyên, sau s p x p l i r i đ a k t qu sau s p x p cho s ch n x p lên đ u dãy, s l x p xu ng cu i dãy b ng hai cách sau : - S p x p qua m t dãy khác - S p x p dãy cho Nh p m t ma tr n vuông A c p nxn g m ph n t nguyên, r i đ a : - T ng ph n t m t c t - T ng ph n t m t dòng - Ph n t l n nh t v i ch s c t, dòng t ng ng Nh p vào ma tr n A c p nxm ma tr n B c p mxp (các ph n t s th c) Sau đ a ma tr n C tích A*B Có m t t p hoá đ n, m i hoá đ n có ghi s ti n t ng ng Hai hoá đ n đ c coi lo i n u chúng có s ti n Th ng kê xem có bao nhiên lo i hoá đ n, m i lo i g m có bao nhiên t s ti n t ng ng c a m i lo i a k t qu Ki u xâu kí t (STRING) c vào m t xâu, sau đ a s t c a xâu cho Quy c t cách nh t m t d u tr ng (Space) c vào m t xâu sau đ a t t c t khác c a xâu cho Ví d xâu Dung d ng dung d g m t Dung, d ng d Nh p vào m t m ng h tên c a nh ng ng i l p, sau tách tên t ng ng i c t vào m t m ng riêng Quy c tên t cu i xâu h tên Hãy s p x p l i m ng h tên cho theo tên (th t t n) a danh sách lúc ch a s p x p danh sách sau s p x p c vào m t xâu, sau thay t t c xâu th c đ n (n u có) b ng xâu l nh đ n a xâu ban đ u xâu sau thay Ki u b n ghi (RECORD) Nh p vào m t danh sách N cán b g m h , tên, n m sinh, gi i tính a danh sách g m s th t , h tên, n m sinh c a nh ng cán b đ n n m 1997 đ tu i v h u (gi s tu i nam 60, n 55) M t tam giác đ c xem nh m t t p h p g m m m t ph ng Hãy t ch c d li u ki u b n ghi đ l u gi t a đ c a tam giác Sau nh p vào m t tam giác Ki m tra xem tam giá cho có tính ch t tính ch t d i : - Tam giác đ u - Tam giác vuông - Tam giác có m t góc tù Thông tin m t quy n sách g m : tên tác gi , tên sách, tên nhà xu t bàn n m xu t b n Nh p N quy n sách a m t danh sách g m s th t , tên sách th a mãn m t yêu c u tìm ki m d i : - ho c theo tên tác gi - ho c theo tên nhà xu t bàn - ho c theo n m xu b n : sách có n m xu t b n ≥ giá tr n m (ví d 1996) đ a vào Ki u t p h p (SET) G i C t p h p kí t c a b ng mã ASCII (t p h p v tr ) Nh p vào hai t p h p kí t P Q b t k K t thúc vi c nh p c a m i t p h p kí t ESC (có mã 27) a s ph n t c a t p BP, BQ, BPQ t ng ng l n l t t p h p bù c a P, t p h p bù c a Q, t p h p bù c a P ∩ Q 107 BÀI T P Nh p m t xâu S m t t p h p A g m ch ‘A’ ‘P’ ‘a’ ‘p’ D u hi u k t thúc nh p t p h p A m t ch s b t k Hãy : - Cho bi t có kí t c a S thu c A ? - Xây d ng t p h p AS g m kí t thu c S nh ng không thu c A Cho tr c m t giá tr nguyên d ng n (n ≤ 255), sau xây d ng t p h p S g m s t đ n n Xóa kh i S nh ng s không ph i nguyên t theo thu t gi i sàng Eratosthène Sau đ a n i dung c a t p h p S Ch ng trình (PROCEDURE, FUNCTION) Cho x th c Xây d ng hàm log(a, x) tính logarit c s a c a x Dùng hàm tính giá tr c a bi u th c sau : ⎧log 1− x (1 + x ) x < ⎪ y = ⎨0 x = ⎪log ( x − 1) x > ⎩ 2 Xây d ng hàm UCLN (a, b) tính c ch ng l n nh t c a s nguyên a, b Dùng hàm đ tính c chung l n nh t c a m t dãy s nguyên a1, a2 an v i giá tr n a1 cho L p th t c nh p m t đa th c th t c đ a m t đa th c Dùng th t c nh p đa th c t bàn phím, sau đ a đa th c t ng đa th c tích c a đa th c dã cho L p hàm UPPER(S) chuy n toàn b ch th ng xâu S thành ch in t ng ng hàm LOWER (S) chuy n toàn b ch in xâu S thành ch th ng t ng ng Cho dãy s nguyên a0, a1, , an, xác đ nh b ng quy n p nh sau : a0 = an = nan-1 n u n ch n (n = 2, 4, ) an = n + an-1 n unl (n = 1, 3, ) Hãy đ a giá tr an m i nh p vào m t só n Ch ng trinh k t thúc n ≤ Ki u T p (FILE) Ghi lên đ a m t t p s nguyên đ c nhâp vào t bàn phím D u hi u k t thúc s nguyên Sau t o xong m t s t p, th đ c t p b ng l nh TYPE c a DOS c t p s nguyên đ c t o v a r i đ a t t c s nguyên đ c đ c b ng m t hai cách : - Dùng hàm FileSize - Dùng hàm Eof T o t p DIEMTHI.DAT đ a đ ch a thông tin m thi h c k c a m i h c sinh M i thành ph n c a t p g m tr ng HoTen đ ch a h tên h c sinh tr ng DToan, DTin, DNN đ ch a m Toán, m Tin m Ngo i ng t ng ng c a h c sinh D u hi u k t thúc nh p đ a vào m t h tên r ng c t p DIEMTHI.DAT v a đ c t o 3, sau đ a danh sách thi l i nh ng h c sinh có m thi m i môn d i m Danh sách bao g m s th t , h tên tên môn ph i thi l i c a h c sinh t ng ng c m t t p v n b n t đ a chuy n n i dung t p thành toàn b ch in hay ch th ng (tu theo tr l i t bàn phím) b ng cách s d ng hàm UPPER() LOWER() t o v ch ng trình con, sau ghi t p k t qu lên đ a v i m t tên khác 108 K thu t l p trình Pascal Unit L p trình th hi n dòng ch ch y hinh N i dung dòng ch v trí c a dòng đ c nh p t bàn phím Yêu c u dòng ch ch y liên ti p t ph i qua trái theo nguyên t c vòng tròn L p trình th hi n th i gian c a đ ng h máy lên gi a Ch ng trình ch y liên t c cho đ n gõ phím ESC G i ý : xem th t c Get-time c a Unit DOS L p trình nh n bi t đ c tác đ ng c a phím gõ vào Yêu c u m i gõ m t phím xu t hi n kí t mã c a phím t ng ng i v i phím ch c n ng (các phím F1, F2, , phím di chuy n tr ↑ ↓ ← →, phím Home, End, PageUp, PageDown, Insert, Del), đ a mã c a phím d u * kèm theo G i ý : l p hàm Getkey tr l i mã c a phím đ c gõ Vi t ch ng trình x lý chu i (string) d i d ng menu Yêu c u s d ng Unit cho m i vi c c m t câu r i làm vi c sau : Th ng kê s t , s kí t câu Tách câu thành t In t Nén câu (b kho ng tr ng gi a t ) In k t qu Thay th nh ng xu t hi n c a câu S1 thành câu S2 in k t qu (S1 S2 câu nh p vào) Vi t ch ng trình x lý ma tr n vuông c p n x n d i d ng menu, g m vi c sau : c vào ma tr n vuông c p n x n Tính đ nh th c c a ma tr n Ki m tra tính đ i x ng c a ma tr n (qua đ ng chéo chính) Xác đ nh xem ma tr n có d ng tam giác không ? (các ph n t phía d i đ ng chéo đ u = 0) Yêu c u : S d ng Unit Ba vi c sau có hi u l c ma tr n đ c đ c 10 Các toán v qu n lý + x lý v n b n In ngày m t tu n l In l ch th k 1000 ∏ 3000 Qu n lý m t t p nh p d li u b ng m ng, b ng tr Làm hóa đ n bán hàng Qu n lý danh sách cán b In danh sách cán b PH L C Làm vi c v i Turbo Pascal 6.0, 7.0 I Kh i đ ng T d u nh c l nh c a MS-DOS (C:\ > _), tìm th m c ch a Turbo Pascal, gi s th m c C:\TP, gõ : CD TP↵ TURBO↵ (ho c ch c n gõ TURBO↵ n u có đ ng d n C:\TP l nh PATH t p BAT) Turbo Pascal đ c kh i đ ng s n sàng làm vi c Màn hình làm vi c g m thành ph n : H th ng l nh đ n (Menu) C a s so n th o ph n c a hình có tên tên c a t p ch ng trình có m t Khi m i kh i đ ng, t m th i có tên NONAME00.PAS Dòng l nh đ n ph n m d i hay đ c g i dòng tr ng thái II Làm vi c v i h th ng l nh đ n (Menu) II.1 Kh i đ ng l nh đ n Các l nh đ n đ c kh i đ ng theo ki u đ y xu ng (Pop Up Menu) : nh n Alt ho c F10, m t v t sáng (Highlight) s xu t hi n Menu Lúc có th dùng phím ← → đ di chuy n v t sáng v tên l nh mu n ch n, sau nh n ↓ đ làm xu t hi n danh sách l nh t ng ng PGS.TS Phan Huy Khánh biên so n i ii K thu t l p trình Pasca Tuy nhiên, đ kh i đ ng nhanh, nh n : Alt (ho c F10) + Phím đ i di n Phím đ i di n th ng ch đ u vi t đ m m i tên l nh Ví d , nh n Alt+F đ kh i đ ng l nh File, Alt+E đ kh i đ ng l nh Edit, v.v t t ch đ ch n l nh đ n, nh n phím Esc T h p danh sách l nh (ví d l nh File nh trên), dùng phím ↑ ↓ đ di chuy n v t sáng lên xu ng đ n tên l nh ti p theo c n ch n Sau nh n Enter đ kh i đ ng l nh Tuy nhiên có th nh n tên phím đ i di n cho l nh t ng ng Ví d m m i (New) m t t p CHTR Pascal, nh n Alt+F+N đ kh i đ ng l nh FileNew (ho c Alt+F+Enter l nh n m đ u danh sách đ c ch n m c nhiên) Ví d xem phiên b n c a Turbo Pascal, nh n Alt+H+A đ ch n l nh Help+About Các l nh đ n danh sách l nh đ c phân thành nhóm đ c quy c nh sau : - Trong m i tên l nh đ n có m t ch đ i di n đ c tô d m h n, Ví d New, Open - D u ba ch m ( ) sau m t tên l nh đ ch r ng s có m t h p đ i tho i xu t hi n sau - T h p phím t t (shortcut key) n m cu i bên ph i tên l nh (n u có) Ví d : Phím F3 đ kh i đ ng nhanh l nh Open, F2 đ kh i đ ng nhanh l nh Save, v.v - D u n m cu i tên l nh ch r ng s có m t danh sách l nh c p th p h n khác.Các tên l nh m nh t (Dimmed) có ngh a không th c hi n đ c (b li t) II.2 H p đ i tho i (H T) H T xu t hi n ch n m t l nh đ n có d u ba ch m ( ) phía sau H T có d ng khung hình ch nh t, n i đ ng i s d ng cung c p m c thông tin c n thi t cho vi c th c hi n l nh Sau cách thao tác H T b ng bàn phím : iii PH L C Phím Ý ngh a Esc Tab Shift+Tab ↑ ↓ PageUp PageDown Các nút l nh có bóng đen (shadow) Thoát kh i h p đ i tho i Di chuy n v t sáng gi a m c theo chi u thu n Di chuy n v t sáng gi a m c theo chi u ngh ch a v t sáng h p danh sách c a H T lên m t dòng a v t sáng h p danh sách c a H T xu ng m t dòng Lên m t ô hi n th n i dung c a m t m c Xu ng m t ô hi n th n i dung c a m t m c k t thúc vi c đ i tho i th c thi l nh II.3 So n th o CHTR L nh đ n Window : Phím Ý ngh a Thay đ i / di chuy n W Phóng to-thu nh v v trí c X p c a s sát liên ti p X pl pc as V c a s sau V c a s tr c óng c a s Xem danh sách c a s m , có th xoá b t (Delete) c k t thúc, n u ch ng trinh ch a đ c đ c ghi lên t p : Size / Move Ctrl F5 Zoom F5 Tile Cascade Next F6 Previons Shift-F6 Close Alt+F List Alt+0 (s không) Tr NONAME 00.PAS has been modified Save ? (Có l u c t lên đ a không ?) Yes (đ ng ý l u c t) Không (không) Cancel (ti p t c so n th o) II.4 D ch cho ch y CHTR T ch ng trình so n th o c a s hi n hành, - đ d ch : Compile Alt+F9 - đ ch y : Run Ctrl+F9 iv K thu t l p trình Pasca III Các hàm t khoá c a Turbo Pascal a Các hàm Addr ArcTan Concat Cos DiskFree DosExitCode DSeg EnvStr Eoln FExpand FileSize FSearch GetColor GetDriverName GetGraphMode GetMaxMode GetMaxY GetPaletteSize GetX GraphErrorMsg Hi InstallUserDriver Int KeyPressed Ln MaxAvail Odd Ord OvrGetRetry ParamStr Pos Ptr ReadKey RegisterBGIFont SeekEof Seg SizeOf Sqr SSeg Swap TextWidth TypeOf WhereX Chr Copy CSeg DiskSize DosVersion EnvCount Eof Exp FilePos Frac GetBkColor GetDefaultPalette GetEnv GetMaxColor GetMaxX GetModeName GetPixel GetY GraphResult ImageSize InstallUserFont IOResult Length Lo MemAvail Ofs OvrGetBuf ParamCount Pi Pred Random RegisterBGIDriver Round SeekEoln Sin SPtr Sqrt Succ TextHeight Trunc UpCase WhereY v PH L C b Các t khoá : and asm array begin case const constructor destructor div downto else end exports file for function goto if implementation in inherited inline interface label library mod nil not object of or packed procedure program record repeat set shl shr string then to type unit until uses var while with xor vi K thu t l p trình Pasca M T S L NH SO N TH O THÔNG D NG TRÊN BORLAND TURBO PASCAL Các l nh đ nh chuy n tr (d u chèn) Ctrl - S ho c ← Ctrl - A ho c Ctrl ← Ctrl - F ho c Ctrl → Ctrl - E ho c ↑ Ctrl - R ho c PgUp Ctrl - D ho c → Sang trái m t t Sang ph i m t t Ctrl - X ho c ↓ Ctrl - C ho c PgDn Sang trái / sang ph i m t kí t Cu n lên / cu n xu ng Lên ho c xu ng d i m t trang hình Các l nh v kh i Ctr-KB / Ctrl-KK Ctrl-KT Ctrl-KC Ctrl-KV Ctrl-KY Ctrl-KR Ctrl-KW Ctrl-KH Ctrl-KP Ctrl-KI Ctrl-KU t v trí b t đ u / k t thúc kh i l a L a nguyên m t t Sao (copy) kh i l a vào vùng đ m Di chuy n (Move) kh i l a v t i v trí d u chèn Xóa b kh i l a c m t kh i t đ a vào t i d u chèn Ghi kh i l a lên đ a Thôi đánh d u kh i l a In kh i l a máy in Th t kh i l a vào m t c t Thôi th t kh i l a Các l nh chèn xóa Ctrl-V ho c Ins Ctrl-N Ctrl-Y Ctrl-QY Ctrl-H ho c Backspace (←) Ctrl-G ho c Del Ctrl-T B t t t ch đ chèn Chèn thêm m t dòng m i tr c dòng ch a d u chèn Xóa b dòng ch a d u chèn Xóa b t d u chèn đ n h t dòng Xóa b kí t bên trái d u chèn Xóa b kí t ch a d u chèn Xóa b kí t bên ph i d u chèn Các l nh thông d ng khác F10 Ctrl-KS ho c F2 F3 Alt-F3 Ctrl-I ho c Tab Ctrl-OT Ctrl-OI Ctrl-QL Ctrl-Kn (n = 9) Ctrl-Qn (n= 9) Ctrl-F1 Ctrl-QF Ctrl-QA Ctrl-L Esc Kh i đ ng l nh đ n L u c t ti p t c so n th o M m i m t t p v n b n (ch ng trình) óng c a s làm vi c hi n hành a vào m t d u tab t ch đ tab B t / T t ch đ th t dòng t đ ng Khôi ph c dòng t v trí đánh d u (Marker) t Tìm v trí đánh d u (Marker) t G i tr giúp v ngôn ng Tìm ki m Tìm ki m thay th L p l i l n tìm ki m cu i H y b thao tác v a ti n hành vii PH L C TÀI LI U THAM KH O [1] Jacque Arsac Nh p môn l p trình Nguyên b n : Premières lecons de programmation Trung tâm h th ng Thông tin ISC, Hà n i 1991 [2] Doug Cooper Standard Pascal User Reference Manual W.W.Norton & Company, 1983 [3] Jacque Courtin, Irène Kowaski Initiation l’algorithmique et aux structures de données Volume Dunord, Paris 1994 [4] oàn V n Doanh, Tr n Kh c Tu n 101 thu t gi i ch ng trình Nhà xu t b n Khoa h c K thu t, 1993 [5] Christine Froidevaux, Marie-Claude Gaudel, Michèle Soria Types de données et algorithmes Ediscience International, Paris 1994 [6] oàn Nguyên H i, Nguy n Trung Tr c, Nguy n Anh D ng L p trình c n b n Tr ng i h c K thu t Tp H Chí Minh, 1992 [7] Tr n c Huyên Các v n đ v l p trình Pascal Nhà xu t b n Tr , 1996 [8] Quách Tu n Ng c Ngôn ng l p trình Pascal Tr [9] ng i h c Bách khoa Hà n i, 1993 Walter J Savich Pascal an Introduction to the Art and Science of Programming The Banjamin/Cummings Publishing Company, INC., 1991 [10] Scitec - Công ty liên doanh t v n d ch v k thu t L p trình nâng cao b ng Pascal v i c u trúc d li u T p Ng i d ch : Lê Minh Trung KB, 1991 [11] Nguy n Tu n Th o ch ng b ng ngôn ng Pascal Nhà xu t b n Tr , 1991 [12] Niclaus Wirth L p ch ng trình h th ng Ng i d ch : Ph m Ng c Khôi Nhà xu t b n Khoa h c K thu t, 1986 [13] Niclaus Wirth C u trúc d li u + gi i thu t = ch ng trình Nguyên b n Algorithms + Data Structures = Programs Prentice Hall, 1976 Ng i d ch : Nguy n Qu c C ng Nhà xu t b n Giáo duc, 1991 viii K thu t l p trình Pasca M CL C CH NG M U I II CH NG TRÌNH (PROGRAM) NGÔN NG L P TRÌNH (PROGRAMMING LANGUAGE) II.1 Khái ni m v ngôn ng l p trình II.2 Các y u t c a ngôn ng l p trình II.3 S đ cú pháp II.4 D ng BNF III L P TRÌNH (PROGRAMMING) III.1 Phân tích v n đ III.2 Thu t gi i (Algorithm) III.3 C u trúc d li u 13 CH NG CÁC KI U D LI U C S C A TURBO PASCAL 15 I CÁC KI U ORDINAL 15 I.1 Ki u s nguyên 15 I.2 Ki u logic Boolean 16 I.3 Ki u kí t Char 16 I.4 B ng hàm chu n 17 II KI U S TH C REAL 17 III CÁC PHÉP TOÁN (OPERATORS) 18 IV KI U VÔ H NG LI T KÊ VÀ KI U MI N CON 19 IV.1 Ki u vô h ng li t kê (Enumerated Scalar Type) 19 IV.2 Ki u mi n (Sub-range type) 20 CH NG CÁC KI U D LI U CÓ C U TRÚC 24 I KI U M NG (ARRAY) 24 I.1 M ng m t chi u 24 I.2 M ng nhi u chi u 26 I.3 Bi u di n m ng b nh 27 II XÂU KÍ T (STRING) 29 II.1 Khái ni m 29 II.2 Các phép toán xâu 29 II.3 Ví d 32 III KI U T P H P (SET TYPE) 33 III.1 Khái ni m 33 III.2 Khai báo t p h p 33 III.3 Các phép toán t p h p 34 III.4 Bi u di n c u trúc t p h p máy 37 IV C U TRÚC KI U B N GHI (RECORD) 38 IV.1 c t ki u b n ghi 38 IV.2 B n ghi thay đ i 40 CH I NG CH NG TRÌNH CON (SUBPROGRAM) 45 KHÁI NI M 45 I.1 Th ch ng trình ? 45 I.2 Dùng CTC ? 45 I.3 Khai báo ch ng trình 46 II CÁCH DÙNG TH T C VÀ HÀM 48 II.1 Khái ni m v kh i ph m vi 49 II.2 Ví d 52 ix PH L C III KI U TH T C (PROCEDURAL TYPE) 54 III.1 Khái ni m 54 III.2 Ví d 54 CH NG C U TRÚC T P (FILE) 57 I C U TRÚC T P TU N T 57 I.1 Khái ni m v dãy (sequence) 57 I.2 Các thao tác c b n t p 58 I.3 Truy c p tr c ti p 59 II CÁC T P V N B N (TEXT FILES) 63 II.1 Khái ni m 63 II.2 Vàora t p v n b n chu n 63 II.3 M t s ví d 64 CH NG C U TRÚC D LI U NG (DYNAMIC DATA STRUCTURE) 67 I II KHÁI NI M 67 THAO TÁC I V I CON TR 69 II.1 Phép gán gi a tr ki u 69 II.2 Gi i phóng vùng nh 69 II.3 Phép toán l y đ a ch @ 69 III NG D NG C A CON TR DANH SÁCH LIÊN K T 70 CH NG K THU T L P TRÌNH 73 I PHÁT TRI N CH NG TRÌNH B NG TINH CH T NG B C 73 I.1 N i dung ph ng pháp 73 I.2 Ví d minh ho 73 I.3 S a đ i ch ng trình 83 II CÁC THU T GI I QUI 84 II.1 Khái ni m v đ quy 84 II.2 i u ki n dùng th t c đ qui 87 II.3 Nh ng ví d v th t c đ qui 89 III N V TRONG TURBO PASCAL 101 III.1 Gi i thi u Unit 101 III.2 C u trúc c a Unit 102 III.3 Cách s d ng Unit 103 III.4 Ví d v Unit 103 BÀI T P LAM VI C V I TURBO PASCAL 6.0, 7.0 104 I I II KH I D NG I LAM VI C V I H TH NG L NH D N (MENU) I II.1 Kh i đ ng l nh đ n i II.2 H p đ i tho i (H T) ii II.3 So n th o CHTR iii II.4 D ch cho ch y CHTR iii III CÁC HÀM VÀ T KHOÁ C A TURBO PASCAL IV TÀI LI U THAM KH O M CL C VII VIII [...]... nguyên Các s nguyên có th âm ho c d n ph i tho mãn b t đ ng th c : ng, đ l n ph thu c máy N u n là m t s nguyên, thì − (maxint + 1) ≤ n ≤ maxint 16 K thu t l p trình Pascal Trong đó, maxint là tr nguyên l n nh t máy có th bi u di n đ c Trong Turbo Pascal, có hai h ng chu n là MaxInt = 32 767 và MaxLongint = 2 147 483 647 Các ki u ordinal nguyên nh sau : Type Range Size Shortint -128 127 8-bit Integer -32768... y u t : mi n giá tr và đ chính xác (precision) Mi n giá tr cho bi t đ l n c a s đ c l u tr chính xác cho bi t s s l có ý ngh a sau d u ch m th p phân 18 K thu t l p trình Pascal III Các phép toán (Operators) Các phép toán c a Turbo Pascal nh sau : Op Integer Real String Set + * / DIV MOD Addition Subtraction Multiplication Addition Subtraction Multiplication Division Concatenation Union Difference... là giá tr g n đúng c a c n b c hai c a n thì : Ví d : ng pháp Newton không s (n ⁄ s + s) ⁄ 2 là giá tr g n đúng h n c a n Quá trình tính toán d ng l i khi đ t t i đ chính xác ε c n thi t Gi s ch n ε = 10 − 6, khi đó : n s2 − 1 < ε Các ki u d li u c s c a Turbo Pascal 19 { Ch ng trình đ c vào m t s và in ra giá tr c n b c hai g n đúng t khi đ c vào s 0 } ng ng cho đ n Program Tính_c n_b c_2; Uses Crt;... ho c r t l n, ví d , tr ng l ng c a m t electron là : 0.000 000 000 000 000 000 000 000 000 091 095 600 gram D ng khoa h c (d ng m ) c a s này là 9.10956 × 10−28 gram Trong ngôn ng Pascal, s này có d ng 9.10956E−28 Turbo Pascal có 5 ki u s th c nh sau : Type Range Digits Bytes real 2.9e-39 1.7e38 11-12 6 single 1.5e-45 3.4e38 7-8 4 double 5.0e-324 1.7e308 15-16 8 extended 3.4e-4932 1.1e4932 19-20 10... u trúc ma tr n, v.v C u trúc l u tr có hai d ng : d ng l u tr ngoài cho các thi t b nh ph (b nh ngoài) và d ng l u tr trong đ i v i b nh trong M đ u CH 15 NG 2 Các ki u d li u c s c a Turbo Pascal Ki u d li u trong Pascal cho phép xác đ nh t p h p các giá tr mà các h ng, bi n và hàm có th có ho c do k t qu c a các phép tính ho c hàm Khai báo ki u : type T = AnyType; T = AnyType; Trong đó T là tên... = 0 9 g(f(c)) = c c = '0' '9' Ví d : Các ki u d I.4 li u c s c a Turbo Pascal 17 B ng các hàm chu n gtr Integer Real đ i Integer pred succ abs sqr sin cos arctan ln exp sqrt Boolean odd Char chr Real Boolean Char trunc round ord ord File sin cos arctan ln exp sqrt sqr abs eof eoln pred succ pred succ II Ki u s th c Real Trong m t CHTR Pascal, bi n th c (real variable) đ c dùng đ l u tr các giá tr th... Cj) ≡ (i '*' then t := chú_thích ; Các ki u d Ch li u c s c a Turbo Pascal ng trình đ y đ nh sau : Program Lo i_b _chú_thích; var c : char ; (* kí t đ c ra và đ c chép l i *); t: (chép_l i, b t_đ u_chú_thích, chú_thích,k t_thúc_chú_thích); begin t := chép_l i ; while not... đ c mô t nh sau : 26 K thu t l p trình Pascal Type sequency10 = array['0' '9'] of integer ; Var s : sequency10; L i gi i theo ph ng pháp tinh ch t ng b c : B c1: c chu i kí t , v a đ c v a đ m K t thúc n u đ c vào d u ch m In k t qu B c2: c chu i kí t , v a đ c v a đ m K t thúc n u đ c vào d u ch m Repeat c m t kí t ; N u kí t là ch s , đ m Until kýt = ch m; Ch ng trình chi ti t nh sau : Program m_ch ... l n ng trình g i −−−− −−−− −−−− −−−− −−−− Ch ng trình −−− −−− −−− −−− Ch ng trình (main program) gi i quy t toán ban đ u bây gi tr thành ch ng trình g i g i đ n ch ng trình M i ch ng trình l... th c Pascal có s n m t s hàm chu n (xem ch ng 2, m c I.4) TS PHAN HUY KHÁNH biên soan 45 46 K thu t l p trình Pascal Turbo Pascal đ c b sung thêm nhi u th t c hàm, chúng đ đ n th ch ng trình, ... Structures = Programs Ngh a : Thu t gi i + C u trúc d li u = Ch ng trình Vi t ch ng trình m t ngôn ng l a ch n, ví d Turbo Pascal Ch y th ch ng trình, s a sai, hoàn thi n, cài đ t đem vào ng d ng III.1

Ngày đăng: 03/01/2016, 21:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan