TR
:
: g và C++
: 17209
TRÌNH :
DÙNG CHO SV NGÀNH :
- 2008
i
: Lp trình h tng . : 3
: Khoa hc máy tính. : CNTT
: 15508 : 3
75
45
30
0
0
0
:
K thut lp trình Pascal, K thut lp trình C.
:
c phng pháp lp trình h tng lp trình .
- rng c lp trình h tng.
- tng và l.
- gói, th k, a hình.
- B mu
TS
LT
BT
KT
:
++
3
3
1.1 c l h tng
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 mt chng trình C++
2.3 Ki d li c s
2.4 Quy t s dng t khóa, tên chu, tên t
t.
2.5 Các ch th gán, so sánh, i kin 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 tng vào ra cout, cin
4.2 dòng d li lên màn hình
4.3 Nhp dòng d li t bàn phím
4.4 d dòng d li hi th
4.5 Vào ra v tp
18
8
9
1
5.1 ngh tng
5.2 Khai báo l
ii
5.3 Hàm thi lp, hu b
5.4 Thành ph t, hàm bn, l bn
5.5 ngh ch toán t
Chng 6: Th k
9
6
3
6.1 L c s, l dn xu
6.2 Quy t tha k
6.3 Tng thích l c s và l d xu
6.4 n tha k, a tha k
6
3
3
7.1 Hàm , ràng buc 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
Chng 9:
3
3
:
2. Ph Vn . K thut lp trình h tng. NXB KHKT. 1998
3n.
:
- thc 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ử
dng
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 bo v đnh ngha bin
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.
.
. :
.
,
.
.
,
.
.
,
,
.