SlideShare une entreprise Scribd logo
1  sur  258
Télécharger pour lire hors ligne
TRƯ NG ð I H C C N THƠ
     KHOA KHOA H C T         NHIÊN




     Giáo trình lý thuy t


LẬP TRÌNH CĂN BẢN B
             MSMH: TN035




    (Áp d ng cho chương trình tín ch )


      Biên so n: ThS. VŨ DUY LINH
                 ThS. NGUY N NH GIA VINH
                 ThS. LÊ TH DI M




               Năm 2010
Giao trinh lap trinh can ban b   tn035
M CL C

    CHƯƠNG 1: D LI U VÀ THU T TOÁN................................................................1
     I. D li u và thông tin: .............................................................................................1
        I.1. Khái ni m.......................................................................................................1
        I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin.........................................1
     II. T bài toán t i chương trình ................................................................................1
        II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t ..................................1
        II.2. Thu t toán (Algorithm).................................................................................2

    CHƯƠNG 2: BORLAND DELPHI .............................................................................5
     I. T ng quan v Delphi.............................................................................................5
        I.1. Delphi là gì.....................................................................................................5
        I.2. Các phiên b n c a Delphi ..............................................................................5
     II. Môi trư ng phát tri n tích h p (IDE) c a Delphi................................................5
        II.1. C a s chính c a Delphi...............................................................................6
        II.2. Thanh th c ñơn chính và thanh công c .......................................................6
        II.3. B ng ch a các thành ph n c a Delphi (Component Palette) .......................7
        II.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh
             (Code Editor) .................................................................................................8
        II.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector) ...................9
        II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView).........................10
     III. C u trúc m t d án Delphi ...............................................................................10
        III.1. T p tin d án: (Delphi project file) ...........................................................10
        III.2. Các t p tin ch a mã l nh (Unit file) ..........................................................11
        III.3. Các t p tin ñ c t bi u m u (Form file).....................................................11
        III.4. Các t p tin tài nguyên (Windows Resource File)......................................13
     IV. Các thao tác cơ b n trên Delphi .......................................................................14
        IV.1. M m t d án m i.....................................................................................14
        IV.2. Lưu d án ..................................................................................................14
        IV.3. Lưu Form (t p tin unit) v i tên khác.........................................................18
        IV.4. Lưu d án v i tên khác..............................................................................18
        IV.5. ðóng d án ................................................................................................18
        IV.6. Thoát kh i Delphi .....................................................................................18

    CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG DELPHI (OBJECT
                  PASCAL).............................................................................................19
     I. B ch vi t .........................................................................................................19
     II. T khóa ..............................................................................................................19
     III. Tên danh hi u t ñ t .........................................................................................20
     IV. H ng .................................................................................................................20
        IV.1. Khái ni m ..................................................................................................20
        IV.2. H ng tr ......................................................................................................20

B môn Tin H c        ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                                                  Trang i
IV.3. H ng ñ nh ki u: .........................................................................................21
     V. Ki u (Type)........................................................................................................21
       V.1. Ð nh nghĩa ..................................................................................................21
       V.2. Cách khai báo .............................................................................................21
     VI. Bi n ..................................................................................................................22
     VII. Bi u th c .........................................................................................................22
       VII.1. ð nh nghĩa................................................................................................22
       VII.2. Th t ưu tiên...........................................................................................22
     VIII. Chuy n ki u (Typecast).................................................................................23
     IX. L i chú thích và các ch d n biên d ch .............................................................24
     X. C u trúc m t d án ch ñ Form (Form Application)....................................25

  CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN .......................26
   I. Các ki u d li u sơ c p (Simple type) ................................................................26
      I.1. Ki u s nguyên (Integer)..............................................................................26
      I.2. Ki u ký t (Char) .........................................................................................26
      I.3. Ki u s th c (Real type)...............................................................................30
      I.4. Ki u logic (Boolean) ....................................................................................34
   II. Câu l nh (statement) ..........................................................................................34
   III. L nh ñơn (Simple statement) ...........................................................................35
   IV. L nh gán (Assignment statement)....................................................................35
   V. L nh g i th t c và hàm ....................................................................................35
   VI. L nh Goto.........................................................................................................37

  CHƯƠNG 5: L P TRÌNH X LÝ S KI N – CÁC THÀNH PH N TRONG GIAO
                 DI N DELPHI ....................................................................................38
   I. L p trình x lý s ki n ........................................................................................38
      I.1. L p (Class) và ñ i tư ng (Object) ...............................................................38
      I.2. Thu c tính ....................................................................................................43
      I.3. Phương th c (Method) .................................................................................44
      I.4. S ki n (Event).............................................................................................44
      I.5. X lý s ki n (Event Handlers)....................................................................45
      I.6. Trình h tr mã l nh (Code Completion /IntelliSense)................................46
   II. Sinh mã t ñ ng và m t s cách s a l i ............................................................46
      II.1. Cách t ñ ng sinh mã (generate code) trong Delphi .................................46
      II.2. Cách s a l i sinh mã trong Delphi.............................................................49
      II.3. Thêm t p tin unit vào d án ........................................................................54
      II.4. Vi t l nh sau khi thêm unit form vào d án................................................58
      II.5. G b t p tin unit form ra kh i d án .........................................................62
   III. Bi u m u (TForm) ............................................................................................62
   IV. Các thành ph n (Component) giao di n ph bi n ............................................68
      IV.1. Nhãn (TLabel) ...........................................................................................68
      IV.2. H p văn b n (TEdit)..................................................................................71

Trang ii                B môn Tin H c              ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
IV.3. Nút l nh (TButton)....................................................................................78
           IV.4. Nhãn và H p nh p (TLabeledEdit) ...........................................................80
           IV.5. H p ñánh d u hay h p ki m (TCheckbox) ...............................................81
           IV.6. Nút tùy ch n (TRadioButton) ...................................................................87
           IV.7. Nhóm tùy ch n (TRadioGroup) ................................................................88
           IV.8. Vùng văn b n (TMemo)............................................................................91
           IV.9. H p danh sách (TListBox) ........................................................................96
           IV.10. TSpinEdit ..............................................................................................100
           IV.11. H p danh sách ñánh d u (TCheckListBox) ..........................................101
           IV.12. H p danh sách các khoá (TValueListEditor) ........................................107
           IV.13. H p li t kê th (TComboBox)...............................................................113
           IV.14. Lư i chu i (TStringGrid)......................................................................118
           IV.15. B ng ch a các thành ph n (TPanel)......................................................124
           IV.16. Thanh th c ñơn chính (TMainMenu)....................................................125
           IV.17. Th c ñơn (TMenuItem) ........................................................................126
           IV.18. Menu ñ i tư ng (TPopupMenu) ...........................................................134

    CHƯƠNG 6: CÁC L NH CÓ C U TRÚC.............................................................138
     I. L nh ghép (Compound statement)....................................................................138
     II. L nh c u trúc r nhánh ....................................................................................138
        II.1. L nh if ... then ... và l nh if ... then ... else................................................138
        II.2. L nh Case ... of .........................................................................................146
     III. C u trúc l nh l p.............................................................................................149
        III.1. L nh l p có s l n xác ñ nh trư c ...........................................................149
        III.2. L nh l p có s l n không xác ñ nh trư c ................................................155

    CHƯƠNG 7: CHƯƠNG TRÌNH CON....................................................................164
     I. Khái ni m..........................................................................................................164
     II. Hàm..................................................................................................................165
     III. Th t c............................................................................................................172
     IV. Truy n tham s ...............................................................................................175
        IV.1. ð nh ki u và không ñ nh ki u cho tham s hình th c.............................175
        IV.2. Truy n b ng tham tr (Value parameter).................................................177
        IV.3. Truy n b ng tham bi n (Variable parameter) .........................................179
        IV.4. Truy n b ng tham s h ng (Constant parameter) ...................................181
        IV.5. Truy n b ng tham s xu t (Out parameter) ............................................184
     V. Chương trình con ñ quy .................................................................................190

    CHƯƠNG 8: KI U LI T KÊ, MI N CON, T P H P ..........................................194
     I. Ki u vô hư ng li t kê (Enumerated scalar type) ..............................................194
        I.1. Khái ni m...................................................................................................194
        I.2. Cách khai báo: Có hai cách khai báo là gián ti p và tr c ti p ...................194
        I.3. M t s hàm chu n áp d ng cho ki u vô hư ng .........................................195

B môn Tin H c        ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                                                 Trang iii
II. Ki u mi n con (Subrange types)......................................................................196
        II.1. Khái ni m..................................................................................................196
        II.2. Cách khai báo............................................................................................196
     III. Ki u t p h p (Set)...........................................................................................197
        III.1. Khái ni m ................................................................................................197
        III.2. Cách khai báo ..........................................................................................197
        III.3. Mô t t p h p...........................................................................................198
        III.4. M t s phép toán trên ki u t p h p .........................................................198

  CHƯƠNG 9: KI U M NG.....................................................................................208
   I. Khái ni m v m ng (Array-type data) ..............................................................208
   II. M ng tĩnh (Static array) ...................................................................................208
      II.1. M ng m t chi u (One-Dimensional array) ...............................................208
      II.2. M ng nhi u chi u (Multi-Dimensional array) ..........................................213
      II.3. M ng hai chi u..........................................................................................215
   III. M ng ñ ng (Dynamic array) ..........................................................................222
      III.1. M ng ñ ng m t chi u .............................................................................222
      III.2. M ng ñ ng nhi u chi u ...........................................................................227
      III.3. H ng m ng...............................................................................................228

  CHƯƠNG 10: KI U CHU I KÝ T ......................................................................229
   I. Các lo i chu i ký t trong Object Pascal ..........................................................229
      I.1. Chu i ng n (ShortString) ...........................................................................229
      I.2. Chu i dài 1 byte (AnsiString) ....................................................................230
      I.3. Chu i dài 2 byte (WideString) ...................................................................232
   II. Các thao tác trên chu i.....................................................................................232
      II.1. Phép toán c ng chu i................................................................................232
      II.2. Phép toán so sánh......................................................................................232
      II.3. Các th t c và hàm chu n x lý chu i ký t .............................................234

  PH L C........ .........................................................................................................246
  TÀI LI U THAM KH O ..........................................................................................252
  B N QUY N TÁC GI ............................................................................................252




Trang iv                B môn Tin H c             ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 1: D li u và Thu t toán

                  CHƯƠNG 1: D             LI U VÀ THU T TOÁN

I. D li u và thông tin:
I.1. Khái ni m
       D li u (Data) là các s ki n không có c u trúc, không có ý nghĩa rõ ràng t i th i
ñi m xét.
       Thông tin (Information) là m t khái ni m tr u tư ng ñư c th hi n qua các thông
báo, các bi u hi n,... ñem l i m t nh n th c ch quan cho m t ñ i tư ng nh n tin. Thông
tin là d li u ñã ñư c x lý xong, mang ý nghĩa rõ ràng t i th i ñi m xét.
       M t h th ng thông tin (Information system) là m t ti n trình ghi nh n d li u, x lý
nó và cung c p t o nên d li u m i có ý nghĩa thông tin, liên quan m t ph n ñ n m t t
ch c, ñ tr giúp các ho t ñ ng liên quan ñ n t ch c.


I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin
      M i quá trình x lý thông tin b ng máy tính hay b ng con ngư i ñ u ñư c th c hi n
theo m t quy trình sau:
      D li u ñư c nh p ñ u vào (Input). Máy tính hay con ngư i s th c hi n quá trình
x lý nào ñó ñ nh n ñư c thông tin ñ u ra (Output).

         NH P D LI U                     X LÝ                       XU T D LI U
           (INPUT)                    (PROCESSING)                    (OUTPUT)

                                    LƯU TR       (STORAGE)

                     Hình 1:     Mô hình t ng quát quá trình x lý thông tin


II. T bài toán t i chương trình
      Trong cu c s ng, chúng ta có r t nhi u bài toán c n ph i gi i quy t. S d ng máy
tính ñi n t ñ gi i các bài toán là ñi u r t hi u qu do kh năng tính toán c a máy tính. ð
máy tính có th hi u ñư c, chúng ta c n ph i có nh ng bư c gi i c th c a bài toán m t
cách ñúng logic, t ñó s d ng m t ngôn ng chương trình hay ph n m m l p trình ñ
hư ng d n máy tính th c hi n các thao tác c n thi t ñ tìm ra k t qu c a bài toán.


II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t
     Ð gi i quy t m t bài toán trên máy tính ñi n t , c n qua các giai ño n sau:
     -    Tìm hi u m c tiêu chính c a bài toán: d li u nh p vào và k t qu xu t.
     -    Xây d ng m t chu i thao tác tính toán theo m t th t logic, g i là thu t gi i.
     -    L p chương trình di n t chi ti t các bư c tính theo thu t gi i.
     -    Nh p chương trình vào máy tính, thông d ch và ch y th ñ s a ch a l i.
     -    Th c hi n gi i bài toán v i s li u thu th p ñư c và ghi nh n k t qu .


B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                    Trang 1
Chương 1: D li u và Thu t toán
     -   Th nghi m v i nhi u trư ng h p d li u nh p khác nhau c a bài toán ñ
         chương trình ki m tra ñúng trong m i trư ng h p t ng quát.
     -   Phân tích k t qu và hoàn ch nh chương trình.
     Trong các bư c trên, vi c thi t k thu t toán là giai ño n quan tr ng nh t.


II.2. Thu t toán (Algorithm)
II.2.1. Ð nh nghĩa
      Thu t toán là m t phương pháp trình bày các bư c gi i quy t m t hay nhi u bài toán
theo m t ti n trình xác ñ nh.


II.2.2. ð c tính c a thu t toán
     -   Tính xác ñ nh: Các thao tác c a thu t toán là rõ ràng và ch c ch n th c hi n ñư c
         ñ d n ñ n k t qu nào ñó.
     -   Tính h u h n và d ng: thu t toán ph i có m t s bư c gi i nh t ñ nh và cu i
         cùng ph i có k t thúc ñi m d ng.
     -   Tính k t qu : V i d li u h p lý, thu t toán ph i cho k t qu th a yêu c u.
     -   Tính ph d ng: Thu t toán ph i gi i ñư c nhi u bài toán có cùng c u trúc v i các
         d li u khác nhau và ñ u d n ñ n m t k t qu mong mu n.
     -   Tính hi u qu : Thu t gi i ph i ñơn gi n, d hi u trong các bư c gi i, t i thi u
         hoá b nh và th i gian th c hi n.
     -   Tính hình th c: Các bư c trong thu t toán là máy móc, nghĩa là nó ph i th c hi n
         ñúng như quy ñ nh mà không c n bi t ñ n m c tiêu cu i cùng.


II.2.3. Các phương pháp bi u di n thu t toán
     Thu t toán có th ñư c di n gi i thông qua 3 phương pháp ph bi n, ñó là s d ng
ngôn ng t nhiên, ngôn ng gi và ngôn ng sơ ñ (lưu ñ ).


II.2.3.1 Ngôn ng t nhiên
      Là cách di n ñ t t nhiên c a con ngư i b ng ngôn ng c a mình ñ mô t các bư c
gi i bài toán.
     Ví d 1: Mô t thu t toán theo ngôn ng t nhiên c a phương trình ax + b = 0
     - Bư c 1: Nh p vào 2 h s a và b.
     -   Bư c 2: Xét ñi u ki n a = 0?
     N u ñúng là a = 0, thì ñi ñ n bư c 3, n u không (nghĩa là a ≠ 0) thì ñi ñ n bư c 4.
     -   Bư c 3: Xét ñi u ki n b = 0?
             N u b = 0, thì báo phương trình có vô s nghi m. Ði ñ n bư c 5.
             N u b ≠ 0, thông báo phương trình vô nghi m. Ði ñ n bư c 5.
     -   Bư c 4: Thông báo phương trình có m t nghi m duy nh t là x = - b/a.
     -   Bư c 5: K t thúc thu t toán.

   Trang 2           B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 1: D li u và Thu t toán
II.2.3.2 Ngôn ng gi
      Là cách di n ñ t các bư c gi i c a bài toán thông qua m t s câu l nh có c u trúc
(như câu l nh if..then..else, for..to..do, while..do, repeat..until)

     Ví d 2: Mô t thu t toán theo ngôn ng gi c a phương trình b c nh t ax + b = 0
     - Bư c 1: Nh p vào 2 h s a và b.
     -   Bư c 2: if (a=0) then
                      if (b=0) then phương trình vô s nghi m
                      else phương trình vô nghi m
                else phương trình có m t nghi m duy nh t x = -b/a
     -   Bư c 3: K t thúc thu t toán.


II.2.3.3 Ngôn ng lưu ñ (Flowchart)
      Là cách di n ñ t các bư c gi i c a bài toán thông qua các ký hi u c a lưu ñ . M t s
qui ư c ký hi u lưu ñ :

                     Ký hi u                           Mô t

                                 ði m b t ñ u ho c k t thúc thu t toán


                                 Thao tác nh p hay xu t


                                 Kh i x lý công vi c

                                 Kh i quy t ñ nh ch n l a


                                 ði m n i

                                 Chu n b

                                 T p h p các t p tin d li u

                                 Kh i chương trình con

                                 Các ghi chú, gi i thích

                                 Dòng tính toán, thao tác c a chương trình

                                 Hình 2:    Các ký hi u lưu ñ




B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                   Trang 3
Chương 1: D li u và Thu t toán
  Ví d 3: Mô t thu t toán theo ngôn ng lưu ñ c a phương trình ax + b = 0

                                   B tñ u


                                   Nh p a,b


                          Sai
          x := -b/a                  a=0

                                  ðúng
                                                Sai      Phương trình
     Xu t nghi m x                   b=0
                                                         vô nghi m
                                         ðúng

                                Phương trình
                                vô s nghi m


                                   K t thúc

                          Hình 3: Lưu ñ thu t toán PTB1




Trang 4           B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi

                      CHƯƠNG 2: BORLAND DELPHI

I. T ng quan v Delphi
I.1. Delphi là gì
       Delphi là m t ngôn ng l p trình c p cao, có trình biên d ch hoàn h o, h tr m nh
v các ki u d li u có c u trúc và thi t k hư ng ñ i tư ng d a trên n n t ng ngôn ng l p
trình hư ng ñ i tư ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngày
nay, Delphi ñã ñư c phát tri n thành môi trư ng xây d ng ng d ng t c th i RAD (Rapid
Application Development). T nh ng công c c a RAD, b n có th gi i quy t nh ng v n
ñ ph c t p trong qua trình phát tri n ph n m m như: l p trình ng d ng v cơ s d li u
(Database), l p trình m ng và Internet (Internet/Networking), l p trình Multimedia
(Animation, sound), l p trình trò chơi (Game) cũng như ñ h a (Graphic) ho c l p trình h
th ng, v.v… không nh ng trên n n Windows mà còn cho c Linux và .NET. Trong giáo
trình này, chúng tôi ch gi i thi u các khái ni m c a Delphi trong ph m vi h ñi u hành
Windows. V i kh năng m nh như v y c a Delphi, b n an tâm khi dùng nó ñ tri n khai
các ng d ng c a b n quy mô nh hay l n. ði u c n quan tâm Delphi là m t ngôn ng
r t thân thi n v i ngư i dùng, phù h p cho nh ng ngư i b t ñ u làm quen v i nó cũng như
nh ng nhà l p trình chuyên nghi p.
       Vì ñây là giáo trình ñư c so n dành cho ñ i tư ng là các sinh viên b t ñ u h c Tin
h c ð i cương thông qua ngôn ng Delphi. Do v y, giáo trình này ch gi i thi u nh ng
khái ni m căn b n nh m giúp cho ngư i h c có m t s ki n th c nh t ñ nh ñ ñ v n d ng
vào gi i các bài toán ho c vi t nh ng chương trình ng d ng nh . Các chương trong giáo
trình này s trình bày các ph n t cơ b n c a Delphi ñ t o m t chương trình ch y trên
n n Windows, ñó chính là môi trư ng phát tri n tích h p IDE (Integrated Development
Environment) và ngôn ng hư ng ñ i tư ng Borland Pascal. Các b n s ñư c h c cách
thi t k (Design), phát tri n (Develop) hay vi t mã l nh (Code), và ki m tra l i (Test)
chương trình ng d ng b i vi c s d ng Delphi.


I.2. Các phiên b n c a Delphi
      Ti n thân c a Delphi chính là ngôn ng ñ i tư ng Borland Pascal, và ñ n ngày nay
Delphi ñã có m t quá trình phát tri n v ng m nh t phiên b n 1 (Delphi1) vào năm 1995,
ñ n phiên b n 8 (Delphi for .NET) năm 2005. Trong giáo trình này, chúng tôi th ng nh t
trình bày v i các b n Delphi 7. ðây là phiên b n phù h p nh t và d dùng nh t hi n nay
cho các b n, ñ i tư ng là các sinh viên h c Tin h c ð i cương.


II. Môi trư ng phát tri n tích h p (IDE) c a Delphi
      Môi trư ng so n th o và thi t k ng d ng c a Delphi 7 chia ra làm 5 ph n: C a s
chính c a chương trình Delphi, c a s thi t k bi u m u (Form designer), c a s li t kê các
thành ph n, ñ i tư ng d ng cây (Object TreeView), c a s thi t l p thu c tính ñ i tư ng
(Object Inspector), và c a s so n th o mã l nh (Code Editor). V i môi trư ng IDE này,
b n s có m t giao di n (Interface) ñ thi t k (Design), biên d ch (Compile) và g l i
(Debug) d án mà b n ñang phát tri n.




B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                  Trang 5
Chương 2: Borland Delphi




                    Hình 1:    Giao di n c a d án m i t o trong Delphi 7

                     C a s chính c a Delphi 7
                     C a s thi t k bi u m u
                     C a s li t kê các ñ i tư ng d ng cây
                     C a s thi t l p các thu c tính và s ki n c a ñ i tư ng
                     C a s so n th o mã l nh


II.1. C a s chính c a Delphi
     C a s chính c a Delphi chính là c a s có thành tiêu ñ ch a tên d án (Project
name) mà b n ñang phát tri n, nó bao g m th c ñơn chính (Main menu), thanh công c
(Toolbar), và b ng thành ph n (Component palette).


II.2. Thanh th c ñơn chính và thanh công c
II.2.1. Thanh th c ñơn chính
     Bao g m các th c ñơn th xu ng (Drop-down menu) như: File, Edit, Search,
View,… và Help. Trong m i menu th xu ng có nhi u ch c năng khác nhau như: m m t
d án m i, lưu d án, biên d ch, g l i, ch y chương trình,… mà giáo trình s trình bày chi
ti t ph n sau.




   Trang 6          B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi




                              Hình 2:     Thanh th c ñơn chính

II.2.2. Thanh công c (Toolbars)
      Trong Delphi có nhi u thanh công c , như: thanh công c chu n (Standard), thanh g
