際際滷

際際滷Share a Scribd company logo
L畉p tr狸nh h動畛ng 畛i t動畛ng




 H Vn Sang
 B畛 m担n: Tin h畛c TC  KT
 Khoa: H畛 Th畛ng Th担ng Tin Kinh t畉 - H畛c Vi畛n Ti
 Ch鱈nh
 Tel: 0982.165.568
 Email: sanghv@hvtc.edu.vn
 Website: http://www.hvtc.edu.vn/sanghv
03/05/12 07:09                                     1
CH働NG II




03/05/12 07:09   2
1. L畛ch s畛 c畛a C++

C++ 動畛c x但y d畛ng tr棚n n畛n c畛a C

       C 動畛c ph叩t minh b畛i Dennis Ritchie nm 1972


       C d湛ng 畛 vi畉t h畛 i畛u hnh UNIX

       L畛ch s畛 c畛a C v Unix g畉n li畛n v畛i nhau

       UNIX 動畛c hon thnh v畛i C
03/05/12 07:09                                         3/20
1. L畛ch s畛 c畛a C++ (ti畉p)

C++ 動畛c 動a ra b畛i Bjarne Stroustrup

        Phi棚n b畉n 畉u ti棚n ra m畉t nm 1980, v畛i t棚n
         C with class
        Phi棚n b畉n th動董ng m畉i 畉u ti棚n vo nm 1985

        Ansi v ISO 動a ra phi棚n b畉n C++ chu畉n

       C++ h畛 tr畛 l畉p tr狸nh h動畛ng 畛i t動畛ng
03/05/12 07:09                                         4/20
1. L畛ch s畛 c畛a C++ (ti畉p)

働u i畛m:

        動畛c s畛 d畛ng r畛ng r達i


        L s畛 m畛 r畛ng c畛a C

        H畛 tr畛 l畉p tr狸nh h動畛ng 畛i t動畛ng

       C坦 nhi畛u th動 vi畛n m畉u chu畉n STL
03/05/12 07:09                              5/20
2. M畛 r畛ng c畛a C++

M畛t s畛 m畛 r畛ng c畛a C++ so v畛i C:

       董n gi畉n ch畛 l 2 d畉u ++?

       T畛 kh坦a m畛i

       D畛 li畛u, khai b叩o bi畉n


      Chuy畛n ki畛u, tham chi畉u, c畉p ph叩t b畛 nh畛 
03/05/12 07:09                                      6/20
2.1. L畛i ch炭 th鱈ch

C坦 hai c叩ch ch炭 th鱈ch:

 C叩ch 1: /* ..*/


 V鱈 d畛: /* chu thich tren
      nhieu dong*/
  C叩ch 2: //

V鱈 d畛: // Chu thich tren mot dong
03/05/12 07:09                      7/20
2.2. T畛 kh坦a m畛i

M畛t s畛 t畛 kh坦a m畛i:
                 asm         catch      class
                 delete      friend     inline
                 new         operator   private
                 protected   public     template
                 this        throw      try
                 virtual


   N畉u trong ch動董ng tr狸nh vi棚t b畉ng C c坦 t棚n
   tr湛ng  thay 畛i l畉i
03/05/12 07:09                                     8/20
2.3. Ki畛u d畛 li畛u char v int

D畛 li畛u ki畛u char:

       sizeof(A)=sizeof(int)=2

       sizeof(A)=sizeof(char)=1

      Trong C h畉ng k鱈 t畛 c坦 ki畛u int 2 byte
      Trong C++ h畉ng k鱈 t畛 c坦 ki畛u char 1 byte


03/05/12 07:09                                   9/20
2.4. Khai b叩o bi畉n

C++ cho ph辿p khai b叩o bi畉n:

        T畉i b畉t c畛 但u

        Tr動畛c khi s畛 d畛ng

      C坦 hi畛u l畛c trong ph畉m vi ch動董ng tr狸nh k畛 t畛 v畛
      tr鱈 n坦 xu畉t hi畛n

      V鱈 d畛: t狸m s畛 l畛n nh畉t trong d達y
03/05/12 07:09                                          10/20
2.5. Chuy畛n 畛i v 辿p ki畛u

