Bài giảng Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn Thành

Nội dung

1. Giới thiệu C++

 Nguồn gốc, Thuật ngữ

2. Biến (variable), Literal, Hằng số (constant)

3. Biểu thức logic

4. Input/Output

5. Phong cách lập trình

6. Thư viện và Namespace

pdf 34 trang yennguyen 2780
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn Thành", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn Thành

Bài giảng Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn Thành
Ngôn ngữ lập trình 
Bài 1: 
Giới thiệu về C++ 
Giảng viên: Lê Nguyễn Tuấn Thành 
Email: thanhlnt@tlu.edu.vn 
Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT 
Trường Đại Học Thủy Lợi 
Nội dung 
2 
1. Giới thiệu C++ 
 Nguồn gốc, Thuật ngữ 
2. Biến (variable), Literal, Hằng số (constant) 
3. Biểu thức logic 
4. Input/Output 
5. Phong cách lập trình 
6. Thư viện và Namespace 
Bài giảng có sử dụng hình vẽ trong cuốn sách “Absolute C++. W. Savitch, Addison Wesley, 2002” 
1. Giới thiệu C++ 
3 
 Thế nào là Ngôn ngữ, Ngôn ngữ lập trình? 
 Nguồn gốc (Sự tiến hóa của ngôn ngữ lập trình) 
 Ngôn ngữ bậc thấp: Assembly 
 Ngôn ngữ bậc cao: C, C++, FORTRAN, COBOL,  
 Ngôn ngữ hướng đối tượng (Object-Oriented Programming): 
C++, Java,  
 Một số thuật ngữ trong C++ 
 Chương trình (Program), 
 Hàm (Function), 
 Thư viện (Library) 
 Input/Output (IO) 
Ví dụ chương trình C++ (1/2) 
4 
Ví dụ chương trình C++ (2/2) 
5 
2. Biến (variable) trong C++ 
6 
 Biến (variable) trong C++ 
 Một vùng bộ nhớ để lưu trữ dữ liệu cho một chương trình 
 PHẢI KHAI BÁO tất cả dữ liệu trước khi sử dụng trong 
chương trình 
 Cách đặt tên biến trong C++ 
 Từ khóa (keyword) hoặc từ dành riêng Tên biến 
 Tên biến phân biệt chữ hoa chữ thường 
 Tên biến nên là những tên có nghĩa (theo chuẩn) 
 Toán tử số học: +, -, *, /, %, ++, -- 
Kiểu dữ liệu (1/2) 
7 
Kiểu dữ liệu (2/2) 
8 
Gán dữ liệu cho biến 
9 
 Khởi tạo dữ liệu bằng một câu khai báo 
 Nếu không khai báo, một biến sẽ có giá trị 
“undefined”! 
 int myVar = 0; 
 Gán dữ liệu trong lúc chạy 
 Lvalue (phía bên trái) & Rvalue (phía bên phải) 
 Lvalue phải là các biến 
 Rvalue có thể là bất kỳ biểu thức nào 
 Ví dụ: distance = rate * time; 
 Lvalue là distance 
 Rvalue là rate * time 
Gán dữ liệu: ký hiệu viết tắt (1/2) 
10 
• Post-Increment: count ++ 
• Dùng giá trị hiện tại của biến trước, sau đó mới tăng giá trị thêm 1 
• Pre-Increment: ++count 
• Tăng giá trị hiện tại của biến thêm 1 trước, sau đó mới dùng giá trị 
mới này 
Gán dữ liệu: ký hiệu viết tắt (2/2) 
11 
 Câu hỏi 1: giá trị của valueProduced và n ? 
1. int n = 2, valueProduced; 
2. valueProduced = 2 * (n ++); 
3. cout << valueProduced << endl; 
4. cout << n << endl; 
 Câu hỏi 2: giá trị của valueProduced và n ? 
