ĐẠI HỌC MỞ
TP.HCM
KHOA CÔNG NGHỆ
THÔNG TIN
-
Lý thuyết: 2 tín chỉ
-Thực hành: 2 tín chỉ
CƠ S
CƠ S
Ở
Ở
L
L
Ậ
Ậ
P TRÌNH
P TRÌNH
ThS.GVC Tô Oai Hùng
2
Mục Đích, Yêu Cầu Môn Học
y Môn học này giúp cho sinh viên tiếp cận
cách lập trình trên máy tính. Một trong
những ngôn ngữ lập trình được sử
dụng là C++. Đây là môn học được xem
là nền tảng trong lập trình. Những kiến
thức về lập trình được sử dụng trong
hầu hết các môn học của ngành Công
Nghệ Thông Tin sau này.
y Học xong môn này sinh viên có thể lập
trình được những bài toán cơ bản về
tính toán. Biết cách tạo giải thuật,
chuyển thành chương trình từ bài toán
cụ thể và sử dụng thành thạo ngôn ngữ
C++ trong lập trình cấu trúc.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
3
Tài Liệu Học Tập
y Tài liệu chính:
- Giáo trình Cơ Sở
Lập Trình
- Khoa
CNTT Đại học Mở
Tp. HCM.
y Tài liệu tham khảo:
- Joel Adams & Larry Nyhoff, C++ An
Introduction to Computing, Prentice
Hall 2002, Third Edition.
- H.M. Deitel & P.J. Deitel, C++ How to
Program, Prentice Hall, New Jersey,
2003, Fourth Edition.
- Nicholas A. Solter & Scott J. Kleper,
Professional C++, Wiley Publishing,
2005.
Cơ Sở
Lập Trình
Chương 1
GIỚI THIỆU NGÔN NGỮ
C++
ĐẠI HỌC MỞ
TP.HCM
KHOA CÔNG NGHỆ
THÔNG TIN
ThS.GVC Tô Oai Hùng
5
Mục Tiêu
y Công dụng của máy tính.
y Một số khái niệm.
y Thế nào là một chương trình C++.
y Giải quyết bài toán bằng chương trình
C++.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
6
Công Dụng Của Máy Tính
y Công nghiệp:
- Robot, thiết kế
bằng máy tính, quản
lý dự
án và điều khiển.
y Chính phủ:
- Quốc phòng, vũ
trụ, biên dịch dữ
liệu, thời tiết.
y Y học:
- Hồ sơ y khoa, các hệ
thống hỗ
trợ
khám chữa bệnh, máy chụp cắt lớp.
y Giải trí:
- Hoạt hình, màu sắc, các hiệu ứng.
y Khoa học:
- Giả
lập, phân tích phân tử, kiểm tra
thực phẩm.
y Công nghệ thông tin:
- Công nghệ
số.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
7
Một Số
Khái Niệm
y Chương trình máy tính:
- Một loạt các câu lệnh mà
nó
chỉ
thị
cho máy tính giải quyết vấn đề như
thế
nào.
y Dữ liệu:
- Những thông tin có
thể được lưu trữ
và
xử
lý bằng máy tính.
y Lập trình:
- Thực hiện thiết kế, viết và
bảo trì
chương trình nhằm điều khiển máy
tính làm việc.
y Người lập trình:
- Người viết ra chương trình.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
8
Một Số
Khái Niệm
y Ngôn ngữ lập trình:
- Hệ
thống các ký hiệu dùng để
tạo
thành chương trình.
y Chương trình dịch:
- Chương trình dùng để
chuyển đổi
chương trình nguồn thành chương
trình ngôn ngữ
máy thực thi được.
y Thời gian dịch:
- Thời gian thực hiện dịch chương
trình nguồn.
y Thời gian thực thi:
- Thời gian chạy chương trình ngôn
ngữ
máy.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
9
Chương Trình C++
y Chương trình ví dụ:
// h01_01.cpp
// Chương trình đầu tiên trong C++
#include <iostream.h>
int main()
{
cout << "Welcome to C++!\n";
return 0; // cho biếtchương trình
// kết thúc thành công
}
Chú
thích
Chỉ
dẫn biên dịch
Phần chính của chương
trình chứa các lệnh C++
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
10
Chương Trình C++
- Các lệnh C++:
int main()
{
cout << "Welcome to C++!\n";
return 0;
}
Xuất chuỗi
thông báo
Trả
trị
0 cho hệ điều
hành -
cho biết
chương trình kết
thúc thành công
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
11
Các Bước Giải Quyết Bài Toán
Các bước trong phát triển phần mềm gồm:
y Thiết kế:
- Phân tích, đặc tả
giải thuật để
giải
quyết vấn đề.
y Viết mã lệnh:
- Viết đặc tả
giải thuật bằng cú
pháp
của ngôn ngữ
lập trình.
y Kiểm tra, thực thi, phát hiện lỗi :
- Tìm tất cả
những lỗi phát sinh và
chỉnh sửa lại chương trình.
y Bảo trì:
- Cập nhật, sửa đổi theo yêu cầu sử
dụng.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
12
Vấn Đề
y Quả cầu được quấn bằng sợi. Hỏi:
- Quả
cầu nặng bao nhiêu?
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
13
Giải Thuật
1.
Khởi tạo hằng PI.
2.
Xuất thông báo nhắc user nhập bán
kính.
3.
Nhập một giá
trị
thực và
chứa vào
biến radius.
4.
Xuất thông báo nhắc user nhập tỉ
trọng.
5.
Nhập một giá
trị
thực và
chứa vào
biến density.
6.
Tính:
7.
Xuất trọng lượng (weight) ra màn
hình.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
14
Viết Mã C++
y Đầu tiên tạo khung chương trình:
- Thêm các chỉ
dẫn biên dịch để
chèn
các thành phần cần thiết trong thư
viện cho chương trình.
- Tạo hàm main() rỗng.
y Chuyển đổi từng bước giải thuật thành
mã lệnh:
- Nếu chương trình có
sử
dụng đối
tượng phần mềm nào chưa được
khai báo, thêm các lệnh khai báo để
chỉ định kiểu và tên cho đối tượng
đó.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
15
Viết Mã C++
/* h01_02.cpp: Tính trọng lượng quả
cầu.
Nhập: Bán kinh (foot) và
tỷ
trọng
(pound/cubic foot) quả
cầu
Xuất: Trọng lượng quả
cầu (pound)
*/
#include <iostream.h> // cin, cout,
// <<, >>
#include <math.h> // pow()
int main() // hàm main() rỗng
{
return 0;
}
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
16
Viết Mã C++
int main()
{
const double PI = 3.14159;
cout << "Nhập
bán kính quả
cầu: ";
double radius;
cin >> radius;
cout << "Nhập tỷ
trọng quả
cầu: ";
double density;
cin >> density;
double weight = density * 4.0 * PI *
pow(radius,3)/3.0;
cout << "\nTrọng lượng quả
cầu xấp xỉ
"
<< weight << " pound.\n";
return 0;
}
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
17
Kiểm Tra, Thực Thi,
Phát Hiện Lỗi
Nhập bán kính quả
cầu: 6.5
Nhập tỉ
trọng quả
cầu: 14.6
Trọng lượng quả
cầu xấp xỉ
16795 pound.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
18
Kiểm Tra, Thực Thi,
Phát Hiện Lỗi
y Các lỗi thường gặp:
- Lỗi vi phạm các qui tắc văn phạm
của ngôn ngữ
cấp cao (lỗi cú
pháp).
- Lỗi xảy ra lúc thực thi chương trình
(lỗi thời gian thực thi).
- Lỗi do thiết kế
giải thuật (lỗi logic).
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
19
Lỗi Cú
Pháp
y Ví dụ:
double radius
- Mất dấu chấm phẩy.
y Đây là lỗi thường gặp nhất.
y Thông thường trình biên dịch đưa ra
thông báo lỗi để người lập trình xác
định vị trí và sửa lại chương trình
nguồn.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
20
Lỗi Thời Gian Thực Thi
y Không được phát hiện cho đến khi
chương trình thực thi.
y Ví dụ:
- Chia cho 0 sẽ
làm cho chương trình
dừng.
- Tính căn bậc hai của số
âm.
y Chương trình phải được sửa đổi khi có
bất kỳ lỗi nào xảy ra.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
21
Lỗi Logic
y Chương trình được dịch và được thực
thi nhưng cho kết quả không đúng.
y Đây là lỗi khó phát hiện nhất.
y Có thể sử dụng dữ liệu mẫu và tính
bằng tay rồi so sánh với kết quả của
chương trình.
y Chú ý: Kiểm tra lỗi càng khó khi độ
phức tạp của chương trình càng tăng:
- Một số chương trình được chạy
trong nhiều năm mà
không phát hiện
lỗi logic.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
22
Bảo Trì
y Các chương trình trong nhà trường
thường chỉ chạy vài lần.
y Các chương trình trong thực tế được
sử dụng nhiều năm:
- Nó
là
tài nguyên đã được đầu tư vào
đó.
y Những yêu cầu mới phát sinh trong quá
trình sử dụng chương trình .
y Cập nhật lại được gọi là “bảo trì”.
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
23
Bảo Trì
y Ví dụ bảo trì chương trình Hình 1.2 bằng
cách tính trọng lượng quả cầu theo
pound và tấn.
/* h01_03.cpp: Tính trọng lượng quả
cầu
theo pound và
tấn.
Nhập: Bán kính (foot) và
tỷ
trọng (pound/
cubic foot) quả
cầu.
Xuất: Trọng lượng quả
cầu (pound và
tấn)
*/
#include <iostream.h>
#include <math.h>
int main()
{
const double PI = 3.14159;
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
24
Bảo Trì
cout << "Nhập bán kính quả
cầu:
";
double radius;
cin >> radius;
cout << "Nhập tỷ
trọng quả
cầu: ";
double density;
cin >> density;
double weight = density * 4.0 * PI
* pow(radius,3) / 3.0;
cout <<"\nTrọng lượng quả
cầu xấp xỉ
"
<< weight << " pound, hay "
<< weight /2000.0 << " tấn.\n";
return 0;
}
Cơ Sở
Lập Trình
ThS.GVC Tô Oai Hùng
25
Kiểm Tra Lại
Nhập bán kính quả
cầu: 6.5
Nhập tỉ
trọng quả
cầu: 14.6
Trọng lượng quả
cầu xấp xỉ
16795 pounds hay 8.39752 tấn.
Cơ Sở
Lập Trình