l i (Debug), thanh hi n th (View),… M i nút (Button) trên thanh công c thư ng là m t
thao tác hay m t l nh mà khi ta Click vào nó s thi hành, ví d như: Biên d ch (Compile),
ch y (Run) ho c k t thúc ch y chương trình (Program Reset), …




                                Hình 3:    Các thanh công c

II.3. B ng ch a các thành ph n c a Delphi (Component Palette)
       Thành ph n (Component), hay còn ñư c g i là ñi u khi n, chính là ñ i tư ng có s n
trong Delphi mà b n có th thao tác trên nó trong th i ñi m thi t k form. Có 2 lo i thành
ph n, ñó là thành ph n tr c quan (visual component): nhìn th y khi ch y chương trình, và
thành ph n không tr c quan (nonvisual component): không nhìn th y khi ch y chương
trình. M i thành ph n có m t s tính ch t riêng, và ñư c qu n lý thông qua các thu c tính
(Properties), s ki n (Events) và các phương th c (Methods). Các thu c tính này giúp b n
có th qu n lý và ñi u khi n chương trình c a b n. Khi b n ñ t m t thành ph n lên form,
thì nó s xu t hi n trong c a s Object TreeView và Object Inspector – s ñư c trình bày
   ph n sau.
       Trong b ng ch a các thành ph n có nhi u th (tab) khác nhau, như th Standard,
Addition, Win32, System, Data Access, ADO, Internet, Rave, Server,… Trên m i th ch a
các bi u tư ng (icon) ñ i di n cho các thành ph n.




                   Hình 4:    B ng ch a các thành ph n trong th Standard

B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                 Trang 7
Chương 2: Borland Delphi
II.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh
       (Code Editor)
II.4.1. C a s thi t k bi u m u
      Khi b n t o m t d án m i, môi trư ng phát tri n tích h p IDE c a Delphi s t t o
ra m t bi u m u m i (Form) ñ b n tùy nghi thi t l p các giá tr c a thu c tính d a trên
Properties, và các th t c s ki n d a vào Events, ñư c xác ñ nh trong Object Inspector,
cho vi c thi t k chương trình. Trong h u h t trư ng h p, m t d án thư ng có ít nh t m t
form. Cùng v i các thành ph n trên b ng các thành ph n, b n s thi t k ñư c m t giao
di n cho chương trình mà b n ñang xây d ng là thân thi n nh t cho ngư i s d ng.




    TLabel (StdCtrls)                                                TEdit (StdCtrls)



                                                                      TButton (StdCtrls)



                                                                     TMemo (StdCtrls)


               Hình 5:     Form “Giai phuong trinh bac nhat” và các Components

       Các giá tr c a form và các giá tr c a các component ñ t trên form ñư c lưu trong
t p tin form (form file) và có ph n m r ng .dfm, v i ph n tên ñư c xác ñ nh gi ng như
ph n tên c a ñơn v chương trình form. T p tin form này ch a ñ ng các giá tr c a form
cũng như các giá tr c a các component mà ta ñ t trên form trong quá trình thi t k .


II.4.2. C a s so n th o mã l nh
       M i m t form trong d án ñư c qu n lý trong m t t p tin ñơn v chương trình (Unit
file/ Form unit), tên t p tin c a form unit này ñư c ñ t tên trong qua trình lưu (Save) và có
ph n m r ng là .pas, n i dung c a t p tin form unit này ch a ñ ng các khai báo thông
thư ng c a unit (s ñ c p chi ti t ph n sau) cũng như các hàm s ki n tương ng cho
form và các component trên nó.




   Trang 8           B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi




                Hình 6:    C a s so n th o mã l nh cho form unit untPtb1.Pas

     ð chuy n ñ i gi a c a s so n th o mã l nh v i c a s thi t k bi u m u, ta s
d ng ch c năng View/Toggle Form/Unit t main menu ho c gõ phím ch c năng F12.
     Ví d 1: Trong project “Giai phuong trinh bac nhat” trên, ta lưu unit file v i tên
               untPtb1.Pas và form file s ñư c t ñ ng ñ t theo là untPtb1.dfm
II.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector)




                 Hình 7:    th Properties c a Form và th Events c a Button

      C a s Object Inspector c a form hay component ñ u có 2 th : Properties và Events.
Th Properties dùng ñ xác ñ nh các tính ch t c a ñ i tư ng nói chung (Form, component)
hi n hành m t cách tr c quan, ch ng h n như Caption, Name, Position, Visible,… Th
Events dùng ñ l p trình s ki n: xác ñ nh nh ng ñáp ng c a ñ i tư ng khi nh n tác ñ ng


B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                  Trang 9
Chương 2: Borland Delphi
t chu t (Mouse) ho c bàn phím (Keyboard) như: nh p chu t (OnClick), ñóng c a s
(OnClose), gõ phím Enter (OnEnter),… thông qua các th t c s ki n.
     Khi thay ñ i các giá tr trong th Properties trong quá trình thi t k , thì mã l nh
tương ng c a ñ i tư ng s ñư c thay ñ i theo trong c a s so n th o mã l nh.
II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView)




               Hình 8:    C a s li t kê các ñ i tư ng d ng cây trên frmPTB1

     Object TreeView li t kê các thành ph n tr c quan và không tr c quan mà b n ñ t
chúng trên form hi n hành. M i th i ñi m ch có m t form duy nh t ñư c li t kê.


III. C u trúc m t d án Delphi
III.1. T p tin d án: (Delphi project file)




                            Hình 9:    T p tin d án prjPtb1.dpr


   Trang 10         B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi
       Khi b n b t ñ u m m i m t chương trình ng d ng b ng thao tác:
File/New/Application, Delphi 7 s t ñ ng t o ra m t t p tin d án có tên m c nhiên ban
ñ u là Project1. Khi b n lưu d án, Delphi s l n lư t nh c b n ñ t tên cho các form unit
và tên d án. ví d gi i phương trình b c nh t trên, form unit có tên là untPTB1.pas
và tên d án là prjPTB1.dpr. Ph n tên c a t p tin d án cũng chính là tên c a chương
trình, ñư c khai báo sau t khóa program.
       B n chú ý: ti n t c a unit file là unt, còn project file là prj. Ví d như untPTB1.pas
và prjPTB1.dpr
       ð hi n th t p tin d án, ta vào ch c năng Project/View Source
       Mã l nh ngu n (Source code) ñư c Delphi t ñ ng sinh ra trong t p tin d án bao
g m:
       - Tên chương trình, ñư c khai báo b i t khóa program, ñây cũng chính là tên
          chương trình ng d ng (Application file).
       - Các câu l nh ch d n t i các form và các unit ñư c s d ng trong d án ñư c
          khái báo sau t khóa uses.
       - Ch th biên d ch {$R *.res}: s d ng các t p tin tài nguyên (Resources).
       - Kh i l nh thân chương trình chính, b t ñ u b i t khóa begin và k t thúc là end.
             + Initialize     : Kh i ñ ng chương trình ng d ng.
             + CreateForm : T o form chính (Main form).
             + Run            : Ch y chương trình ng d ng.
       T p tin d án là t p tin trung tâm c a m t d án ñư c tri n khai b i Delphi. T p tin
này ch a ñ ng các tham kh o (Reference) t i t t c các file khác trong d án và liên k t
v i các form cũng như t p tin ñơn v (Unit file) kèm theo c a form. Khi chương trình ñư c
thi hành (Run, execute), nó s b t ñ u t t p tin d án này.
       T p tin này ñư c t ñ ng sinh ra, và như v y, b n không nên thay ñ i n i dung c a
nó ngo i tr trong nh ng trư ng h p c n thi t.
       T p tin d án ñư c lưu v i ph n m r ng .dpr


III.2. Các t p tin ch a mã l nh (Unit file)
Trong m i ng d ng ñư c vi t b i Delphi thư ng g m có 1 t p tin d án (Project file) và
nhi u t p tin ñơn v chương trình (Unit file) – xem l i ph n "C a s so n th o mã l nh"
ph n trên. M i khi ta thêm vào m i m t form (ho c Data Module, Frame,…) thì m t t p
tin unit s ñư c t o ra. Thông thư ng m t d án ñư c tri n khai trong th c t s có nhi u
t p tin unit này. N i dung t p tin unit này ch a ñ ng mã l nh c a chương trình và c a các
s ki n ñi u khi n (Event handles) trên form cũng trên các thành ph n (Component) mà
chúng ñư c ñ t trên nó.
       Unit file ñư c lưu v i ph n m r ng là .pas


III.3. Các t p tin ñ c t bi u m u (Form file)
      N i dung c a t p tin này xác ñ nh m t cách chi ti t các tính ch t hay thu c tính
(Properties) c a form và t t c các ñ i tư ng (nói chung) l p trình viên ñã thi t k . T p tin
này luôn ñi kèm v i m t t p tin unit file.
      Form file ñư c lưu v i ph n m r ng là .dfm
      ð hi n th n i dung t p tin này, b n RClick trên form r i ch n View as Text.



B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                    Trang 11
Chương 2: Borland Delphi
     Ví d 2: Xem n i dung t p tin form file có tên untPTB1.dfm như sau:
     T ch ñ thi t k c a form có tên là frmPTB1, b n RClick trên form r i ch n View
as Text như hình sau:




               Hình 10: Chuy n cách hi n th t d ng Form sang d ng Text

     N i dung c a t p tin untPTB1.dfm   d ng văn b n s có như hình sau:




                      Hình 11: Hi n th d ng text c a untPTB1.dfm

     ð chuy n ñ i t cách hi n th d ng Text sang d ng Form, ta s d ng ch c năng
RClick ch n ch c năng View as Form hay t h p phím Alt+F12:



   Trang 12        B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi




                 Hình 12: Chuy n cách hi n th d ng Text sang d ng Form.

III.4. Các t p tin tài nguyên (Windows Resource File)
      T p tin này cũng ñư c t ñ ng sinh ra. N i dung c a nó ch a ñ ng các thông tin v
phiên b n (Version) cũng như bi u tư ng c a ng d ng (Application icon) d ng mã nh
phân.
      T p tin này có ph n m r ng .res
      Ta có th m t p tin tài nguyên này ch ñ thi t k (Design) b ng chương trình
Image Editor ñư c kèm theo b Delphi.




                 Hình 13: Giao di n chương trình x lý nh – Image Editor




B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT              Trang 13
Chương 2: Borland Delphi
IV. Các thao tác cơ b n trên Delphi
IV.1. M m t d án m i
      ð t o m t d án m i, b n s d ng l nh File/New/Application. Hình nh m t d án
m i t o như hình sau:




                                 Hình 14: D án m i t o

IV.2. Lưu d án
      M t d án trong Delphi s sinh ra khá nhi u t p tin. Do v y, khi lưu d án, b n c n
ph i t o ra 1 thư m c ñ ch a các t p tin trong d án ñó. Quá trình lưu d án như sau:
      ð lưu m t d án, b n s d ng l nh: File/Save All hay t h p phím Shift+Ctrl+S.
Thông thư ng b n ph i lưu các form trư c (m i form là m t t p tin unit có ph n m r ng
là pas), r i sau ñó m i lưu t p tin d án (ph n m r ng là dpr).

     Ví d 3: Lưu d án hi n th câu "Hello world!..." ch có m t form, vào thư m c
             S:HelloWorld như sau:




                              Hình 15: C a s thi t k Form



   Trang 14         B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi
       - T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "Save
Uniti File" (v i i =1..n) như sau:




                            Hình 16: H p tho i Save Uniti As

     Click ch n h p li t kê th "Save in" ñ ch n   ñĩa S: như hình sau:




                      Hình 17: H p tho i Save Uniti As: Ch n       ñĩa

B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT              Trang 15
Chương 2: Borland Delphi
       Ti p ñ n, Click ch n bi u tư ng "Create New Folder" ñ t o thư m c m i ch a các
t p tin c a d án mà b n mu n lưu (thư m c HelloWorld).




                     Hình 18: H p tho i Save Uniti As: T o thư m c

     Sau khi t o thư m c xong, b n Click nút l nh Open ñ m thư m c HelloWorld ra.




                     Hình 19: H p tho i Save Uniti As: M thư m c

   Trang 16         B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 2: Borland Delphi
    Ti p ñ n, b n gõ tên t p tin unit mà b n mu n lưu vào trong h p li t kê th "File
name", ñây là tên untHelloWorld.pas, r i Click Save.




                Hình 20: H p tho i Save Uniti As: Nh p vào tên t p tin unit

     ð n ñây, Delphi s ti p t c xu t hi n h p tho i "Save Projecti As" ñ b n lưu t p tin
d án. B n gõ vào tên t p tin d án vào trong h p li t kê th "File name", ví d này là tên
prjHelloWorld.dpr, và Click Save.




                Hình 21: H p tho i Save Projecti As: Nh p tên t p tin d án

B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                Trang 17
Chương 2: Borland Delphi
      D án ñã ñư c lưu và ñ t tên xong. Sau vi c này, n u b n có ch nh s a chương trình,
ñ lưu l i nh ng s thay ñ i này, b n ch c n ra l nh File/Save All ñ Delphi t ñ ng lưu
toàn b l i d án.
      Hình dư i ñây cho b n th y s lư ng các t p tin trong m t d án Hello World ñã
ñư c lưu, thông qua c a s Windows Explorer như sau:




          Hình 22: Các t p tin c a d án Hello Wolrd trong thư m c S:HelloWorld


IV.3. Lưu Form (t p tin unit) v i tên khác
       B n ch n l nh File/Save As ñ lưu.


IV.4. Lưu d án v i tên khác
       B n ch n l nh File/Save Project As ñ lưu d án.


IV.5. ðóng d án
       B n ch n l nh File/Close All ñ ñóng l i toàn b d án.


IV.6. Thoát kh i Delphi
       Sau khi lưu l i toàn b d án. ð thoát kh i Delphi, b n s d ng l nh: File/Exit




   Trang 18         B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)

       CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG
                                DELPHI (OBJECT PASCAL)

      Trong chương này và chương 4 ti p theo sau, ñ giúp cho vi c làm quen v i các khái
ni m cơ b n ñư c d dàng. Giáo trình s xây d ng các ví d theo d ng chương trình ch
ñ văn b n (Text mode) hay không h tr ñ ho (Console Application). ð t o m t
project m i theo d ng Console Application,              b n s       d ng ch c năng
File/New/Other/Console Application.
I. B       ch vi t
       -     B 26 ch Latin:
                  o Ch in          : A, B, C, ..., X, Y, Z
                  o Ch thư ng : a, b, c, ..., x, y, z
       -     B ch s th p phân : 0, 1, 2, 3, ..., 8, 9
       -     Ký t g ch n i         : _
       -     Các ký hi u toán h c : +, -, *, /, =, <, >, (, ), [, }


II. T khóa
     Là các t riêng c a Object Pascal, có ng nghĩa ñã ñư c xác ñ nh, không ñư c dùng
nó vào các vi c khác ho c ñ t tên m i trùng v i các t khóa.
       T khóa chung: program, begin, end, procedure, function
       -    T khóa ñ khai báo: const, var, type, array, string, record, set, file, label, class,...
       -    T khóa c a l nh l a ch n: if ... then ... else,   case ... of
       -    T khóa c a l nh l p: for... to... do, for... downto... do, while... do, repeat...
            until
       -    T khóa ñi u khi n: with, goto, exit, halt
       -    T khóa toán t : and, or, not, in, div, mod


       Dư i ñây là danh sách m t s t khóa thông d ng:
                        and                   for                        record
                        array                 function                   repeat
                        begin                 goto                       set
                        case                  if                         to
                        class                 implementation             try
                        const                 interface                  type
                        div                   label                      unit
                        do                    mod                        until
                        downto                object                     uses


B môn Tin H c        ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                      Trang 19
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
                     else                      of                          var
                     end                       procedure                   while
                     finalization              program                     with
                     finally                   property

                                    B ng 1: Các t khoá
III. Tên danh hi u t ñ t
      Trong Delphi ñ ñ t tên cho các bi n, h ng, ki u, chương trình con ta dùng các danh
hi u (Identifier). Quy t c ñ t tên c a danh hi u trong Delphi là:
     -   Chi u dài t i ña: 256 ký t .
     -   B t ñ u b ng ch cái ho c d u _ (g ch dư i); ti p theo có th k t h p s và các
         ký t khác.
     -   Không ñ     c ch a kho ng tr ng.
     -   Không trùng v i các t khóa.
     -   Không phân bi t ch hoa và ch thư ng.
     -   Các ñ nh danh l ng nhau ñư c dùng d u . (d u ch m) ñ truy xu t.
     Ví d 1:
     -   Danh hi u t ñ t h p l :        x;     s1;    delta;   pt_bac_2;
     -   Danh hi u t ñ t không h p l :              1S (b t ñ u b ng s ), Del ta (tên có kho ng
         tr ng),...


IV. H ng
IV.1. Khái ni m
     H ng là m t ñ i lư ng có giá tr không ñ i trong quá trình ch y chương trình. Ta
dùng tên h ng ñ chương trình ñư c rõ ràng và d s a ñ i.
     Cú pháp khai báo:
           Const
               Tên_h ng = bi u_th c_xác_ñ nh_giá_tr _c a_h ng;


IV.2. H ng tr
      Trong trư ng h p này thì bi u_th c_xác_ñ nh_giá_tr _c a_h ng là m t tr xác ñ nh.
Giá tr c a bi u th c này s ñư c ñ nh tr m t l n và không thay ñ i.
      Ví d 2:
               Const MaxSize = 100;
               Const x = Abs(-100)+Length('Chao ban'); // h ng x =108
               Const St = 'Borland'+ ' Delphi'; // h ng St = 'Borland Delphi'




   Trang 20          B môn Tin H c           ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
      Chú ý: Bi u th c h ng ñây có th là s , chu i ký t , các h ng true, false, nil,… k t
h p v i các toán t thích h p. Bi u th c h ng không th ch a các l i g i hàm, bi n hay
con tr , ngo i tr m t s hàm ñơn gi n như: Abs, Chr, Length, Succ, Odd,…
IV.3. H ng ñ nh ki u:
       Có th ch a các giá tr ki u m ng, b n ghi, ki u th t c và ki u con tr .
       Cú pháp khai báo h ng ñ nh ki u:
            Const
                 Tên_h ng: ki u_d _li u = giá_tr _h ng;
       Ví d 3:
                 Const MaxSize : Integer =100;
      Trong ví d trên chúng ta khai báo m t h ng có tên là MaxSize, có ki u Integer và
mang giá tr b ng 100. Chúng ta th y, cách khai báo h ng ki u này r t gi ng khai báo và
kh i t o bi n (chúng ta s xem trong ph n bi n). N u ngư i l p trình b t ch th biên d ch
{$J+} thì h ng ñư c xem như bi n; t c là chúng ta có th thay ñ i giá tr c a h ng lúc
chương trình th c thi.
      H ng m ng, h ng ki u b n ghi, h ng ki u th t c chúng ta s tìm hi u chi ti t trong
các ph n sau.
V. Ki u (Type)
V.1. Ð nh nghĩa
     Ngoài các ki u ñã ñ nh s n, Delphi còn cho phép ta ñ nh nghĩa các ki u d li u khác
t các ki u căn b n theo qui t c xây d ng c a Delphi.
V.2.    Cách khai báo
                   Type
                        Tên_ki u = Mô_t _xây_d ng_ki u;


       Ví d 4: ð nh nghĩa các ki u d li u ngư i dùng (ki u d li u m i) và khai báo
               bi n theo ki u v a ñ nh nghĩa
            type //Khai báo ki u ngư i dùng
                   SoNguyen = integer;
                   Diem = single;
                   Tuoi = 1 .. 100;
                   Color = (Red, Blue, Green);
                   Thu = (ChuNhat, Hai, Ba, Tu, Nam, Sau, Bay);
     Và khi ñã khai báo ki u thì ta có quy n s d ng ki u ñã ñ nh nghĩa ñ khai báo bi n
như sau:
            var //Khai báo bi n theo ki u ngư i dùng ñ nh nghĩa
                   i, j: SoNguyen;
                   dtb: Diem;
                   t: Tuoi;

B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                Trang 21
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
                    mau: Color;
                    ngay_hoc: Thu;
VI. Bi n
      Bi n là m t c u trúc ghi nh có tên (ñó là tên bi n hay danh hi u c a bi n). Bi n ghi
nh m t d li u nào ñó g i là giá tr (value) c a bi n. Giá tr c a bi n có th ñư c bi n ñ i
trong th i gian s d ng bi n.
      S truy xu t c a bi n nghĩa là ñ c giá tr hay thay ñ i giá tr c a bi n ñư c th c hi n
thông qua tên bi n.
     Cú pháp khai báo bi n:
              Var
                    tên_bi n [ho c danh_sách_tên_bi n] : Ki u_bi n;

      N u chúng ta khai báo m t danh sách các bi n có cùng ki u thì m i tên bi n cách
nhau m t d u ph y. Ki u bi n là m t ki u d li u chu n trong Delphi ho c ki u ñư c ñ nh
nghĩa b i ngư i dùng.


     Ví d 5:
      var a       : extended ; // khai báo a là m t bi n ki u s th c
            b, c : integer ; // khai báo 2 bi n b, c có ki u s nguyên
            hten : shortstring;
            m_Ok: boolean; // khai báo m_Ok là m t bi n ki u logic
            Chon : char;       // khai báo Chon là m t bi n ki u ký t
      C n khai báo các bi n trư c khi s d ng chúng trong chương trình. Khai báo m t
bi n là khai báo s t n t i c a bi n ñó và cho bi t nó thu c ki u gì.


VII. Bi u th c
VII.1. ð nh nghĩa
      M t bi u th c là m t công th c tính toán bao g m các phép toán (toán t ), h ng,
bi n, hàm và các d u ngo c.
     Ví d 6:
              5 + u * sqrt(t) / sin(pi/2) ;
              (a=5) and (b<>7) or (c >= 10);
              max(x,y);     // g i hàm
              Trong ñó: a, b, c, x, y, u, t là các bi n ñã ñư c khai báo.


VII.2. Th t ưu tiên
      Toán t :
     Trong Delphi g m có các toán t ñư c phân chia như sau:
        -     Toán t s h c        :      +, -, *, /, div, mod

   Trang 22               B môn Tin H c       ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
        -    Toán t logic         :     not, and, or, xor
        -    Toán t quan h        :     =, >, <, <>, <=, >=
        -    Toán t bitwise :           not, and, or, xor, shl, shr
        -    Toán t làm vi c trên t p h p : +, -, *, /, <=, >=, <>*, in
        -    Toán t thao tác trên con tr          : +, -, @ , ^, =, <>
        - Toán t x lý l p ñ i tư ng : as, is
      Khi tính giá tr c a m t bi u th c, ngôn ng Delphi qui ư c th t ưu tiên c a các
