2. Giới thiệu môn học
• Môn C++ giúp sinh viên nắm được phương
pháp lập trình cấu trúc. Nội dung gồm: Các
bước giải bài toán trên máy tính. Các khái niệm
về biến, hằng, toán tử, biểu thức, câu lệnh...
Cấu trúc rẽ nhánh và lựa chọn. Cấu trúc lặp.
Mảng. Hàm. Con trỏ.
• Một số ứng dụng và thuật toán cho bài toán CN
• Công cụ lập trình sử dụng ở đây là C-Free 4.0
3. Nội dung trình bày
• Máy tính, phần cứng, phần mềm
• Các mức của ngôn ngữ lập trình
• Ngôn ngữ bậc cao và C++
• Các thành phần cơ bản của chương trình
C++
• Các kiểu dữ liệu cơ bản trong C++
• Các bước giải bài toán
• Các loại lỗi và xử lý lỗi
4. Máy tính
• Máy tính (máy vi tính hay máy điện toán)
là thiết bị hay hệ thống được dùng để tính
toán hay kiểm soát các hoạt động mà có
thể biểu diễn dưới dạng số hay quy luật
lôgic.
5. Thiết bị phần cứng
• Phần cứng (hardware) là các thành phần cụ thể
của máy tính có thể chạm vào được như màn
hình, chuột, bàn phím, máy in, máy quét, vỏ máy
tính, đơn vị vi xử lý CPU, bo mạch chủ, các loại
dây nối, loa, ổ mềm, ổ cứng, ổ CDROM, ...
• Dựa trên chức năng và cách thức hoạt động ta
có thể phân biệt phần cứng ra thành:
– Thiết bị nhập (Input): Các bộ phận thu nhập dữ liệu
hay mệnh lệnh như là bàn phím, chuột...
– Thiết bị xuất (Output): Các bộ phận trả lời, phát tín
hiệu, hay thực thi lệnh ra bên ngoài như là màn hình,
máy in, loa, ...
6. Phần mềm máy tính
• Phần mềm (Software) là một tập hợp những câu
lệnh được viết bằng một hoặc nhiều ngôn ngữ
lập trình theo một trật tự xác định nhằm tự động
thực hiện một số chức năng hoặc giải quyết một
bài toán nào đó.
• Phân loại phần mềm dựa trên phương thức hoạt
động
– Phần mềm hệ thống: Hệ điều hành, Driver, Firmware
– Phần mềm ứng dụng: Văn phòng, trò chơi, …
– Phần mềm chuyển dịch (gồm trình biên dịch và trình
thông dịch): Công cụ lập trình
7. Các mức của ngôn ngữ lập trình
• Ngôn ngữ:
– Ngôn ngữ trong máy tính là một công cụ để
thực hiện việc giao tiếp giữa người và máy.
• Lệnh:
– Lệnh là tập hợp một nhóm các ký hiệu của
một ngôn ngữ nào đó nhằm giúp cho người
lập trình có thể xây dựng chương trình trên
ngôn ngữ đó.
8. Các mức của ngôn ngữ lập trình
Cấu trúc phân cấp của ngôn ngữ trên máy tính
9. Các mức của ngôn ngữ lập trình
• Ngôn ngữ máy: Gồm một tập hợp các câu lệnh
được mã hóa theo các số nhị phân 0 và 1, đây
là ngôn ngữ mà máy hiểu được khi đưa vào trực
tiếp.
• Hợp ngữ: Gồm một tập hợp các ký tự gợi nhớ
cho phép thuận tiện trong việc viết chương trình
hơn. Một lệnh của hợp ngữ tương ứng với một
lệnh của mã máy.
• Ngôn ngữ bậc cao: Gồm các ngôn ngữ được
thiết kế cho người lập trình ứng dụng. Ví dụ:
Pascal, C, C++, Java, Fortran, Cobol
10. Biên dịch và chạy chương trình
• Chú ý: Tất cả các chương trình viết bằng ngôn ngữ lập trình
bậc cao đều phải được chuyển sang ngôn ngữ máy trước khi
thực thi.
Lệnh trong C++ Kết quả chạy
cout<<“Hello, World !”; Hello, World !
Dịch lệnh Thực hiện lệnh
Lệnh mã máy
1110010100011101
1001110111011011
…
11. Giới thiệu C++
• C++ là một loại ngôn ngữ lập trình bậc cao có
các chức năng hướng đối tượng.
• Bjarne Stroustrup đã phát triển C++ theo
phương thức C++ = C + OO (Object Oriented)
• Những bổ sung của C++ so với C bắt đầu với
sự thêm vào của khái niệm lớp, tiếp theo đó là
các khái niệm hàm ảo, toán tử quá tải, đa kế
thừa và xử lý ngoại lệ.
• Một số công vụ hỗ trợ cho lập trình C++:
– Borland C++ của hãng Borland
– Microsoft Visual C++ của hàng Microsoft
12. Các thành phần cơ bản của
chương trình C++
• <các thư viện>: Nơi chứa các chức năng cơ bản do trình biên dịch
cung cấp hoặc các chức năng do người lập trình đã định nghĩa
trước đó. Các thư viện này thường có đuôi .h
• <các biến, hằng, hàm toàn cục>: Là nơi chứa các thành phần có thể
được sử dụng ở bất kỳ nơi nào trong chương trình
• <hàm main>: Là điểm vào bắt đầu của chương trình.
13. Một số chú ý khi lập trình
• Ngôn ngữ C++ phân biệt chữ hoa và chữ
thường. Ví dụ: float khác với Float
• Kết thúc mỗi câu lệnh phải có dấu ; (chấm phảy)
• Không đặt tên biến, hằng, … trùng với các từ
khóa của C++. Ví dụ: void, const, …
• Sử dụng chú thích:
– Sử dụng dấu // để chú thích trên 1 dòng lệnh
– Sử dụng dấu /* và */ để chú thích trên nhiều dòng
lệnh
14. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Lệnh hiển thị ký tự lên màn hình:
– Cú pháp:
cout << chuỗi ký tự 1 << chuỗi ký tự 2 << … << chuỗi ký tự n;
Chú ý: Khi hiển thị thông tin trên màn hình ở dạng chuỗi ký tự
(1 dãy các chữ) ta cần phải bao chuỗi ký tự đó giữa 2 dấu
nháy kép. Ví dụ: “Chao cac ban”
– Ví dụ:
• Hiển thị chữ Hello World !!! lên màn hình
Cách 1: cout << “Hello World !!!”;
Cách 2: cout << “Hello” << “ World” << “ !!!”;
15. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
– Các ký tự đặc biệt được sử dụng để định
dạng hiển thị dữ liệu:
• t : Tab
• n (endl) : Xuống dòng
• : Hiển thị chữ
• Ví dụ:
– Hiển thị chữ Hello World !!! với mỗi chữ trên 1 dòng
Cách 1: cout << “Hello” << endl << “World !!!”;
Cách 2: cout << “Hello n World !!!”;
16. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Biến: Là thành phần mà giá trị của nó có thể bị
thay đổi trong chương trình. Trong C++, muốn
dùng biến ta cần phải khai báo trước khi sử dụng.
– Khai báo biến:
• Cú pháp:
<kiểu dữ liệu> <tên các biến>;
Chú ý: Nếu khai báo nhiều biến thì các biến cách nhau bởi dấu
phảy
• Ví dụ:
int a; // Khai báo một biến số nguyên có tên là a
float x; // Khai báo một biến số thực có tên là x
long m, n; // Khai báo 2 biến số nguyên dài có tên là m và n
17. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
– Khai báo và khởi gán giá trị cho biến:
• Cú pháp:
<kiểu dữ liệu> <tên biến> = <giá trị>;
• Ví dụ:
int a = 6; // Khai báo một biến số nguyên có tên là a và a
nhận giá trị ban đầu là 6.
float x = 5.67; // Khai báo một biến số thực có tên là x và
x nhận giá trị ban đầu là 5.67
long m = 9, n = 15; // Khai báo 2 biến số nguyên dài có
tên là m và n; trong đó m nhận giá trị ban đầu là 9 và n
nhận giá trị ban đầu là 15
18. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
– Hiển thị giá trị của biến lên màn hình
• Cú pháp:
cout << tên biến 1 << tên biến 2 << …. << tên biến n;
• Ví dụ:
int a = 6;
float b = 6.78;
cout << a; // Hiển thị giá trị của a lên màn hình
cout << a << b; // Hiển thị giá trị của a và b lên màn hình
19. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Hằng: Là thành phần mà giá trị của nó không
thể bị thay đổi trong chương trình. Trong C++,
muốn dùng hằng ta cần phải khai báo giá trị
trước khi sử dụng.
– Khai báo và khởi gán giá trị cho hằng:
• Cú pháp:
const <kiểu dữ liệu> <tên hằng> = <giá trị>;
Chú ý: Người ta quy ước tên hằng số luôn để chữ hoa
• Ví dụ:
const int HANG1 = 6; // Khai báo một hằng số nguyên có
tên là HANG1 và giá trị của hằng số này là 6
const float PI = 3.14, E = 2.72; // Khai báo 2 hằng số thực
có tên là PI và E; trong đó PI nhận giá
trị là 3.14 còn E nhận giá trị 2.72
20. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
– Hiển thị giá trị của hằng lên màn hình
• Cú pháp:
cout << tên hằng 1 << tên hằng 2 << …. << tên hằng n;
• Ví dụ:
const int HANG1 = 6;
const float PI = 3.14, E = 2.72;
cout << HANG1; // Hiển thị giá trị của HANG1 lên
màn hình
cout << PI << E; // Hiển thị giá trị của hằng PI và E lên
màn hình
21. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Câu lệnh tổng quát hiển thị dữ liệu lên
màn hình:
– Cú pháp:
cout << tham số 1 << tham số 2 << … << tham số n;
Tham số: Là dữ liệu kiểu chuỗi, biến, hằng, …
– Ví dụ:
int xep_thu = 6;
float diem_trung_binh = 9.4;
cout << “Ban Trung co diem trung binh la:” << diem_trung_binh
<< “ va xep thu “ << xep_thu << “ o trong lop !” << endl;
22. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Câu lệnh nhập dữ liệu cho biến từ bàn
phím
– Cú pháp:
cin >> biến 1 >> biến 2 >> …. >> biến n;
– Ví dụ:
• Nhập giá trị cho biến số nguyên x rồi hiển thị giá trị
của x lên màn hình
int x;
cout << “Hay nhap gia tri cho bien x: “;
cin >> x;
cout << “Gia tri cua bien x la: “ << x << endl;
23. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Toán tử
– Các toán tử cơ bản
+ (cộng), - (trừ), * (nhân), / (chia)
– Các toán tử với kiểu số nguyên
/ (chia lấy phần nguyên), % (chia lấy phần dư)
– Ví dụ:
b2 – 4ac = b*b – 4*a*c
– Thứ tự ưu tiên các toán tử: Như trong toán
học (Ưu tiên trong ngoặc trước, tiếp đến là
nhân chia trước, cộng trừ sau)
24. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Biểu thức
– Biểu thức đơn: Là biểu thức chỉ có 1 toán
hạng. Toán hạng này có thể là một giá trị cụ
thể, có thể là một hằng hoặc biến.
• Ví dụ: 98 tong_day_so PI
– Biểu thức có toán tử: Là biểu thức trong đó
có sự kết hợp giữa các toán hạng và toán tử.
• Ví dụ:
a+b a+b*c PI * E 23 + 56
25. Một số khái niệm và câu lệnh cơ
bản của chương trình C++
• Phép gán
– Cú pháp:
<biến> = <biểu thức>;
– Quy tắc: Tính toán giá trị của biểu thức ở bên về phải,
được giá trị bao nhiêu sẽ đưa vào cho biến.
– Ví dụ:
int a = 7, b = 9, c;
c = 5;
c = a + b;
a = a * b + c;
b = b + 1;
26. Các kiểu dữ liệu cơ bản trong C++
Tên Độ dài Mô tả Miền giá trị
Có dấu Không dấu
char 1 byte Ký tự hay số -128 đến 127 0 đến 255
nguyên 8 bit
short 2 bytes Số nguyên -32763 đến 0 đến 65535
16 bit 32762
long 4 bytes Số nguyên -2147483648 0 đến
32 bit đến 4294967295
2147483647
int Trên Trên như kiểu như kiểu
Windows là Windows là long long
4 bytes số nguyên
32 bit
27. Các kiểu dữ liệu cơ bản trong C++
Tên Độ dài Mô tả Miền giá trị
float 4 bytes Số thực 3.4E-38 đến 3.4E+38
dạng dấu
phảy động
double 8 bytes Số thực 1.7E-308 đến 1.7E+308
dạng dấu
phảy động
long double 10 bytes Số thực 1.2E-4932 đến 1.2E+4932
dạng dấu
phảy động
bool 1 byte Kiểu logic true hoặc false
28. Ép kiểu
• Ép kiểu được sử dụng để đưa kiểu dữ liệu
của một biến hay một hằng về dạng dữ
liệu có kiểu mong muốn tại một thời điểm
xác định.
– Cú pháp:
(kiểu dữ liệu) <tên biến>;
– Ví dụ:
int a = 6;
float b = (float) a; //Ép biến a về số thực và gán cho
b, tuy nhiên a vẫn là số nguyên
29. Ép kiểu
• Ép kiểu trong biểu thức:
– Quy tắc tính toán trong biểu thức:
<số nguyên> <toán tử> <số nguyên> => <số nguyên>
<số thực> <toán tử> <số thực> => <số thực>
<số nguyên> <toán tử> <số thực> => <số thực>
– Ví dụ:
int a = 5;
float x = 6.7;
cout << x * a << endl;
cout << (int) x * a << endl;
30. Các bước giải bài toán
1. Đầu bài: Tính tiền Sưu Tập
2. Phân tích bài toán
– Tính giá trị của một bộ sưu tập gồm các đồng 5 xu và 1
xu.
– Input : Số đồng nickel (5 xu) và penny (1 xu).
– Output : Giá trị tiền của bộ sưu tập bằng đôla và xu.
– Biết rằng :
1 đồng nickel = 5 xu
1 đồng penny = 1 xu
1 đôla = 100 xu
31. Các bước giải bài toán
3. Thiết kế thuật toán
1. Nhập số đồng nickel và đồng penny
2. Tính tổng giá trị xu
3. Đổi giá trị xu sang đôla và xu lẻ
4. Hiển thị kết quả đôla và xu lẻ
4. Làm mịn (refine) thuật toán
Tính tổng giá trị xu
1. Tổng giá trị xu = 5*Số đồng nickel + Số đồng penny.
Đổi giá trị xu sang đôla và xu lẻ
1. Số đôla = Phần nguyên của Tổng giá trị xu chia 100.
2. Số xu lẻ = Phần dư của Tổng giá trị xu chia 100.
32. Các bước giải bài toán
5. Cài đặt
#include <iostream.h>
void main()
{
// Khai bao bien
int nickel;
int penny;
int giatrixu;
int dola;
int xule;
// Nhap so dong nickel va penny
cout<<quot;Nhap so dong nickel : quot;;
cin>>nickel;
cout<<quot;Nhap so dong penny : quot;;
cin>>penny;
33. Các bước giải bài toán
// Tinh tong gia tri xu
giatrixu = 5*nickel + penny;
// Tinh gia tri dola va xu le
dola = giatrixu / 100;
xule = giatrixu % 100;
// Hien thi ket qua
cout<<quot;Bo suu tap cua ban co gia tri la quot;<<dola<<quot; dola va“
<<xule<<quot; xuquot;;
}
34. Các bước giải bài toán
6. Kiểm tra chương trình
Nhap so dong nickel : 37
Nhap so dong penny : 25
Bo suu tap cua ban co gia tri la 2 dola va 10 xu
35. Một số loại lỗi thường gặp và cách
thức xử lý lỗi
• Lỗi cú pháp xuất hiện khi dịch chương trình
– Thiếu dấu chấm phảy
– Biến chưa khai báo
– Gõ sai tên biến
– Không tương thích kiểu dữ liệu…
– => Sửa lỗi dựa trên lời báo lỗi của chương trình dịch
• Lỗi xuất hiện khi chạy chương trình
– Chia cho không
– Khai căn của số âm
– Nhập sai kiểu dữ liệu…
– => Xem lại đoạn lệnh gây lỗi khi chạy
36. Một số loại lỗi thường gặp và cách
thức xử lý lỗi
• Lỗi logic xuất hiện do thiết kế thuật toán
không đúng
– Lỗi rất đa dạng
– => Xem lại quá trình cài đặt thuật toán và thiết kế
thuật toán
– => Xen kẽ các câu lệnh in kết quả trung gian
– => Sử dụng chương trình debug
37. Thực hành trên máy
1. Chạy Visual C++ 6.0
2. Tạo một dự án (project)
3. Tạo tập tin nguồn
4. Soạn thảo lệnh
5. Dịch chương trình
6. Chạy chương trình
7. Sửa lỗi (nếu có)