Bài giảng Lập trình nâng cao - Chương 1: Giới thiệu về C++

• Chương trình đầu tiên HelloWorld.cpp • Ra vào dữ liệu đơn giản • Biến, hằng, và kiểu dữ liệu • Phép toán • Các lệnh rẽ nhánh điều kiện • Các lệnh lặp

pdf21 trang | Chia sẻ: candy98 | Lượt xem: 494 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình nâng cao - Chương 1: Giới thiệu về C++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lập trình nâng cao Giới thiệu về C++ Outline • Chương trình đầu tiên HelloWorld.cpp • Ra vào dữ liệu đơn giản • Biến, hằng, và kiểu dữ liệu • Phép toán • Các lệnh rẽ nhánh điều kiện • Các lệnh lặp Giới thiệu C++ 2 Hello World! Chú thích bắt đầu bằng // Tiền xử lý #include yêu cầu nạp nội dung file thư viện iostream trước khi dịch Hàm int main() là phần code sẽ được thực thi khi chương trình chạy Cặp ngoặc { } đánh dấu đầu và cuối một khối lệnh - block cout << là cách ghi một đoạn text ra màn hình std là không gian tên (namespace) của thư viện chuẩn std::cout có nghĩa là cout thuộc không gian tên std return 0 hàm ý chương trình kết thúc thành công 3Giới thiệu C++ Variable – Biến Biến: một vùng nhớ được đặt tên khai báo biến x thuộc kiểu int Khởi tạo giá trị cho x. Có thể thay hai dòng 5,6 bằng một dòng với nội dung: int x = 4 + 2; Với khai báo namespace, sẽ không phải viết std:: mà chỉ cần viết cout là đủ hiểu Nối các phép toán << để in một chuỗi giá trị. 4Giới thiệu C++ Data types – các kiểu dữ liệu Kế thừa từ C • char • short, int, long • float, double, long double Các kiểu khác • bool true/false • wchar_t ký tự, lưu bảng chữ cái quốc tế 5Giới thiệu C++ Standard input – Đọc dữ liệu từ bàn phím • Gợi ý: mũi tên >>, << đi theo chiều của dữ liệu Đọc từ bàn phím và ghi giá trị đọc được vào biến x 6Giới thiệu C++ Hằng – khai báo bằng #define Định nghĩa hằng không cần biến trong bộ nhớ. Trước khi dịch, bộ tiền xử lý sẽ thay thế tất cả các chuỗi kí tự PI trong code bằng chuỗi 3.14159 7Giới thiệu C++ Hằng – khai báo bằng const • Một biến được định nghĩa kèm từ khóa const là biến có giá trị không thể thay đổi. 8Giới thiệu C++ Các phép toán cơ bản • phép gán – assignation (=) x = 5; //x: lvalue, 5: rvalue – là biểu thức có giá trị là giá trị được gán • các phép toán số học - Arithmetic operators (+, -, *, /, %) • các phép gán kép - Compound assignation operators (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=) • phép tăng và phép giảm (++, --) Giới thiệu C++ 9 Các phép toán cơ bản • các phép quan hệ - relational operators ( ==, !=, >, =, <= ) • các phép toán logic - Logic operators ( !, &&, || ) • phép điều kiện - Conditional operator ( ? ). (7 == 5 ? 4 : 3) cho kết quả 3 do 7 khác 5. • các toán tử bit - Bitwise Operators ( &, |, ^, ~, > ). Giới thiệu C++ 10 Các phép gán tắt • Các biểu thức gán tắt - Assignment expression abbreviations – Phép gán cộng c = c + 3; viết tắt thành c += 3; • Các lệnh có dạng variable = variable operator expression; có thể được viết lại thành variable operator= expression; • Các phép gán khác d -= 4 (d = d - 4) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9) Giới thiệu C++ 11 Increment (++) và Decrement (--) • a++ và ++a là viết tắt của a = a + 1 với cảnh báo: ++a tăng a, sau đó trả về giá trị của a a++ trả về giá trị hiện tại của a, sau đó tăng a --a giảm a, sau đó trả về giá trị của a a-- trả về giá trị hiện tại của a, sau đó giảm a 12Giới thiệu C++ 1 // Fig. 2.14: fig02_14.cpp 2 // Preincrementing and postincrementing. 3 #include 4 5 using std::cout; 6 using std::endl; 7 8 // function main begins program execution 9 int main() 10 { 11 int c; // declare variable 12 13 // demonstrate postincrement 14 c = 5; // assign 5 to c 15 cout << c << endl; // print 5 16 cout << c++ << endl; // print 5 then postincrement 17 cout << c << endl << endl; // print 6 18 19 // demonstrate preincrement 20 c = 5; // assign 5 to c 21 cout << c << endl; // print 5 22 cout << ++c << endl; // preincrement then print 6 23 cout << c << endl; // print 6 24 25 return 0; // indicate successful termination 26 27 } // end function main 5 5 6 5 6 6 Casting – Đổi kiểu giá trị Bắt buộc đổi tường minh từ float sang int Trình biên dịch ngầm đổi kiểu 14Giới thiệu C++ Các phép toán và độ ưu tiên 15Giới thiệu C++ if và phép toán ba ngôi ? : Tương đương với 16Giới thiệu C++ 17 Các phép toán logic • ! (logical NOT – phủ định logic) – trả về giá trị true khi điều kiện là false, và ngược lại if ( !( grade == ‘F’ ) ) cout << "Congratulation, you’ve passed!" << endl; tương đương với: if ( grade != ‘F’ ) cout << "Congratulation, you’ve passed!" << endl; 18 Nhầm lẫn giữa phép so sánh bằng (==) và phép gán (=) • Lỗi thường gặp – Thường không tạo lỗi cú pháp (syntax error) • Các khía cạnh của vấn đề – biểu thức có giá trị có thể được dùng làm điều kiện • bằng không = false, khác không = true – Các lệnh gán cũng tạo giá trị (giá trị được gán) 19 Nhầm lẫn giữa phép so sánh bằng (==) và phép gán (=) • Ví dụ if (grade == ‘F’) cout << "You’ve failed!" << endl; – Nếu điểm (grade) là F thì trượt • Nếu == bị thay bởi = if (grade = ‘F’) cout << "You’ve failed!" << endl; – grade được gán giá trị ‘F’ (không cần biết giá trị cũ của grade) – lệnh gán trả về true (vì ‘F’ khác 0) – trường hợp nào cũng trượt 20 Nhầm lẫn giữa phép so sánh bằng (==) và phép gán (=) • Lvalue – là biểu thức có thể xuất hiện tại vế trái của phép gán – xác định một vùng nhớ có thể được gán trị (i.e, các biến) • x = 4; • Rvalue – chỉ xuất hiện bên phải phép gán – hằng, các giá trị (literal) • không thể viết 4 = x; • Lvalue có thể được dùng như các rvalue, nhưng chiều ngược lại là không thể 21 Nhầm lẫn giữa phép so sánh bằng (==) và phép gán (=) Lời khuyên: nên viết ‘F’ == grade thay vì grade == ‘F’ Lí do: trình biên dịch sẽ phát hiện nếu bạn nhầm thành ‘F’ = grade
Tài liệu liên quan