Tải bản đầy đủ (.pdf) (125 trang)

Bài giảng - Lập trình hướng đối tượng và C++ pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 125 trang )







TR
: 


















: g và C++
 : 17209
TRÌNH : 
DÙNG CHO SV NGÀNH : 
















- 2008

i


: Lp trình h  tng . : 3
: Khoa hc máy tính. : CNTT
: 15508 : 3







75

45
30
0
0
0

:

K thut lp trình Pascal, K thut lp trình C.
:
c phng pháp lp trình h  tng lp trình .

-  rng c lp trình h  tng.
-  tng và l.
-  gói, th k, a hình.
- B mu





TS
LT

BT
KT
: 













++
3
3



1.1 c l h  tng





1.2 Gi thi ngôn ng C++





: 









9
6
3


2.1 Cài t ngôn ng C++





2.2 C trúc mt chng trình C++





2.3 Ki d li c s





2.4 Quy t s dng t khóa, tên chu, tên t

t.





2.5 Các ch th gán, so sánh, i kin n thì





 

, 




6
3
3


3.1 Khai báo hàm con, hàm chính.






3.2 Quy t  ki d li, ki tr.





3.3  ngh ch hàm, tham s ng 





3.5 .





 ++
9
5
3

1
4.1  tng vào ra cout, cin






4.2  dòng d li lên màn hình





4.3 Nhp dòng d li t bàn phím





4.4  d dòng d li hi th





4.5 Vào ra v tp





 
18
8
9

1

5.1  ngh  tng





5.2 Khai báo l






ii

5.3 Hàm thi lp, hu b





5.4 Thành ph t, hàm bn, l bn





5.5  ngh ch toán t






Chng 6: Th k
9
6
3


6.1 L c s, l dn xu





6.2 Quy t tha k





6.3 Tng thích l c s và l d xu





6.4 n tha k, a tha k






 


6
3
3


7.1 Hàm , ràng buc t, ng





7.2 a th





: 
12
5
6

1
8.1 Hàm b m






8.2 u khuy i c hàm b m





8.3 L b m





Chng 9: 











3

3






:

2. Ph Vn . K thut lp trình h  tng. NXB KHKT. 1998
3n.
:
- thc hành.
- 

.


1

 














++
1. 














































 



. 





























































 . 
 












:
 








 










 









 








.

1.1 









(








)





















 . 

 































( ). 






:























:
 


























. 













.
 































 

, 











.
 



. 
 




 . 



























, 











 
.

1.2 



























































 

















. 

































. 
















 . 















. 























2

 . 


















 , 


. 






































 . 








 























 , 






















.





































.





























 , 






































 . 



















, 

:


































 . 










 , 








 , 










 . 





, 


















 , 














.

1.3 








. 




































. 












































3



































 



 . 













. 
.



















. 













  . Tuy












 .





















:
 














 














 . 






































. 






. 
























 . 


































.

 


























. 


































 . 


























































 , 

























.
 



























 . 















 














.

1.4 















. 
















































4






















 i


(object)  , 





 (class) , 





















.






















 (instance) ,
 . 






 





























 (struct hay record ) 












































 
.
:
 































 . 











 


, 




















. 




























70% .
 


















































 , 















.
 



























.
 







 . 







 
