
14/04/2010
GV:VÕ HỒNG BẢO CHÂU 1
CHƯƠNG 2
NGÔN NGỮC++
1
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
MỤC TIÊU
ySửdụng được một trình biên dịch C/C++ nào đó để
viết chương trình.
yViết được chương trình cơbản dùng các cấu trúc điều
ể
ể
2
khi
ể
n trên các ki
ể
u dữliệu c
ơ
b
ản
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
NỘI DUNG CHI TIẾT
yKhái quát vềngôn ngữC++
yKiểu dữliệu cơbản, phép toán
yNhập xuất dữliệu
yCác cấu trúc điều khiển
3
yHàm
yMảng và mẫu tin
yCon trỏvà tham chiếu
yNhâp xuất và tập tin
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
KHÁI QUÁT VỀC++
y1970, Denis Ritchie (Bell Lab.) phát triển ngôn ngữ
C.
{Dạng System Implementation Language (SIL)
{Phát triển từngôn ngữCPL (Combined Programming
Language) BCPL (Basic CPL) và ngôn ng
ữ
B
4
Language)
,
BCPL (Basic CPL) và ngôn ng
ữ
B
.
{Brian Kernighan, D. Ritchie (1978), The C Programming
Language, Prentice-Hall
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu

14/04/2010
GV:VÕ HỒNG BẢO CHÂU 2
KHÁI QUÁT VỀC++
yĐầu 1980, Bjarne Stroustrup phát triển ngôn ngữ
C++
{Trên sơsởngôn ngữSimula 67
{Tương thích hoàn toàn với C
{
M
ở
r
ộ
ng C v
ớ
i c
ấ
u trúc OOP
5
{
M
ở
r
ộ
ng C v
ớ
i c
ấ
u trúc OOP
{Tên gọi “C with Classes”
{Năm 1983, Ricj Mascitti đềnghịC++
{Bjarne Stroustrup (1985), The C++ Programming Language,
Prentice-Hall
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
CẤU TRÚC CHƯƠNG TRÌNH C++
#include <iostream.h>
void main (void)
{
cout << "Hello World\n";
}
Hello.cpp
6
C++
Program
C
Code
Object
Code
Execut-
able
C++
COMPILER
NATIVE
C++
TRANSLATOR
LINKER
C
COMPILER
C++
Program
Hello.cpp
Hello.obj
Hello.exe
}
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
MỞRỘNG CỦA C++
yBiến, đối tượng:
{Có thểkhai báo ởbất kỳ vịtrí nào (trước khi sửdụng)
{Khai báo biến còn mang ý nghĩa thực thi câu lệnh, tạo đối tượng
ySửdụng ghi chú
Cá h
/*
N
ộ
i
d
hi
hú*/
7
{
Cá
c
h
1:
/*
N
ộ
i
d
un
g
ghi
c
hú*/
{Cách 2: //Dòng ghi chú
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
yKhai báo hằng số
{Cách 1: #define Tên_hằng Giá_trị
{Cách 2: const Kiểu_dl Tên_hằng = Giá_trị
Trong cách 1:
{
Không
xác
đ
ị
nh
đ
ượ
c
ki
ể
u
d
ữ
li
ệ
u
c
ủ
a
h
ằ
ng
s
ố
8
{
Không
xác
đ
ị
nh
đ
ượ
c
ki
ể
u
d
ữ
li
ệ
u
c
ủ
a
h
ằ
ng
s
ố
{Giá trịhằng không thểcó cấutrúc
{Không thểxác định địachỉcủahằng
Trong cách 2:
{Kiểudữliệucủahằng sốđượcxácđịnh
{Giá trịhằng có thểcó cấutrúc
{Có thểxác định địachỉcủahằng
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu

14/04/2010
GV:VÕ HỒNG BẢO CHÂU 3
LỆNH ĐƠN & LỆNH PHỨC
yLệnh đơnlà một
sựtính toán được
kết thúc bằng dấu
chấm phẩy.{
int min, i = 10, j = 20;
min = (i < j ? i : j)
;
Ví dụ:
9
yNhiều lệnh đơn có
thểkết nối lại
thành một lệnh
phứcbằng cách
rào chúng bên
trong các dấu
ngoặc xoắn.
min = (i < j ? i : j)
;
min + 5;
cout << min << '\n';
;
}
Lệnh rỗng Lệnh vô dụng
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
NHẬP XUẤT DỮLIỆU
yC++ cung cấp các lệnh nhập xuất dữliệu trong thưviện
<iostream.h>, trong đó có các đối tượng
yĐểlấy dữliệu từbàn phím vào biến ta dùng lệnh sau:
cin>>Biến 1>>Biến 2>>....;
á
đ
ố
i
i
l
ấ
d
li
bà
hí
đ
10
yTo
á
ntử>> của
đ
ố
i
tư
ợ
ng c
i
n
l
ấ
y
d
ữ
li
ệutừ
bà
np
hí
m
đ
ặt
vào biếnbênphảinótheothứtự
yVớilệnh này, khi nhậpgiátrịcho các biếnthìgiữacác
giá trịphải phân cách nhau bằng Enter hoặcSpacehoặc
Tab
ví dụ: cin >> intVar >> floatVar;
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
NHẬP XUẤT DỮLIỆU
yĐểnhập dữliệu cho một chuỗi n ký tự
Hàm cin.getline(Tên_biến,Số_ký_tự_tối_đa) trong đó:
{Tên_biến: tên của biến chuỗi
{Số ký tự tối đa mà biến chuỗi có thể nhận
Ví dụ: char hoten[30]; cin getline(hoten 30);
11
Ví
dụ:
char
hoten[30];
cin
.
getline(hoten
,
30);
yHàm cin>> để lại ký tự “\n” trong bộ đệm có thể làm trôi
phương thức cin.getline()
Îkhắc phục: dùng cin.ignore(1) để bỏ qua ký tự “\n”
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
yĐểđưadữliệu ra màn hình ta dùng lệnh sau:
cout<<Biểuthức1<<Biểuthức 2<...;
Toán tử<< sẽđưagiátrịcác biểuthứcbênphảinó
tớimànhình.
12
yMuốnđặtcontrỏmàn hình xuống đầudòngtiếp
theo ta phảiđưarakýtựxuống dòng ’\n’ hoặcdùng
endl
cout<<Biểuthức<<’\n’;
Ví dụ:cout<<a<<c+b<<’\n’; cout<<100<<endl;
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu

14/04/2010
GV:VÕ HỒNG BẢO CHÂU 4
VÍ DỤ NHẬP XUẤT
13
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
yCác hàm xửlý nhậpxuất: thưviện“iomanip.h”
yĐểthiếtlậpđộrộng cho giá trịcầnin
{Hàm cout.width(Số_cột)
{Hàm setw(Số_cột)
Ví
d
ụ
:
cout<<setw(
5
)<<X
;
14
Ví
d
ụ
:
cout<<setw(
5
)<<X
;
yĐểhiểnthịsốthực
{Hàm setf(cờhiệu)
{Hàm precision(n) thiếtlập
nsốphầnlẻthậpphân
Ví dụ: cout.setf(ios::showpoint)
cout.precision(2)
showpoint dấu của các biến kiểu số
hex In ra số dưới dạng hexa
dec In ra số dưới dạng cơ số 10
oct In ra số dưới dạng cơ số 8
left Căn lề bên trái
right Căn lề bên phải
internal Căn lề giữa
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
#include <iostream.h>
main(){
int age;
cout << "When were you born? ";
15
cin >> age;
cout << "After 10 years, you will be "
<< 2008 –age + 10 << "years old\n"
return 1;
}
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
yPhép toán gán
int y, x;
16
y = (x = 100);
Hay
y = x = 100;
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu

14/04/2010
GV:VÕ HỒNG BẢO CHÂU 5
17
int n, m = 10;
n = m++;
cout << n++ << endl;
int n, m = 10;
n = m;
m = m + 1;
cout << n << endl;
¾Phép toán tăng, giảm
int n,m = 10;
n = ++m;
cout << ++n << endl;
cout << n << endl;
n = n + 1;
int n,m = 10;
m = m + 1;
n = m;
n = n + 1;
cout << n << endl;
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
18
yPhép toán điều kiện
if ( a > 100.0 )
m = 5;
else m = a > 100.0 ? 5 : a + 10;
m = a + 10;
if ( a > b )
max = a; max = a > b ? a : b;
else
max = b;
OOP-CHƯƠNG 2-NGÔN NGỮ C++ GV: Võ Hồng Bảo Châu
Độưu tiên phép toán
Phép
toán
Mô tảƯu tiên Thứ tự trong
biểu thức
Toán
hạng
Ví dụ
:: Truy cậpbiếntoàncục17Phải sang 1 ::x
:: Phân định thành phầncủalớp17Trái sang2
NAME::x
.Tru
y
c
ập
thành
p
h
ầ
n của đ
ố
i 16 - nt - - nt -
o
bj
.
n
19
yậpp
tượng hay mẩu tin
-> Truy cập đến thành phần của con
trỏ đối tượng (hoặc mẩu tin)
16 - nt - - nt - obj->n
[] Truy cậpchỉsố16 - nt - - nt - a[i]
() Gọihàm 16 -nt -
() Chuyểnđổikiểu16-nt -
int(ch)
++ Tăng sau 16 Phải sang 1 n++
-- Giảmsau 16 -nt - -nt - n--
OOP-CHƯƠNG 2-NGÔN NGỮ C++
GV: Võ
Hồng Bảo
Châu
Phép
toán
Mô tảƯu
tiên
Thứ tự trong
biểu thức
Toá n
hạng
Ví dụ
sizeof Kích thước của đối tượng
hoặc của kiểu dữ liệu
15 - nt - - nt - sizeof(a)
++ Tăng trước15-nt --nt -
++n
-
-
Giảm
trước
15
-
nt
-
-
nt
-
-
-
n
20
Giảm
trước
15
-
nt
-
-
nt
-
n
~Bitwise NOT 15 - nt - - nt - ~s
!Phủđịnh 15 - nt - 1 !q
+Chuyển thành dương 15 - nt - - nt - +n
-Chuyển thành âm 15 - nt - - nt - -n
*Lấy giá trịtạiđịachỉ15 Phải sang - nt - *ptr
&Truy cậpđịachỉ15 - nt - - nt - &x
OOP-CHƯƠNG 2-NGÔN NGỮ C++
GV: Võ
Hồng Bảo
Châu

