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

 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)

pdf 34 trang kimcuc 9060
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