(




 )  (





 





. 










.

2. 















1.1 









(Astract Data Type)









 . 










.

5









































 . 


















































.















:




































t() 







. 




















. 
























 . 
































































. 
























 (data type)  (data
structure). 










 













 (











 )  .


























 au theo















.
: .










: ADT Integer:





: 













 + 

 
.
:
constructor: 






sub(k):  k.
add(k): + k.


End

1.2 (Objects) (Classes)
















 . 


 . 

























 . 

















 
data member . 
function.












 (instance) . 











 . 


 . 








ADT,  .  























, 













.

1.3 



(Inheritance)


















 . 
























 


. 













































. 



() 








6

( class). 
.




















function 

. 




















































.

1.4 Dynamic Binding ( 

)  (







)
 . 






 , 











 . 























 (). 





















































 




. :
int main()
{
Shape shape_list[4];
int choose;
int i;
for(i=0;i<4;i++)
{

cin >> choose;
if(choose==0)
{
shape_list[i] = new Circle();
}else{
shape_list[i] = new Rectange();

}
}
for(i=0;i<4;i++)
{
shape_list[i]->draw();
}
}














 (file .exe) 











 _














































. 



























 , 

















. 


















 













.

(polymorphism).  







































7



. 
 














.


.

3. 





++ .












 , 

























 , . 























 















.
.

: 










4 

:
1: 1954  1958 (Fortran I) 



















2: 1959  1961 (Fortran II, Cobol) 








3: 1962  1970 (Pascal, Simula) 







, 



4: 












.

.

1.1 






1967 Simula
1970 to 1983 Smalltalk
1979 Common LISP Object System
1980 Stroustrup starts on C++
1981 Byte Smalltalk issue
1983 Objective C
1986 C++
1987 Actor, Eiffel
1991 C++ release 3.0

1995 Java
1983 to 1989 Language books with OO concepts
1989 to 1992 Object-oriented design books
1992 to present Object-oriented methodology books

Java
Self
Python
Perl
Prograph

8

Modula 3
Oberon
Smalltalk Venders
ParcPlace, Digitalk, Quasar
Prolog++
Ada 9X
Object Pascal (Delphi)
Object X, X = fortran, cobal, etc.
C#.




























++ . 

















++ 




.

1.2 





++.
C++  (AT & T
Bell Lab) ( 1994) 
C.
C++ 


















 :  ,










 ,  




. 




 ++ , 



++ 










.

2: 










1. 





1.1 

++






























 (


) 











 



 (
). 
(interpreter) (compiler).
 : 




 
















(activity), 

















 . 
 



 . 

































 . 






 









 . 
























.  , 
















.











 ( ). 

























 , 


























 .



 

















 . 













9

























cung c .
 : 

























. 














. 
























 . 






























.
 , 



























 , 
 . 




















 














, 











. 





(



) 






 














 . 








































 .  separate
compilation (





).













 . 

















 . 




. 

























 . 






















 


 . 



















.
 



.
 , 

















. 








. 
 . 












































(tracing) .
























 (in-memory compilation). 
 .  , 
.











 ++  
 . 





 (







 ++) 






 . 













 
















 (














: preprocessor
directives).  
 . 




 . 



















.
 . 








. 
























10















 cây.  : +




, +, 










.












 (global optimizer) 














Trong p

 , 





























 . 







 ,
 . 


 (







 .


.obj). 










 (peep-hole) 








.






 























. 
























 . 

























 , 




















.






























. 


























,  ; 







 















 .





.
 
. 















. 


























librarian.







h
 .











 .  





































.














 (



 ) 



















 (dynamic type checking). 



















































t.
C++ 









. 

































 , 




 . 

 ++  















 : 

, 



, 

















.
 





 ++ 




















- .























 . Trong ngôn n




 ++, 








































 . 
















  . 



11

C++ 














 , 






 , 
















 .
  , 
























 (











 
1 ).








 ,  , 


 . 

















  , 





















. 
.










 ,  
 . 



 , 
C++ 
.   . 

(declaration). 
















 h
 .

























 . 



























, 

++ 




. 












1 

; 














 .h, 


.

.hxx.














 . 







 










. 


















 #include. 







#





. 







 #







< > 



.
: #include <header.h>





















 
















 , 





















































 . 








 .

 







< >.
 nên






























<>, 





.










 ++ 







 .  








12

. 

































8 .










 










 , 











++.


 (













.o


.obj), 








 , 

























 . 






.
 .

 ,  

.

























 . 























 .
















 







 , 
. 












:
 




 















 





 
 .
































++.








































++,  , 



 , 


u: 












 , 
















. 















, 





.














 . 
 










   . 














 , 
 ,  . 







 ,  .














 























 . 



















.
 




































 . 























.

13





++ 



, 




 . 

















 (startup), 































 ++ 

. 
 .
 










































.
 













(















).

1.2 




.
 








 . 










++, 

































.
// Chương trình HelloWorld
// File hello.cpp
// In ra màn hình xâu “Hello, World!”

#include <iostream.h> // Khai báo luồng cout để sử

dng

int main() {
cout << "Hello, World! I am "
<< 20 << “ today.” endl;
return 0;
}










 ++ 
, 









 . 








































.














 








 , 
 : , World!. 




++ 











.










 , 







. C++ 











:
/*

*/

















:
// ,  


















 ++ 



















 ++. 













 
.












 #include. 












a C++. 































, 




14




stream.




 ()  . 






 ++  () 
 
 0 






 . 






: int main() 






.










 cout (console output) 













 <<. 
<<









 ong C++ 



















 cout, 




















 ++  . 









 , C++ 










.  ++ 
















endl  






















cout .
 <<.
 , 












 (


: ) 











. 




 , 













 (



) 









 0 





.
:
Tcc eHello hello.cpp. 

















.exe.

2. 

, 

















2.1 (variable declaration)









, 











 

. 








 . 















































 (





) 




.
++ :
<

> ;





















 




.
: int a;












, 











 ( )  
(). 




 (

15











). 







extern, :
extern int a;










































.
 :
// file: Declare.cpp
// V d khai bo v đnh ngha bin
extern int i; // khai báo và không định nghĩa
float b; // khai báo và định nghĩa
int i; // định nghĩa biến i

int main() {
b = 1.0;
i = 2;
}
 , 



.

2.2 












 (
t) 










. 

























 }



 {








.
 {

 }


. 











.

2.3 



























 ++ 










 .

.





















 . 











 





























. 



























(tên, , 

) .























C++ 

for, while, do 



if, switch. :
for(int i=0;i<10;i++){

}


}


}