1. int n = 2, valueProduced; 
2. valueProduced = 2 * (++ n); 
3. cout << valueProduced << endl; 
4. cout << n << endl; 
Những quy tắc khi gán dữ liệu 
12 
 Tính tương thích của dữ liệu 
 Quy tắc chung là không gán một kiểu dữ liệu cho một biến 
thuộc kiểu dữ liệu khác 
 intVar = 2.85; (intVar là một biến kiểu int) => giá trị 2 được 
gán cho biến intVar 
 Chỉ phần integer là phù hợp, vì thế nó được gán cho biến intVar 
 Được gọi là “gán dữ liệu ngầm (implicit)” hoặc “tự động chuyển đổi dữ 
liệu (automatic type conversion)” 
Chuỗi escape 
13 
 Cấu trúc: \ 
 Thông báo với trình biên dịch đó một chuỗi ký tự 
đặc biệt 
Literal & HẰNG SỐ 
(CONSTANT) 
14 
 Literal 
 2, 5.85, “A”, “Hello World” 
 Không thay đổi trong chương trình 
 Hằng số kiểu literal cung cấp ít ý nghĩa. Ví dụ: số 24 
không diễn đạt được thông tin gì 
 Hằng số được đặt tên (Named Constant hoặc 
Declared Constant) cung cấp ý nghĩa muốn diễn đạt. Ví 
dụ: 
 constant int NUMBER_OF_STUDENTS = 24; 
Named constant 
15 
Độ chính xác trong phép tính (1/2) 
16 
 RẤT QUAN TRỌNG. Biểu thức trong C++ có thể được 
tính toán không như bạn mong đợi 
 Toán hạng (operand) có thứ tự cao nhất sẽ quyết định 
độ chính xác (int, float ) được thực hiện 
 Ví dụ: 
 17 / 5 => 3 
 Cả hai toán hạng đều là số nguyên (integer) => Độ chính xác theo 
kiểu số nguyên được thực thi ! 
 17.0 / 5 => 3.4 
 Toán hạng có thứ tự cao nhất là kiểu double (17.0) => Độ chính xác 
theo kiểu double được thực thi ! 
 int var1 = 1; int var2 = 2; 
 Câu hỏi: Giá trị của var1/var2 ? 
Độ chính xác trong phép tính (2/2) 
17 
 Phép tính được thực hiện từng bước từ trái qua 
phải 
 1 / 2 / 3.0 / 4 : Thực thi theo 3 bước 
1. 1 / 2 => 0 
2. 0 / 3.0 => 0.0 
3. 0.0 / 4 => 0.0 
Độ ưu tiên của toán tử (1/4) 
18 
Độ ưu tiên của toán tử (2/4) 
19 
Độ ưu tiên của toán tử (3/4) 
20 
Độ ưu tiên của toán tử (4/4) 
21 
Ví dụ độ ưu tiên của toán tử 
22 
 Toán tử số học có độ ưu tiên cao hơn toán tử logic 
 x + 1 > 2 || x + 1 2 || (x + 
1) < -3 
 Số nguyên được sử dụng như các giá trị boolean 
 Giá trị khác 0: true 
 Giá trị 0: false 
Ép kiểu 
(Type casting) 
23 
 Ép kiểu cho các biến 
 Có thể thêm “.0” vào các literal để ép buộc thay đổi độ 
chính xác, nhưng với các biến thì sao ? 
 static_cast intVar: ép hoặc chuyển đổi intVar 
sang kiểu double 
 Đây là các chuyển đổi kiểu giá trị tường minh (explicit) 
 Hai cách ép kiểu 
 Ép kiểu ngầm (implicit) hoặc tự động: ví dụ biểu thức 17 / 
5.5 sẽ tự động chuyển 17 thành 17.0 
 Ép kiểu tường minh: (double) 17 / 5.5 
3. Biểu thức logic 
24 
 Toán tử logic trong C++ 
1. Toán tử AND (&&) 
2. Toán tử OR (||) 
3. Toán tử NOT (!): phủ định 
 Toán tử quan hệ (so sánh) trong C++ 
