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óm tắt 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: ...ed; 2. valueProduced = 2 * (++ n); 3. cout << valueProduced << endl; 4. cout << n << endl; 11 NHỮNG QUY TẮC KHI GÁN DỮ LIỆU 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; (int...2 ? 16 ĐỘ CHÍNH XÁC TRONG PHÉP TÍNH (2/2)  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 17 ĐỘ ƯU TIÊN CỦA TOÁN TỬ (1/4) 18 ĐỘ ƯU TIÊN CỦA TOÁN TỬ (2/4) 19 ĐỘ ƯU TIÊ... 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; 26 ĐỊNH DẠNG GIÁ TRỊ IN RA  cout << "The price is $" << price << endl;  Nếu biến price có giá trị 78.5, màn hình sẽ hiển th...

pdf34 trang | Chia sẻ: havih72 | Lượt xem: 299 | Lượt tải: 0download
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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 
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 
2 
Bài giảng có sử dụng hình vẽ trong cuốn sách “Practical Debugging in C++, 
A. Ford and T. Teorey, Prentice Hall, 2002” 
1. GIỚI THIỆU C++ 
 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) 
3 
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++ 
 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: +, -, *, /, %, ++, -- 
6 
KIỂU DỮ LIỆU (1/2) 
7 
KIỂU DỮ LIỆU (2/2) 
8 
GÁN DỮ LIỆU CHO BIẾN 
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 
9 
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) 
 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; 
11 
NHỮNG QUY TẮC KHI GÁN DỮ LIỆU 
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)” 
12 
CHUỖI ESCAPE 
 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 
13 
LITERAL & HẰNG SỐ (CONSTANT) 
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; 
14 
NAMED CONSTANT 
15 
ĐỘ CHÍNH XÁC TRONG PHÉP TÍNH (1/2) 
 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 ? 
16 
ĐỘ CHÍNH XÁC TRONG PHÉP TÍNH (2/2) 
 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 
17 
ĐỘ Ư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Ử 
 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 
22 
ÉP KIỂU (TYPE CASTING) 
 É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 
23 
3. BIỂU THỨC LOGIC 
 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++ 
24 
GIÁ TRỊ CỦA BIỂU THỨC LOGIC 
 Kiểu dữ liệu bool. Hai giá trị: true, false là các 
hằng số được định nghĩa trước 
25 
4. INPUT/OUTPUT 
 Đố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; 
26 
ĐỊNH DẠNG GIÁ TRỊ IN RA 
 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 
27 
ERROR OUTPUT 
 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, ) 
28 
INPUT SỬ DỤNG CIN 
 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 
29 
5. PHONG CÁCH LẬP TRÌNH 
 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, ) 
30 
6. THƯ VIỆN 
 # 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)  
31 
NAMESPACE 
 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 
32 
TÓM TẮT 
 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 
33 
GIÁO TRÌNH THAM KHẢO 
 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 
34 

File đính kèm:

  • pdfbai_giang_ngon_ngu_lap_trinh_bai_1_gioi_thieu_ve_c_le_nguyen.pdf