C++ cho ph辿p chuy畛n ki畛u r畛ng r達i:

       1. Khi g叩n gi叩 tr畛 s畛 vo bi畉n ki畛u kh叩c

       2. C叩c ki畛u s畛 kh叩c nhau trong c湛ng 1 bi畛u th畛c

      p ki畛u ki畛u c滴: myInt = (int) myFloat
      p ki畛u ki畛u m畛i: myInt = int (myFloat)
      V鱈 d畛: S=1+1/2+..+1/n
03/05/12 07:09                                       11/20
2.6. Vo ra trong C++

D嘆ng xu畉t, nh畉p d畛 li畛u:
 C炭 ph叩p:
   cout<<bt1<<<<btn;
       cin>>bi畉n1>>bi畉n..>>bi畉nn;
  Ch炭 箪:
  Ph畉i khai b叩o #include <iostream.h>
  D湛ng cin.ignore(1) 畛 b畛 k鱈 t畛 n
  V鱈 d畛: nh畉p 2 s畛 sau 坦 in ra t畛ng v t鱈ch
03/05/12 07:09                                 12/20
2.7. C畉p ph叩t v gi畉i ph坦ng b畛 nh畛

V畉n c坦 th畛 d湛ng hm malloc(), calloc(), free()

       C++ s畛 d畛ng th棚m hai to叩n t畛:
       new: 畛 c畉p ph叩t b畛 nh畛
       C炭 ph叩p: new t棚n_ki畛u
       delete: 畛 gi畉i ph坦ng b畛 nh畛

       C炭 ph叩p: delete con_tr畛

03/05/12 07:09                                   13/20
2.8. Bi畉n tham chi畉u

Kh叩i ni畛m:

       Gi畛ng nh動 m畛t b鱈 danh c畛a bi畉n kh叩c
       Cho ph辿p hm thao t叩c tr畛c ti畉p tr棚n bi畉n 動畛c
       truy畛n
       C炭 ph叩p: Ki畛u &Bi畉nthamchi畉u = Bi畉n;
       V鱈 d畛: int a, &x=a;
       x=1; // a=1
       cout<<x; //in ra s畛 1
       x++; //a=2
       a++; //a=3
03/05/12 07:09                                          14/20
2.9. H畉ng tham chi畉u

C炭 ph叩p:

       const Ki畛u &h畉ngthamchi畉u = Bi畉n(h畉ng);
       V鱈 d畛: int n=10;

       const int &m = n;




03/05/12 07:09                                   15/20
2.10. Hm a nng

L c叩c hm c坦 c湛ng t棚n nh動ng 畛i s畛 kh叩c nhau

  Khi g畉p hm ny, tr狸nh bi棚n d畛ch g畛i hm d畛a vo:
       S畛 l動畛ng 畛i s畛
       Ki畛u c畛a 畛i s畛
       V鱈 d畛: t狸m max c畛a d達y s畛 nguy棚n, s畛 th畛c




03/05/12 07:09                                        16/20
Bi t畉p (week 2)

 S畛 d畛ng TC++ 畛 l畉p tr狸nh:
2. Lm l畉i c叩c bi t畉p 畛 tu畉n 1 v畛i cout v cin
                                 x x2           xn
2. Vi畉t ch動董ng tr狸nh t鱈nh: S =1+ 2 + 3 + ... + n +1
3. Nh畉p ma tr畉n th畛c c畉p mxn:
- T狸m ph畉n t畛 l畛n nh畉t
- S畉p x畉p tng d畉n
- In ma tr畉n sau khi 達 s畉p x畉p


03/05/12 07:09                                        17/20
Bi t畉p (week 2-ti畉p)

 S畛 d畛ng TC++ 畛 l畉p tr狸nh:
4. X但y d畛ng ch動董ng tr狸nh thao t叩c v畛i ph但n s畛:
    nh畉p, in, t畛i gi畉n, c畛ng, t鱈ch hai ph但n s畛
5. X但y d畛ng ch動董ng tr狸nh thao t叩c v畛i vec t董:
- Nh畉p 2 vec t董
- In
- T鱈nh t畛ng, t鱈ch hai vect董


03/05/12 07:09                                   18/20
Qui c叩ch n畛p bi

