Tài liệu Ngôn ngữ lập trình - Chương I: Giới thiệu về C++ - Nguyễn Xuân Hùng: Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
CHƯƠNG I. GiỚI THIỆU VỀ C++
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Giới thiệu về C++.
2. Biến, biểu thức và lệnh gán.
3. Nhập, xuất dữ liệu.
4. Phong cách lập trình.
5. Không gian tên.
8/29/20162 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.1 Nguồn gốc của C++.
• Ngôn ngữ lập trình C++ có thể được hiểu là ngôn ngữ lập
trình C với các lớp (và một vài tính năng mới khác được
thêm vào).
• Ngôn ngữ lập trình C được phát triển bởi Dennis Ritchie
thuộc phòng thí nghiệm AT&T Bell vào những năm
1970.
8/29/20163 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.1 Nguồn gốc của C++.
• Ngôn ngữ C là một ngôn ngữ đặc biệt bởi vì nó là một ngôn
ngữ bậc cao với nhiều tính năng của ngôn ngữ bậc thấp.
Ưu điểm:
• Có thể trực tiếp thao tác trên bộ nhớ của máy tính giống hợp
ngữ.
• Dễ đọc và dễ viết hơn hợp ngữ.
...
35 trang |
Chia sẻ: putihuynh11 | Lượt xem: 493 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Ngôn ngữ lập trình - Chương I: Giới thiệu về C++ - Nguyễn Xuân Hùng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
CHƯƠNG I. GiỚI THIỆU VỀ C++
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Giới thiệu về C++.
2. Biến, biểu thức và lệnh gán.
3. Nhập, xuất dữ liệu.
4. Phong cách lập trình.
5. Không gian tên.
8/29/20162 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.1 Nguồn gốc của C++.
• Ngôn ngữ lập trình C++ có thể được hiểu là ngôn ngữ lập
trình C với các lớp (và một vài tính năng mới khác được
thêm vào).
• Ngôn ngữ lập trình C được phát triển bởi Dennis Ritchie
thuộc phòng thí nghiệm AT&T Bell vào những năm
1970.
8/29/20163 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.1 Nguồn gốc của C++.
• Ngôn ngữ C là một ngôn ngữ đặc biệt bởi vì nó là một ngôn
ngữ bậc cao với nhiều tính năng của ngôn ngữ bậc thấp.
Ưu điểm:
• Có thể trực tiếp thao tác trên bộ nhớ của máy tính giống hợp
ngữ.
• Dễ đọc và dễ viết hơn hợp ngữ.
Thuận lợi cho viết các chương trình hệ thống.
Nhược điểm:
• Khi viết chương trình khác không dễ dàng để hiểu.
• Nó cũng không có nhiều thao tác kiểm tra tự động như một vài
ngôn ngữ bậc cao khác.
8/29/20164 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.1 Nguồn gốc của C++.
• Để khắc phục được các nhược điểm này và một vài
nhược điểm khác của C, Bjarne Stroustrup của phòng thí
nghiệm AT&T Bell đã phát triển C++ vào những năm đầu
1980.
• Hầu hết C là tập con của C++ và vì thế hầu hết các
chương trình C cũng là chương trình C++. Không giống
C, C++ có các tiện ích cho các lớp vì thế nó có thể sử
dụng cho lập trình hướng đối tượng.
8/29/20165 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.2 C++ và lập trình hướng đối tượng
• Lập trình hướng đối tượng (OOP) là một kĩ thuật lập trình
phổ biến và mạnh mẽ hiện nay.
Đặc điểm:
• Tính đóng gói: là một dạng che dấu thông tin hoặc trừu
tượng hóa.
• Tính thừa kế: đề cập đến việc viết mã có khả năng sử
dụng lại.
• Tính đa hình: đề cập đến việc chỉ một tên mà có thể có
nhiều ngữ nghĩa khi đặt trong hoàn cảnh có sự thừa kế.
8/29/20166 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.3 Đặc tính của C++
• C++ có những lớp cho phép nó có thể được sử dụng như
một ngôn ngữ hướng đối tượng.
Cơ chế nạp chồng.
Cơ chế trừu tượng.
Những khuân mẫu.
Không gian tên.
Tính năng quản lý ngoại lệ.
Quản lý bộ nhớ.
8/29/20167 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.4 Thuật ngữ của C++
• Hàm: Tất cả những thứ mà được gọi là thủ tục, phương
thức, hàm hoặc chương trình con trong các ngôn ngữ
khác thì đều được gọi là hàm trong C++.
• Chương trình: một chương trình C++ cơ bản chỉ là một
hàm có tên là main.
8/29/20168 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Giới thiệt về C++
1.5 Một chương trình C++
Demo:
8/29/20169 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.1 Các định danh
• Quy tắc:
Bắt đầu bằng chữ cái hoặc dấu gạch nối
Tất các các ký tự của nó phải là chữ cái, chữ số và dấu
gạch nối.
Không trùng với các từ khóa của C++, và không chứa ký
tự đặc biệt (%, #, @, $,)
Ví dụ:
Định danh hợp lệ: x, x1, x2, _abc, _ABC123z7, sum, RATE,
Count, data, vv
Định danh không hợp lệ: 12, 3x, %change, data-1, myfirst.c,
PROG.CPP
8/29/201610 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.1 Các định danh
• Chú ý:
C++ là ngôn ngữ phân biệt chữ hoa chữ thường và độ dài
định danh là không giới hạn
Ví dụ:
Rate khác với RATE
Thông lệ: tên được viết bằng chữ thường ở chữ cái đầu
tiên, mỗi từ sau đó được viết hoa ở chữ cái đầu tiên.
Ví dụ:
topSpeed, bankRate, timeOfArrival,
8/29/201611 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.2 Khai báo biến
• Cú pháp:
;
Ví dụ:
int numberOfBeans;
double oneWeight, totalWeight;
8/29/201612 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.2 Khai báo biến
• Bảng một số kiểu dữ liệu:
8/29/201613 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Tên kiểu Bộ nhớ
sử dụng
Phạm vi Độ chính
xác
short 2 byte -32,767 đến 32,767 Không áp dụng
int 4 byte -2,147,483,647 đến 2,147,483,647 Không áp dụng
long 4 byte -2,147,483,647 đến 2,147,483,647 Không áp dụng
float 4 byte Xấp xỉ 10-38 đến 1038 7 chữ số
double 8 byte Xấp xỉ 10-308 đến 10308 15 chữ số
long double 10 byte Xấp xỉ 10-4932 đến 104932 19 chữ số
char 1 byte Tất cả các kí tự ASCII Không áp dụng
bool 1 byte true, false Không áp dụng
2. Biến, biểu thức và lệnh gán
2.2 Khai báo biến
• Bảng một số kiểu dữ liệu:
Mỗi kiểu số nguyên đều có dạng không âm: unsign short,
unsign int, unsign long;
8/29/201614 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.3 Lệnh gán
Cách trực tiếp để thay đổi dữ liệu của biện là sử dụng
lệnh gán
Cú pháp:
= ;
Trong đó:
Dấu “=” gọi là toán tử gán
Biểu thức có thể là một biến, một số hoặc một biểu thức
phức tạp tạo bởi các biến, các số, các toán tử và các lời
gọi hàm
8/29/201615 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.3 Lệnh gán
Ví dụ:
totalWeight = oneWeight * numberOfBeans;
temperature = 98.5;
count = count + 2;
Gán giá trị trong khai báo biến
= ;
Ví dụ:
int count = 0;
double rate = 0.07, time, balance = 0.00;
Hay: double rate(007), time, balance(0.00);
8/29/201616 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.3 Lệnh gán
Kết hợp giữa toán tử số học và phép gán để thay đổi giá
trị biến.
Cú pháp: = ;
tương đương với:
=
8/29/201617 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Ví dụ Tương đương với
count += 2; count = count + 2;
total -= discount; total = total – discount;
bonus *= 2; bonus = bonus * 2;
time /= rushFactor; time = time / rushFactor;
change %= 100; change = change % 100;
amount *= cnt1 + cnt2; amount = amount * (cnt1 + cnt2)
2. Biến, biểu thức và lệnh gán
2.4 Hằng
Hằng là tên một giá trị cụ thể, chúng không thể thay đổi
được giá trị
Cú pháp: dùng chỉ thị #define
#define
Hoặc dùng từ khóa const:
const =
hoặc const =
Ví dụ:
#define PI 3.14
int const MIN = 1; const int MAX = 1000;
8/29/201618 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Chuỗi điều khiển đặc biệt
Một dấu “\” đứng trước một ký tự sẽ không mang ý nghĩa
khác thông thường
Bảng liệt kê một số điều khiển đặc biệt
8/29/201619 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Chuỗi Ý nghĩa
\n Dòng mới
\r Phím xuống dòng (vị trí của con trỏ tại đầu dòng hiện tại. Bạn không sử dụng kí
hiệu này nhiều).
\t (Ngang) tab (chuyển con trỏ đến vị trị bắt đầu của tab tiếp theo)
\a Cảnh báo (phát ra âm thanh cảnh báo, thông thường là tiếng chuông)
\\ Dấu chéo lùi (cho phép bạn đặt một dấu chéo lùi trong một biểu thức ngoặc)
\’ Dấu ngoặc đơn (hầu hết được sử dụng để đặt một dấu ngoặc đơn bên trong các dấu
ngoặc đơn khác)
\” Dấu ngoặc kép (hầu hết được sử dụng để đặt một dấu ngoặc kép bên trong chuỗi
giới hạn bởi cặp ngoặc)
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Nếu tất cả các biến là số nguyên, kết quả là số nguyên.
Nếu ít nhất một trong các biểu thức có kiểu dấu chấm
động, kết quả là kiểu dấu chấm động
Thứ tự các phép toán: nhân chia trước, cộng trừ sau, nếu
cùng mức thì thực hiện từ trái sang phải.
Ví dụ 1:
x + y * z
Ví dụ 2: Chương trình tính số tiền thu được sau 1 năm gửi
ngân hàng với số tiền gửi được nhập vào bàn phím và lãi
suất cố định là 6.9%/năm. (Demo)
8/29/201620 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Phép chia với hai số nguyên:
- Toán tử / cho ta kết quả là thương
- Toán tử % cho ta kết quả là số dư
Ví dụ:
10 / 3 = 3;
10 % 3 = 1;
8/29/201621 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Chuyển kiểu: là cách thay đổi môt giá trị thuộc một kiểu
thành một giá trị của kiểu khác
Kiểu 1: static_cast (biểu thức)
Ví dụ: int n = 9, m = 2;
double ans = n / static_cast (m);
Kiểu 2: const_cast (biểu thức)
Chuyển kiểu với các hằng
Kiểu 3: dynamic_cast (biểu thức)
Chuyển kiểu xuống kiểu con của nó, trong quan hệ kế
thừa
8/29/201622 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Chuyển kiểu: là cách thay đổi môt giá trị thuộc một kiểu
thành một giá trị của kiểu khác
Kiểu 4: reinterpret_cast (biểu thức)
Dạng chuyển kiểu độc lập thực thi
Các kiểu cũ hơn:
- Dùng ký pháp: ví dụ: int(9.5) kết quả là 9; hoặc (double)
9 kết quả là: 9.0;
8/29/201623 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Toán tử tăng giảm:
Toán tử tăng: ++ cộng thêm 1 vào giá trị của biến
Toán tử giảm: -- trừ đi 1 giá trị của biến
Ví dụ 1:
int n = 2;
int valueProduced = 2*(n++);
cout << valueProduced << "\n";
cout << n << "\n“;
Kết quả:
4
3
8/29/201624 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Biến, biểu thức và lệnh gán
2.4 Thứ tự các phép toán trong biểu thức
Toán tử tăng giảm:
Ví dụ 2:
int n = 2;
int valueProduced = 2*(++n);
cout << valueProduced << "\n";
cout << n << "\n“;
Kết quả:
6
3
8/29/201625 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.1 Xuất ra màn hình: cout
Khi thao tác với các đối tượng cin, cout, cerr ta phải khai
báo thư viện ở đầu chương trình
#include
using namespace std;
Xuất ra chuỗi ký tự:
Ví dụ: cout<<“Xin chào các bạn”
<<“ Chào mừng bạn đến với C++”;
Xuất ra biến
Ví dụ: cout<<numberOfGames<<“ games played.”;
8/29/201626 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.1 Xuất ra màn hình: cout
Xuất ra biểu thức toán học:
Ví dụ: cout<<“The total of cost is $”<< (price + tax);
Xuất ra dòng mới
Ví dụ: cout<<“\n”;
Hoặc: cout<<endl;
Quy tắc dùng \n và endl: Nếu có thể bao gồm \n ở vị trí kết
thúc của một chuỗi dài. Còn ngược lại dùng endl;
8/29/201627 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.1 Xuất ra màn hình: cout
In ra với khuôn dạng với các số thập phân
Ví dụ:
cout << "The price is $" << price << endl;
Nếu price có giá trị 78.5 thì kết quả có thể là
The price is $78.500000
hoặc nó có thể là
The price is $78.5
Hoặc nó có thể xuất ra một dòng như sau :
The price is $7.850000e01
Đó là các kết quả xuất ra không như mong muốn, thậm chí cả định
dạng có ý nghĩa nhất:
The price is $78.50
8/29/201628 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.1 Xuất ra màn hình: cout
In ra với khuôn dạng với các số thập phân
Công thức để đưa ra một khuôn dạng mong muốn:
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
Ý nghĩa: bất cứ câu lệnh cout nào sau những câu lệnh này sẽ
xuất ra các giá trị của bất cứ một kiểu dấu chấm động nào
với chính xác hai chữ số sau dấu chấm thập phân.
8/29/201629 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.2 Nhập vào sử dụng: cin
Cách sử dụng tương tự như cout, nhưng cin là cho việc
nhập dữ liệu vào.
Ví dụ:
cin>>numberOfLanguages;
Hoặc
cout << "Enter the number of dragons\n"
<< "followed by the number of trolls.\n";
cin >> dragons >> trolls;
8/29/201630 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Giao tiếp nhập/xuất
3.2 Nhập vào sử dụng: cin
Ý nghĩa: khi gặp câu lệnh cin, chương trình sẽ đợi người
dùng nhập dữ liệu từ bàn phím
Cú pháp:
cin>>biến_1>>biến_2>>.;
8/29/201631 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
4. Các thư viện và không gian tên
4.1 Các thư viện và chỉ thị include
C++ có chưa các thư viện chuẩn. Không thể viết một
chương trình nếu không sử dụng ít nhất một thư viện.
Cú pháp:
#include
Ví dụ:
#include
8/29/201632 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
4. Các thư viện và không gian tên
4.2 Không gian tên
Một không gian tên là một tập hợp của các tên được định
nghĩa. Mỗi tên, chẳng hạn như tên hàm, có thể được cung
cấp những định nghĩa khác nhau trong hai không gian
tên. Vì thế một chương trình có thể sử dụng một trong số
không gian tên này tại một vị trí và sử dụng cái kia tại vị
trí khác.
Cú pháp:
using không_gian_tên;
Ví dụ:
using namespace std;
8/29/201633 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
4. Các thư viện và không gian tên
4.2 Không gian tên
Nếu bạn chỉ muốn sử dụng một số tên trong không gian
tên có hiệu lực bạn chỉ cần khai báo như sau:
#include
using std::cin;
using std::cout;
using std::endl
8/29/201634 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
5. Bài tập
8/29/2016Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi35
Bài tập tổng hợp 1
Bài tập tổng hợp 2
Các file đính kèm theo tài liệu này:
- nnlt_0_gioithieuc_3213_1993524.pdf