Ngôn ngữ lập trình - Chương I: Giới thiệu về C++ - Nguyễn Xuân Hùng

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ữ.  ...

pdf35 trang | Chia sẻ: putihuynh11 | Lượt xem: 493 | Lượt tải: 0download
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:

  • pdfnnlt_0_gioithieuc_3213_1993524.pdf