phép toán t cao ñ n th p như sau:
                                      Phép toán                Th t ưu tiên
                      @, not                                  ưu tiên 1
                      *, /, div, mod, and, shl, shr, as       ưu tiên 2
                      +, -, or, xor                           ưu tiên 3
                      =, <>, <, >, <=, >=, in, is             ưu tiên 4
                                      B ng 2: Th t ưu tiên toán t


      Qui ư c tính th t ưu tiên:
     Khi tính m t bi u th c có 3 qui t c v th t ưu tiên như sau:
     Qui t c 1.     Các phép toán nào có ưu tiên cao hơn s ñư c tính trư c.
     Qui t c 2.     Trong các phép toán có cùng th t ưu tiên thì s tính toán s ñư c th c
                    hi n t trái sang ph i.
     Qui t c 3.     Ph n trong ngo c t trong ra ngoài ñư c tính toán ñ tr thành m t giá
                    tr ñơn.


VIII. Chuy n ki u (Typecast)
     Chuy n ki u hay còn g i là ép ki u là m t k thu t ñư c dùng ñ chuy n giá tr c a
m t bi u th c sang m t ki u d li u khác.
     Cú pháp chuy n ñ i ki u d li u: Tên_Ki u(bi u_th c);

     V i bi u_th c là m t h ng, thì ta có cách chuy n ki u theo giá tr (value typecasts),
còn v i bi u_th c là m t bi n, thì ta có cách chuy n ki u theo bi n (variable typecasts).

     Ví d 7: Chuy n ki u theo tr :
             t := integer('A');             // chuy n ký t A sang s , t = 65
             v := char(65);                 // chuy n s sang ký t , v = 'A'
             b := boolean(0);               // chuy n s sang ki u Booblean, b = False

     Ví d 8: Chuy n ki u theo bi n:
     var MyChar: char;
             Shortint(MyChar) := 122;               // Gán ký t 'z' vào bi n MyChar


B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                        Trang 23
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal).
     Ví d 9: Vi t chương trình minh ho 2 cách chuy n ki u theo tr và theo bi n:
      T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p
các dòng l nh ñ hoàn ch nh như hình sau:




                      Hình 1: Chương trình chuy n ki u      Console mode

     Nh n t h p phím Ctrl+F9 ñ biên d ch l i.
     Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu           ch ñ Console
như sau:




                             Hình 2: K t qu ch y chương trình.


IX. L i chú thích và các ch d n biên d ch
     Trong Delphi có 3 cú pháp ñ ghi chú thích như sau:
     { chú thích ghi trong c p d u ngo c móc }
     (* chú thích ñư c bao b i c p d u ngo c và d u sao*)
     // chú thích trên m t dòng


      Hai ki u chú thích khác nhau có th th c hi n chú thích l ng nhau nhưng cùng ki u
thì không ñư c phép l ng nhau.



   Trang 24         B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal)
X. C u trúc m t d án     ch ñ Form (Form Application)
    C u trúc c a m t d án (project) trong Delphi g m 2 ph n chính:
    Ph n 1: Là t p tin d án (Project file)




                                 Hình 3: Project file.


    Ph n 2: Là (các) t p tin ñơn v chương trình (Unit file)




                         Hình 4: K t qu ch y chương trình.



B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                Trang 25
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn

  CHƯƠNG 4: CÁC KI U D                     LI U SƠ C P CHU N, L NH ðƠN

I. Các ki u d li u sơ c p (Simple type)
I.1. Ki u s nguyên (Integer)
     Ki u s nguyên bi u di n m t t p h p con các s . Delphi phân làm hai lo i s
nguyên ñư c ñ nh nghĩa b i các t khóa như sau:
              T khóa                     Ph m vi                    Kích thư c
           Integer          -2147483648..2147483647           s nguyên có d u 32 bit
           Cardinal         0..4294967295                     s nguyên dương 32 bit

                                  B ng 1: Ki u nguyên


      Trong ñó, ki u Integer còn ñư c chia ra thành m t s t p con ñư c ñ nh nghĩa b i
các t khóa sau:
              T khóa                     Ph m vi                   Kích thư c
           Shortint          -128..127                      S nguyên có d u 8 bit
           Smallint          -32768..32767                  S nguyên có d u 16 bit
           Longint           -2147483648..2147483647        S nguyên có d u 32 bit
           Int64             -2^63..2^63-1                  S nguyên có d u 64 bit
           Byte              0..255                         S nguyên dương 8 bit
           Word              0..65535                       S nguyên dương 16 bit
           Longword          0..4294967295                  S nguyên dương 32 bit


                                B ng 2: Các ki u nguyên

I.2. Ki u ký t (Char)
     Ki u ký t cơ b n bao g m AnsiChar và WideChar. AnsiChar là ki u ký t thông
thư ng, chi m kích thư c m t byte (tương t b ký t ASCII mà giáo trình s ñ c p
ph n ti p theo). WideChar là ki u ký t hai byte, là ki u ký t dùng ñ bi u di n b mã
Unicode cho t p h p ký t .
      Tuy nhiên, các b n v n có th khai báo s d ng ki u ký t v i t khóa Char. Và trên
th c t thì ki u Char tương ñương v i ki u AnsiChar. Ngoài Char và AnsiChar, Delphi còn
h tr t p ký t m t byte thông qua các ki u: PChar, PAnsiChar và AnsiString. Tương t
thì Delphi cũng h tr t p ký t Unicode (ngoài ki u WideChar) thông qua các ki u:
PWideChar, WideString.
      M t ký t ñư c vi t trong c p d u nháy ñơn (''). Ð ti n trao ñ i thông tin c n ph i
s p x p, ñánh s các ký t , m i cách s p x p như v y g i là b ng mã. B ng mã thông d ng
hi n nay là b ng mã ASCII (American Standard Code for Information Interchange). H mã
ASCII dùng nhóm 7 bit ho c 8 bit ñ bi u di n t i ña 128 ho c 256 ký t khác nhau và mã
hóa theo ký t liên t c theo cơ s 16.


   Trang 26           B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
     H mã ASCII 7 bit, mã hoá 128 ký t liên t c như sau:
          0            :     NUL (ký t r ng)
          1 – 31       :     31 ký t ñi u khi n
          32 – 47      :     các ký t kho ng tr ng SP (space) ! “ # $ % & ‘ ( ) * + , - . /
          48 - 57      :     ký s t 0 ñ n 9
          58 - 64      :     các d u : ; < = > ? @
          65 - 90      :     các ch in hoa t A ñ n Z
          91 – 96      :     các d u [  ] _ `
          97 – 122     :     các ch thư ng t a ñ n z
          123 – 127 :        các d u { | } ~ DEL (xóa)


       H mã ASCII 8 bit (ASCII m r ng) có thêm 128 ký t khác ngoài các ký t nêu
trên, g m các ch cái có d u, các hình v , các ñư ng k khung ñơn và khung ñôi và m t s
ký hi u ñ c bi t.
      Ð th c hi n các phép toán s h c và so sánh, ta d a vào giá tr s th t mã ASCII
c a t ng ký t , ch ng h n: 'A' < 'a' vì s th t mã ASCII tương ng là 65 và 97.

     Hàm Chr(n): Tr v ký t tương ng v i s th t mã ASCII n.
     Hàm Ord(ch): Tr v s th t c a ký t ch trong b ng mã ASCII.


     Ví d 1: V i khai báo bi n var ch: char; stt:byte; thì các câu l nh sau s
             có giá tr như sau:
      ch := chr(65);                //ch = 'A'
      stt := ord('A');              //stt = 65




B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                    Trang 27
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
  B NG MÃ ASCII v i 128 ký t chu n
           Hex     0       1       2         3      4         5        6         7
            0    NUL     DLE     SP      0        @       P        `         p
                     0      16      32       48      64       80        96       112
            1    SOH     DC1     !       1        A       Q        a         q
                     1      17      33       49      65       81        97       113
            2    STX     DC2     “       2        B       R        b         r
                     2      18      34       50      66       82        98       114
            3    ♥       DC3     #       3        C       S        c         s
                     3      19      35       51      67       83        99       115
            4    ♦       DC4     $       4        D       T        d         t
                     4      20      36       52      68       84       100       116
            5    ♣       NAK     %       5        E       U        e         u
                     5      21      37       53      69       85       101       117
            6    ♠       SYN     &       6        F       V        f         v
                     6      22      38       54      70       86       102     118
            7    BEL     ETB     ‘       7        G       W        g         w
                     7      23      39       55      71       87       103     119
            8    BS      CAN     (       8        H       X        h         x
                     8      24      40       56      72       88       104     120
            9    HT      EM      )       9        I       Y        I         y
                     9      25      41       57      73       89       105     121
           A     LF      SUB     *       :        J       Z        j         z
                    10      26      42       58      74       90       106     122
           B     VT      ESC     +       ;        K       [        k         {
                    11      27      43       59      75       91       107     123
           C     FF      FS      ,       <        L               l         |
                    12      28      44       60      76       92 108           124
           D     CR      GS      -       =        M       ]    m             }
                    13      29      45       61      77     93   109           125
           E     SO      RS      .       >        N       ^    n             ~
                    14      30      46       62      78     94   110           126
           F     SI      US      /       ?        O       _    o             DEL
                    15      31      47       63      79     95   111           127

                             Hình 1: B ng mã ASCII chu n




Trang 28          B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
                               B NG MÃ ASCII v i 128 m r ng
          Hex        8         9         A         B         C         D         E         F
           0     Ç         É         á         ░         └         ╨         α         ≡
                     128       144       160       176       192       208       224       240
            1    ü         æ         í         ▒         ┴         ╤         ß         ±
                     129       145       161       177       193       209       225       241
            2    é         Æ         ó         ▓         ┬         ╥         Γ         ≥
                     130       146       162       178       194       210       226       242
            3    â         ô         ú         │         ├         ╙         π         ≤
                     131       147       163       179       195       211       227       243
            4    ä         ö         ñ         ┤         ─         ╘         Σ         ⌠
                     132       148       164       180       196       212       228       244
            5    à         ò         Ñ         ╡         ┼         ╒         σ         ⌡
                     133       149       165       181       197       213       229       245
            6    å         û         ª         ╢         ╞         ╓         µ         ÷
                     134       150       166       182       198       214       230       246
            7    ç         ù         º         ╖         ╟         ╫         τ         ≈
                     135       151       167       183       199       215       231       247
            8    ê         ÿ         ¿         ╕         ╚         ╪         Φ         °
                     136       152       168       184       200       216       232       248
            9    ë         Ö         ⌐         ╣         ╔         ┘         Θ         ·
                     137       153       169       185       201       217       233       249
           A     è         Ü         ¬         ║         ╩         ┌                   ·
                     138       154       170       186       202       218       234       250
           B     ï         ¢         ½         ╗         ╦         █         δ         √
                     139       155       171       187       203       219       235       251
           C     î         £         ¼         ╝         ╠         ▄         ∞         ⁿ
                     140       156       172       188       204       220       236       252
           D     ì         ¥         ¡         ╜         ═         ▌         φ         ²
                     141       157       173       189       205       221       237       253
           E     Ä         ₧         «         ╛         ╬         ▐         ε         ■
                     142       158       174       190       206       222       238       254
            F    Å         ƒ         »         ┐         ╧         ▀         ∩
                     143       159       175       191       207       223       239       255
                                   Hình 2: B ng ASCII m r ng




B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                                    Trang 29
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
      Ví d 2: Vi t chương trình in ra 256 ký t c a b ng mã ASCII:
      T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p
các dòng l nh ñ hoàn ch nh như hình sau:




                         Hình 3: Chương trình in b ng mã ASCII

     Nh n t h p phím Ctrl+F9 ñ biên d ch l i.
     Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu      ch ñ Console
như sau:




                      Hình 4: K t qu chương trình     ch ñ Console


I.3. Ki u s th c (Real type)
I.3.1. Khái ni m
         Delphi, ki u s th c bi u di n m t t p h p các s mang d u ch m ñ ng (float,
real). Kích thư c c a nó tùy thu c vào t khóa mà chúng ta s d ng trong khai báo.




   Trang 30         B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn

                T khóa                      Ph m vi                       Kích thư c
                                                                            (byte)
                Real48          2.9 x 10^-39 .. 1.7 x 10^38                     6
                Single          1.5 x 10^-45 .. 3.4 x 10^38                     4
                Double          5.0 x 10^-324 .. 1.7 x 10^308                   8
                Extended        3.6 x 10^-4951 .. 1.1 x 10^4932              10
                Comp            -2^63+1 .. 2^63 -1                              8
                Currency        -922337203685477.5808..                         8
                                922337203685477.5807
                                B ng 3: Các t khoá c a ki u th c
      Tuy nhiên, ki u s th c chúng ta thư ng dùng ñư c khai báo b ng t khóa Real,
trong Delphi ki u Real tương ñương v i ki u Double.
                T khóa                     Ph m vi                        Kích thư c
                                                                            (byte)
                Real          5.0 x 10^-324 .. 1.7 x 10^308                     8
                                        B ng 4: Ki u Real


I.3.2. M t s phép toán và hàm trên ki u s (s nguyên và s th c)
     Các phép toán s h c hai ngôi:
      Phép toán          Ý nghĩa         Ki u toán h ng Ki u k t qu
           +             C ng            integer, real          integer, real
           -             Tr              integer, real          integer, real
           *             Nhân            integer, real          integer, real
           /             Chia th c       integer, real          real
          div            Chia nguyên     integer                integer
          mod            L y ph n dư     integer                integer
                           B ng 5: Các phép toán 2 ngôi
     Ví d 3: V i các bi n x, y, z ki u integer
          x := 3*2;                      // x = 6
          y := 15 div 6;                 // t = 2
          z := 15.5 mod 5;               // l i
          Tuy nhiên, phép toán + và toán - còn có th là phép toán m t ngôi:
      Phép toán          Ý nghĩa                Ki u toán h ng Ki u k t qu             Ví d
      + (unary)          d u dương              integer, real          integer, real   +7
      - (unary)          d u âm (l y s ñ i)     integer, real          integer, real   -7
                                   B ng 6: Các phép toán 1 ngôi

B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                         Trang 31
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
      Khi th c hi n các phép toán chúng ta c n chú ý m t s ñi m ñ c bi t sau:
      -     K t qu c a phép chia th c (/) luôn luôn có ki u Extented, không quan tâm ñ n
            ki u c a các toán h ng.
      -      Phép toán mod là phép toán l y ph n dư.
      -     Khi th c hi n phép chia x/y (hay là x mod y ho c x div y) thì y ph i khác 0, n u y
            có giá tr 0 thì chương trình s phát sinh l i.
      M t s hàm chuy n ñ i ki u d li u:
      function IntToStr ( Number : Integer ) : string;              //Unit: SysUtils
      function IntToStr ( BigNumber : Int64 ) : string;         //Unit: SysUtils
     Hàm IntToStr là hàm th c hi n vi c chuy n ñ i m t s nguyên (ho c s int64) thành
m t chu i s .
      function FloatToStr(Value: Extended): string;                 //Unit: SysUtils
      function FloatToStr(Value: Extended; const FormatSettings: TFormatSettings): string;
      Hàm FloatToStr chuy n ñ i m t s th c hay s d u ch m ñ ng (Value) thành m t
chu i bi u di n tương ng cho s ñó.
      B ng dư i ñây là các hàm liên quan ñ n ki u s :
                    Hàm                                         Ý nghĩa
  abs(x);                                 |x| : l y giá tr tuy t ñ i c a s x
  arctan(x:extended): extended;           arctang(x)
  cos(x: extended): extended;             cos(x) : l y cos c a x
  exp(x: real): real;                     ex
  frac(x:extended): extended;             Tr v ph n th p phân c a bi n x
  inc(var x [ ; n: longint ] );           tăng bi n x lên 1 ho c n giá tr
  int(x: extended): extended;             Tr v ph n nguyên c a bi n x
  ln(x);                                  ln x : l y logarit nepe c a tr x (e ≅ 2.71828)
  max(a,b: numbertype): numbertype;       Tr v s l n hơn trong hai s a và b.
  min(a,b: numbertype): numbertype;       Tr v s nh thua trong hai s a và b.
                                          Ki m tra n có ph i là s l hay không:
  odd(n: integer|int64):boolean;          True: N u n l
                                          False: N u n ch n.
  pi: extended;                           Tr v giá tr pi=3.1415926535897932385.
                                          Tr v m t s ng u nhiên x và 0 <= x < range,
  random[( range: integer)];
                                          n u range không ch ra thì 0 <= x < 1.
  sqr(x);                                 x2 : l y bình phương tr s x
  sqrt(x);                                     : l y căn b c 2 c a x
  sin(x);                                 sin (x) : l y sin c a x
  succ(x);                                Tr v giá tr sau c a x


   Trang 32              B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
  trunc(x: extended): int64;          L y ph n nguyên c a x
  round(x: extended): int64;          Làm tròn giá tr c a x, l y s nguyên g n x nh t
                               B ng 7: Các hàm x lý s

      Ví d 4: Vi t chương trình tính chu vi và di n tích c a hình ch nh t:
      T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p
các dòng l nh ñ hoàn ch nh như hình sau:




                   Hình 5: Chương trình tính chu vi di n tích hình ch nh t


     Nh n t h p phím Ctrl + F9 ñ biên d ch l i.
     Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu        ch ñ Console
như sau:




                       Hình 6: K t qu chương trình      ch ñ Console




B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                Trang 33
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
I.4. Ki u logic (Boolean)
I.4.1. Khái ni m
      M t d li u thu c ki u boolean là m t ñ i lư ng có th nh n ñư c m t trong hai giá
tr logic là true (ñúng) và false (sai). Delphi cung c p 4 ki u boolean sau:
                              T khóa        Kích thư c (byte)
                             Boolean                  1
                             ByteBool                 1
                             WordBool                 2
                             LongBool            4
                                  B ng 8: Ki u logic
      Trong ñó, ki u Boolean là ki u tương thích v i ki u Boolean c a Pascal và ñư c ưa
thích hơn c . M t giá tr ki u ByteBool, LongBool ho c WordBool ñư c xem là true n u
nó có giá tr khác 0, ngư c l i là false.
I.4.2. Phép toán Boolean
                        T khóa                   Ý nghĩa
                       Not             Phép toán ph ñ nh
                       And             Phép toán và
                       Or         Phép toán ho c
                         B ng 9: Các phép toán trên ki u logic


     Cú pháp:
     •   Phép toán and: (x1) and (x2) and ... and (xn) tr v k t qu là true khi t t c các
         toán h ng là true, ngư c l i tr v false.
     •   Phép or: (x1) or (x2) or ... or (xn) cho k t qu là false khi t t c các toán h ng là
         false, ngư c l i tr v true.
    Ví d 5: Ví d : v i x, y, z ki u boolean, ta có:
            x := (2<3) and (5<5) and (0<>1);     // x = False
            y := (2>3) or (5>5) or (0<>1);       // y = True
            z := not (y);                        // z = False
      ð hi n th giá tr boolean lên màn hình, b n s d ng hàm có s n trong Delphi:
      function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
      N u b n mu n hi n th giá tr c a B là chu i ký t True ho c False thì cho
UseBoolStrs = True; còn n u mu n hi n th giá tr c a B là '-1' ho c '0' thì thì cho
UseBoolStrs = False.
II. Câu l nh (statement)
      Trong m t chương trình Delphi, sau ph n mô t d li u là ph n mô t các câu l nh.
Các câu l nh có nhi m v xác ñ nh các công vi c mà máy tính ph i th c hi n ñ x lý các
d li u ñã ñư c mô t và khai báo. Câu l nh ñư c chia thành câu l nh ñơn gi n và câu l nh
có c u trúc.


   Trang 34          B môn Tin H c       ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
      Các câu l nh ph i ñư c ngăn cách v i nhau b i d u ch m ph y (;) và các câu l nh
có th vi t trên m t dòng hay nhi u dòng.
III. L nh ñơn (Simple statement)
      L nh ñơn là l nh không ch a b t kỳ câu l nh nào khác. Các l nh ñơn bao g m: l nh
gán, l nh g i hàm và th t c, l nh nh y (goto).


IV. L nh gán (Assignment statement)
      M t trong các l nh ñơn gi n và cơ b n nh t c a Delphi là l nh gán. M c ñích c a
l nh này là gán cho m t bi n ñã khai báo m t giá tr nào ñó cùng ki u (hay tương thích)
v i bi n.
      Cú pháp c a l nh gán là:
            Bi n := bi u_th c;
      L nh gán s ñ t l i giá tr hi n hành c a bi n b ng giá tr m i n m bên ph i toán t
gán (d u hi u :=).


     Ví d 6: Khi ñã khai báo
          var
                 c: char;            i: integer;
                 x: real;            p, q: boolean;
     thì ta có th có các phép gán sau:
                 c := 'A';                            c := chr(90);
                 i := 35;                             i := i div 7;
                 x := 0.5;                            x := i + 1;
                 p:= (i >= 1) and (i < 100);          q := not p;
     Ý nghĩa:
       Bi n và các phát bi u gán là các khái ni m quan tr ng c a m t h các ngôn ng l p
trình, chúng ph n ánh cách th c ho t ñ ng c a máy tính, ñó là:
     -   Lưu tr các giá tr khác nhau vào m t ô nh t i nh ng th i ñi m khác nhau.
     -   M t quá trình tính toán có th coi như là m t quá trình làm thay ñ i giá tr c a
         m t (hay m t s ) ô nh nào ñó, cho ñ n khi ñ t ñư c giá tr c n tìm.


V. L nh g i th t c và hàm
      Trong l p trình OOP, thu t ng hàm (Function), th t c (Procedure) và phương th c
(Method) là khái ni m quen thu c v i ngư i l p trình. ð các b n có th n m b t ñư c
ki n th c l p trình trong Delphi, Giáo trình ñưa ra trư c khái ni m này m t cách ng n g n
như sau:
      Hàm và th t c ñư c g i chung là chương trình con. Hàm ñư c xây d ng thông qua
tên hàm và danh sách các tham s hình th c n u có, m i hàm thì luôn tr v duy nh t 1
giá tr . Còn th t c thì có tên th t c và danh sách các tham s hình th c n u có. Khác v i


B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                 Trang 35
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
hàm, th t c KHÔNG tr v m t giá tr nào c , nó thư ng bao g m m t dãy các câu
l nh c n ñư c th c hi n m t cách tu n t ñ gi i quy t m t công vi c nào ñó.
      B n c n phân ra 2 giai ño n rõ ràng: Xây d ng chương trình con, và s d ng chương
trình con.
       Ví d 7: V hàm - Function
       - Xây d ng hàm: B n vi t hàm tính t ng 2 s a và b và k t qu tr v c a hàm chính
là k t qu a + b. Nó có hình d ng như sau:
       function Cong(a, b: single) : single;
       begin
             Cong := a + b;
       end;
       - S d ng hàm (L i g i hàm): b n c n tính phép c ng c a 2 con s c th nào,
       ch ng h n b n mu n 5 c ng v i 7, thì như v y b n s truy n s 5 vào cho a và 7
       vào cho b. C th b n s g i như sau:
              mTong := Cong(5,7);          //v i bi n mTong ki u Single và mTong = 12
Như v y bư c xây d ng: a và b ñư c g i là tham s hình th c. Còn       bư c g i hàm thì 5
và 7 ñư c g i là các tham s th c.


     Ví d 8: V th t c – Procedure
     - Xây d ng th t c: B n vi t th t c hi n th ra màn hình n câu chào “Welcome to
Delphi!…”, v i n có th là 1 l n, 3, 10, … 100 l n ch ng h n:
       procedure Welcome(n: integer);
       var i: integer;
       begin
             for i:=1 to n do writeln (‘Welcome to Delphi!…’);
       end;
      - S d ng th t c (L i g i th t c):    ñây mu n hi n th 5 câu chào, thì b n ra câu
l nh như sau:
              Welcome(5);           //Hi n th      5 câu chào
     Khái ni m phương th c trong m t l p cũng ñư c xem là th t c ho c hàm (Member
method). Ki n th c này các b n s ñư c h c chương 5. ñây, các b n c n chú ý ñi u
này: Phương th c là chương trình con mà Delphi ñã xây d ng s n trong m i l p/thành
ph n (Class/Component) cho b n (Th t kh e làm sao!…), b n ch c n l y trong “túi khôn”
c a Delphi ñ s d ng vi t chương trình mà thôi.
     Tóm l i: Khi s d ng phương th c hay các chương trình con ñã ñư c xây d ng s n
b i Deplhi, b n c n n m rõ m i phương th c, th t c ho c hàm có bao nhiêu tham s hình
th c và ki u c a chúng là gì ñ truy n vào cho chúng các tham s th c tương ng cho
ñúng yêu c u c a b n.
     Ví d v i cú pháp th t c có s n trong Delphi là:
       procedure ShowMessage(const Msg: string);
thì b n ch c n l y ra s d ng v i câu l nh ñơn gi n như sau:
       ShowMessage(‘Toi dang hoc Delphi day nhe!…’);
       Các b n s ñư c h c chi ti t các khái ni m này trong chương “L p Trình X Lý S
Ki n” và “Chương Trình Con” các ph n sau.


   Trang 36         B môn Tin H c     ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn
VI. L nh Goto
     T thân chương trình con, b n có th s d ng l nh goto ñ chuy n hư ng th c hi n
chương trình t i m t v trí b t kỳ thông qua m t nhãn ñã ñư c khai báo trư c.
     Cú pháp l nh goto:    Goto nhãn;
     V i nhãn ñư c khai báo v i cú pháp sau:        Label Tên_nhãn;
     L nh goto là l nh nh y không ñi u ki n, nó chuy n hư ng th c thi c a chương trình
ñ n v trí mà nhãn ñang ñ ng.
       Trong phong cách l p trình OOP, l nh goto t ra b l i th i và r t ít khi ñư c dân l p
trình s d ng.
      Ví d 9: Minh h a l nh goto ñ tính bi u th c a/b.
      T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p
các dòng l nh ñ hoàn ch nh như hình sau:




                 Hình 7: Ví d minh h a l nh goto và khai báo nhãn - label

     Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu           ch ñ Console
như sau:




                                Hình 8: K t qu chương trình.




B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                   Trang 37
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi

   CHƯƠNG 5: L P TRÌNH X                   LÝ S     KI N – CÁC THÀNH PH N
                            TRONG GIAO DI N DELPHI

 I. L p trình x lý s ki n
 I.1. L p (Class) và ñ i tư ng (Object)
       Trong các chương trư c, các b n ñã ñư c bi t ñ n cách l p trình tu n t      ch ñ
 Console Application và bi t ñư c m t s khái ni m cơ s . chương này, các b n s ñư c
 trình bày m t phương pháp l p trình chính c a giáo trình và r t ph bi n hi n nay ñó là l p
 trình s ki n d a trên n n t ng c a l p trình hư ng ñ i tư ng (OOP: Object-Oriented
 Programming).
       Trong cu c s ng, b n th y có nhi u ñ i tư ng ñư c x p chung vào m t lo i/l p,
 ch ng h n như nh ng ngư i còn ñi h c ta x p chung v i m t l p ñó là l p SINHVIÊN,
 nh ng ngư i ñi làm vi c thì x p vào l p CBCNV. Như v y ta có hình nh như sau: t t c
 m i ngư i ñ u ñư c x p chung vào m t l p trên cùng là l p NGƯ I. Ta cũng có th phân
 chia nh ng ngư i trong l p NGƯ I này thành hai nhóm là SINHVIÊN và CBCNV d a
 vào tính ch t ñ phân bi t là ñang ñi làm hay còn ñi h c.

                                                             - H tên
                                       NGƯ I                 - Ngày sinh
                                                             - Phái
                                                                    - v.v...


- Mã s SV
                                                                               - Mã cán b
- Ngành h c           SINHVIÊN                        CBCNV
                                                                               - B c lương
- v.v...
                                                                               - v.v...
                                                                                      - v.v...
                                   Hình 1: Mô hình các l p


       C th : N u xét m t gia ñình công ch c g m 4 th c th    ngư i là ngư i A – cha, B -
 m : ñi làm; anh C, ch D: ñang ñi h c ch ng h n, thì như th   ta có 2 ñ i tư ng A, B ñư c
 t o ra t l p CBCNV và 2 ñ i tư ng C, D ñư c sinh ra t        l p SINHVIÊN và c 4 ñ i
 tư ng này ñ u có nh ng tính ch t chung ñư c th a hư ng t l    p NGƯ I, và như v y 2 l p
 SINHVIÊN và CBCNV là các l p d n xu t t l p NGƯ I.


 I.1.1. L p (Class)
       L p là m t khái ni m ñư c s d ng r t nhi u trong cách l p trình OOP. Vi c hi u rõ
 các ki n th c v l p thì n m ngoài ph m vi c a giáo trình này. Do v y, giáo trình ch ñưa
 ra các khái ni m r t cơ b n v l p, m c ñích ñ các b n d hi u hơn v ñ i tư ng (Object),
 là m t thành ph n r t ph bi n trong l p trình c a Delphi. Như v y, l p ñư c dùng ñ ñ nh
 nghĩa ra ki u d li u c u trúc mà nó bao g m 3 thành ph n cơ b n:
       - Các trư ng (Fields): là các bi n d li u c a l p.



     Trang 38          B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
     -   Các phương th c (Methods): là các hàm hay th t c ñ th c hi n thao tác nào ñó
         trên ñ i tư ng. Có 2 phương th c ñ c bi t trong l p mà b n c n lưu ý ñó là
         phương th c t o (Constructor) và phương th c h y (Destructor) s ñư c dùng khi
         m t ñ i tư ng (Object) ñư c t o nên ho c b h y.
     -   Các thu c tính (Attributes) cu m t l p bao g m các bi n, các h ng, hay tham s
         n i t i c a l p ñó. Tính ch t quan tr ng nh t c a các thu c tính khi chúng là bi n
         là có th b thay ñ i trong quá trình ho t ñ ng c a m t ñ i tư ng. Thông thư ng
         ñ truy xu t các bi n trư ng, ta d a vào tr ng thái c a thu c tính là ñ c (read)
         hay ghi (write) ñ nh n hay là thi t l p giá tr cho chúng.
     L p ñư c khai báo theo cú pháp như sau:
                type className = class (ancestorClass)
                     memberList
                end;
     Trong ñó:
     - ancestorClass là l p cha/t tiên c a l p d n xu t (descendant) là className, l p
        className s ñư c th a hư ng (inheritance) t l p cha. Trong Delphi l p th y t
        là l p TObject.
     - memberList là các thành ph n c a l p là trư ng, phương th c và thu c tính c a
        l p ñã ñư c trình bày trên.

      Trong ví d gi i phương trình b c nh t trên, ta có m t l p TfrmPTB1 ñư c d n
xu t t l p cha là l p TForm, l p TForm l i ñư c d n xu t t l p TCustomForm,... và c
th nó ñư c d n xu t t l p th y t trong Delphi là l p TObject như hình sau:




            Hình 2: L p TfrmPTB1 và các l p t tiên (Ancestor Classes) c a nó

B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                   Trang 39
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
     Ví d 1: Khai báo l p TfrmPTB1 cho form unit untPtb1.Pas       ví d trên như sau:
     type
       TfrmPTB1 = class(TForm)
          lbl_a: TLabel;
          lbl_b: TLabel;
          edt_a: TEdit;
          edt_b: TEdit;
          lbl_KQua: TLabel;
          memKQua: TMemo;
          pnlLine: TPanel;
          btnXuLy: TButton;
          btnKetThuc: TButton;
          procedure btnXuLyClick(Sender: TObject);
          procedure btnKetThucClick(Sender: TObject);
       private
          { Private declarations }
       public
          { Public declarations }
       end;


I.1.2. ð i tư ng (Object)
      ð i tư ng là th c th (Instance) ñư c sinh ra t m t l p (Class), hay nói cách khác
khi ta khai báo m t bi n thu c m t l p nào ñó, thì bi n ñó chính là m t ñ i tư ng m i
ñư c c p phát. ð i tư ng này ñư c t o ra b i phương th c constructor và s b gi i phóng
b i phương th c destructor.


     * Quy cách ñ t tên ñ i tư ng:
       Trong phong cách l p trình chuyên nghi p, quy ư c ñ t tên cho ñ i tư ng thư ng
ñư c ghép 2 ph n: ti n t và tên g i nh c a ñ i tư ng ñó. Ti n t thư ng có 3 ký t ñ
xác ñ nh ñ i tư ng ñó thu c lo i thành ph n nào. Trong giáo trình này g i ý cho các b n
các ti n t (prefix) cho các ñ i tư ng c a các thành ph n như sau:
              ð i tư ng           Ti n t                    Ví d
       Form                        frm       frmWelcome, frmMain
       Label                       lbl       lblHeSo, lblHoTen
       Edit                        edt       edt_a, edtHoTen
       Button                      btn       btnGiai, btnXuLy
       SpinEdit:                   spe       speNhietDo, speGia1TC
       LabeledEdit                 lbe       lbeDonGia, lbeThanhTien
       ListBox                     lbx       lbxBaiHat, lbxFont
       CheckBox                    chk       chkMatHang, chkDelphi
       ComboBox                    cbo       cboToanTu, cboPhai
       GroupBox                    gbx       gbxMonHoc, gbxMatHang


   Trang 40          B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
                ð i tư ng           Ti n t                     Ví d
         CheckListBox                 clb        clbTenMH, clbDMVT
         ValueListEditor              vle        vleMatHang, vleBaoGia
         Memo                         mem        memDanhSach, memKQ
         RadioButton                  rbt        rbtNam, rbtNu
         RadioGroup                   rgp        rgpGioiTinh, rgpCourses
         StringGird                   stg        stgAlphabet, stgMaTranA
         Panel                        pnl        pnlDieuKhien, pnlDrives
         PopupMenu                    pmu        pmnMauSac, pmnGames
         MainMenu                     mmu        mmuMainForm, mmuQLSV
         MenuItem                     mni        mniCopy, mniPaste

                             B ng 1: Quy cách ñ t tên các ñ i tư ng


     Ví d 2: Khai báo m t th c th (ñ i tư ng) frmPTB1 như sau:
     var
             frmPTB1: TfrmPTB1; // ñ i tư ng frmPTB1 c a l p TFrmPTB1


      L p trình hư ng ñ i tư ng là s g n k t gi a d li u và các hàm x lý d li u t o
thành ñ i tư ng. M i ñ i tư ng bao g m:
     -     Thu c tính (Properties): là d li u c a ñ i tư ng.
     -     Phương th c (Methods): là nh ng hành ñ ng mà ñ i tư ng có th thi hành.
     -    S ki n (Events): là nh ng hành ñ ng c a ñ i tư ng ñó ñáp ng l i thông qua th
          t c s ki n do ngư i l p trình cài ñ t, khi ngư i dùng tương tác v i chương trình.


     Ví d 3: Trong chương này, các b n s ñư c h c cách s d ng các thu c tính và các
             s ki n c a các ñ i tư ng thông qua m t chương trình ñ u tiên là
             “prjWelcome.dpr”
     -     Bư c 1: B n vào ch c năng: File/New/Application ñ t o ra d án m i.




                                Hình 3: Hình nh c a New Form.
     T c a s thu c tính và s ki n c a ñ i tư ng (Object Inspector), d a vào thu c tính
name, b n ñ t tên cho form là frmWelcome ñ Delphi ñ nh nghĩa ra 1 l p có tên là
TfrmWelcome ñư c d n xu t t l p cha là TForm như sau:

B môn Tin H c      ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                 Trang 41
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
     type
         TfrmWelcome = class(TForm)
            // memberList
         end;
Và khai báo m t ñ i tư ng có tên là frmWelcome thu c ki u l p TfrmWelcome như sau:
     var
         frmWelcome: TfrmWelcome;




                Hình 4: Hình nh l p TfrmWelcome và ñ i tư ng frmWelcome


     -   Bư c 2: T b ng các thành ph n (Component Palette), click vào th Standard r i
         l n lư t ñ t các thành ph n TLabel, TEdit, và TButton lên Form:




                 Hình 5: Các ñ i tư ng Label, Edit và Button ñ t trên Form.

   Trang 42          B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
      Trong môi trư ng l p trình IDE, các l p trong Delphi thư ng ñư c cài ñ t thành các
thành ph n (TComponent) ñ ngư i l p trình d dàng th a hư ng khi thi t k và vi t mã
l nh. Như v y: Tên l p cũng chính là tên thành ph n.
      T ñây v sau, thu t ng “ñ i tư ng A c a m t thành ph n TA” ñư c vi t ng n
g n là “ñ i tư ng A”.
     Ví d 4: Câu l nh frmWelcome:TForm; ñ c ñ y ñ là “ñ i tư ng frmWelcome
             thu c l p (thành ph n) TForm”. Tuy nhiên, ta có th ñ c g n l i như: “ñ i
             tư ng frmWelcome”, ho c câu l nh btnGiai:TButton; ñư c ñ c là “nút
             l nh btnGiai” hay “ñ i tư ng btnGiai”.


I.2. Thu c tính
     M i thành ph n ñ u có nh ng thu c tính ñ xác ñ nh nh ng ñ c tính c a thành ph n
ñó ch ng h n như màu s c (Color), v trí (Position), kích thư c và tr ng thái (State) c a
chúng. Trong các thu c tính này, b n c n quan tâm nh t ñ n thu c tính tên (Name) c a ñ i
tư ng.
     - Bư c 3: L n lư t thi t l p các thu c tính Name, Caption cho ñ i tư ng Label và
         các thu c tính Name, Text cho ñ i tư ng Edit:



                                                                              Tên l p



                                                                              Tên ñ i
                                                                               tư ng




         Hình 6: C a s thu c tính và s ki n c a ñ i tư ng lblHoTen và edtHoTen


     Tương t , ñ i tư ng thu c thành ph n TButton có thu c tính Name là btnChao và
Caption là “&Chao”, ñ i tư ng c a TForm có thu c tính Name là frmWelcome và Caption
là “Welcome to Delphi 7.0”
     Cách truy xu t thu c tính c a ñ i tư ng:

                              Tên_ñ i_tư ng.Thu c_tính



B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT                Trang 43
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
     Ví d 5: Gán thu c tính Enabled c a lblHoTen b ng True là:
     lblHoten.Enabled := True;


I.3. Phương th c (Method)
     Là th t c (Procedure) ho c hàm (Function) ñã ñư c xây d ng s n cho công vi c nào
ñó c a ñ i tư ng. Ta có th g i phương th c này trong quá trình vi t mã (Coding) ñ
chúng thi hành khi chương trình ch y.
     Cách truy xu t phương th c ñ i tư ng:

                             Tên_ñ i_tư ng.Phương_th c;



     Ví d 6: G i phương th c Hide và Show ñ th c hi n vi c n và hi n c a ñ i tư ng
             frmWelcome là:     frmWelcome.Hide;
                     và              frmWelcome.Show;
I.4. S ki n (Event)
      ðó chính là m t thao tác c a ngư i s d ng tác ñ ng lên ñ i tư ng và nó s ñáp ng
l i b ng vi c th c hi n m t công vi c nào ñó. Các s ki n thông thư ng là trên mouse và
keyboard như: Click, RightClick, DoubleClick, KeyPress, Drag and drop,…




       Tên s ki n



       Tên th t c
       s ki n s
       ki n.




                           Hình 7: S ki n OnClick c a btnChao


      Như hình trên, ñ i tư ng btnChao có nhi u s ki n như: OnClick, OnContextPopup,
OnDragDrop,... c a tab Event tương ng trên c t Action. M i s ki n này tương ng v i
m t th t c s ki n ñ x lý s ki n ñó (Event handers) n m c t bên ph i tương ng.




   Trang 44          B môn Tin H c    ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi
I.5. X lý s ki n (Event Handlers)
       ðó chính là th t c s ki n, thân th t c s ki n này bao g m các câu l nh mà ngư i
l p trình vi t trong nó ñ th c hi n m t công vi c, ch c năng nào ñó.

     Cách hình thành th t c s ki n:

  procedure Tên_Thành_Ph n_Form.Tên_ñ i_tư ngS _ki n([DanhSáchCácThamS ]);



     Ví d 7: Th t c s ki n OnClick cho nút l nh btnChao c a frmWelcome (hay còn
             g i là th t c s ki n btnChaoClick c a l p TfrmWelcome) ñư c hình
             thành như sau:
              procedure TfrmWelcome.btnChaoClick(Sender: TObject);


    tên thành ph n hay             tên nút l nh              s ki n
       tên l p form                  btnChao                 OnClick


     -   Bư c 4:     hình 5, nh p ñúp lên nút l nh Chao, ho c hình 7 b n nh p ñúp lên
         c t bên ph i c a s ki n OnClick tương ng ñ m ra m t th t c s ki n có tên
         là TfrmWelcome.btnChaoClick (Sender: TObject) như sau:




            Hình 8: Th t c s ki n btnChaoClick m i t o c a s ki n OnClick


     Ti p ñ n b n gõ m t s l nh vào trong thân c a th t c s ki n như hình sau:




B môn Tin H c   ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT               Trang 45
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035
Giao trinh lap trinh can ban b   tn035

Contenu connexe

Tendances (10)

Giaotrinh excel 2010
Giaotrinh excel 2010Giaotrinh excel 2010
Giaotrinh excel 2010
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7
 
Bài giảng excel 2010
Bài giảng excel 2010Bài giảng excel 2010
Bài giảng excel 2010
 
Huong dan su dung ms word 2010
Huong dan su dung ms word 2010Huong dan su dung ms word 2010
Huong dan su dung ms word 2010
 
Công nghệ may trang phục 1
Công nghệ may trang phục 1Công nghệ may trang phục 1
Công nghệ may trang phục 1
 
Đề tài: Cấu trúc chức năng của hệ thống thông tin quang vô tuyền
Đề tài: Cấu trúc chức năng của hệ thống thông tin quang vô tuyềnĐề tài: Cấu trúc chức năng của hệ thống thông tin quang vô tuyền
Đề tài: Cấu trúc chức năng của hệ thống thông tin quang vô tuyền
 
Giao trinh csharp tieng viet[bookbooming.com]
Giao trinh csharp tieng viet[bookbooming.com]Giao trinh csharp tieng viet[bookbooming.com]
Giao trinh csharp tieng viet[bookbooming.com]
 
Du an san goft
Du an san goftDu an san goft
Du an san goft
 
Giáo trình công nghệ may trang phục 1 tác giả trần thị thêu
Giáo trình công nghệ may trang phục 1  tác giả trần thị thêu Giáo trình công nghệ may trang phục 1  tác giả trần thị thêu
Giáo trình công nghệ may trang phục 1 tác giả trần thị thêu
 
Giao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi TuongGiao Trinh Lap Trinh Huong Doi Tuong
Giao Trinh Lap Trinh Huong Doi Tuong
 

En vedette

Giao trinh ky_thuat_lap_trinh_nang_cao
Giao trinh ky_thuat_lap_trinh_nang_caoGiao trinh ky_thuat_lap_trinh_nang_cao
Giao trinh ky_thuat_lap_trinh_nang_caoPine Pham
 
Sự tích trầu cau 越南民间故事
Sự tích trầu cau 越南民间故事Sự tích trầu cau 越南民间故事
Sự tích trầu cau 越南民间故事Học Huỳnh Bá
 
你愿意做我的女朋友吗
你愿意做我的女朋友吗你愿意做我的女朋友吗
你愿意做我的女朋友吗Học Huỳnh Bá
 
đề Kiểm tra tiếng trung (汉语考试题)
đề Kiểm tra tiếng trung (汉语考试题)đề Kiểm tra tiếng trung (汉语考试题)
đề Kiểm tra tiếng trung (汉语考试题)Học Huỳnh Bá
 
Bài tập dịch tiếng trung (汉语翻译练习)
Bài tập dịch tiếng trung (汉语翻译练习)Bài tập dịch tiếng trung (汉语翻译练习)
Bài tập dịch tiếng trung (汉语翻译练习)Học Huỳnh Bá
 
Bài tập dịch tiếng trung (汉语翻译练习) copy
Bài tập dịch tiếng trung (汉语翻译练习)   copyBài tập dịch tiếng trung (汉语翻译练习)   copy
Bài tập dịch tiếng trung (汉语翻译练习) copyHọc Huỳnh Bá
 
Bài tập dịch tiếng trung (汉语翻译练习) copy - copy
Bài tập dịch tiếng trung (汉语翻译练习)   copy - copyBài tập dịch tiếng trung (汉语翻译练习)   copy - copy
Bài tập dịch tiếng trung (汉语翻译练习) copy - copyHọc Huỳnh Bá
 
请介绍一下儿你自己?
请介绍一下儿你自己?请介绍一下儿你自己?
请介绍一下儿你自己?Học Huỳnh Bá
 
Nghị định của chính phủ số 82 2001-nđ-cp
Nghị định của chính phủ số 82 2001-nđ-cp Nghị định của chính phủ số 82 2001-nđ-cp
Nghị định của chính phủ số 82 2001-nđ-cp Học Huỳnh Bá
 
Tài liệu môn tiền tệ thanh toán quốc tế
Tài liệu môn tiền tệ thanh toán quốc tếTài liệu môn tiền tệ thanh toán quốc tế
Tài liệu môn tiền tệ thanh toán quốc tếHọc Huỳnh Bá
 
Zhong hua bianxi zidian 中华辨析字典
Zhong hua bianxi zidian 中华辨析字典Zhong hua bianxi zidian 中华辨析字典
Zhong hua bianxi zidian 中华辨析字典Học Huỳnh Bá
 
Bài giảng thanh toán quốc tế
Bài giảng thanh toán quốc tếBài giảng thanh toán quốc tế
Bài giảng thanh toán quốc tếHọc Huỳnh Bá
 

En vedette (19)

Giao trinh ky_thuat_lap_trinh_nang_cao
Giao trinh ky_thuat_lap_trinh_nang_caoGiao trinh ky_thuat_lap_trinh_nang_cao
Giao trinh ky_thuat_lap_trinh_nang_cao
 
Quy hoạch động
Quy hoạch độngQuy hoạch động
Quy hoạch động
 
Sự tích trầu cau 越南民间故事
Sự tích trầu cau 越南民间故事Sự tích trầu cau 越南民间故事
Sự tích trầu cau 越南民间故事
 
考试中文口试题1
考试中文口试题1考试中文口试题1
考试中文口试题1
 
你愿意做我的女朋友吗
你愿意做我的女朋友吗你愿意做我的女朋友吗
你愿意做我的女朋友吗
 
đề Kiểm tra tiếng trung (汉语考试题)
đề Kiểm tra tiếng trung (汉语考试题)đề Kiểm tra tiếng trung (汉语考试题)
đề Kiểm tra tiếng trung (汉语考试题)
 
Bài tập dịch tiếng trung (汉语翻译练习)
Bài tập dịch tiếng trung (汉语翻译练习)Bài tập dịch tiếng trung (汉语翻译练习)
Bài tập dịch tiếng trung (汉语翻译练习)
 
Business english i unit 3
Business english i unit 3Business english i unit 3
Business english i unit 3
 
Bài tập dịch tiếng trung (汉语翻译练习) copy
Bài tập dịch tiếng trung (汉语翻译练习)   copyBài tập dịch tiếng trung (汉语翻译练习)   copy
Bài tập dịch tiếng trung (汉语翻译练习) copy
 
Chu hanvatienghanviet
Chu hanvatienghanvietChu hanvatienghanviet
Chu hanvatienghanviet
 
Bài tập dịch tiếng trung (汉语翻译练习) copy - copy
Bài tập dịch tiếng trung (汉语翻译练习)   copy - copyBài tập dịch tiếng trung (汉语翻译练习)   copy - copy
Bài tập dịch tiếng trung (汉语翻译练习) copy - copy
 
请介绍一下儿你自己?
请介绍一下儿你自己?请介绍一下儿你自己?
请介绍一下儿你自己?
 
Nghị định của chính phủ số 82 2001-nđ-cp
Nghị định của chính phủ số 82 2001-nđ-cp Nghị định của chính phủ số 82 2001-nđ-cp
Nghị định của chính phủ số 82 2001-nđ-cp
 
Tài liệu môn tiền tệ thanh toán quốc tế
Tài liệu môn tiền tệ thanh toán quốc tếTài liệu môn tiền tệ thanh toán quốc tế
Tài liệu môn tiền tệ thanh toán quốc tế
 
考试中文口试题1
考试中文口试题1考试中文口试题1
考试中文口试题1
 
Shenhua
ShenhuaShenhua
Shenhua
 
Bai tap ttqt
Bai tap ttqtBai tap ttqt
Bai tap ttqt
 
Zhong hua bianxi zidian 中华辨析字典
Zhong hua bianxi zidian 中华辨析字典Zhong hua bianxi zidian 中华辨析字典
Zhong hua bianxi zidian 中华辨析字典
 
Bài giảng thanh toán quốc tế
Bài giảng thanh toán quốc tếBài giảng thanh toán quốc tế
Bài giảng thanh toán quốc tế
 

Similaire à Giao trinh lap trinh can ban b tn035

GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035Học Huỳnh Bá
 
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vnLuan Dt
 
Tan cong va_bao_ve_he_thong
Tan cong va_bao_ve_he_thongTan cong va_bao_ve_he_thong
Tan cong va_bao_ve_he_thonglaonap166
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]bookbooming1
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]bookbooming1
 
Hd sd word2010
Hd sd word2010Hd sd word2010
Hd sd word2010Heo Gòm
 
Hướng Dẫn Sử Dụng Word 2010
Hướng Dẫn Sử Dụng Word 2010Hướng Dẫn Sử Dụng Word 2010
Hướng Dẫn Sử Dụng Word 2010Nguyễn Văn Mạnh
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]bookbooming1
 
Bai giang-java-2008-120920104133-phpapp01
Bai giang-java-2008-120920104133-phpapp01Bai giang-java-2008-120920104133-phpapp01
Bai giang-java-2008-120920104133-phpapp01Tô Tùng
 
Bai giang-java-2008
Bai giang-java-2008Bai giang-java-2008
Bai giang-java-2008khacuy09
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oopna
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oopKu Anh
 
Tìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipTìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipleduyk11
 
Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]bookbooming1
 
Giao trinh thdc
Giao trinh thdcGiao trinh thdc
Giao trinh thdcPhi Phi
 
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyAi cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyGiang Nguyễn
 
Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8 Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8 David Nguyen
 

Similaire à Giao trinh lap trinh can ban b tn035 (20)

GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035GIÁO TRÌNH LẬP TRÌNH CĂN BẢN  tn035
GIÁO TRÌNH LẬP TRÌNH CĂN BẢN tn035
 
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
 
Tan cong va_bao_ve_he_thong
Tan cong va_bao_ve_he_thongTan cong va_bao_ve_he_thong
Tan cong va_bao_ve_he_thong
 
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]Giáo trình nhập môn tin học   đỗ thị mơ[bookbooming.com]
Giáo trình nhập môn tin học đỗ thị mơ[bookbooming.com]
 
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]Giáo trình tin học đại cương   đỗ thị mơ[bookbooming.com]
Giáo trình tin học đại cương đỗ thị mơ[bookbooming.com]
 
Hd sd word2010
Hd sd word2010Hd sd word2010
Hd sd word2010
 
Word2010
Word2010Word2010
Word2010
 
Hướng Dẫn Sử Dụng Word 2010
Hướng Dẫn Sử Dụng Word 2010Hướng Dẫn Sử Dụng Word 2010
Hướng Dẫn Sử Dụng Word 2010
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
 
Bai giang-java-2008-120920104133-phpapp01
Bai giang-java-2008-120920104133-phpapp01Bai giang-java-2008-120920104133-phpapp01
Bai giang-java-2008-120920104133-phpapp01
 
Bai giang-java-2008
Bai giang-java-2008Bai giang-java-2008
Bai giang-java-2008
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Gtrinh oop[1]
Gtrinh oop[1]Gtrinh oop[1]
Gtrinh oop[1]
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Giao trinh word 2003
Giao trinh word 2003Giao trinh word 2003
Giao trinh word 2003
 
Tìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipTìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ip
 
Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]
 
Giao trinh thdc
Giao trinh thdcGiao trinh thdc
Giao trinh thdc
 
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-lyAi cuong-ve-cac-he-thong-thong-tin-quan-ly
Ai cuong-ve-cac-he-thong-thong-tin-quan-ly
 
Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8 Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8
 

Plus de Học Huỳnh Bá

BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTBÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTHọc Huỳnh Bá
 
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Học Huỳnh Bá
 
Tell about a girl boy that you interested in
Tell about a girl boy that you interested inTell about a girl boy that you interested in
Tell about a girl boy that you interested inHọc Huỳnh Bá
 
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...Học Huỳnh Bá
 
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)Học Huỳnh Bá
 
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Học Huỳnh Bá
 
Chinese email 高职高专院校英语能力测试a b级
Chinese email  高职高专院校英语能力测试a b级Chinese email  高职高专院校英语能力测试a b级
Chinese email 高职高专院校英语能力测试a b级Học Huỳnh Bá
 
English chinese business languages bec中级写作电子讲义
English   chinese business languages bec中级写作电子讲义English   chinese business languages bec中级写作电子讲义
English chinese business languages bec中级写作电子讲义Học Huỳnh Bá
 
Chinese english writing skill - 商务写作教程
Chinese english writing skill  - 商务写作教程Chinese english writing skill  - 商务写作教程
Chinese english writing skill - 商务写作教程Học Huỳnh Bá
 
Giấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuGiấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuHọc Huỳnh Bá
 
祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application formHọc Huỳnh Bá
 
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...Học Huỳnh Bá
 
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngGiáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngHọc Huỳnh Bá
 
Giáo trình ms power point 2003
Giáo trình ms power point 2003Giáo trình ms power point 2003
Giáo trình ms power point 2003Học Huỳnh Bá
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Học Huỳnh Bá
 
Giáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngGiáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngHọc Huỳnh Bá
 
Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Học Huỳnh Bá
 
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữBảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữHọc Huỳnh Bá
 
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Học Huỳnh Bá
 

Plus de Học Huỳnh Bá (20)

BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤTBÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
BÀI GIẢNG NGỮ PHÁP TIẾNG ANH NGÀNH GIA CÔNG SẢN XUẤT
 
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
Civil aviation english chinese-vietnamese vocabulary (popular language) - từ ...
 
Tell about a girl boy that you interested in
Tell about a girl boy that you interested inTell about a girl boy that you interested in
Tell about a girl boy that you interested in
 
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...Thư xin đi xe đón nhân viên shuttle transport service proposal  letter (chine...
Thư xin đi xe đón nhân viên shuttle transport service proposal letter (chine...
 
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)Từ vựng chuyên ngành sản xuất giày da (tiếng trung   việt) 鞋类常见词汇(汉语 - 越南语)
Từ vựng chuyên ngành sản xuất giày da (tiếng trung việt) 鞋类常见词汇(汉语 - 越南语)
 
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
Common shoe and footwear vocabulary (english chinese-vietnamese)鞋类常见词汇(英语、汉语、...
 
Chinese email 高职高专院校英语能力测试a b级
Chinese email  高职高专院校英语能力测试a b级Chinese email  高职高专院校英语能力测试a b级
Chinese email 高职高专院校英语能力测试a b级
 
English chinese business languages bec中级写作电子讲义
English   chinese business languages bec中级写作电子讲义English   chinese business languages bec中级写作电子讲义
English chinese business languages bec中级写作电子讲义
 
Chinese english writing skill - 商务写作教程
Chinese english writing skill  - 商务写作教程Chinese english writing skill  - 商务写作教程
Chinese english writing skill - 商务写作教程
 
Giấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩuGiấy báo thay đổi hộ khẩu, nhân khẩu
Giấy báo thay đổi hộ khẩu, nhân khẩu
 
祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form祈福英语实验学校入学申请表 Clifford school application form
祈福英语实验学校入学申请表 Clifford school application form
 
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
LIST OF CHINESE & VIETNAMESE COLOR NAMES 表示颜色的英语&越南语词汇 DANH MỤC TỪ VỰNG VỀ MÀ...
 
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trườngGiáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
Giáo án nghiệp vụ đàm thoại tiếng anh trong nhà trường
 
Giáo trình ms power point 2003
Giáo trình ms power point 2003Giáo trình ms power point 2003
Giáo trình ms power point 2003
 
Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003Giáo trình microsoft office excel 2003
Giáo trình microsoft office excel 2003
 
Giáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòngGiáo án dạy tiếng anh văn phòng
Giáo án dạy tiếng anh văn phòng
 
Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)Hợp đồng giảng dạy (mẫu)
Hợp đồng giảng dạy (mẫu)
 
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữBảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
Bảng tham chiếu quy đổi một số chứng chỉ ngoại ngữ
 
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
Useful vocabulary for the resume and interview 英文简历及面试有用词汇 danh mục từ vựng a...
 
Bảng chữ cái hiragana
Bảng chữ cái hiraganaBảng chữ cái hiragana
Bảng chữ cái hiragana
 

Giao trinh lap trinh can ban b tn035

  • 1. TRƯ NG ð I H C C N THƠ KHOA KHOA H C T NHIÊN Giáo trình lý thuy t LẬP TRÌNH CĂN BẢN B MSMH: TN035 (Áp d ng cho chương trình tín ch ) Biên so n: ThS. VŨ DUY LINH ThS. NGUY N NH GIA VINH ThS. LÊ TH DI M Năm 2010
  • 3. M CL C CHƯƠNG 1: D LI U VÀ THU T TOÁN................................................................1 I. D li u và thông tin: .............................................................................................1 I.1. Khái ni m.......................................................................................................1 I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin.........................................1 II. T bài toán t i chương trình ................................................................................1 II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t ..................................1 II.2. Thu t toán (Algorithm).................................................................................2 CHƯƠNG 2: BORLAND DELPHI .............................................................................5 I. T ng quan v Delphi.............................................................................................5 I.1. Delphi là gì.....................................................................................................5 I.2. Các phiên b n c a Delphi ..............................................................................5 II. Môi trư ng phát tri n tích h p (IDE) c a Delphi................................................5 II.1. C a s chính c a Delphi...............................................................................6 II.2. Thanh th c ñơn chính và thanh công c .......................................................6 II.3. B ng ch a các thành ph n c a Delphi (Component Palette) .......................7 II.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh (Code Editor) .................................................................................................8 II.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector) ...................9 II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView).........................10 III. C u trúc m t d án Delphi ...............................................................................10 III.1. T p tin d án: (Delphi project file) ...........................................................10 III.2. Các t p tin ch a mã l nh (Unit file) ..........................................................11 III.3. Các t p tin ñ c t bi u m u (Form file).....................................................11 III.4. Các t p tin tài nguyên (Windows Resource File)......................................13 IV. Các thao tác cơ b n trên Delphi .......................................................................14 IV.1. M m t d án m i.....................................................................................14 IV.2. Lưu d án ..................................................................................................14 IV.3. Lưu Form (t p tin unit) v i tên khác.........................................................18 IV.4. Lưu d án v i tên khác..............................................................................18 IV.5. ðóng d án ................................................................................................18 IV.6. Thoát kh i Delphi .....................................................................................18 CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG DELPHI (OBJECT PASCAL).............................................................................................19 I. B ch vi t .........................................................................................................19 II. T khóa ..............................................................................................................19 III. Tên danh hi u t ñ t .........................................................................................20 IV. H ng .................................................................................................................20 IV.1. Khái ni m ..................................................................................................20 IV.2. H ng tr ......................................................................................................20 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang i
  • 4. IV.3. H ng ñ nh ki u: .........................................................................................21 V. Ki u (Type)........................................................................................................21 V.1. Ð nh nghĩa ..................................................................................................21 V.2. Cách khai báo .............................................................................................21 VI. Bi n ..................................................................................................................22 VII. Bi u th c .........................................................................................................22 VII.1. ð nh nghĩa................................................................................................22 VII.2. Th t ưu tiên...........................................................................................22 VIII. Chuy n ki u (Typecast).................................................................................23 IX. L i chú thích và các ch d n biên d ch .............................................................24 X. C u trúc m t d án ch ñ Form (Form Application)....................................25 CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN .......................26 I. Các ki u d li u sơ c p (Simple type) ................................................................26 I.1. Ki u s nguyên (Integer)..............................................................................26 I.2. Ki u ký t (Char) .........................................................................................26 I.3. Ki u s th c (Real type)...............................................................................30 I.4. Ki u logic (Boolean) ....................................................................................34 II. Câu l nh (statement) ..........................................................................................34 III. L nh ñơn (Simple statement) ...........................................................................35 IV. L nh gán (Assignment statement)....................................................................35 V. L nh g i th t c và hàm ....................................................................................35 VI. L nh Goto.........................................................................................................37 CHƯƠNG 5: L P TRÌNH X LÝ S KI N – CÁC THÀNH PH N TRONG GIAO DI N DELPHI ....................................................................................38 I. L p trình x lý s ki n ........................................................................................38 I.1. L p (Class) và ñ i tư ng (Object) ...............................................................38 I.2. Thu c tính ....................................................................................................43 I.3. Phương th c (Method) .................................................................................44 I.4. S ki n (Event).............................................................................................44 I.5. X lý s ki n (Event Handlers)....................................................................45 I.6. Trình h tr mã l nh (Code Completion /IntelliSense)................................46 II. Sinh mã t ñ ng và m t s cách s a l i ............................................................46 II.1. Cách t ñ ng sinh mã (generate code) trong Delphi .................................46 II.2. Cách s a l i sinh mã trong Delphi.............................................................49 II.3. Thêm t p tin unit vào d án ........................................................................54 II.4. Vi t l nh sau khi thêm unit form vào d án................................................58 II.5. G b t p tin unit form ra kh i d án .........................................................62 III. Bi u m u (TForm) ............................................................................................62 IV. Các thành ph n (Component) giao di n ph bi n ............................................68 IV.1. Nhãn (TLabel) ...........................................................................................68 IV.2. H p văn b n (TEdit)..................................................................................71 Trang ii B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 5. IV.3. Nút l nh (TButton)....................................................................................78 IV.4. Nhãn và H p nh p (TLabeledEdit) ...........................................................80 IV.5. H p ñánh d u hay h p ki m (TCheckbox) ...............................................81 IV.6. Nút tùy ch n (TRadioButton) ...................................................................87 IV.7. Nhóm tùy ch n (TRadioGroup) ................................................................88 IV.8. Vùng văn b n (TMemo)............................................................................91 IV.9. H p danh sách (TListBox) ........................................................................96 IV.10. TSpinEdit ..............................................................................................100 IV.11. H p danh sách ñánh d u (TCheckListBox) ..........................................101 IV.12. H p danh sách các khoá (TValueListEditor) ........................................107 IV.13. H p li t kê th (TComboBox)...............................................................113 IV.14. Lư i chu i (TStringGrid)......................................................................118 IV.15. B ng ch a các thành ph n (TPanel)......................................................124 IV.16. Thanh th c ñơn chính (TMainMenu)....................................................125 IV.17. Th c ñơn (TMenuItem) ........................................................................126 IV.18. Menu ñ i tư ng (TPopupMenu) ...........................................................134 CHƯƠNG 6: CÁC L NH CÓ C U TRÚC.............................................................138 I. L nh ghép (Compound statement)....................................................................138 II. L nh c u trúc r nhánh ....................................................................................138 II.1. L nh if ... then ... và l nh if ... then ... else................................................138 II.2. L nh Case ... of .........................................................................................146 III. C u trúc l nh l p.............................................................................................149 III.1. L nh l p có s l n xác ñ nh trư c ...........................................................149 III.2. L nh l p có s l n không xác ñ nh trư c ................................................155 CHƯƠNG 7: CHƯƠNG TRÌNH CON....................................................................164 I. Khái ni m..........................................................................................................164 II. Hàm..................................................................................................................165 III. Th t c............................................................................................................172 IV. Truy n tham s ...............................................................................................175 IV.1. ð nh ki u và không ñ nh ki u cho tham s hình th c.............................175 IV.2. Truy n b ng tham tr (Value parameter).................................................177 IV.3. Truy n b ng tham bi n (Variable parameter) .........................................179 IV.4. Truy n b ng tham s h ng (Constant parameter) ...................................181 IV.5. Truy n b ng tham s xu t (Out parameter) ............................................184 V. Chương trình con ñ quy .................................................................................190 CHƯƠNG 8: KI U LI T KÊ, MI N CON, T P H P ..........................................194 I. Ki u vô hư ng li t kê (Enumerated scalar type) ..............................................194 I.1. Khái ni m...................................................................................................194 I.2. Cách khai báo: Có hai cách khai báo là gián ti p và tr c ti p ...................194 I.3. M t s hàm chu n áp d ng cho ki u vô hư ng .........................................195 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang iii
  • 6. II. Ki u mi n con (Subrange types)......................................................................196 II.1. Khái ni m..................................................................................................196 II.2. Cách khai báo............................................................................................196 III. Ki u t p h p (Set)...........................................................................................197 III.1. Khái ni m ................................................................................................197 III.2. Cách khai báo ..........................................................................................197 III.3. Mô t t p h p...........................................................................................198 III.4. M t s phép toán trên ki u t p h p .........................................................198 CHƯƠNG 9: KI U M NG.....................................................................................208 I. Khái ni m v m ng (Array-type data) ..............................................................208 II. M ng tĩnh (Static array) ...................................................................................208 II.1. M ng m t chi u (One-Dimensional array) ...............................................208 II.2. M ng nhi u chi u (Multi-Dimensional array) ..........................................213 II.3. M ng hai chi u..........................................................................................215 III. M ng ñ ng (Dynamic array) ..........................................................................222 III.1. M ng ñ ng m t chi u .............................................................................222 III.2. M ng ñ ng nhi u chi u ...........................................................................227 III.3. H ng m ng...............................................................................................228 CHƯƠNG 10: KI U CHU I KÝ T ......................................................................229 I. Các lo i chu i ký t trong Object Pascal ..........................................................229 I.1. Chu i ng n (ShortString) ...........................................................................229 I.2. Chu i dài 1 byte (AnsiString) ....................................................................230 I.3. Chu i dài 2 byte (WideString) ...................................................................232 II. Các thao tác trên chu i.....................................................................................232 II.1. Phép toán c ng chu i................................................................................232 II.2. Phép toán so sánh......................................................................................232 II.3. Các th t c và hàm chu n x lý chu i ký t .............................................234 PH L C........ .........................................................................................................246 TÀI LI U THAM KH O ..........................................................................................252 B N QUY N TÁC GI ............................................................................................252 Trang iv B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 7. Chương 1: D li u và Thu t toán CHƯƠNG 1: D LI U VÀ THU T TOÁN I. D li u và thông tin: I.1. Khái ni m D li u (Data) là các s ki n không có c u trúc, không có ý nghĩa rõ ràng t i th i ñi m xét. Thông tin (Information) là m t khái ni m tr u tư ng ñư c th hi n qua các thông báo, các bi u hi n,... ñem l i m t nh n th c ch quan cho m t ñ i tư ng nh n tin. Thông tin là d li u ñã ñư c x lý xong, mang ý nghĩa rõ ràng t i th i ñi m xét. M t h th ng thông tin (Information system) là m t ti n trình ghi nh n d li u, x lý nó và cung c p t o nên d li u m i có ý nghĩa thông tin, liên quan m t ph n ñ n m t t ch c, ñ tr giúp các ho t ñ ng liên quan ñ n t ch c. I.2. Sơ ñ t ng quát c a m t quá trình x lý thông tin M i quá trình x lý thông tin b ng máy tính hay b ng con ngư i ñ u ñư c th c hi n theo m t quy trình sau: D li u ñư c nh p ñ u vào (Input). Máy tính hay con ngư i s th c hi n quá trình x lý nào ñó ñ nh n ñư c thông tin ñ u ra (Output). NH P D LI U X LÝ XU T D LI U (INPUT) (PROCESSING) (OUTPUT) LƯU TR (STORAGE) Hình 1: Mô hình t ng quát quá trình x lý thông tin II. T bài toán t i chương trình Trong cu c s ng, chúng ta có r t nhi u bài toán c n ph i gi i quy t. S d ng máy tính ñi n t ñ gi i các bài toán là ñi u r t hi u qu do kh năng tính toán c a máy tính. ð máy tính có th hi u ñư c, chúng ta c n ph i có nh ng bư c gi i c th c a bài toán m t cách ñúng logic, t ñó s d ng m t ngôn ng chương trình hay ph n m m l p trình ñ hư ng d n máy tính th c hi n các thao tác c n thi t ñ tìm ra k t qu c a bài toán. II.1. Các giai ño n gi i m t bài toán trên máy tính ñi n t Ð gi i quy t m t bài toán trên máy tính ñi n t , c n qua các giai ño n sau: - Tìm hi u m c tiêu chính c a bài toán: d li u nh p vào và k t qu xu t. - Xây d ng m t chu i thao tác tính toán theo m t th t logic, g i là thu t gi i. - L p chương trình di n t chi ti t các bư c tính theo thu t gi i. - Nh p chương trình vào máy tính, thông d ch và ch y th ñ s a ch a l i. - Th c hi n gi i bài toán v i s li u thu th p ñư c và ghi nh n k t qu . B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 1
  • 8. Chương 1: D li u và Thu t toán - Th nghi m v i nhi u trư ng h p d li u nh p khác nhau c a bài toán ñ chương trình ki m tra ñúng trong m i trư ng h p t ng quát. - Phân tích k t qu và hoàn ch nh chương trình. Trong các bư c trên, vi c thi t k thu t toán là giai ño n quan tr ng nh t. II.2. Thu t toán (Algorithm) II.2.1. Ð nh nghĩa Thu t toán là m t phương pháp trình bày các bư c gi i quy t m t hay nhi u bài toán theo m t ti n trình xác ñ nh. II.2.2. ð c tính c a thu t toán - Tính xác ñ nh: Các thao tác c a thu t toán là rõ ràng và ch c ch n th c hi n ñư c ñ d n ñ n k t qu nào ñó. - Tính h u h n và d ng: thu t toán ph i có m t s bư c gi i nh t ñ nh và cu i cùng ph i có k t thúc ñi m d ng. - Tính k t qu : V i d li u h p lý, thu t toán ph i cho k t qu th a yêu c u. - Tính ph d ng: Thu t toán ph i gi i ñư c nhi u bài toán có cùng c u trúc v i các d li u khác nhau và ñ u d n ñ n m t k t qu mong mu n. - Tính hi u qu : Thu t gi i ph i ñơn gi n, d hi u trong các bư c gi i, t i thi u hoá b nh và th i gian th c hi n. - Tính hình th c: Các bư c trong thu t toán là máy móc, nghĩa là nó ph i th c hi n ñúng như quy ñ nh mà không c n bi t ñ n m c tiêu cu i cùng. II.2.3. Các phương pháp bi u di n thu t toán Thu t toán có th ñư c di n gi i thông qua 3 phương pháp ph bi n, ñó là s d ng ngôn ng t nhiên, ngôn ng gi và ngôn ng sơ ñ (lưu ñ ). II.2.3.1 Ngôn ng t nhiên Là cách di n ñ t t nhiên c a con ngư i b ng ngôn ng c a mình ñ mô t các bư c gi i bài toán. Ví d 1: Mô t thu t toán theo ngôn ng t nhiên c a phương trình ax + b = 0 - Bư c 1: Nh p vào 2 h s a và b. - Bư c 2: Xét ñi u ki n a = 0? N u ñúng là a = 0, thì ñi ñ n bư c 3, n u không (nghĩa là a ≠ 0) thì ñi ñ n bư c 4. - Bư c 3: Xét ñi u ki n b = 0? N u b = 0, thì báo phương trình có vô s nghi m. Ði ñ n bư c 5. N u b ≠ 0, thông báo phương trình vô nghi m. Ði ñ n bư c 5. - Bư c 4: Thông báo phương trình có m t nghi m duy nh t là x = - b/a. - Bư c 5: K t thúc thu t toán. Trang 2 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 9. Chương 1: D li u và Thu t toán II.2.3.2 Ngôn ng gi Là cách di n ñ t các bư c gi i c a bài toán thông qua m t s câu l nh có c u trúc (như câu l nh if..then..else, for..to..do, while..do, repeat..until) Ví d 2: Mô t thu t toán theo ngôn ng gi c a phương trình b c nh t ax + b = 0 - Bư c 1: Nh p vào 2 h s a và b. - Bư c 2: if (a=0) then if (b=0) then phương trình vô s nghi m else phương trình vô nghi m else phương trình có m t nghi m duy nh t x = -b/a - Bư c 3: K t thúc thu t toán. II.2.3.3 Ngôn ng lưu ñ (Flowchart) Là cách di n ñ t các bư c gi i c a bài toán thông qua các ký hi u c a lưu ñ . M t s qui ư c ký hi u lưu ñ : Ký hi u Mô t ði m b t ñ u ho c k t thúc thu t toán Thao tác nh p hay xu t Kh i x lý công vi c Kh i quy t ñ nh ch n l a ði m n i Chu n b T p h p các t p tin d li u Kh i chương trình con Các ghi chú, gi i thích Dòng tính toán, thao tác c a chương trình Hình 2: Các ký hi u lưu ñ B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 3
  • 10. Chương 1: D li u và Thu t toán Ví d 3: Mô t thu t toán theo ngôn ng lưu ñ c a phương trình ax + b = 0 B tñ u Nh p a,b Sai x := -b/a a=0 ðúng Sai Phương trình Xu t nghi m x b=0 vô nghi m ðúng Phương trình vô s nghi m K t thúc Hình 3: Lưu ñ thu t toán PTB1 Trang 4 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 11. Chương 2: Borland Delphi CHƯƠNG 2: BORLAND DELPHI I. T ng quan v Delphi I.1. Delphi là gì Delphi là m t ngôn ng l p trình c p cao, có trình biên d ch hoàn h o, h tr m nh v các ki u d li u có c u trúc và thi t k hư ng ñ i tư ng d a trên n n t ng ngôn ng l p trình hư ng ñ i tư ng (OOP: Object-Oriented Programming) c a Borland Pascal. Ngày nay, Delphi ñã ñư c phát tri n thành môi trư ng xây d ng ng d ng t c th i RAD (Rapid Application Development). T nh ng công c c a RAD, b n có th gi i quy t nh ng v n ñ ph c t p trong qua trình phát tri n ph n m m như: l p trình ng d ng v cơ s d li u (Database), l p trình m ng và Internet (Internet/Networking), l p trình Multimedia (Animation, sound), l p trình trò chơi (Game) cũng như ñ h a (Graphic) ho c l p trình h th ng, v.v… không nh ng trên n n Windows mà còn cho c Linux và .NET. Trong giáo trình này, chúng tôi ch gi i thi u các khái ni m c a Delphi trong ph m vi h ñi u hành Windows. V i kh năng m nh như v y c a Delphi, b n an tâm khi dùng nó ñ tri n khai các ng d ng c a b n quy mô nh hay l n. ði u c n quan tâm Delphi là m t ngôn ng r t thân thi n v i ngư i dùng, phù h p cho nh ng ngư i b t ñ u làm quen v i nó cũng như nh ng nhà l p trình chuyên nghi p. Vì ñây là giáo trình ñư c so n dành cho ñ i tư ng là các sinh viên b t ñ u h c Tin h c ð i cương thông qua ngôn ng Delphi. Do v y, giáo trình này ch gi i thi u nh ng khái ni m căn b n nh m giúp cho ngư i h c có m t s ki n th c nh t ñ nh ñ ñ v n d ng vào gi i các bài toán ho c vi t nh ng chương trình ng d ng nh . Các chương trong giáo trình này s trình bày các ph n t cơ b n c a Delphi ñ t o m t chương trình ch y trên n n Windows, ñó chính là môi trư ng phát tri n tích h p IDE (Integrated Development Environment) và ngôn ng hư ng ñ i tư ng Borland Pascal. Các b n s ñư c h c cách thi t k (Design), phát tri n (Develop) hay vi t mã l nh (Code), và ki m tra l i (Test) chương trình ng d ng b i vi c s d ng Delphi. I.2. Các phiên b n c a Delphi Ti n thân c a Delphi chính là ngôn ng ñ i tư ng Borland Pascal, và ñ n ngày nay Delphi ñã có m t quá trình phát tri n v ng m nh t phiên b n 1 (Delphi1) vào năm 1995, ñ n phiên b n 8 (Delphi for .NET) năm 2005. Trong giáo trình này, chúng tôi th ng nh t trình bày v i các b n Delphi 7. ðây là phiên b n phù h p nh t và d dùng nh t hi n nay cho các b n, ñ i tư ng là các sinh viên h c Tin h c ð i cương. II. Môi trư ng phát tri n tích h p (IDE) c a Delphi Môi trư ng so n th o và thi t k ng d ng c a Delphi 7 chia ra làm 5 ph n: C a s chính c a chương trình Delphi, c a s thi t k bi u m u (Form designer), c a s li t kê các thành ph n, ñ i tư ng d ng cây (Object TreeView), c a s thi t l p thu c tính ñ i tư ng (Object Inspector), và c a s so n th o mã l nh (Code Editor). V i môi trư ng IDE này, b n s có m t giao di n (Interface) ñ thi t k (Design), biên d ch (Compile) và g l i (Debug) d án mà b n ñang phát tri n. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 5
  • 12. Chương 2: Borland Delphi Hình 1: Giao di n c a d án m i t o trong Delphi 7 C a s chính c a Delphi 7 C a s thi t k bi u m u C a s li t kê các ñ i tư ng d ng cây C a s thi t l p các thu c tính và s ki n c a ñ i tư ng C a s so n th o mã l nh II.1. C a s chính c a Delphi C a s chính c a Delphi chính là c a s có thành tiêu ñ ch a tên d án (Project name) mà b n ñang phát tri n, nó bao g m th c ñơn chính (Main menu), thanh công c (Toolbar), và b ng thành ph n (Component palette). II.2. Thanh th c ñơn chính và thanh công c II.2.1. Thanh th c ñơn chính Bao g m các th c ñơn th xu ng (Drop-down menu) như: File, Edit, Search, View,… và Help. Trong m i menu th xu ng có nhi u ch c năng khác nhau như: m m t d án m i, lưu d án, biên d ch, g l i, ch y chương trình,… mà giáo trình s trình bày chi ti t ph n sau. Trang 6 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 13. Chương 2: Borland Delphi Hình 2: Thanh th c ñơn chính II.2.2. Thanh công c (Toolbars) Trong Delphi có nhi u thanh công c , như: thanh công c chu n (Standard), thanh g l i (Debug), thanh hi n th (View),… M i nút (Button) trên thanh công c thư ng là m t thao tác hay m t l nh mà khi ta Click vào nó s thi hành, ví d như: Biên d ch (Compile), ch y (Run) ho c k t thúc ch y chương trình (Program Reset), … Hình 3: Các thanh công c II.3. B ng ch a các thành ph n c a Delphi (Component Palette) Thành ph n (Component), hay còn ñư c g i là ñi u khi n, chính là ñ i tư ng có s n trong Delphi mà b n có th thao tác trên nó trong th i ñi m thi t k form. Có 2 lo i thành ph n, ñó là thành ph n tr c quan (visual component): nhìn th y khi ch y chương trình, và thành ph n không tr c quan (nonvisual component): không nhìn th y khi ch y chương trình. M i thành ph n có m t s tính ch t riêng, và ñư c qu n lý thông qua các thu c tính (Properties), s ki n (Events) và các phương th c (Methods). Các thu c tính này giúp b n có th qu n lý và ñi u khi n chương trình c a b n. Khi b n ñ t m t thành ph n lên form, thì nó s xu t hi n trong c a s Object TreeView và Object Inspector – s ñư c trình bày ph n sau. Trong b ng ch a các thành ph n có nhi u th (tab) khác nhau, như th Standard, Addition, Win32, System, Data Access, ADO, Internet, Rave, Server,… Trên m i th ch a các bi u tư ng (icon) ñ i di n cho các thành ph n. Hình 4: B ng ch a các thành ph n trong th Standard B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 7
  • 14. Chương 2: Borland Delphi II.4. C a s thi t k bi u m u (Form Designer) và C a s so n th o mã l nh (Code Editor) II.4.1. C a s thi t k bi u m u Khi b n t o m t d án m i, môi trư ng phát tri n tích h p IDE c a Delphi s t t o ra m t bi u m u m i (Form) ñ b n tùy nghi thi t l p các giá tr c a thu c tính d a trên Properties, và các th t c s ki n d a vào Events, ñư c xác ñ nh trong Object Inspector, cho vi c thi t k chương trình. Trong h u h t trư ng h p, m t d án thư ng có ít nh t m t form. Cùng v i các thành ph n trên b ng các thành ph n, b n s thi t k ñư c m t giao di n cho chương trình mà b n ñang xây d ng là thân thi n nh t cho ngư i s d ng. TLabel (StdCtrls) TEdit (StdCtrls) TButton (StdCtrls) TMemo (StdCtrls) Hình 5: Form “Giai phuong trinh bac nhat” và các Components Các giá tr c a form và các giá tr c a các component ñ t trên form ñư c lưu trong t p tin form (form file) và có ph n m r ng .dfm, v i ph n tên ñư c xác ñ nh gi ng như ph n tên c a ñơn v chương trình form. T p tin form này ch a ñ ng các giá tr c a form cũng như các giá tr c a các component mà ta ñ t trên form trong quá trình thi t k . II.4.2. C a s so n th o mã l nh M i m t form trong d án ñư c qu n lý trong m t t p tin ñơn v chương trình (Unit file/ Form unit), tên t p tin c a form unit này ñư c ñ t tên trong qua trình lưu (Save) và có ph n m r ng là .pas, n i dung c a t p tin form unit này ch a ñ ng các khai báo thông thư ng c a unit (s ñ c p chi ti t ph n sau) cũng như các hàm s ki n tương ng cho form và các component trên nó. Trang 8 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 15. Chương 2: Borland Delphi Hình 6: C a s so n th o mã l nh cho form unit untPtb1.Pas ð chuy n ñ i gi a c a s so n th o mã l nh v i c a s thi t k bi u m u, ta s d ng ch c năng View/Toggle Form/Unit t main menu ho c gõ phím ch c năng F12. Ví d 1: Trong project “Giai phuong trinh bac nhat” trên, ta lưu unit file v i tên untPtb1.Pas và form file s ñư c t ñ ng ñ t theo là untPtb1.dfm II.5. C a s thu c tính và s ki n c a ñ i tư ng (Object Inspector) Hình 7: th Properties c a Form và th Events c a Button C a s Object Inspector c a form hay component ñ u có 2 th : Properties và Events. Th Properties dùng ñ xác ñ nh các tính ch t c a ñ i tư ng nói chung (Form, component) hi n hành m t cách tr c quan, ch ng h n như Caption, Name, Position, Visible,… Th Events dùng ñ l p trình s ki n: xác ñ nh nh ng ñáp ng c a ñ i tư ng khi nh n tác ñ ng B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 9
  • 16. Chương 2: Borland Delphi t chu t (Mouse) ho c bàn phím (Keyboard) như: nh p chu t (OnClick), ñóng c a s (OnClose), gõ phím Enter (OnEnter),… thông qua các th t c s ki n. Khi thay ñ i các giá tr trong th Properties trong quá trình thi t k , thì mã l nh tương ng c a ñ i tư ng s ñư c thay ñ i theo trong c a s so n th o mã l nh. II.6. C a s li t kê các ñ i tư ng d ng cây (Object TreeView) Hình 8: C a s li t kê các ñ i tư ng d ng cây trên frmPTB1 Object TreeView li t kê các thành ph n tr c quan và không tr c quan mà b n ñ t chúng trên form hi n hành. M i th i ñi m ch có m t form duy nh t ñư c li t kê. III. C u trúc m t d án Delphi III.1. T p tin d án: (Delphi project file) Hình 9: T p tin d án prjPtb1.dpr Trang 10 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 17. Chương 2: Borland Delphi Khi b n b t ñ u m m i m t chương trình ng d ng b ng thao tác: File/New/Application, Delphi 7 s t ñ ng t o ra m t t p tin d án có tên m c nhiên ban ñ u là Project1. Khi b n lưu d án, Delphi s l n lư t nh c b n ñ t tên cho các form unit và tên d án. ví d gi i phương trình b c nh t trên, form unit có tên là untPTB1.pas và tên d án là prjPTB1.dpr. Ph n tên c a t p tin d án cũng chính là tên c a chương trình, ñư c khai báo sau t khóa program. B n chú ý: ti n t c a unit file là unt, còn project file là prj. Ví d như untPTB1.pas và prjPTB1.dpr ð hi n th t p tin d án, ta vào ch c năng Project/View Source Mã l nh ngu n (Source code) ñư c Delphi t ñ ng sinh ra trong t p tin d án bao g m: - Tên chương trình, ñư c khai báo b i t khóa program, ñây cũng chính là tên chương trình ng d ng (Application file). - Các câu l nh ch d n t i các form và các unit ñư c s d ng trong d án ñư c khái báo sau t khóa uses. - Ch th biên d ch {$R *.res}: s d ng các t p tin tài nguyên (Resources). - Kh i l nh thân chương trình chính, b t ñ u b i t khóa begin và k t thúc là end. + Initialize : Kh i ñ ng chương trình ng d ng. + CreateForm : T o form chính (Main form). + Run : Ch y chương trình ng d ng. T p tin d án là t p tin trung tâm c a m t d án ñư c tri n khai b i Delphi. T p tin này ch a ñ ng các tham kh o (Reference) t i t t c các file khác trong d án và liên k t v i các form cũng như t p tin ñơn v (Unit file) kèm theo c a form. Khi chương trình ñư c thi hành (Run, execute), nó s b t ñ u t t p tin d án này. T p tin này ñư c t ñ ng sinh ra, và như v y, b n không nên thay ñ i n i dung c a nó ngo i tr trong nh ng trư ng h p c n thi t. T p tin d án ñư c lưu v i ph n m r ng .dpr III.2. Các t p tin ch a mã l nh (Unit file) Trong m i ng d ng ñư c vi t b i Delphi thư ng g m có 1 t p tin d án (Project file) và nhi u t p tin ñơn v chương trình (Unit file) – xem l i ph n "C a s so n th o mã l nh" ph n trên. M i khi ta thêm vào m i m t form (ho c Data Module, Frame,…) thì m t t p tin unit s ñư c t o ra. Thông thư ng m t d án ñư c tri n khai trong th c t s có nhi u t p tin unit này. N i dung t p tin unit này ch a ñ ng mã l nh c a chương trình và c a các s ki n ñi u khi n (Event handles) trên form cũng trên các thành ph n (Component) mà chúng ñư c ñ t trên nó. Unit file ñư c lưu v i ph n m r ng là .pas III.3. Các t p tin ñ c t bi u m u (Form file) N i dung c a t p tin này xác ñ nh m t cách chi ti t các tính ch t hay thu c tính (Properties) c a form và t t c các ñ i tư ng (nói chung) l p trình viên ñã thi t k . T p tin này luôn ñi kèm v i m t t p tin unit file. Form file ñư c lưu v i ph n m r ng là .dfm ð hi n th n i dung t p tin này, b n RClick trên form r i ch n View as Text. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 11
  • 18. Chương 2: Borland Delphi Ví d 2: Xem n i dung t p tin form file có tên untPTB1.dfm như sau: T ch ñ thi t k c a form có tên là frmPTB1, b n RClick trên form r i ch n View as Text như hình sau: Hình 10: Chuy n cách hi n th t d ng Form sang d ng Text N i dung c a t p tin untPTB1.dfm d ng văn b n s có như hình sau: Hình 11: Hi n th d ng text c a untPTB1.dfm ð chuy n ñ i t cách hi n th d ng Text sang d ng Form, ta s d ng ch c năng RClick ch n ch c năng View as Form hay t h p phím Alt+F12: Trang 12 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 19. Chương 2: Borland Delphi Hình 12: Chuy n cách hi n th d ng Text sang d ng Form. III.4. Các t p tin tài nguyên (Windows Resource File) T p tin này cũng ñư c t ñ ng sinh ra. N i dung c a nó ch a ñ ng các thông tin v phiên b n (Version) cũng như bi u tư ng c a ng d ng (Application icon) d ng mã nh phân. T p tin này có ph n m r ng .res Ta có th m t p tin tài nguyên này ch ñ thi t k (Design) b ng chương trình Image Editor ñư c kèm theo b Delphi. Hình 13: Giao di n chương trình x lý nh – Image Editor B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 13
  • 20. Chương 2: Borland Delphi IV. Các thao tác cơ b n trên Delphi IV.1. M m t d án m i ð t o m t d án m i, b n s d ng l nh File/New/Application. Hình nh m t d án m i t o như hình sau: Hình 14: D án m i t o IV.2. Lưu d án M t d án trong Delphi s sinh ra khá nhi u t p tin. Do v y, khi lưu d án, b n c n ph i t o ra 1 thư m c ñ ch a các t p tin trong d án ñó. Quá trình lưu d án như sau: ð lưu m t d án, b n s d ng l nh: File/Save All hay t h p phím Shift+Ctrl+S. Thông thư ng b n ph i lưu các form trư c (m i form là m t t p tin unit có ph n m r ng là pas), r i sau ñó m i lưu t p tin d án (ph n m r ng là dpr). Ví d 3: Lưu d án hi n th câu "Hello world!..." ch có m t form, vào thư m c S:HelloWorld như sau: Hình 15: C a s thi t k Form Trang 14 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 21. Chương 2: Borland Delphi - T c a s thi t k , ch n l nh File/Save All, Delphi s xu t hi n ra c a s "Save Uniti File" (v i i =1..n) như sau: Hình 16: H p tho i Save Uniti As Click ch n h p li t kê th "Save in" ñ ch n ñĩa S: như hình sau: Hình 17: H p tho i Save Uniti As: Ch n ñĩa B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 15
  • 22. Chương 2: Borland Delphi Ti p ñ n, Click ch n bi u tư ng "Create New Folder" ñ t o thư m c m i ch a các t p tin c a d án mà b n mu n lưu (thư m c HelloWorld). Hình 18: H p tho i Save Uniti As: T o thư m c Sau khi t o thư m c xong, b n Click nút l nh Open ñ m thư m c HelloWorld ra. Hình 19: H p tho i Save Uniti As: M thư m c Trang 16 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 23. Chương 2: Borland Delphi Ti p ñ n, b n gõ tên t p tin unit mà b n mu n lưu vào trong h p li t kê th "File name", ñây là tên untHelloWorld.pas, r i Click Save. Hình 20: H p tho i Save Uniti As: Nh p vào tên t p tin unit ð n ñây, Delphi s ti p t c xu t hi n h p tho i "Save Projecti As" ñ b n lưu t p tin d án. B n gõ vào tên t p tin d án vào trong h p li t kê th "File name", ví d này là tên prjHelloWorld.dpr, và Click Save. Hình 21: H p tho i Save Projecti As: Nh p tên t p tin d án B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 17
  • 24. Chương 2: Borland Delphi D án ñã ñư c lưu và ñ t tên xong. Sau vi c này, n u b n có ch nh s a chương trình, ñ lưu l i nh ng s thay ñ i này, b n ch c n ra l nh File/Save All ñ Delphi t ñ ng lưu toàn b l i d án. Hình dư i ñây cho b n th y s lư ng các t p tin trong m t d án Hello World ñã ñư c lưu, thông qua c a s Windows Explorer như sau: Hình 22: Các t p tin c a d án Hello Wolrd trong thư m c S:HelloWorld IV.3. Lưu Form (t p tin unit) v i tên khác B n ch n l nh File/Save As ñ lưu. IV.4. Lưu d án v i tên khác B n ch n l nh File/Save Project As ñ lưu d án. IV.5. ðóng d án B n ch n l nh File/Close All ñ ñóng l i toàn b d án. IV.6. Thoát kh i Delphi Sau khi lưu l i toàn b d án. ð thoát kh i Delphi, b n s d ng l nh: File/Exit Trang 18 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 25. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) CHƯƠNG 3: CÁC THÀNH PH N CƠ B N C A NGÔN NG DELPHI (OBJECT PASCAL) Trong chương này và chương 4 ti p theo sau, ñ giúp cho vi c làm quen v i các khái ni m cơ b n ñư c d dàng. Giáo trình s xây d ng các ví d theo d ng chương trình ch ñ văn b n (Text mode) hay không h tr ñ ho (Console Application). ð t o m t project m i theo d ng Console Application, b n s d ng ch c năng File/New/Other/Console Application. I. B ch vi t - B 26 ch Latin: o Ch in : A, B, C, ..., X, Y, Z o Ch thư ng : a, b, c, ..., x, y, z - B ch s th p phân : 0, 1, 2, 3, ..., 8, 9 - Ký t g ch n i : _ - Các ký hi u toán h c : +, -, *, /, =, <, >, (, ), [, } II. T khóa Là các t riêng c a Object Pascal, có ng nghĩa ñã ñư c xác ñ nh, không ñư c dùng nó vào các vi c khác ho c ñ t tên m i trùng v i các t khóa. T khóa chung: program, begin, end, procedure, function - T khóa ñ khai báo: const, var, type, array, string, record, set, file, label, class,... - T khóa c a l nh l a ch n: if ... then ... else, case ... of - T khóa c a l nh l p: for... to... do, for... downto... do, while... do, repeat... until - T khóa ñi u khi n: with, goto, exit, halt - T khóa toán t : and, or, not, in, div, mod Dư i ñây là danh sách m t s t khóa thông d ng: and for record array function repeat begin goto set case if to class implementation try const interface type div label unit do mod until downto object uses B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 19
  • 26. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). else of var end procedure while finalization program with finally property B ng 1: Các t khoá III. Tên danh hi u t ñ t Trong Delphi ñ ñ t tên cho các bi n, h ng, ki u, chương trình con ta dùng các danh hi u (Identifier). Quy t c ñ t tên c a danh hi u trong Delphi là: - Chi u dài t i ña: 256 ký t . - B t ñ u b ng ch cái ho c d u _ (g ch dư i); ti p theo có th k t h p s và các ký t khác. - Không ñ c ch a kho ng tr ng. - Không trùng v i các t khóa. - Không phân bi t ch hoa và ch thư ng. - Các ñ nh danh l ng nhau ñư c dùng d u . (d u ch m) ñ truy xu t. Ví d 1: - Danh hi u t ñ t h p l : x; s1; delta; pt_bac_2; - Danh hi u t ñ t không h p l : 1S (b t ñ u b ng s ), Del ta (tên có kho ng tr ng),... IV. H ng IV.1. Khái ni m H ng là m t ñ i lư ng có giá tr không ñ i trong quá trình ch y chương trình. Ta dùng tên h ng ñ chương trình ñư c rõ ràng và d s a ñ i. Cú pháp khai báo: Const Tên_h ng = bi u_th c_xác_ñ nh_giá_tr _c a_h ng; IV.2. H ng tr Trong trư ng h p này thì bi u_th c_xác_ñ nh_giá_tr _c a_h ng là m t tr xác ñ nh. Giá tr c a bi u th c này s ñư c ñ nh tr m t l n và không thay ñ i. Ví d 2: Const MaxSize = 100; Const x = Abs(-100)+Length('Chao ban'); // h ng x =108 Const St = 'Borland'+ ' Delphi'; // h ng St = 'Borland Delphi' Trang 20 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 27. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) Chú ý: Bi u th c h ng ñây có th là s , chu i ký t , các h ng true, false, nil,… k t h p v i các toán t thích h p. Bi u th c h ng không th ch a các l i g i hàm, bi n hay con tr , ngo i tr m t s hàm ñơn gi n như: Abs, Chr, Length, Succ, Odd,… IV.3. H ng ñ nh ki u: Có th ch a các giá tr ki u m ng, b n ghi, ki u th t c và ki u con tr . Cú pháp khai báo h ng ñ nh ki u: Const Tên_h ng: ki u_d _li u = giá_tr _h ng; Ví d 3: Const MaxSize : Integer =100; Trong ví d trên chúng ta khai báo m t h ng có tên là MaxSize, có ki u Integer và mang giá tr b ng 100. Chúng ta th y, cách khai báo h ng ki u này r t gi ng khai báo và kh i t o bi n (chúng ta s xem trong ph n bi n). N u ngư i l p trình b t ch th biên d ch {$J+} thì h ng ñư c xem như bi n; t c là chúng ta có th thay ñ i giá tr c a h ng lúc chương trình th c thi. H ng m ng, h ng ki u b n ghi, h ng ki u th t c chúng ta s tìm hi u chi ti t trong các ph n sau. V. Ki u (Type) V.1. Ð nh nghĩa Ngoài các ki u ñã ñ nh s n, Delphi còn cho phép ta ñ nh nghĩa các ki u d li u khác t các ki u căn b n theo qui t c xây d ng c a Delphi. V.2. Cách khai báo Type Tên_ki u = Mô_t _xây_d ng_ki u; Ví d 4: ð nh nghĩa các ki u d li u ngư i dùng (ki u d li u m i) và khai báo bi n theo ki u v a ñ nh nghĩa type //Khai báo ki u ngư i dùng SoNguyen = integer; Diem = single; Tuoi = 1 .. 100; Color = (Red, Blue, Green); Thu = (ChuNhat, Hai, Ba, Tu, Nam, Sau, Bay); Và khi ñã khai báo ki u thì ta có quy n s d ng ki u ñã ñ nh nghĩa ñ khai báo bi n như sau: var //Khai báo bi n theo ki u ngư i dùng ñ nh nghĩa i, j: SoNguyen; dtb: Diem; t: Tuoi; B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 21
  • 28. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). mau: Color; ngay_hoc: Thu; VI. Bi n Bi n là m t c u trúc ghi nh có tên (ñó là tên bi n hay danh hi u c a bi n). Bi n ghi nh m t d li u nào ñó g i là giá tr (value) c a bi n. Giá tr c a bi n có th ñư c bi n ñ i trong th i gian s d ng bi n. S truy xu t c a bi n nghĩa là ñ c giá tr hay thay ñ i giá tr c a bi n ñư c th c hi n thông qua tên bi n. Cú pháp khai báo bi n: Var tên_bi n [ho c danh_sách_tên_bi n] : Ki u_bi n; N u chúng ta khai báo m t danh sách các bi n có cùng ki u thì m i tên bi n cách nhau m t d u ph y. Ki u bi n là m t ki u d li u chu n trong Delphi ho c ki u ñư c ñ nh nghĩa b i ngư i dùng. Ví d 5: var a : extended ; // khai báo a là m t bi n ki u s th c b, c : integer ; // khai báo 2 bi n b, c có ki u s nguyên hten : shortstring; m_Ok: boolean; // khai báo m_Ok là m t bi n ki u logic Chon : char; // khai báo Chon là m t bi n ki u ký t C n khai báo các bi n trư c khi s d ng chúng trong chương trình. Khai báo m t bi n là khai báo s t n t i c a bi n ñó và cho bi t nó thu c ki u gì. VII. Bi u th c VII.1. ð nh nghĩa M t bi u th c là m t công th c tính toán bao g m các phép toán (toán t ), h ng, bi n, hàm và các d u ngo c. Ví d 6: 5 + u * sqrt(t) / sin(pi/2) ; (a=5) and (b<>7) or (c >= 10); max(x,y); // g i hàm Trong ñó: a, b, c, x, y, u, t là các bi n ñã ñư c khai báo. VII.2. Th t ưu tiên Toán t : Trong Delphi g m có các toán t ñư c phân chia như sau: - Toán t s h c : +, -, *, /, div, mod Trang 22 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 29. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) - Toán t logic : not, and, or, xor - Toán t quan h : =, >, <, <>, <=, >= - Toán t bitwise : not, and, or, xor, shl, shr - Toán t làm vi c trên t p h p : +, -, *, /, <=, >=, <>*, in - Toán t thao tác trên con tr : +, -, @ , ^, =, <> - Toán t x lý l p ñ i tư ng : as, is Khi tính giá tr c a m t bi u th c, ngôn ng Delphi qui ư c th t ưu tiên c a các phép toán t cao ñ n th p như sau: Phép toán Th t ưu tiên @, not ưu tiên 1 *, /, div, mod, and, shl, shr, as ưu tiên 2 +, -, or, xor ưu tiên 3 =, <>, <, >, <=, >=, in, is ưu tiên 4 B ng 2: Th t ưu tiên toán t Qui ư c tính th t ưu tiên: Khi tính m t bi u th c có 3 qui t c v th t ưu tiên như sau: Qui t c 1. Các phép toán nào có ưu tiên cao hơn s ñư c tính trư c. Qui t c 2. Trong các phép toán có cùng th t ưu tiên thì s tính toán s ñư c th c hi n t trái sang ph i. Qui t c 3. Ph n trong ngo c t trong ra ngoài ñư c tính toán ñ tr thành m t giá tr ñơn. VIII. Chuy n ki u (Typecast) Chuy n ki u hay còn g i là ép ki u là m t k thu t ñư c dùng ñ chuy n giá tr c a m t bi u th c sang m t ki u d li u khác. Cú pháp chuy n ñ i ki u d li u: Tên_Ki u(bi u_th c); V i bi u_th c là m t h ng, thì ta có cách chuy n ki u theo giá tr (value typecasts), còn v i bi u_th c là m t bi n, thì ta có cách chuy n ki u theo bi n (variable typecasts). Ví d 7: Chuy n ki u theo tr : t := integer('A'); // chuy n ký t A sang s , t = 65 v := char(65); // chuy n s sang ký t , v = 'A' b := boolean(0); // chuy n s sang ki u Booblean, b = False Ví d 8: Chuy n ki u theo bi n: var MyChar: char; Shortint(MyChar) := 122; // Gán ký t 'z' vào bi n MyChar B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 23
  • 30. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal). Ví d 9: Vi t chương trình minh ho 2 cách chuy n ki u theo tr và theo bi n: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p các dòng l nh ñ hoàn ch nh như hình sau: Hình 1: Chương trình chuy n ki u Console mode Nh n t h p phím Ctrl+F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Console như sau: Hình 2: K t qu ch y chương trình. IX. L i chú thích và các ch d n biên d ch Trong Delphi có 3 cú pháp ñ ghi chú thích như sau: { chú thích ghi trong c p d u ngo c móc } (* chú thích ñư c bao b i c p d u ngo c và d u sao*) // chú thích trên m t dòng Hai ki u chú thích khác nhau có th th c hi n chú thích l ng nhau nhưng cùng ki u thì không ñư c phép l ng nhau. Trang 24 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 31. Chương 3: Các thành ph n cơ b n c a ngôn ng Delphi (Object Pascal) X. C u trúc m t d án ch ñ Form (Form Application) C u trúc c a m t d án (project) trong Delphi g m 2 ph n chính: Ph n 1: Là t p tin d án (Project file) Hình 3: Project file. Ph n 2: Là (các) t p tin ñơn v chương trình (Unit file) Hình 4: K t qu ch y chương trình. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 25
  • 32. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn CHƯƠNG 4: CÁC KI U D LI U SƠ C P CHU N, L NH ðƠN I. Các ki u d li u sơ c p (Simple type) I.1. Ki u s nguyên (Integer) Ki u s nguyên bi u di n m t t p h p con các s . Delphi phân làm hai lo i s nguyên ñư c ñ nh nghĩa b i các t khóa như sau: T khóa Ph m vi Kích thư c Integer -2147483648..2147483647 s nguyên có d u 32 bit Cardinal 0..4294967295 s nguyên dương 32 bit B ng 1: Ki u nguyên Trong ñó, ki u Integer còn ñư c chia ra thành m t s t p con ñư c ñ nh nghĩa b i các t khóa sau: T khóa Ph m vi Kích thư c Shortint -128..127 S nguyên có d u 8 bit Smallint -32768..32767 S nguyên có d u 16 bit Longint -2147483648..2147483647 S nguyên có d u 32 bit Int64 -2^63..2^63-1 S nguyên có d u 64 bit Byte 0..255 S nguyên dương 8 bit Word 0..65535 S nguyên dương 16 bit Longword 0..4294967295 S nguyên dương 32 bit B ng 2: Các ki u nguyên I.2. Ki u ký t (Char) Ki u ký t cơ b n bao g m AnsiChar và WideChar. AnsiChar là ki u ký t thông thư ng, chi m kích thư c m t byte (tương t b ký t ASCII mà giáo trình s ñ c p ph n ti p theo). WideChar là ki u ký t hai byte, là ki u ký t dùng ñ bi u di n b mã Unicode cho t p h p ký t . Tuy nhiên, các b n v n có th khai báo s d ng ki u ký t v i t khóa Char. Và trên th c t thì ki u Char tương ñương v i ki u AnsiChar. Ngoài Char và AnsiChar, Delphi còn h tr t p ký t m t byte thông qua các ki u: PChar, PAnsiChar và AnsiString. Tương t thì Delphi cũng h tr t p ký t Unicode (ngoài ki u WideChar) thông qua các ki u: PWideChar, WideString. M t ký t ñư c vi t trong c p d u nháy ñơn (''). Ð ti n trao ñ i thông tin c n ph i s p x p, ñánh s các ký t , m i cách s p x p như v y g i là b ng mã. B ng mã thông d ng hi n nay là b ng mã ASCII (American Standard Code for Information Interchange). H mã ASCII dùng nhóm 7 bit ho c 8 bit ñ bi u di n t i ña 128 ho c 256 ký t khác nhau và mã hóa theo ký t liên t c theo cơ s 16. Trang 26 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 33. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn H mã ASCII 7 bit, mã hoá 128 ký t liên t c như sau: 0 : NUL (ký t r ng) 1 – 31 : 31 ký t ñi u khi n 32 – 47 : các ký t kho ng tr ng SP (space) ! “ # $ % & ‘ ( ) * + , - . / 48 - 57 : ký s t 0 ñ n 9 58 - 64 : các d u : ; < = > ? @ 65 - 90 : các ch in hoa t A ñ n Z 91 – 96 : các d u [ ] _ ` 97 – 122 : các ch thư ng t a ñ n z 123 – 127 : các d u { | } ~ DEL (xóa) H mã ASCII 8 bit (ASCII m r ng) có thêm 128 ký t khác ngoài các ký t nêu trên, g m các ch cái có d u, các hình v , các ñư ng k khung ñơn và khung ñôi và m t s ký hi u ñ c bi t. Ð th c hi n các phép toán s h c và so sánh, ta d a vào giá tr s th t mã ASCII c a t ng ký t , ch ng h n: 'A' < 'a' vì s th t mã ASCII tương ng là 65 và 97. Hàm Chr(n): Tr v ký t tương ng v i s th t mã ASCII n. Hàm Ord(ch): Tr v s th t c a ký t ch trong b ng mã ASCII. Ví d 1: V i khai báo bi n var ch: char; stt:byte; thì các câu l nh sau s có giá tr như sau: ch := chr(65); //ch = 'A' stt := ord('A'); //stt = 65 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 27
  • 34. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B NG MÃ ASCII v i 128 ký t chu n Hex 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 0 16 32 48 64 80 96 112 1 SOH DC1 ! 1 A Q a q 1 17 33 49 65 81 97 113 2 STX DC2 “ 2 B R b r 2 18 34 50 66 82 98 114 3 ♥ DC3 # 3 C S c s 3 19 35 51 67 83 99 115 4 ♦ DC4 $ 4 D T d t 4 20 36 52 68 84 100 116 5 ♣ NAK % 5 E U e u 5 21 37 53 69 85 101 117 6 ♠ SYN & 6 F V f v 6 22 38 54 70 86 102 118 7 BEL ETB ‘ 7 G W g w 7 23 39 55 71 87 103 119 8 BS CAN ( 8 H X h x 8 24 40 56 72 88 104 120 9 HT EM ) 9 I Y I y 9 25 41 57 73 89 105 121 A LF SUB * : J Z j z 10 26 42 58 74 90 106 122 B VT ESC + ; K [ k { 11 27 43 59 75 91 107 123 C FF FS , < L l | 12 28 44 60 76 92 108 124 D CR GS - = M ] m } 13 29 45 61 77 93 109 125 E SO RS . > N ^ n ~ 14 30 46 62 78 94 110 126 F SI US / ? O _ o DEL 15 31 47 63 79 95 111 127 Hình 1: B ng mã ASCII chu n Trang 28 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 35. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn B NG MÃ ASCII v i 128 m r ng Hex 8 9 A B C D E F 0 Ç É á ░ └ ╨ α ≡ 128 144 160 176 192 208 224 240 1 ü æ í ▒ ┴ ╤ ß ± 129 145 161 177 193 209 225 241 2 é Æ ó ▓ ┬ ╥ Γ ≥ 130 146 162 178 194 210 226 242 3 â ô ú │ ├ ╙ π ≤ 131 147 163 179 195 211 227 243 4 ä ö ñ ┤ ─ ╘ Σ ⌠ 132 148 164 180 196 212 228 244 5 à ò Ñ ╡ ┼ ╒ σ ⌡ 133 149 165 181 197 213 229 245 6 å û ª ╢ ╞ ╓ µ ÷ 134 150 166 182 198 214 230 246 7 ç ù º ╖ ╟ ╫ τ ≈ 135 151 167 183 199 215 231 247 8 ê ÿ ¿ ╕ ╚ ╪ Φ ° 136 152 168 184 200 216 232 248 9 ë Ö ⌐ ╣ ╔ ┘ Θ · 137 153 169 185 201 217 233 249 A è Ü ¬ ║ ╩ ┌ · 138 154 170 186 202 218 234 250 B ï ¢ ½ ╗ ╦ █ δ √ 139 155 171 187 203 219 235 251 C î £ ¼ ╝ ╠ ▄ ∞ ⁿ 140 156 172 188 204 220 236 252 D ì ¥ ¡ ╜ ═ ▌ φ ² 141 157 173 189 205 221 237 253 E Ä ₧ « ╛ ╬ ▐ ε ■ 142 158 174 190 206 222 238 254 F Å ƒ » ┐ ╧ ▀ ∩ 143 159 175 191 207 223 239 255 Hình 2: B ng ASCII m r ng B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 29
  • 36. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Ví d 2: Vi t chương trình in ra 256 ký t c a b ng mã ASCII: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p các dòng l nh ñ hoàn ch nh như hình sau: Hình 3: Chương trình in b ng mã ASCII Nh n t h p phím Ctrl+F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Console như sau: Hình 4: K t qu chương trình ch ñ Console I.3. Ki u s th c (Real type) I.3.1. Khái ni m Delphi, ki u s th c bi u di n m t t p h p các s mang d u ch m ñ ng (float, real). Kích thư c c a nó tùy thu c vào t khóa mà chúng ta s d ng trong khai báo. Trang 30 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 37. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn T khóa Ph m vi Kích thư c (byte) Real48 2.9 x 10^-39 .. 1.7 x 10^38 6 Single 1.5 x 10^-45 .. 3.4 x 10^38 4 Double 5.0 x 10^-324 .. 1.7 x 10^308 8 Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 10 Comp -2^63+1 .. 2^63 -1 8 Currency -922337203685477.5808.. 8 922337203685477.5807 B ng 3: Các t khoá c a ki u th c Tuy nhiên, ki u s th c chúng ta thư ng dùng ñư c khai báo b ng t khóa Real, trong Delphi ki u Real tương ñương v i ki u Double. T khóa Ph m vi Kích thư c (byte) Real 5.0 x 10^-324 .. 1.7 x 10^308 8 B ng 4: Ki u Real I.3.2. M t s phép toán và hàm trên ki u s (s nguyên và s th c) Các phép toán s h c hai ngôi: Phép toán Ý nghĩa Ki u toán h ng Ki u k t qu + C ng integer, real integer, real - Tr integer, real integer, real * Nhân integer, real integer, real / Chia th c integer, real real div Chia nguyên integer integer mod L y ph n dư integer integer B ng 5: Các phép toán 2 ngôi Ví d 3: V i các bi n x, y, z ki u integer x := 3*2; // x = 6 y := 15 div 6; // t = 2 z := 15.5 mod 5; // l i Tuy nhiên, phép toán + và toán - còn có th là phép toán m t ngôi: Phép toán Ý nghĩa Ki u toán h ng Ki u k t qu Ví d + (unary) d u dương integer, real integer, real +7 - (unary) d u âm (l y s ñ i) integer, real integer, real -7 B ng 6: Các phép toán 1 ngôi B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 31
  • 38. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Khi th c hi n các phép toán chúng ta c n chú ý m t s ñi m ñ c bi t sau: - K t qu c a phép chia th c (/) luôn luôn có ki u Extented, không quan tâm ñ n ki u c a các toán h ng. - Phép toán mod là phép toán l y ph n dư. - Khi th c hi n phép chia x/y (hay là x mod y ho c x div y) thì y ph i khác 0, n u y có giá tr 0 thì chương trình s phát sinh l i. M t s hàm chuy n ñ i ki u d li u: function IntToStr ( Number : Integer ) : string; //Unit: SysUtils function IntToStr ( BigNumber : Int64 ) : string; //Unit: SysUtils Hàm IntToStr là hàm th c hi n vi c chuy n ñ i m t s nguyên (ho c s int64) thành m t chu i s . function FloatToStr(Value: Extended): string; //Unit: SysUtils function FloatToStr(Value: Extended; const FormatSettings: TFormatSettings): string; Hàm FloatToStr chuy n ñ i m t s th c hay s d u ch m ñ ng (Value) thành m t chu i bi u di n tương ng cho s ñó. B ng dư i ñây là các hàm liên quan ñ n ki u s : Hàm Ý nghĩa abs(x); |x| : l y giá tr tuy t ñ i c a s x arctan(x:extended): extended; arctang(x) cos(x: extended): extended; cos(x) : l y cos c a x exp(x: real): real; ex frac(x:extended): extended; Tr v ph n th p phân c a bi n x inc(var x [ ; n: longint ] ); tăng bi n x lên 1 ho c n giá tr int(x: extended): extended; Tr v ph n nguyên c a bi n x ln(x); ln x : l y logarit nepe c a tr x (e ≅ 2.71828) max(a,b: numbertype): numbertype; Tr v s l n hơn trong hai s a và b. min(a,b: numbertype): numbertype; Tr v s nh thua trong hai s a và b. Ki m tra n có ph i là s l hay không: odd(n: integer|int64):boolean; True: N u n l False: N u n ch n. pi: extended; Tr v giá tr pi=3.1415926535897932385. Tr v m t s ng u nhiên x và 0 <= x < range, random[( range: integer)]; n u range không ch ra thì 0 <= x < 1. sqr(x); x2 : l y bình phương tr s x sqrt(x); : l y căn b c 2 c a x sin(x); sin (x) : l y sin c a x succ(x); Tr v giá tr sau c a x Trang 32 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 39. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn trunc(x: extended): int64; L y ph n nguyên c a x round(x: extended): int64; Làm tròn giá tr c a x, l y s nguyên g n x nh t B ng 7: Các hàm x lý s Ví d 4: Vi t chương trình tính chu vi và di n tích c a hình ch nh t: T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p các dòng l nh ñ hoàn ch nh như hình sau: Hình 5: Chương trình tính chu vi di n tích hình ch nh t Nh n t h p phím Ctrl + F9 ñ biên d ch l i. Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Console như sau: Hình 6: K t qu chương trình ch ñ Console B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 33
  • 40. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn I.4. Ki u logic (Boolean) I.4.1. Khái ni m M t d li u thu c ki u boolean là m t ñ i lư ng có th nh n ñư c m t trong hai giá tr logic là true (ñúng) và false (sai). Delphi cung c p 4 ki u boolean sau: T khóa Kích thư c (byte) Boolean 1 ByteBool 1 WordBool 2 LongBool 4 B ng 8: Ki u logic Trong ñó, ki u Boolean là ki u tương thích v i ki u Boolean c a Pascal và ñư c ưa thích hơn c . M t giá tr ki u ByteBool, LongBool ho c WordBool ñư c xem là true n u nó có giá tr khác 0, ngư c l i là false. I.4.2. Phép toán Boolean T khóa Ý nghĩa Not Phép toán ph ñ nh And Phép toán và Or Phép toán ho c B ng 9: Các phép toán trên ki u logic Cú pháp: • Phép toán and: (x1) and (x2) and ... and (xn) tr v k t qu là true khi t t c các toán h ng là true, ngư c l i tr v false. • Phép or: (x1) or (x2) or ... or (xn) cho k t qu là false khi t t c các toán h ng là false, ngư c l i tr v true. Ví d 5: Ví d : v i x, y, z ki u boolean, ta có: x := (2<3) and (5<5) and (0<>1); // x = False y := (2>3) or (5>5) or (0<>1); // y = True z := not (y); // z = False ð hi n th giá tr boolean lên màn hình, b n s d ng hàm có s n trong Delphi: function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string; N u b n mu n hi n th giá tr c a B là chu i ký t True ho c False thì cho UseBoolStrs = True; còn n u mu n hi n th giá tr c a B là '-1' ho c '0' thì thì cho UseBoolStrs = False. II. Câu l nh (statement) Trong m t chương trình Delphi, sau ph n mô t d li u là ph n mô t các câu l nh. Các câu l nh có nhi m v xác ñ nh các công vi c mà máy tính ph i th c hi n ñ x lý các d li u ñã ñư c mô t và khai báo. Câu l nh ñư c chia thành câu l nh ñơn gi n và câu l nh có c u trúc. Trang 34 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 41. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn Các câu l nh ph i ñư c ngăn cách v i nhau b i d u ch m ph y (;) và các câu l nh có th vi t trên m t dòng hay nhi u dòng. III. L nh ñơn (Simple statement) L nh ñơn là l nh không ch a b t kỳ câu l nh nào khác. Các l nh ñơn bao g m: l nh gán, l nh g i hàm và th t c, l nh nh y (goto). IV. L nh gán (Assignment statement) M t trong các l nh ñơn gi n và cơ b n nh t c a Delphi là l nh gán. M c ñích c a l nh này là gán cho m t bi n ñã khai báo m t giá tr nào ñó cùng ki u (hay tương thích) v i bi n. Cú pháp c a l nh gán là: Bi n := bi u_th c; L nh gán s ñ t l i giá tr hi n hành c a bi n b ng giá tr m i n m bên ph i toán t gán (d u hi u :=). Ví d 6: Khi ñã khai báo var c: char; i: integer; x: real; p, q: boolean; thì ta có th có các phép gán sau: c := 'A'; c := chr(90); i := 35; i := i div 7; x := 0.5; x := i + 1; p:= (i >= 1) and (i < 100); q := not p; Ý nghĩa: Bi n và các phát bi u gán là các khái ni m quan tr ng c a m t h các ngôn ng l p trình, chúng ph n ánh cách th c ho t ñ ng c a máy tính, ñó là: - Lưu tr các giá tr khác nhau vào m t ô nh t i nh ng th i ñi m khác nhau. - M t quá trình tính toán có th coi như là m t quá trình làm thay ñ i giá tr c a m t (hay m t s ) ô nh nào ñó, cho ñ n khi ñ t ñư c giá tr c n tìm. V. L nh g i th t c và hàm Trong l p trình OOP, thu t ng hàm (Function), th t c (Procedure) và phương th c (Method) là khái ni m quen thu c v i ngư i l p trình. ð các b n có th n m b t ñư c ki n th c l p trình trong Delphi, Giáo trình ñưa ra trư c khái ni m này m t cách ng n g n như sau: Hàm và th t c ñư c g i chung là chương trình con. Hàm ñư c xây d ng thông qua tên hàm và danh sách các tham s hình th c n u có, m i hàm thì luôn tr v duy nh t 1 giá tr . Còn th t c thì có tên th t c và danh sách các tham s hình th c n u có. Khác v i B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 35
  • 42. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn hàm, th t c KHÔNG tr v m t giá tr nào c , nó thư ng bao g m m t dãy các câu l nh c n ñư c th c hi n m t cách tu n t ñ gi i quy t m t công vi c nào ñó. B n c n phân ra 2 giai ño n rõ ràng: Xây d ng chương trình con, và s d ng chương trình con. Ví d 7: V hàm - Function - Xây d ng hàm: B n vi t hàm tính t ng 2 s a và b và k t qu tr v c a hàm chính là k t qu a + b. Nó có hình d ng như sau: function Cong(a, b: single) : single; begin Cong := a + b; end; - S d ng hàm (L i g i hàm): b n c n tính phép c ng c a 2 con s c th nào, ch ng h n b n mu n 5 c ng v i 7, thì như v y b n s truy n s 5 vào cho a và 7 vào cho b. C th b n s g i như sau: mTong := Cong(5,7); //v i bi n mTong ki u Single và mTong = 12 Như v y bư c xây d ng: a và b ñư c g i là tham s hình th c. Còn bư c g i hàm thì 5 và 7 ñư c g i là các tham s th c. Ví d 8: V th t c – Procedure - Xây d ng th t c: B n vi t th t c hi n th ra màn hình n câu chào “Welcome to Delphi!…”, v i n có th là 1 l n, 3, 10, … 100 l n ch ng h n: procedure Welcome(n: integer); var i: integer; begin for i:=1 to n do writeln (‘Welcome to Delphi!…’); end; - S d ng th t c (L i g i th t c): ñây mu n hi n th 5 câu chào, thì b n ra câu l nh như sau: Welcome(5); //Hi n th 5 câu chào Khái ni m phương th c trong m t l p cũng ñư c xem là th t c ho c hàm (Member method). Ki n th c này các b n s ñư c h c chương 5. ñây, các b n c n chú ý ñi u này: Phương th c là chương trình con mà Delphi ñã xây d ng s n trong m i l p/thành ph n (Class/Component) cho b n (Th t kh e làm sao!…), b n ch c n l y trong “túi khôn” c a Delphi ñ s d ng vi t chương trình mà thôi. Tóm l i: Khi s d ng phương th c hay các chương trình con ñã ñư c xây d ng s n b i Deplhi, b n c n n m rõ m i phương th c, th t c ho c hàm có bao nhiêu tham s hình th c và ki u c a chúng là gì ñ truy n vào cho chúng các tham s th c tương ng cho ñúng yêu c u c a b n. Ví d v i cú pháp th t c có s n trong Delphi là: procedure ShowMessage(const Msg: string); thì b n ch c n l y ra s d ng v i câu l nh ñơn gi n như sau: ShowMessage(‘Toi dang hoc Delphi day nhe!…’); Các b n s ñư c h c chi ti t các khái ni m này trong chương “L p Trình X Lý S Ki n” và “Chương Trình Con” các ph n sau. Trang 36 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 43. Chương 4: Các ki u d li u sơ c p chu n, l nh ñơn VI. L nh Goto T thân chương trình con, b n có th s d ng l nh goto ñ chuy n hư ng th c hi n chương trình t i m t v trí b t kỳ thông qua m t nhãn ñã ñư c khai báo trư c. Cú pháp l nh goto: Goto nhãn; V i nhãn ñư c khai báo v i cú pháp sau: Label Tên_nhãn; L nh goto là l nh nh y không ñi u ki n, nó chuy n hư ng th c thi c a chương trình ñ n v trí mà nhãn ñang ñ ng. Trong phong cách l p trình OOP, l nh goto t ra b l i th i và r t ít khi ñư c dân l p trình s d ng. Ví d 9: Minh h a l nh goto ñ tính bi u th c a/b. T File/New/Other, DClick vào Console Application ñ m ra 1 d án m i và nh p các dòng l nh ñ hoàn ch nh như hình sau: Hình 7: Ví d minh h a l nh goto và khai báo nhãn - label Nh n phím ch c năng F9 ñ ch y chương trình, và ta có k t qu ch ñ Console như sau: Hình 8: K t qu chương trình. B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 37
  • 44. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi CHƯƠNG 5: L P TRÌNH X LÝ S KI N – CÁC THÀNH PH N TRONG GIAO DI N DELPHI I. L p trình x lý s ki n I.1. L p (Class) và ñ i tư ng (Object) Trong các chương trư c, các b n ñã ñư c bi t ñ n cách l p trình tu n t ch ñ Console Application và bi t ñư c m t s khái ni m cơ s . chương này, các b n s ñư c trình bày m t phương pháp l p trình chính c a giáo trình và r t ph bi n hi n nay ñó là l p trình s ki n d a trên n n t ng c a l p trình hư ng ñ i tư ng (OOP: Object-Oriented Programming). Trong cu c s ng, b n th y có nhi u ñ i tư ng ñư c x p chung vào m t lo i/l p, ch ng h n như nh ng ngư i còn ñi h c ta x p chung v i m t l p ñó là l p SINHVIÊN, nh ng ngư i ñi làm vi c thì x p vào l p CBCNV. Như v y ta có hình nh như sau: t t c m i ngư i ñ u ñư c x p chung vào m t l p trên cùng là l p NGƯ I. Ta cũng có th phân chia nh ng ngư i trong l p NGƯ I này thành hai nhóm là SINHVIÊN và CBCNV d a vào tính ch t ñ phân bi t là ñang ñi làm hay còn ñi h c. - H tên NGƯ I - Ngày sinh - Phái - v.v... - Mã s SV - Mã cán b - Ngành h c SINHVIÊN CBCNV - B c lương - v.v... - v.v... - v.v... Hình 1: Mô hình các l p C th : N u xét m t gia ñình công ch c g m 4 th c th ngư i là ngư i A – cha, B - m : ñi làm; anh C, ch D: ñang ñi h c ch ng h n, thì như th ta có 2 ñ i tư ng A, B ñư c t o ra t l p CBCNV và 2 ñ i tư ng C, D ñư c sinh ra t l p SINHVIÊN và c 4 ñ i tư ng này ñ u có nh ng tính ch t chung ñư c th a hư ng t l p NGƯ I, và như v y 2 l p SINHVIÊN và CBCNV là các l p d n xu t t l p NGƯ I. I.1.1. L p (Class) L p là m t khái ni m ñư c s d ng r t nhi u trong cách l p trình OOP. Vi c hi u rõ các ki n th c v l p thì n m ngoài ph m vi c a giáo trình này. Do v y, giáo trình ch ñưa ra các khái ni m r t cơ b n v l p, m c ñích ñ các b n d hi u hơn v ñ i tư ng (Object), là m t thành ph n r t ph bi n trong l p trình c a Delphi. Như v y, l p ñư c dùng ñ ñ nh nghĩa ra ki u d li u c u trúc mà nó bao g m 3 thành ph n cơ b n: - Các trư ng (Fields): là các bi n d li u c a l p. Trang 38 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 45. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi - Các phương th c (Methods): là các hàm hay th t c ñ th c hi n thao tác nào ñó trên ñ i tư ng. Có 2 phương th c ñ c bi t trong l p mà b n c n lưu ý ñó là phương th c t o (Constructor) và phương th c h y (Destructor) s ñư c dùng khi m t ñ i tư ng (Object) ñư c t o nên ho c b h y. - Các thu c tính (Attributes) cu m t l p bao g m các bi n, các h ng, hay tham s n i t i c a l p ñó. Tính ch t quan tr ng nh t c a các thu c tính khi chúng là bi n là có th b thay ñ i trong quá trình ho t ñ ng c a m t ñ i tư ng. Thông thư ng ñ truy xu t các bi n trư ng, ta d a vào tr ng thái c a thu c tính là ñ c (read) hay ghi (write) ñ nh n hay là thi t l p giá tr cho chúng. L p ñư c khai báo theo cú pháp như sau: type className = class (ancestorClass) memberList end; Trong ñó: - ancestorClass là l p cha/t tiên c a l p d n xu t (descendant) là className, l p className s ñư c th a hư ng (inheritance) t l p cha. Trong Delphi l p th y t là l p TObject. - memberList là các thành ph n c a l p là trư ng, phương th c và thu c tính c a l p ñã ñư c trình bày trên. Trong ví d gi i phương trình b c nh t trên, ta có m t l p TfrmPTB1 ñư c d n xu t t l p cha là l p TForm, l p TForm l i ñư c d n xu t t l p TCustomForm,... và c th nó ñư c d n xu t t l p th y t trong Delphi là l p TObject như hình sau: Hình 2: L p TfrmPTB1 và các l p t tiên (Ancestor Classes) c a nó B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 39
  • 46. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Ví d 1: Khai báo l p TfrmPTB1 cho form unit untPtb1.Pas ví d trên như sau: type TfrmPTB1 = class(TForm) lbl_a: TLabel; lbl_b: TLabel; edt_a: TEdit; edt_b: TEdit; lbl_KQua: TLabel; memKQua: TMemo; pnlLine: TPanel; btnXuLy: TButton; btnKetThuc: TButton; procedure btnXuLyClick(Sender: TObject); procedure btnKetThucClick(Sender: TObject); private { Private declarations } public { Public declarations } end; I.1.2. ð i tư ng (Object) ð i tư ng là th c th (Instance) ñư c sinh ra t m t l p (Class), hay nói cách khác khi ta khai báo m t bi n thu c m t l p nào ñó, thì bi n ñó chính là m t ñ i tư ng m i ñư c c p phát. ð i tư ng này ñư c t o ra b i phương th c constructor và s b gi i phóng b i phương th c destructor. * Quy cách ñ t tên ñ i tư ng: Trong phong cách l p trình chuyên nghi p, quy ư c ñ t tên cho ñ i tư ng thư ng ñư c ghép 2 ph n: ti n t và tên g i nh c a ñ i tư ng ñó. Ti n t thư ng có 3 ký t ñ xác ñ nh ñ i tư ng ñó thu c lo i thành ph n nào. Trong giáo trình này g i ý cho các b n các ti n t (prefix) cho các ñ i tư ng c a các thành ph n như sau: ð i tư ng Ti n t Ví d Form frm frmWelcome, frmMain Label lbl lblHeSo, lblHoTen Edit edt edt_a, edtHoTen Button btn btnGiai, btnXuLy SpinEdit: spe speNhietDo, speGia1TC LabeledEdit lbe lbeDonGia, lbeThanhTien ListBox lbx lbxBaiHat, lbxFont CheckBox chk chkMatHang, chkDelphi ComboBox cbo cboToanTu, cboPhai GroupBox gbx gbxMonHoc, gbxMatHang Trang 40 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 47. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi ð i tư ng Ti n t Ví d CheckListBox clb clbTenMH, clbDMVT ValueListEditor vle vleMatHang, vleBaoGia Memo mem memDanhSach, memKQ RadioButton rbt rbtNam, rbtNu RadioGroup rgp rgpGioiTinh, rgpCourses StringGird stg stgAlphabet, stgMaTranA Panel pnl pnlDieuKhien, pnlDrives PopupMenu pmu pmnMauSac, pmnGames MainMenu mmu mmuMainForm, mmuQLSV MenuItem mni mniCopy, mniPaste B ng 1: Quy cách ñ t tên các ñ i tư ng Ví d 2: Khai báo m t th c th (ñ i tư ng) frmPTB1 như sau: var frmPTB1: TfrmPTB1; // ñ i tư ng frmPTB1 c a l p TFrmPTB1 L p trình hư ng ñ i tư ng là s g n k t gi a d li u và các hàm x lý d li u t o thành ñ i tư ng. M i ñ i tư ng bao g m: - Thu c tính (Properties): là d li u c a ñ i tư ng. - Phương th c (Methods): là nh ng hành ñ ng mà ñ i tư ng có th thi hành. - S ki n (Events): là nh ng hành ñ ng c a ñ i tư ng ñó ñáp ng l i thông qua th t c s ki n do ngư i l p trình cài ñ t, khi ngư i dùng tương tác v i chương trình. Ví d 3: Trong chương này, các b n s ñư c h c cách s d ng các thu c tính và các s ki n c a các ñ i tư ng thông qua m t chương trình ñ u tiên là “prjWelcome.dpr” - Bư c 1: B n vào ch c năng: File/New/Application ñ t o ra d án m i. Hình 3: Hình nh c a New Form. T c a s thu c tính và s ki n c a ñ i tư ng (Object Inspector), d a vào thu c tính name, b n ñ t tên cho form là frmWelcome ñ Delphi ñ nh nghĩa ra 1 l p có tên là TfrmWelcome ñư c d n xu t t l p cha là TForm như sau: B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 41
  • 48. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi type TfrmWelcome = class(TForm) // memberList end; Và khai báo m t ñ i tư ng có tên là frmWelcome thu c ki u l p TfrmWelcome như sau: var frmWelcome: TfrmWelcome; Hình 4: Hình nh l p TfrmWelcome và ñ i tư ng frmWelcome - Bư c 2: T b ng các thành ph n (Component Palette), click vào th Standard r i l n lư t ñ t các thành ph n TLabel, TEdit, và TButton lên Form: Hình 5: Các ñ i tư ng Label, Edit và Button ñ t trên Form. Trang 42 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 49. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Trong môi trư ng l p trình IDE, các l p trong Delphi thư ng ñư c cài ñ t thành các thành ph n (TComponent) ñ ngư i l p trình d dàng th a hư ng khi thi t k và vi t mã l nh. Như v y: Tên l p cũng chính là tên thành ph n. T ñây v sau, thu t ng “ñ i tư ng A c a m t thành ph n TA” ñư c vi t ng n g n là “ñ i tư ng A”. Ví d 4: Câu l nh frmWelcome:TForm; ñ c ñ y ñ là “ñ i tư ng frmWelcome thu c l p (thành ph n) TForm”. Tuy nhiên, ta có th ñ c g n l i như: “ñ i tư ng frmWelcome”, ho c câu l nh btnGiai:TButton; ñư c ñ c là “nút l nh btnGiai” hay “ñ i tư ng btnGiai”. I.2. Thu c tính M i thành ph n ñ u có nh ng thu c tính ñ xác ñ nh nh ng ñ c tính c a thành ph n ñó ch ng h n như màu s c (Color), v trí (Position), kích thư c và tr ng thái (State) c a chúng. Trong các thu c tính này, b n c n quan tâm nh t ñ n thu c tính tên (Name) c a ñ i tư ng. - Bư c 3: L n lư t thi t l p các thu c tính Name, Caption cho ñ i tư ng Label và các thu c tính Name, Text cho ñ i tư ng Edit: Tên l p Tên ñ i tư ng Hình 6: C a s thu c tính và s ki n c a ñ i tư ng lblHoTen và edtHoTen Tương t , ñ i tư ng thu c thành ph n TButton có thu c tính Name là btnChao và Caption là “&Chao”, ñ i tư ng c a TForm có thu c tính Name là frmWelcome và Caption là “Welcome to Delphi 7.0” Cách truy xu t thu c tính c a ñ i tư ng: Tên_ñ i_tư ng.Thu c_tính B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 43
  • 50. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi Ví d 5: Gán thu c tính Enabled c a lblHoTen b ng True là: lblHoten.Enabled := True; I.3. Phương th c (Method) Là th t c (Procedure) ho c hàm (Function) ñã ñư c xây d ng s n cho công vi c nào ñó c a ñ i tư ng. Ta có th g i phương th c này trong quá trình vi t mã (Coding) ñ chúng thi hành khi chương trình ch y. Cách truy xu t phương th c ñ i tư ng: Tên_ñ i_tư ng.Phương_th c; Ví d 6: G i phương th c Hide và Show ñ th c hi n vi c n và hi n c a ñ i tư ng frmWelcome là: frmWelcome.Hide; và frmWelcome.Show; I.4. S ki n (Event) ðó chính là m t thao tác c a ngư i s d ng tác ñ ng lên ñ i tư ng và nó s ñáp ng l i b ng vi c th c hi n m t công vi c nào ñó. Các s ki n thông thư ng là trên mouse và keyboard như: Click, RightClick, DoubleClick, KeyPress, Drag and drop,… Tên s ki n Tên th t c s ki n s ki n. Hình 7: S ki n OnClick c a btnChao Như hình trên, ñ i tư ng btnChao có nhi u s ki n như: OnClick, OnContextPopup, OnDragDrop,... c a tab Event tương ng trên c t Action. M i s ki n này tương ng v i m t th t c s ki n ñ x lý s ki n ñó (Event handers) n m c t bên ph i tương ng. Trang 44 B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT
  • 51. Chương 5: L p trình x lý s ki n – Các thành ph n c a Delphi I.5. X lý s ki n (Event Handlers) ðó chính là th t c s ki n, thân th t c s ki n này bao g m các câu l nh mà ngư i l p trình vi t trong nó ñ th c hi n m t công vi c, ch c năng nào ñó. Cách hình thành th t c s ki n: procedure Tên_Thành_Ph n_Form.Tên_ñ i_tư ngS _ki n([DanhSáchCácThamS ]); Ví d 7: Th t c s ki n OnClick cho nút l nh btnChao c a frmWelcome (hay còn g i là th t c s ki n btnChaoClick c a l p TfrmWelcome) ñư c hình thành như sau: procedure TfrmWelcome.btnChaoClick(Sender: TObject); tên thành ph n hay tên nút l nh s ki n tên l p form btnChao OnClick - Bư c 4: hình 5, nh p ñúp lên nút l nh Chao, ho c hình 7 b n nh p ñúp lên c t bên ph i c a s ki n OnClick tương ng ñ m ra m t th t c s ki n có tên là TfrmWelcome.btnChaoClick (Sender: TObject) như sau: Hình 8: Th t c s ki n btnChaoClick m i t o c a s ki n OnClick Ti p ñ n b n gõ m t s l nh vào trong thân c a th t c s ki n như hình sau: B môn Tin H c ng D ng – Khoa Khoa H c T Nhiên – Trư ng ðHCT Trang 45