Giá trị của biểu thức logic 
25 
 Kiểu dữ liệu bool. Hai giá trị: true, false là các hằng 
số được định nghĩa trước 
4. Input/Output 
26 
 Đối tượng I/O: cin, cout, cerr 
 Thư viện 
 #include 
using namespace std; 
 cout << numberOfGames << " games played."; sẽ in ra 
màn hình giá trị của biến numberOfGames và chuỗi ký 
tự " games played.“ 
 In dòng mới: 
 Sử dụng chuỗi “\n” (newline): cout << "Hello World\n"; 
 Sử dụng đối tượng endl: cout << "Hello World" << endl; 
Định dạng giá trị in ra 
27 
 cout << "The price is $" << price << endl; 
 Nếu biến price có giá trị 78.5, màn hình sẽ hiển thị: 
 The price is $78.500000 hoặc 
 The price is $78.5 
 Chỉ định kích thước phần thập phân: 
cout.precision(2); => The price is $78.50 
Error output 
28 
 Sử dụng đối tượng cerr 
 Tương tự như cout 
 Cung cấp cơ chế để phân biệt màn hình bình thường và 
màn hình lỗi 
 Chuyển hướng luồng in ra 
 Hầu hết các hệ thống cho phép cout và cerr được chuyển 
hướng sang các thiết bị khác (máy in, file, ) 
Input sử dụng cin 
29 
 cin dùng để nhập dữ liệu cho các biến cout dùng 
để in dữ liệu ra 
 cin >> var 
 Dấu nhắc trên màn hình đợi nhập dữ liệu vào 
 Giá trị nhập vào được gán cho biến var 
5. Phong cách lập trình 
30 
 Mục tiêu: tạo chương trình dễ đọc và thay đổi 
 Chú thích (comment) trong C++, có 2 cách: 
1. // câu chú thích 
2. /* đoạn chú thích */ 
 Một vài quy ước đặt tên trong C++ 
 Quy tắc: tên phải có ý nghĩa 
 Sử dụng CHỮ_HOA cho các hằng số (ví dụ: 
NUMBER_OF_STUDENTS) 
 Đặt tên biến theo định dạng lowerToUpper (ví dụ: 
numberStudent), có thể thêm kiểu dữ liệu vào đầu tên 
biến (ví dụ: iNumberStudent, fCount, ) 
6. Thư viện 
31 
 # include 
 C++ cung cấp sẵn rất nhiều thư viện: xử lý vào/ra 
(Input/Output), tính toán (math), chuỗi ký tự (string) 
Namespace 
32 
 Namespace xác định một tập các tên được định 
nghĩa 
 Ví dụ: 
 #include 
using namespace std; 
 Thay vì phải viết std::cin, chúng ta chỉ cần viết cin 
Tóm tắt 
33 
 C++ là ngôn ngữ lập trình phân biệt chữ hoa, chữ 
thường 
 Nên đặt các tên (biến và hằng số) có ý nghĩa 
 Các biến phải được khai báo trước khi sử dụng, và nên 
được khởi tạo 
 Độ chính xác tính toán phụ thuộc toán hạng có thứ tự 
cao nhất 
 #include các thư viện khi cần thiết 
 Đối tượng cin, cout, cerr 
 Sử dụng các chú thích khi lập trình giúp chương trình dễ 
hiểu 
Giáo trình Tham khảo 
34 
 Giáo trình chính: W. Savitch, Absolute C++, Addison 
Wesley, 2002 
 Tham khảo: 
 A. Ford and T. Teorey, Practical Debugging in C++, Prentice Hall, 
2002 
 Nguyễn Thanh Thủy, Kĩ thuật lập trình C++, NXB Khoa học và 
Kĩ Thuật, 2006 

File đính kèm:

  • pdfbai_giang_ngon_ngu_lap_trinh_bai_1_gioi_thieu_ve_c_le_nguyen.pdf