16

switch(int i=cin.get()){


}




































. :

}
 . != 







 = 







 


.

2.4 






(global variable)

 


(














 ). 
().




 















(









 ) 

















.







(

, local)



, 







. 

















 
 .
.



(register variable)
 . 















register. 
































. 



















thanh ghi. Không 















 . 












.













 , 


, 





























.





(static variable)
 . 

















 , 








 . 













 , 











 . 



































 , 







17







.  









 . 

 









 , 













.

 . 

















 . 













.

2.5 



























++ 
. : liên




.










() 













 . 
 , 





 



 . 










.




























. 























. 

 .  (



)
 . 

















 
extern.
 , 









 .



.

2.6 




, :
#define PI 3.14159


































3.14159.
 ++ 










 .  , không
th ( ). 





















 . 
.
C++ 









 , 
.
 ++  . 


-








, , 








(














) 










.

18


























p phân.
 0 









 , 0






 . 
: 1e4, 1.4e4.  , F, L, 









.
 , 














\ 



.

















 
























































. 






















.























.  















.




















 




.

3. ++




 (
















nay) 





















. 













 . 
 . 










 .






 ++ 




 (function prototype). 



















, 
















 . 




 . 














 , 

























 . 



















 














.
:
<








 > <

>(<














>);
: int max(int x, int y);








 , 
 . 













++ (



). 





















 (






). 




















 .










































 . 








 .

19




++  . 








(), C++  , 










 . 



 (void) 











++.




































 (
: variable argument list). 













 (). Tuy nhiên nên
 ++, 
.





  , 




















 . 













. 













, 


.






















 .















 ++ 
 . 







 , 



 










 , 





















.
 . 

















 .

4. 









 .  : if-else, while, do,
do-while, for switch.

 . Trong C++ hai t

























 , tuy nhiên
 : 









 0 







ng 0 .

4.1 

-else




 if  else  : 




else. :
if(expression)
statement



if(expression)
statement
else
statement













 . 




































 , 









 {  }. 













if  else.

4.2 

20

:
while (expression)
statement












 






































 . 



























.




























.


















 


while, 




















.

4.3  while












  












  while









. do  while:
do
Statement
while(expression);
  


.

4.4 

 .
























 , 





































. :
for(initialization; conditional; step)
statement














 , 

 





























 .





























 .










 



















 . 





















.






 







 , 

  

















 . 


:












 , 





















 , 















nhau. :




 Shell  sort: 
so 














 . 





































. 














.
void shellSort(int * a, int n){
int gap, i, j, temp;

21

for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i < n; i++)
for(j = i-gap; j >=0 && a[i] > a[i + gap]; j -= gap){
temp = a[j];
a[j] = a[j + gap];
a[j + gap] = temp;
}

}























 











































:
char * reverse(char *s){
int c, i, j;
for(i = 0, j = strlen(s)  1; i < j; i++, j )
{
c = s[i];
s[i] = s[j];
s[j] = c;
}
}

4.5 

break continue. 

break 









 , 













 (










 ). 















4.6 












































. :
switch(



)

{
case integral_value1: statement; break;
case integral_value2: statement; break;

default: statement;
}




















 . 

















, 






 . 























.
 











 . 





















, 









.



22

4.7 
















 ++  . 









































































.

4.8 












































 















. .

5. ++
 ++ 



 










.
  








 . 

















c . 








































 .  



















 2 

16 





 32 


4 byte. 
limit.

.h.

 





 ++ 4 





 -

, int, 

.












 8 












 . 




 2 





 
, .





















 ++ 






. 



 




































.
4 





































 . C++  4 









: long, short, 


unsigned.











 


. 

























. : 

.












 , 












.


















 . 












 , 








 . 














.











  , 






 , 












. 














×