Bài giảng lập trình C++

Tài liệu Bài giảng lập trình C++: LẬP TRÌNH C++ (3 Tín chỉ)Gv: Nguyễn Văn HùngKhoa: Khoa học máy tínhBÀI GIẢNGMon, 1/24/05, Lecture #11Cung cấp cho sinh viên các kiến thức cơ bản của ngôn ngữ lập trình C++Nắm được cấu trúc của một chương trình C++, các thành phần cơ bản, các kiểu dữ liệu, Các khái niệm, kiến thức cơ bản về lập trình hướng đối tượng trong C++Nắm vững lý thuyết và vận dụng nó vào việc giải quyết các bài toán từ đơn giản đến phức tạp.MỤC TIÊU CỦA HỌC PHẤN21) Bài giảng Ngôn ngữ lập trình C++2) Quách Tuấn Ngọc. Ngôn ngữ lập trình C++. NXB Thống kê, 2003.3) Phạm Văn Ất. C++ và lập trình hướng đối tượng. NXB Khoa học và kỹ thuật. Hà Nội, 2000.4) Nell Dale and Chip Weems. Programming in C++ Jone and Bartlett, Third Edition, 2005. 5) Một số Websites, forums, về C, C++TÀI LIỆU THAM KHẢO3Chương 1: Tổng quan về ngôn ngữ lập trình C++Chương 2: Cấu trúc của một chương trình C++Chương 3: Biểu thức Logic và các cấu trúc điều khiểnChương 4: Kiểu mảng và chuỗi ký tựNỘI DUNG4Chương 5: Kiểu con trỏ và kiểu cấu trúcChương...