G畛i t畛i 畛a ch畛: sanghv@gmail.com
CC: sanghv@hvtc.edu.vn
Ti棚u 畛:
[L畛p][BT2][Stt][H畛 v t棚n]
V鱈 d畛:
[K43/41.01][BT2][14][L棚 hong V滴]
H畉n n畛p: 23h59 ngy 22/01/2008


03/05/12 07:09                      19/20

More Related Content

Chapter 2

  • 1. L畉p tr狸nh h動畛ng 畛i t動畛ng H Vn Sang B畛 m担n: Tin h畛c TC KT Khoa: H畛 Th畛ng Th担ng Tin Kinh t畉 - H畛c Vi畛n Ti Ch鱈nh Tel: 0982.165.568 Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv 03/05/12 07:09 1
  • 3. 1. L畛ch s畛 c畛a C++ C++ 動畛c x但y d畛ng tr棚n n畛n c畛a C C 動畛c ph叩t minh b畛i Dennis Ritchie nm 1972 C d湛ng 畛 vi畉t h畛 i畛u hnh UNIX L畛ch s畛 c畛a C v Unix g畉n li畛n v畛i nhau UNIX 動畛c hon thnh v畛i C 03/05/12 07:09 3/20
  • 4. 1. L畛ch s畛 c畛a C++ (ti畉p) C++ 動畛c 動a ra b畛i Bjarne Stroustrup Phi棚n b畉n 畉u ti棚n ra m畉t nm 1980, v畛i t棚n C with class Phi棚n b畉n th動董ng m畉i 畉u ti棚n vo nm 1985 Ansi v ISO 動a ra phi棚n b畉n C++ chu畉n C++ h畛 tr畛 l畉p tr狸nh h動畛ng 畛i t動畛ng 03/05/12 07:09 4/20
  • 5. 1. L畛ch s畛 c畛a C++ (ti畉p) 働u i畛m: 動畛c s畛 d畛ng r畛ng r達i L s畛 m畛 r畛ng c畛a C H畛 tr畛 l畉p tr狸nh h動畛ng 畛i t動畛ng C坦 nhi畛u th動 vi畛n m畉u chu畉n STL 03/05/12 07:09 5/20
  • 6. 2. M畛 r畛ng c畛a C++ M畛t s畛 m畛 r畛ng c畛a C++ so v畛i C: 董n gi畉n ch畛 l 2 d畉u ++? T畛 kh坦a m畛i D畛 li畛u, khai b叩o bi畉n Chuy畛n ki畛u, tham chi畉u, c畉p ph叩t b畛 nh畛 03/05/12 07:09 6/20
  • 7. 2.1. L畛i ch炭 th鱈ch C坦 hai c叩ch ch炭 th鱈ch: C叩ch 1: /* ..*/ V鱈 d畛: /* chu thich tren nhieu dong*/ C叩ch 2: // V鱈 d畛: // Chu thich tren mot dong 03/05/12 07:09 7/20
  • 8. 2.2. T畛 kh坦a m畛i M畛t s畛 t畛 kh坦a m畛i: asm catch class delete friend inline new operator private protected public template this throw try virtual N畉u trong ch動董ng tr狸nh vi棚t b畉ng C c坦 t棚n tr湛ng thay 畛i l畉i 03/05/12 07:09 8/20
  • 9. 2.3. Ki畛u d畛 li畛u char v int D畛 li畛u ki畛u char: sizeof(A)=sizeof(int)=2 sizeof(A)=sizeof(char)=1 Trong C h畉ng k鱈 t畛 c坦 ki畛u int 2 byte Trong C++ h畉ng k鱈 t畛 c坦 ki畛u char 1 byte 03/05/12 07:09 9/20
  • 10. 2.4. Khai b叩o bi畉n C++ cho ph辿p khai b叩o bi畉n: T畉i b畉t c畛 但u Tr動畛c khi s畛 d畛ng C坦 hi畛u l畛c trong ph畉m vi ch動董ng tr狸nh k畛 t畛 v畛 tr鱈 n坦 xu畉t hi畛n V鱈 d畛: t狸m s畛 l畛n nh畉t trong d達y 03/05/12 07:09 10/20
  • 11. 2.5. Chuy畛n 畛i v 辿p ki畛u C++ cho ph辿p chuy畛n ki畛u r畛ng r達i: 1. Khi g叩n gi叩 tr畛 s畛 vo bi畉n ki畛u kh叩c 2. C叩c ki畛u s畛 kh叩c nhau trong c湛ng 1 bi畛u th畛c p ki畛u ki畛u c滴: myInt = (int) myFloat p ki畛u ki畛u m畛i: myInt = int (myFloat) V鱈 d畛: S=1+1/2+..+1/n 03/05/12 07:09 11/20
  • 12. 2.6. Vo ra trong C++ D嘆ng xu畉t, nh畉p d畛 li畛u: C炭 ph叩p: cout<<bt1<<<<btn; cin>>bi畉n1>>bi畉n..>>bi畉nn; Ch炭 箪: Ph畉i khai b叩o #include <iostream.h> D湛ng cin.ignore(1) 畛 b畛 k鱈 t畛 n V鱈 d畛: nh畉p 2 s畛 sau 坦 in ra t畛ng v t鱈ch 03/05/12 07:09 12/20
  • 13. 2.7. C畉p ph叩t v gi畉i ph坦ng b畛 nh畛 V畉n c坦 th畛 d湛ng hm malloc(), calloc(), free() C++ s畛 d畛ng th棚m hai to叩n t畛: new: 畛 c畉p ph叩t b畛 nh畛 C炭 ph叩p: new t棚n_ki畛u delete: 畛 gi畉i ph坦ng b畛 nh畛 C炭 ph叩p: delete con_tr畛 03/05/12 07:09 13/20
  • 14. 2.8. Bi畉n tham chi畉u Kh叩i ni畛m: Gi畛ng nh動 m畛t b鱈 danh c畛a bi畉n kh叩c Cho ph辿p hm thao t叩c tr畛c ti畉p tr棚n bi畉n 動畛c truy畛n C炭 ph叩p: Ki畛u &Bi畉nthamchi畉u = Bi畉n; V鱈 d畛: int a, &x=a; x=1; // a=1 cout<<x; //in ra s畛 1 x++; //a=2 a++; //a=3 03/05/12 07:09 14/20
  • 15. 2.9. H畉ng tham chi畉u C炭 ph叩p: const Ki畛u &h畉ngthamchi畉u = Bi畉n(h畉ng); V鱈 d畛: int n=10; const int &m = n; 03/05/12 07:09 15/20
  • 16. 2.10. Hm a nng L c叩c hm c坦 c湛ng t棚n nh動ng 畛i s畛 kh叩c nhau Khi g畉p hm ny, tr狸nh bi棚n d畛ch g畛i hm d畛a vo: S畛 l動畛ng 畛i s畛 Ki畛u c畛a 畛i s畛 V鱈 d畛: t狸m max c畛a d達y s畛 nguy棚n, s畛 th畛c 03/05/12 07:09 16/20
  • 17. Bi t畉p (week 2) S畛 d畛ng TC++ 畛 l畉p tr狸nh: 2. Lm l畉i c叩c bi t畉p 畛 tu畉n 1 v畛i cout v cin x x2 xn 2. Vi畉t ch動董ng tr狸nh t鱈nh: S =1+ 2 + 3 + ... + n +1 3. Nh畉p ma tr畉n th畛c c畉p mxn: - T狸m ph畉n t畛 l畛n nh畉t - S畉p x畉p tng d畉n - In ma tr畉n sau khi 達 s畉p x畉p 03/05/12 07:09 17/20
  • 18. Bi t畉p (week 2-ti畉p) S畛 d畛ng TC++ 畛 l畉p tr狸nh: 4. X但y d畛ng ch動董ng tr狸nh thao t叩c v畛i ph但n s畛: nh畉p, in, t畛i gi畉n, c畛ng, t鱈ch hai ph但n s畛 5. X但y d畛ng ch動董ng tr狸nh thao t叩c v畛i vec t董: - Nh畉p 2 vec t董 - In - T鱈nh t畛ng, t鱈ch hai vect董 03/05/12 07:09 18/20
  • 19. Qui c叩ch n畛p bi G畛i t畛i 畛a ch畛: sanghv@gmail.com CC: sanghv@hvtc.edu.vn Ti棚u 畛: [L畛p][BT2][Stt][H畛 v t棚n] V鱈 d畛: [K43/41.01][BT2][14][L棚 hong V滴] H畉n n畛p: 23h59 ngy 22/01/2008 03/05/12 07:09 19/20