
1
Chương 2:
NGÔN NGỮ C++
Giáo viên: Võ Hồng Bảo Châu
Khoa CNTT trường ĐH Lạc Hồng
LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
MỤC TIÊUMỤC TIÊU
•Sử dụng được một trình biên dịch C/C++ nào đó để viết
chương trình.
•Viết được chương trình cơ bản dùng các cấu trúc điều
khiển trên các kiểu dữ liệu cơ bản
2OOP-CHƯƠNG 2-NGÔN NGỮ C++
NỘI DUNG CHI TIẾTNỘI DUNG CHI TIẾT
•Khái quát về ngôn ngữ C++
•Kiểu dữ liệu cơ bản, phép toán
•Nhập xuất dữ liệu
•Các cấu trúc điều khiển
•Hàm
•Mảng và mẫu tin
•Con trỏ và tham chiếu
•Nhập xuất và tập tin
3OOP-CHƯƠNG 2-NGÔN NGỮ C++
KHÁI QUÁT VỀ C++KHÁI QUÁT VỀ C++
•1970, 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.
– Brian Kernighan, D. Ritchie (1978), The C Programming
Language, Prentice-Hall
4OOP-CHƯƠNG 2-NGÔN NGỮ C++

2
KHÁI QUÁT VỀ C++KHÁI QUÁT VỀ C++
•Đầ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
– Tên gọi “C with Classes”
– Năm 1983, Ricj Mascitti đề nghị C++
– Bjarne Stroustrup (1985), The C++ Programming Language,
Prentice-Hall
5OOP-CHƯƠNG 2-NGÔN NGỮ C++
CẤU TRÚC CHƯƠNG TRÌNH C++CẤU TRÚC CHƯƠNG TRÌNH C++
C++
Program
C
Code
Object
Code
Execut-
able
C++
COMPILER
NATIVE
C++
TRANSLATOR
LINKER
C
COMPILER
C++
Program
Hello.cpp
Hello.obj
Hello.exe
#include <iostream.h>
void main (void)
{
cout << "Hello World\n";
}
Hello.cpp
6OOP-CHƯƠNG 2-NGÔN NGỮ C++
MỞ RỘNG CỦA C++MỞ RỘNG CỦA C++
Biế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
Sử dụng ghi chú
Cách 1: /* Nội dung ghi chú*/
Cách 2: //Dòng ghi chú
7OOP-CHƯƠNG 2-NGÔN NGỮ C++
Khai 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ố
Giá trị hằng không thể có cấu trúc
Không thể xác định địa chỉ của hằng
Trong cách 2:
Kiểu dữ liệu của hằng số được xác định
Giá trị hằng có thể có cấu trúc
Có thể xác định địa chỉ của hằng
8OOP-CHƯƠNG 2-NGÔN NGỮ C++

3
LỆNH ĐƠN & LỆNH PHỨCLỆNH ĐƠN & LỆNH PHỨC
•Lệnh đơn là một
sự tính toán được
kết thúc bằng dấu
chấm phẩy.
•Nhiều lệnh đơn có
thể kết nối lại
thành một lệnh
phức bằng cách
rào chúng bên
trong các dấu
ngoặc xoắn.
{
int min, i = 10, j = 20;
min = (i < j ? i : j);
min + 5;
cout << min << '\n';
;
}
Ví dụ:
Lệnh rỗng Lệnh vô dụng
9OOP-CHƯƠNG 2-NGÔN NGỮ C++
NHẬP XUẤT DỮ LIỆUNHẬP XUẤT DỮ LIỆU
C++ 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
Để 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>>....;
Toán tử >> của đối tượng cin lấy dữ liệu từ bàn phím đặt
vào biến bên phải nó theo thứ tự
Với lệnh này, khi nhập giá trị cho các biến thì giữa các giá
trị phải phân cách nhau bằng Enter hoặc Space hoặc Tab
ví dụ: cin >> intVar >> floatVar;
10 OOP-CHƯƠNG 2-NGÔN NGỮ C++
NHẬP XUẤT DỮ LIỆUNHẬP XUẤT DỮ LIỆU
•Để 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);
•Hà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”
11 OOP-CHƯƠNG 2-NGÔN NGỮ C++
•Để đưa dữ liệu ra màn hình ta dùng lệnh sau:
cout<<Biểu thức1<<Biểu thức 2<...;
Toán tử << sẽ đưa giá trị các biểu thức bên phải nó tới
màn hình.
•Muốn đặt con trỏ màn hình xuống đầu dòng tiếp theo ta
phải đưa ra ký tự xuống dòng ’\n’ hoặc dùng endl
cout<<Biểu thức<<’\n’;
Ví dụ:cout<<a<<c+b<<’\n’; cout<<100<<endl;
12 OOP-CHƯƠNG 2-NGÔN NGỮ C++

4
VÍ DỤ NHẬP XUẤTVÍ DỤ NHẬP XUẤT
13 OOP-CHƯƠNG 2-NGÔN NGỮ C++
•Các hàm xử lý nhập xuất: thư viện “iomanip.h”
•Để thiết lập độ rộng cho giá trị cần in
– Hàm cout.width(Số_cột)
– Hàm setw(Số_cột)
Ví dụ: cout<<setw(5)<<X;
•Để hiển thị số thực
– Hàm setf(cờ hiệu)
– Hàm precision(n) thiết lập
n số phần lẻ thập phâ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
14 OOP-CHƯƠNG 2-NGÔN NGỮ C++
#include <iostream.h>
main(){
int age;
cout << "When were you born? ";
cin >> age;
cout << "After 10 years, you will be "
<< 2008 – age + 10 << "years old\n"
return 1;
}
15 OOP-CHƯƠNG 2-NGÔN NGỮ C++
•Phép toán gán
int y, x;
y = (x = 100);
Hay
y = x = 100;
16 OOP-CHƯƠNG 2-NGÔN NGỮ C++

5
int n, m = 10;
n = m++;
cout << n++ << endl;
int n,m = 10;
n = ++m;
cout << ++n << endl;
int n, m = 10;
n = m;
m = m + 1;
cout << n << endl;
n = n + 1;
int n,m = 10;
m = m + 1;
n = m;
n = n + 1;
cout << n << endl;
Phép toán tăng, giảm
17 OOP-CHƯƠNG 2-NGÔN NGỮ C++
•Phé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;
18 OOP-CHƯƠNG 2-NGÔN NGỮ C++
Độ ưu tiên phép toánĐộ ư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ập biến toàn cục 17 Phải sang 1 ::x
:: Phân định thành phần của lớp 17 Trái sang 2 NAME::x
.Truy cập thành phần của đối tượng
hay mẩu tin
16 - nt - - nt - obj.n
-> 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ập chỉ số 16 - nt - - nt - a[i]
() Gọi hàm 16 - nt -
() Chuyển đổi kiểu 16 - nt - int(ch)
++ Tăng sau 16 Phải sang 1 n++
-- Giảm sau 16 - nt - - nt - n--
19 OOP-CHƯƠNG 2-NGÔN NGỮ C++
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ước 15 - nt - - nt - ++n
-- 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 địa chỉ 15 Phải sang - nt - *ptr
&Truy cập địa chỉ 15 - nt - - nt - &x
20 OOP-CHƯƠNG 2-NGÔN NGỮ C++