ppt63 trang | Chia sẻ: Khủng Long | Lượt xem: 1016 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng lập trình C++, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH C++ (3 Tín chỉ)Gv: Nguyễn Văn HùngKhoa: Khoa học máy tínhBÀI GIẢNGMon, 1/24/05, Lecture #11Cung cấp cho sinh viên các kiến thức cơ bản của ngôn ngữ lập trình C++Nắm được cấu trúc của một chương trình C++, các thành phần cơ bản, các kiểu dữ liệu, Các khái niệm, kiến thức cơ bản về lập trình hướng đối tượng trong C++Nắm vững lý thuyết và vận dụng nó vào việc giải quyết các bài toán từ đơn giản đến phức tạp.MỤC TIÊU CỦA HỌC PHẤN21) Bài giảng Ngôn ngữ lập trình C++2) Quách Tuấn Ngọc. Ngôn ngữ lập trình C++. NXB Thống kê, 2003.3) Phạm Văn Ất. C++ và lập trình hướng đối tượng. NXB Khoa học và kỹ thuật. Hà Nội, 2000.4) Nell Dale and Chip Weems. Programming in C++ Jone and Bartlett, Third Edition, 2005. 5) Một số Websites, forums, về C, C++TÀI LIỆU THAM KHẢO3Chương 1: Tổng quan về ngôn ngữ lập trình C++Chương 2: Cấu trúc của một chương trình C++Chương 3: Biểu thức Logic và các cấu trúc điều khiểnChương 4: Kiểu mảng và chuỗi ký tựNỘI DUNG4Chương 5: Kiểu con trỏ và kiểu cấu trúcChương 6: HàmChương 7: Lập trình hướng đối tượngChương 8: Lớp và đối tượngChương 9: Tái định nghĩa và thừa kếNỘI DUNG5Chương 1: TỔNG QUAN VỀ NNLT C++Mục tiêuGiới thiệu tổng quan về ngôn ngữ lập trình C++; các thành phần cơ bản; các kiểu dữ liệu và các phép toánNội dungLịch sử ra đờiCác thành phần của C++Các kiểu dữ liệu cơ bảnHằng, biến và biểu thứcCác phép toán 6 C++ về bản chất được xây dựng trên nền của Ngôn ngữ lập trình C Ngôn ngữ lập trình C++ được phát minh bởi Bjarne Stroupstroup vào năm 1979 với phiên bản đầu tiên gọi là “C with classes” Phiên bản đầu tiên của C++ được sử dụng vào tháng 8 năm 1983 tại công ty AT&T Phiên bản thương mại đầu tiên ra mắt năm 1985 C++ cơ bản là C ở mức độ mới. Điểm khác biệt giữa C++ và C là C++ bên cạnh hỗ trợ tất cả các lệnh của C, còn có mở rộng và hỗ trợ hướng đối tượng1.1 Lịch sử ra đời7 Bảng ký tự Từ khóa Định danh Câu lệnh và khối lệnh Lời chú thích1.2 Các thành phần của C++8- Mọi ngôn ngữ lập trình đều được xây dựng từ một bảng ký tự nào đó.- Ngôn ngữ C++ được xây dựng từ bảng ký tự sau: 26 chữ cái hoa: A B C Z và 26 chữ cái thường: a b c z 10 chữ số: 0 1 2 9 Các ký hiệu toán học: + - * / = > >x>>y; x = 3 + x; y = (x = sqrt(x)) + 1; cout int main()Câu lệnh và khối lệnh (2/3)18 Khối lệnh (hay còn gọi là lệnh hợp thành): - Một khối lệnh là một dãy các câu lệnh, được đặt bên trong cặp dấu ngoặc nhọn “{ }”. Các biến được khai báo trong khối lệnh nào thì chỉ có tác dụng trong khối lệnh đó.- Trong khối lệnh, có thể có các lệnh rỗng. Lệnh rỗng là lệnh chỉ có dấu chấm phẩy “;”Ví dụ: xét đoạn chương trình:int main() { cout 127Ký tự không dấu: Unsigned char có miền giá trị 0 -> 255- Ký tự trong C++ được đặt giữa cặp dấu nháy đơn ‘ ’Ví dụ: ‘a’, ‘A’, ‘*’, Kiểu ký tự (1/3)23Ta có thể chia 256 ký tự thành 3 nhóm:- Nhóm 1: Các ký tự điều khiển có mã từ 0 đến 31. Nhóm các ký tự này không hiển thị ra màn hình, được dùng để điều khiển các thiết vị ngoại vi, các thủ tục trao đổi thông tin, - Nhóm 2: Các ký tự văn bản có mã từ 32 đến 126. Các ký tự này có thể đưa được ra màn hình và máy in- Nhóm 3: Các ký tự đồ họa có mã từ 127 đến 255. Các ký tự này có thể đưa ra màn hình nhưng không in được.Kiểu ký tự (2/3)24- C++ cung cấp một số ký tự điều khiển để định dạng các hằng ký tự char. Các ký tự này còn gọi là ký tự thoát (escape sequence)Ký hiệuTác dụng\nTạo dòng mới\tTab ngang\vTab dọc\bDấu backspace\\Dấu backslash\aTiếng beep cảnh báo\’Dấu nháy đơn\”Dấu nháy kép\0Ký tự nullVí dụ: cout 32,767Kiểu unsigned int, unsigned short có kích thước 2 bytes, miền giá trị 0 -> 65,535Kiểu long có kích thước 4 bytes, miền giá trị -215 -> 215-1Kiểu unsigned long có kích thước 4 bytes, miền giá trị 0 -> 4294967295Kiểu số nguyên26- Kiểu số thực dùng để lưu các số thực hay các số có dấu phẩy động.- Trong C++ có các kiểu số thực như sau:Kiểu float có kích thước 4 bytes, miền giá trị 3.4E-38 -> 3.4E+38Kiểu double có kích thước 8 bytes, miền giá trị 1.7E-308 -> 1.7E+308Kiểu long double có kích thước 10 bytes, miền giá trị 3.4E-4932 -> 1.1E+4932Kiểu số thực27 Khái niệm biến- Biến là một đại lượng dùng để chứa dữ liệu mà các giá trị của nó có thể bị thay đổi trong quá trình thực hiện chương trình- Biến được định nghĩa bởi người lập trình và được đặt tên thông qua khai báo biến Danh sach cac ten bien cach nhau boi dau phay (,); Cú pháp khai báo biến1.4 Biến, hằng và biểu thức (1/11)28 Gán giá trị cho biến - Sau khi khai báo biến, có thể gán giá trị cho biến bằng toán tử gán “=”, có thể gán một giá trị cho nhiều biến.Ví dụ:Khai báo biếnGán giá trị cho biếnstring firstName ;char letter ;int ChieuDai;int ChieuRong; firstName = “Viet-Han-ITC” ; letter = ‘*’ ; ChieuDai = ChieuRong = 12 ;1.4 Biến, hằng và biểu thức (2/11)29 Ten_bien 1= gia_tri, . . . ; Cú pháp vừa khai báo vừa khởi tạo giá trị cho biếnLưu ý: Ta có thể vừa khai báo vừa khởi tạo giá trị ban đầu cho biến thông qua lệnh gán (=) theo cú pháp sau:Ví dụ: Xét một số lệnh khai báo và khởi tạo giá trị cho biến: int a = 5; float b = 150.05; char ch = ‘c’, kt = ‘T’;1.4 Biến, hằng và biểu thức (3/11)30 Khái niệm hằng Hằng là đại lượng mà giá trị của nó không thay đổi trong suốt quá trình thực hiện chương trình Cú pháp khai báo/ định nghĩa hằngconst Kieu_du_lieu Ten_hang = Gia_tri ;#define Ten_hang Gia_tri Ví dụ: Xét các khai báo sau:const int a=10;const char ch=‘a’;#define a 10#define ch ‘a’1.4 Biến, hằng và biểu thức (4/11)31Lưu ý: Hằng có thể được phân thành các loại như sau: - Hằng số nguyên - Hằng số thực - Hằng ký tự, xâu ký tự - Hằng biểu thức1.4 Biến, hằng và biểu thức (5/11)32Ví dụ: Xét các khai báo sau:const int a=10; const char ch=‘a’;const string st=“hello”; const float b=0.25;const int c=6*7+3; const int kt=‘a’- ‘b’+ ‘c’;const char kt=‘a’ – ‘b’ + ‘c’;1.4 Biến, hằng và biểu thức (6/11)33 Biểu thức- Biểu thức là sự kết hợp giữa các phép toán (toán tử) và các toán hạng để diễn đạt một công thức toán học nào đó.- Trong đó, toán hạng có thể là biến, hằng, hàm, phần tử mảng hay một biểu thức khác- Khi viết biểu thức ta có thể và nên dùng cặp dấu ngoặc tròn ( ) để thể hiện đúng trình tự tính toán trong biểu thức Biểu thức thường được dùng trong các trường hợp: - Vế phải của câu lệnh gán - Làm chỉ số mảng - Sau các toán tử if, for, while, a = b = c = 3;1.4 Biến, hằng và biểu thức (10/11)37 Câu lệnh typedef - Câu lệnh typedef cho phép tạo tên mới cho kiểu dữ liệu đã có. - Cú pháp như sau:typedef Kieu_dl_cu Kieu_dl_moi;Ví dụ: typedef int Boolean; const Boolean true = 1; const Boolean false = 0; Boolean dataOK; dataOK = true;1.4 Biến, hằng và biểu thức (11/11)38Các phép toán trong C++ bao gồm: Các phép toán số học Các phép toán quan hệ Các phép toán logic Các phép toán thao tác trên bit Các phép toán chuyển đổi kiểu giá trị Các phép toán tăng giảm Biểu thức điều kiện Thứ tự thực hiện các phép toán Một số hàm toán học thường dùng 1.5 Các phép toán39 Dùng để tính toán 2 hoặc nhiều toán hạng + Các phép toán số học 2 ngôi: Phép toánÝ nghĩaVí dụ+-*/%CộngTrừNhânChiaLấy phần dư2 + 2 = 49 – 5 = 43 * 2 = 66 / 3 = 2, 6 / 4 = 16 % 4 = 2+ Phép toán 1 ngôi: Chỉ có dấu (-) đứng trước một toán hạng.Ví dụ: -a, -3, -b, Các phép toán số học40Thứ tự ưu tiên các phép toán số học: Phép toánĐộ ưu tiênPhép đảo dấu (-)* / %+ -123Ví dụ: Xét các biểu thức:a, x = a + b * c b, y = - a/ b * c + dc, z = (a + b) * c + dCác phép toán số học41Lưu ý:+ Trong một biểu thức chứa các phép toán số học có cùng độ ưu tiên thì thứ tự tính toán được thực hiện từ trái qua phải+ Trong một biểu thức chứa các phép toán số học không có cùng độ ưu tiên thì thứ tự tính toán được thực hiện theo độ ưu tiên+ Khi áp dụng phép chia nguyên (/) cho các số nguyên (hay ký tự) thì kết quả thu được sẽ bị cắt bỏ phần thập phân+ Phép lấy phần dư (%) chỉ được áp dụng có số nguyên (hay ký tự)Các phép toán số học42- Cho ta hoặc giá trị đúng (==1) hoặc giá trị sai (== 0). Dùng để tạo các biểu thức quan hệ, nếu biểu thức đúng thì giá trị của biểu thức là 1, ngược lại giá trị của biểu thức là 0- Các phép toán quan hệ gồm: Phép toánÝ nghĩaVí dụĐộ ưu tiên>>=10) b=(10>=10)c=(5=, ==, != luôn phải được viết liền nhau (nghĩa là không có dấu cách trống giữa chúng)+ Các phép toán quan hệ cũng được áp dụng cho các toán hạng kiểu ký tự.+ Các phép toán quan hệ có độ ưu tiên thấp hơn các phép toán số học.Các phép toán quan hệ44Chỉ trả về một trong hai giá trị 1 (nếu đúng) và 0 (nếu sai). Dùng để tạo các biểu thức LogicCác phép toán Logic gồm: Phép toánÝ nghĩaĐộ ưu tiên!&&||Phép phủ định một ngôiPhép và (AND)Phép hoặc (OR)123Các phép toán Logic45Ta có bảng giá trị: aba&&ba||b!aVí dụKhác 0Khác 0Bằng 0Bằng 0Khác 0Bằng 0Khác 0Bằng 0100011100011x = 3 && 7;y = 4 || 0;z = 0 && 7;t = !10Các phép toán Logic46Lưu ý:+ Kết quả của biểu thức logic luôn luôn là một số nguyên int. Do đó, nó cũng có thể tham gia vào các phép toán đối với số nguyên.+ Các phép toán logic cũng được dùng để thiết lập điều kiện rẽ nhánh hay kết thúc vòng lặp trong các cấu trúc điều khiển+ Các phép toán logic: &&, || luôn phải được viết liền nhau (nghĩa là không có dấu cách trống giữa chúng)+ Các phép toán logic cũng được áp dụng cho các toán hạng kiểu ký tự.Các phép toán Logic47Lưu ý:+ Trong một biểu thức có cả phép toán số học, quan hệ và logic thì cần chú ý thứ tự ưu tiên tính toán:Phép toánĐộ ưu tiên! (-) Phép đảo dấu* / %+ - > >= >~Phép và (AND) theo bitPhép hoặc (OR) theo bitPhép hoặc loại trừ (XOR) theo bitPhép dịch trái theo bitPhép dịch phải theo bitPhép lấy phần bù theo bit354221Các phép toán thao tác trên bit49Các phép toán thao tác trên bit: Bảng giá trị:1 & 1 == 11 & 0 == 00 & 1 == 00 & 0 == 01 | 1 == 11 | 0 == 10 | 1 == 10 | 0 == 01 ^ 1 == 01 ^ 0 == 10 ^ 1 == 10 ^ 0 == 0a > n == a/2n~1 == 0~0 == 1Các phép toán thao tác trên bit50Ví dụ:a = 10b = 4a & ba | ba ^ b~aa > 1000001000000010000000100000001101001100001011111100110000000010110401414245205Các phép toán thao tác trên bit51Việc chuyển đổi giá trị của kiểu dữ liệu này sang kiểu dữ liệu khác. Gồm có:+ Ép kiểu: Thường diễn ra một cách tự động Ví dụ: Giá trị in ra là bao nhiêu? int x = number = 12.4; float y = money = 22; + Đúc kiểu: Là quá trình chuyển đổi kiểu tường minh.Cú pháp: (Ten_kieu)bieu_thuc hoặc Ten_kieu(bieu_thuc); Các phép toán chuyển đổi kiểu giá trị52Ví dụ: Giá trị in ra là bao nhiêu?i, int a=float(4/3); float b=(float)4/3; float c=int(4.8);ii, int i=int(3*float(30/4)-2); int j=int(3*(float)30/4-2) Các phép toán chuyển đổi kiểu giá trị53C++ đưa ra 2 phép toán một ngôi để tăng (++) và giảm (--) giá trị của các biến (nguyên, ký tự)Phép toán ++ sẽ tăng giá trị của toán hạng lên 1 giá trị và phép -- sẽ giảm giá trị của toán hạng đi 1.Chẳng hạn: để tăng biến i lên 1 đơn vị ta viết: ++i hoặc i++ để giảm biến i đi 1 giá trị ta viết: --i hoặc i--Các phép toán tự tăng giảm54Lưu ý: Có sự khác nhau giữa i++ và ++i. Phép toán i++: sử dụng i rồi mới tăng i lên một đơn vị còn phép toán ++i: tăng i lên một đơn vị rồi mới sử dụng. Sự khác nhau giữa i-- và --i cũng tương tự.Ví dụ: Tính giá trị của a và x sau mỗi lệnh gán: int a = 6, x; x = a++; x = ++a;Các phép toán tự tăng giảm55Biểu thức điều kiện có dạng: bien = dieu_kien ? bieu_thuc_1 : bieu_thuc_2;Ý nghĩa: Nếu điều kiện đúng (!=0) thì bien nhận giá trị của bieu_thuc_1; ngược lại điều kiện sai (==0) thì bien nhận giá trị của bieu_thuc_2.Ví dụ: Tìm max 2 số a và b max = a > b ? a : b; Tìm max 3 số a, b, c max = (max1 = a > b ? a : b) > c ? max1 : c;Biểu thức điều kiện56 C++ qui định thứ tự thực hiện các phép toán theo mức độ ưu tiên như sau: 1. Các biểu thức trong cặp dấu ngoặc tròn ( ) 2. Các phép toán 1 ngôi 3. Các phép toán số học 4. Các phép toán quan hệ 5. Các phép toán thao tác trên bit 6. Các phép toán Logic 7. Toán tử điều kiện 8. phép gánThứ tự thực hiện các phép toán57Ký hiệu i là tham số nguyên; x, y là các tham số thựcTệp tiêu đềTên hàmVí dụ gọi hàmGiá trị abs(i)abs(-6)6pow(x,y)pow(2.0,3.0)8.0fabs(x)fabs(-6.4)6.4sqrt(x)sqrt(100.0)10.0log(x)log(2.0).693147setprecision(n)setprecision(3)Một số hàm toán học thường dùng58 Khởi động: - Chọn Start/ programs/Microsoft Visual Studio 6.0- Click vào mục: Microsoft Visual C++ 6.0 Thoát khỏi: Chọn Menu File rồi chọn Exit 1.6 Giới thiệu Visual C++ 6.059 C++ là một chuẩn ngôn ngữ lập trình Công cụ lập trình: Borland C++, Turbo C++, Visual C++, Cbuilder ++, Mỗi công cụ lập trình có các quy ước và thư viện riêng Visual C++ 6.0 là một công cụ lập trình C++ của Microsoft Phần chính của Visual C++ là Develper Studio, không gian này cho phép các công cụ phát triển và chương trình dịch Visual C++ Cùng với thư viện có sẵn trong không gian hỗ trợ phát triển sẽ giúp lập trình viên tạo ra một chương trình trong khoảng thời gian rất ngắn.1.6 Giới thiệu Visual C++ 6.0 (1/5)60 Tạo tệp nguồn .cpp- Chọn File/New- Chọn Tab File. Lúc đó xuất hiện màn hình như sau:1.6 Giới thiệu Visual C++ 6.0 (2/5)61 Soạn thảo mã nguồn - Tiến hành nhập nội dung mã nguồn vào cửa sổ tài liệu- Lưu tệp: Chọn File/Save 1.6 Giới thiệu Visual C++ 6.0 (3/5)62 Dịch mã nguồn sang mã máy - Cách 1: Ấn phím F7 - Cách 2: Chọn Build / Build Sau khi cửa sổ ra, xuất hiện thông báo: – 0 error(s), 0 warning(s) thì quá trình biên dịch đã xong Soạn thảo tệp tiêu đề .h Hoàn toàn giống như soạn thảo tệp nguồn, nhưng sau khi chọn Tab file, ta tiến hành chọn C/C++ Header file1.6 Giới thiệu Visual C++ 6.0 (4/5)63

Các file đính kèm theo tài liệu này:

  • ppttailieu.ppt