lập trình hướng đối tượng c++

30 387 0
lập trình hướng đối tượng c++

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Giới thiệu môn học LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG § Mục đích môn học: Môn học trang bị cho sinh viên kiến thức ngôn ngữ lập trình hướng đối tượng C++ khả phân tích, thiết kế ứng dụng theo hướng đối tượng § Vị trí môn học: Áp dụng cho sinh viên năm thứ (học kỳ 6), CNTT Trong môn học có sử dụng kiến thức môn học: Cấu trúc liệu giải thuật, hệ điều hành § Thời lượng môn học: 45 tiết phân bổ sau: 30 tiết lý thuyết, 15 tiết thực hành Ngô Công Thắng Bộ môn Công nghệ phần mềm Khoa Công nghệ Thông tin Đại học Nông nghiệp Hà Nội Website: fita.hua.edu.vn/ncthang Email: ncthang@hua.edu.vn Ngô Công Thắng w Phần 1: Ngôn ngữ lập trình C++ w Phần 2: Lập trình hướng đối tượng Giới thiệu môn học Nội dung môn học Giáo trình Tài liệu tham khảo Hình thức thi kiểm tra Bài giảng LTHDT Giới thiệu môn học Nội dung môn học Môn học: Lập trình hướng đối tượng Ngô Công Thắng Bài giảng LTHDT Giới thiệu môn học Ngô Công Thắng Bài giảng LTHDT Giới thiệu môn học Đánh giá môn học Giáo trình § Giữa kỳ kiểm tra, cuối kỳ thi Hình thức thi kiểm tra lập trình trực tiếp máy § Điểm đánh giá môn học: [1] C++ lập trình hướng đối tượng, GS Phạm Văn Ất, NXB GTVT, 2005 [2] Bài giảng môn học lập trình hướng đối tượng http://fita.hua.edu.vn/ncthang Ngô Công Thắng Bài giảng LTHDT Giới thiệu môn học F Điểm kiểm tra + tập: hệ số 0,1 F Điểm đồ án môn học: hệ số 0,3 F Điểm thi: hệ số 0,6 Tài liệu tham khảo [1] Rober Lafore , C++ Interactive Cource [2] Herbert Schildt, C++ Nuts and Bolts: For Experienced Programmers, McGraw-Hill, Inc [3] Saba Zamir, C++ Primer for non C programmers, McGraw-Hill, Inc [4] GS Phạm Văn Ất (1997), Kỹ thuật lập trình C sở nâng cao, NXB KH&KT [5] Nguyễn Việt Hương (2000), Ngôn ngữ lập trình C++ cấu trúc liệu, NXB Giáo dục [6] Nguyễn Thanh Thủy đồng nghiệp (2003), Lập trình hướng đối tượng với C++, NXB KH&KT Ngô Công Thắng Bài giảng LTHDT Giới thiệu môn học Ngô Công Thắng Bài giảng LTHDT Giới thiệu môn học I Giới thiệu ngôn ngữ C++ PHẦN I NGÔN NGỮ LẬP TRÌNH C++ Lịch sử phát triển ngôn ngữ C++ Tại ngôn ngữ C++ thông dụng? Trình biên dịch Borland C++ Chương Các phần tử ngôn ngữ C++ Chương Các kiểu liệu C++ Chương Khai báo Biểu thức Khối lệnh Chương Vào/ra liệu với C++ Chương Các lệnh điều khiển chương trình Chương Mảng xâu ký tự Chương Kiểu cấu trúc kiểu liệt kê Chương Con trỏ Chương Hàm C++ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Chương Các phần tử ngôn ngữ C++ Lịch sử phát triển ngôn ngữ C++ I.Giới thiệu ngôn ngữ C++ II Các phần tử ngôn ngữ C++ III Cấu trúc chung chương trình C++ viết DOS IV Cấu trúc chung chương trình C++ viết Linux w Năm 1973 ngôn ngữ lập trình C đời với mục đích ban đầu để viết hệ điều hành Unix máy tính mini PDP Sau C sử dụng rộng rãi nhiều loại máy tính khác trở thành ngôn ngữ lập trình có cấu trúc ưa chuộng w Để đưa tư tưởng lập trình hướng đối tượng vào C, năm 1980 nhà khoa học người Mỹ B Stroustrup cho đời ngôn ngữ C có tên ban đầu “C có lớp”, sau đến năm 1983 gọi C++ Ngôn ngữ C++ phát triển cao C Trong C++ không đưa vào tất khái niệm, công cụ lập trình hướng đối tượng mà đưa vào nhiều khả cho hàm Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Tại ngôn ngữ C++ thông dụng? w Mặc dù tư tưởng lập trình hướng đối tượng đưa vào nhiều ngôn ngữ lập trình C++ ngôn ngữ lập trình hướng đối tượng thông dụng vì: C++ ngôn ngữ kế thừa mở rộng từ ngôn ngữ C (một ngôn ngữ cấu trúc ưa chuộng) Vì có kế thừa nên tất chương trình viết C chạy C++ w C++ có đặc điểm tốt C n Quản lý tên hàm mở rộng thông qua chế chồng hàm function overloading Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Tại ngôn ngữ C++ thông dụng? n Tư tưởng phân vùng biến namespaces cho phép quản lý biến tốt n Tính hiệu n Các phần mềm xây dựng trở nên dễ hiểu n Hiệu sử dụng thư viện n Khả sử dụng lại mã thông qua templates n Quản lý lỗi n Cho phép xây dựng phần mềm lớn Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Trình biên dịch C++ w Trên DOS Windows: n n Borland C++ 3.1: Việc sử dụng Borland C++ 3.1 DOS giống Turbo Pascal 7.0 Tất thao tác mở, đóng tệp, soạn thảo chương trình, biên dịch chạy thử chương trình giống Turbo Pascal Visual C++ 6.0: Tạo project kiểu Win32 console application w Trên Linux: n Dùng trình biên dịch g++ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng II Các phần tử ngôn ngữ C++ Bộ ký tự Từ khoá Các tên tự đặt Các tên chuẩn Dấu chấm phẩy Lời thích Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bộ ký tự ngôn ngữ C++ Từ khoá w Mọi ngôn ngữ lập trình xậy dựng ký tự Các ký tự ghép lại với để tạo thành từ Các từ lại liết kết với theo quy tắc để tạo thành câu lệnh Một chương trình bao gồm nhiều câu lệnh diễn đạt thuật toán để giải toán w Bộ ký tự ngôn ngữ C++ gồm có ký tự sau: n n n 26 chữ hoa: A, B,C,…Z 26 chữ thường: a…z 10 chữ số: 0, 1, 2,…, Các ký hiệu toán học: + - * / = ) ( Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bộ ký tự ngôn ngữ C++ n n n Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 11 Từ khoá Ký tự gạch nối _ Các dấu chấm câu ký tự đặc biệt khác: , ; : [] ? ! \ & | % # $ … Dấu cách khoảng trống dùng để ngăn cách từ Chú ý: Khi viết chương trình ta không sử dụng ký tự tập ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng w Từ khoá từ riêng C++ Chúng thường sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh w Các từ khoá C++ gồm có: asm _asm asm auto break case cdecl _cdecl cdecl char class const continue _cs cs default delete double _ds ds else enum _es es _export export extern far _far 10 w Các từ khoá C++ gồm có: far _fastcall fastcall float for friend goto huge _huge huge if inline int interrupt _interrupt interrupt _loadds loadds long near _near near new operator pascal _pascal pascal private protected public register return _saveregs saveregs _seg seg short signed sizeof _ss ss static struct switch template this typedef union unsigned virtual void volatile while Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 12 Các tên tự đặt Dấu chấm phẩy w Tên dùng để xác định đại lượng khác chương trình tên hằng, tên biến, tên hàm, tên trỏ, tên cấu trúc, tên tệp, tên nhãn,… w Tên dãy ký tự chữ cái, chữ số dấu gạch nối song ký tự phải chữ dấu gạch nối Tên không đặt trùng với từ khoá w Một số ví dụ tên đặt sai: 3XYZ_7 R#3 F(x) case Al pha Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 13 w Dấu chấm dùng để ngăn cách câu lệnh Dấu chấm phẩy thường đặt cuối câu lệnh thiếu Ví dụ: float x; x = 10.5; x = 2*x – 2.5; Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 15 Tên chuẩn Lời giải thích w Tên chuẩn tên đặt trình biên dịch đặt Tên chuẩn tên hằng, tên hàm Ghi nhớ: + Các từ khoá, tên tự đặt, tên chuẩn phân biệt chữ hoa chữ thường, nghĩa viết hoa, viết thường khác Ví dụ: Tên AB khác với tên ab + Riêng từ khoá, tên chuẩn luôn dùng chữ thường w Lời giải thích làm cho chương trình dễ hiểu, dễ đọc Lời giải thích đặt đâu chương trình phải đặt cặp /* */ đặt sau // w Dùng /* */ lời giải thích nằm nhiều dòng, dùng // lời giải thích nằm dòng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 14 Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 16 III Cấu trúc chung chương trình C++ viết DOS //Khai báo sử dụng thư viện chương trình con, thư viện lớp #include Tương đương với …… USES PASCAL //Mô tả lớp đối tượng …… //Khai báo hàm (chương trình con) Tương đương với …… BEGIN PASCAL int main() { //Khai báo biến, hằng, kiểu liệu, đối tượng Thân chương trình …… //Các lệnh chương trình …… return 0; Tương đương với } END PASCAL //Định nghĩa hàm …… Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 17 IV Cấu trúc chung chương trình C++ viết Linux //Khai báo sử dụng thư viện chương trình con, thư viện lớp #include Tương đương với USES PASCAL using namespace std; …… //Mô tả lớp đối tượng Tương đương với …… BEGIN PASCAL //Khai báo hàm (chương trình con) …… int main() { Thân chương trình //Khai báo biến, hằng, kiểu liệu, đối tượng …… //Các lệnh chương trình …… return 0; } //Định nghĩa hàm …… Tương đương với END PASCAL Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 18 Khái niệm kiểu liệu Chương Các kiểu liệu C++ I Khái niệm kiểu liệu ² Một kiểu liệu tập giá trị xác định số phép toán ² Các kiểu liệu C++ gồm có Khái niệm kiểu liệu Các kiểu liệu C++ II Các kiểu liệu n Các kiểu liệu w Kiểu ký tự w Kiểu số nguyên w Kiểu số thực (số dấu phẩy động) Kiểu ký tự Kiểu số nguyên Kiểu số thực (số dấu phẩy động) n Các kiểu liệu có cấu trúc w Kiểu mảng w Kiểu xâu ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương I Khái niệm kiểu liệu GV Ngô Công Thắng Các kiểu liệu C++ Khái niệm kiểu liệu Các kiểu liệu C++ ² Các kiểu liệu C++ gồm có n Các kiểu liệu có cấu trúc w Kiểu cấu trúc w Kiểu tệp n n Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Kiểu người lập trình định nghĩa: Kiểu liệt kê Kiểu trỏ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng II Các kiểu liệu Kiểu ký tự Kiểu ký tự Kiểu số nguyên Kiểu số thực (kiểu số phẩy động) ² Hằng xâu ký tự dãy ký tự đặt hai dấu nháy kép Ví dụ: ”Nhap vao mot so” ² Kiểu ký tự dùng kiểu số nguyên với tên sau: n n char: có giá trị -128 – 127 unsigned char: có giá trị – 255 ² Tất ký tự lưu trữ nhớ dạng số mã ASCII ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương Kiểu ký tự GV Ngô Công Thắng Kiểu số nguyên ² Kiểu ký tự C++ định nghĩa với tên char, gồm ² Kiểu số nguyên C++ định nghĩa với nhiều tên, 256 ký tự bảng mã ASCII Kiểu ký tự có kích thước byte ² Hằng ký tự ký tự cụ thể đặt dấu phẩy Ví dụ: ’A’, ’b’, ’9’ ² Một số ký tự điều khiển: chia thành hai nhóm: kiểu số nguyên có dấu kiểu số nguyên không dấu ² Kiểu số nguyên có dấu gồm có: ’\n’ ’\t’ ’\b’ ’\r’ New line, đặt trỏ hình xuống đầu dòng Tab Backspace Carriage return, đưa trỏ hình đầu dòng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Tên kiểu short int long Kích thước byte byte byte Bài giảng LTHDT - Phần 1, Chương Khoảng giá trị -32768 - 32767 -32768 - 32767 -231 – 231-1 GV Ngô Công Thắng Kiểu số nguyên Kiểu số thực ² Kiểu số nguyên không dấu gồm có: Tên kiểu unsigned short unsigned int unsigned unsigned long Kích thước byte byte Khoảng giá trị - 65535 - 65535 byte - 232-1 ² Hằng số thực có cách viết: ² Các số nguyên viết bình thường Ví dụ: -45 2056 345 Chú ý: Các số nguyên vượt khoảng int xem long Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Kiểu số thực Kiều số thực C++ định nghĩa với nhiều tên khác nhau: Tên kiểu float double long double Kích thước byte byte 10 byte Khoảng gía trị 3.4E-38–3.4E38 1.7E-308–1.7E308 3.4E-4932–1.1E4932 Độ xác 7-8 chữ số 15-16 chữ số 18-19 chữ số Khoảng giá trị kiểu số thực giá trị tuyệt đối số thực mà lưu trữ máy Giá trị có giá trị tuyệt đối nhỏ cận xem Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Dạng thập phân: gồm có phần nguyên, dấu chấm thập phân phần thập phân Ví dụ: 34.75 -124.25 n Dạng mũ (dạng khoa học): gồm phần trị phần mũ số 10, phần trị số nguyên thực, phần mũ số nguyên âm dương Hai phần cách chữ e E Ví dụ: 125.34E-3 số 125.34x10-3 = 0.12534 0.12E3 số 0.12x103 = 120 1E3 số 103 = 1000 n 10 Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 11 Các hàm số học Câu lệnh gán biểu thức gán Các hàm số học nằm thư viện chương trình math, muốn sử dụng hàm ta phải khai báo: #include Dưới số hàm số học hay dùng: Tên hàm cos(x) sin(x) acos(x) asin(x) Ý nghĩa Cho cos(x) Cho sin(x) Cho arccos(x) Cho arcsin(x) Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Ý nghĩa tan(x) fabs(x) exp(x) log(x) log10(x) pow(y,x) sqrt(x) Cho tgx Cho |x| ex Cho lnx Cho log10x Cho yx Cho bậc x Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng n n 21 Các hàm số học (tiếp) Tên hàm ² Câu lệnh gán Để đưa giá trị vào biến thời điểm lập trình ta sử dụng lệnh gán Có lệnh gán đơn giản lệnh gán phức hợp Lệnh gán đơn giản có dạng: Biến = Biểu thức; Lệnh gán đưa giá trị biểu thức bên phải vào biến bên trái Vế trái phép gán biến mà Ví dụ: a = 2*x*x + 3*x + 1; Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 23 Câu lệnh gán biểu thức gán (tiếp) ² Câu lệnh gán n Lệnh gán phức hợp có dạng: Biến Phép_toán= Biểu thức; Phép toán để trước dấu bằng, phép toán số học phép toán bit Ví dụ: a += 2; Lệnh gán đem giá trị biến kết hợp với giá trị biểu thức theo phép toán đưa kết vào biến, tức thực phép toán trước gán a *= 5; //lệnh tương đương với lệnh a = a*5; 22 Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 24 Chuyển đổi kiểu giá trị Câu lệnh gán biểu thức gán (tiếp) ² Biểu thức gán n Biểu thức gán biểu thức có dạng: v=e (Sau biểu thức gán dấu chấm phẩy) v biến, e biểu thức n Biểu thức gán thực gán e vào v Giá trị biểu thức gán giá trị biểu thức e, kiểu biểu thức gán kiểu biến v Biểu thức gán sử dụng biểu thức khác, chẳng hạn đem gán giá trị vào biến Ví dụ: sau lệnh a = b = 5; a b biểu thức gán đưa vào b lệnh gán đưa giá trị biểu thức gán b=5 vào a Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 25 Biểu thức điều kiện e1 ? e2 : e3 e1, e2, e3 biểu thức ² Giá trị biểu thức điều kiện giá trị e2 e1 (có giá trị khác 0) giá trị e3 e1 sai (có giá trị 0) ² Biểu thức điều kiện thực biểu thức, ta sử dụng biểu thức khác Ví dụ: biểu thức (a > b) ? a : b cho giá trị a a lớn b, không cho giá trị b GV Ngô Công Thắng tự động hai trường hợp sau: n n Khi biểu thức có toán hạng khác kiểu Khi gán giá trị kiểu cho biến kiểu khác ² Chuyển đổi kiểu biểu thức: Khi hai toán hạng phép toán có kiểu khác kiểu thấp nâng thành kiểu cao Kết thu giá trị có kiểu cao Ví dụ: int long int chuyển thành long int float int chuyển thành float Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 27 Chuyển đổi kiểu giá trị (tiếp) ² Biểu thức điều kiện biểu thức có dạng: Bài giảng LTHDT-Phần 1, Chương ² Việc chuyển đổi kiểu giá trị thường diễn cách 26 ² Chuyển đổi kiểu gán: Giá trị vế phải chuyển sang kiểu vế trái ² Ta thực chuyển đổi kiểu theo ý muốn toán tử ép kiểu, có dạng: (Tên kiểu muốn ép) Biểu_thức Ví dụ: (int) a (float)(a+b) Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 28 III Khối lệnh III Khối lệnh (tiếp) ² Nhiều lệnh đặt dấu ngoặc { } tạo thành khối lệnh { a=2; b=3; cout

Ngày đăng: 19/04/2017, 17:27

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan