Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 161 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
161
Dung lượng
5,73 MB
Nội dung
TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN - - - - Giảng viên: Nguyễn Gia Quang Đăng Khoa Công nghệ thông tin Email: nguyengiaquangdang@hotec.edu.vn Năm 2020 MỤC LỤC BÀI : CÁC KHÁI NIỆM CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH C/C++ 1.1 Mục tiêu 1.2 Nội dung 1.2.1 Khái qt ngơn ngữ lập trình C/C++ 1.2.1.1 Giới thiệu 1.2.1.2 Các thành phần ngôn ngữ C/C++ 1.2.2 Các kiểu liệu sở 1.2.2.1 Các kiểu liệu 1.2.2.2 Khái niệm biến 1.2.2.3 Từ khóa 1.2.2.4 Ghi 1.2.3 Biểu thức – Toán tử - Câu lệnh 10 1.2.3.1 Biểu thức – Toán tử 10 1.2.3.2 Lệnh khối lệnh 14 1.2.3.3 Chuyển đổi kiểu giá trị 16 1.2.3.4 Các hàm có sẵn C/C++ 16 1.2.3.5 Phạm vi biến 17 1.2.4 Thuật toán lưu đồ 17 1.2.4.1 Khái niệm 17 1.2.4.2 Các ký hiệu lưu đồ 17 1.2.5.3 Các ví dụ biểu diễn lưu đồ thuật tốn 17 1.2.5.4 Khởi động thoát Dev-C++ 19 1.3 Bài tập 21 BÀI : CÁC HÀM NHẬP XUẤT 23 2.1 Mục tiêu 23 2.2 Nội dung 23 2.2.1 Hàm printf & scanf 23 2.2.1.1 Hàm printf 23 2.2.1.2 Hàm scanf 26 2.2.2 Hàm getche & getch 27 2.2.2.1 Hàm getche 27 2.2.2.2 Hàm getch 27 2.2.3 Nhập xuất cout & cin 27 KHOA CÔNG NGHỆ THÔNG TIN Trang 2.2.3.1 Hàm cout 27 2.2.3.2 Hàm cin 28 2.3 Bài tập 28 BÀI : CẤU TRÚC ĐIỀU KHIỂN 30 3.1 Mục tiêu 30 3.2 Nội dung 30 3.2.1 Câu lệnh điều khiển 30 3.2.1.1 Dạng (if thiếu) 30 3.2.1.2 Dạng (if … else) 34 3.2.1.3 Cấu trúc else if 39 3.2.1.4 Lệnh switch…case 45 3.2.2 Vòng lặp 52 3.2.2.1 Vòng lặp for 52 3.2.2.2 Lệnh while 60 3.2.2.3 Lệnh do…while 64 3.2.2.4 Vòng lặp lồng 67 3.2.2.5 Lệnh break 69 3.2.2.6 Lệnh continue goto 70 3.2.2.7 Lệnh exit 72 3.3 Bài tập 73 3.3.1 Sử dụng lệnh if 73 3.3.2 Sử dụng lệnh switch 74 3.3.3 Bài tập làm thêm 75 3.3.4 Bài tập vòng lặp 75 BÀI : HÀM 79 4.1 Mục tiêu 79 4.2 Nội dung 79 4.2.1 Tổng quan hàm 79 4.2.1.1 Khái niệm 79 4.2.1.2 Cấu trúc hàm 79 4.2.1.3 Các ví dụ sử dụng hàm 80 4.2.2 Tham số dạng tham biến tham trị 83 4.2.3 Vần đề tầm vực 84 KHOA CÔNG NGHỆ THÔNG TIN Trang 4.2.3.1 Khái niệm 84 4.2.3.2 Quy tắc 84 4.2.3.3 Tầm vực biến 85 4.2.3.4 Tầm vực hàm 87 4.2.4 Dùng hướng dẫn #define 88 4.2.5 Đệ quy 89 4.2.5.1 Khái niệm 89 4.2.5.2 Các ví dụ 89 4.2.6 Ưu nhược điểm đệ quy 94 4.3 Bài tập 94 4.3.1 Bài tập hàm 94 4.3.2 Bài tập đệ quy 95 BÀI : MẢNG VÀ CHUỖI 96 5.1 Mục tiêu 96 5.2 Nội dung 96 5.2.1 Mảng 96 5.2.1.1 Cách khai báo mảng 96 5.2.1.2 Tham chiếu đến phần tử mảng 97 5.2.1.3 Nhập/Xuất liệu cho mảng chiều 97 5.2.1.4 Mảng nhiều chiều 100 5.2.1.5 Nhập/Xuất liệu cho mảng chiều 102 5.2.2 Chuỗi 109 5.2.2.1 Cách khai báo chuỗi 109 5.2.2.2 Hàm nhập (gets), xuất (puts) chuỗi 110 5.2.2.3 Các hàm chuỗi thường sử dụng 113 5.3 Bài tập 114 BÀI : CON TRỎ 119 6.1 Mục tiêu 119 6.2 Nội dung 119 6.2.1 Khái quát trỏ? 119 6.2.1.1 Khái niệm 119 6.2.1.2 Lý để dùng trỏ 119 6.2.1.3 Các toán tử 119 KHOA CÔNG NGHỆ THÔNG TIN Trang 6.2.1.4 Khái báo biến trỏ 120 6.2.1.5 Cấp phát giải phóng vùng nhớ 123 6.2.2 Ứng dụng trỏ 125 6.2.2.1 Hàm có tham số trỏ 125 6.2.2.2 Con trỏ mảng 127 6.2.2.3 Con trỏ chuỗi 130 6.2.2.4 Con trỏ trỏ đến trỏ 133 6.3 Bài tập 135 BÀI : KIỂU DỮ LIỆU NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 136 7.1 Mục tiêu 136 7.2 Nội dung 136 7.2.1 Kiểu cấu trúc (Struct) 136 7.2.1.1 Khái niệm 136 7.2.1.2 Khai báo kiểu struct 136 7.2.1.3 Tham khảo thành phần struct 137 7.2.1.4 Khởi tạo struct 140 7.2.1.5 Struct lồng 141 7.2.1.6 Sử dụng mảng struct 144 7.2.2 Enum 150 7.2.2.1 Khái niệm 150 7.2.2.2 Cách khai báo khởi tạo biến có kiểu enum 151 7.2.2.3 Các ví dụ 151 7.3 Bài tập 154 TÀI LIỆU THAM KHẢO 155 PHỤ LỤC 156 Chú thích hình ảnh 156 Bảng biểu 156 KHOA CÔNG NGHỆ THÔNG TIN Trang Bài 1: Các khái niệm ngơn ngữ lập trình C/C++ Bài : CÁC KHÁI NIỆM CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH C/C++ 1.1 Mục tiêu Sau học xong học sinh trình bày vận dụng kỹ sau: - Khái niệm từ khóa - Các kiểu liệu - Cách ghi - Đặt tên biến - Khai báo biến - Phạm vi sử dụng biến - Vẽ phát họa lưu đồ thuật toán 1.2 Nội dung 1.2.1 Khái quát ngôn ngữ lập trình C/C++ 1.2.1.1 Giới thiệu - Ngơn ngữ lập trình C Dennis Ritchie nghĩ ông làm việc AT&T Bell Laboratories vào năm 1972 - C ngơn ngữ mạnh có tính linh hoạt, nhanh chóng sử dụng cách rộng rãi, vượt khỏi phạm vi Bell Labs Các lập trình viên khắp nơi bắt đầu sử dụng để viết tất loại chương trình - C++ biết đến ngôn ngữ bao trùm lên C Bjarne Stroustrup sáng tác năm 1980 phịng thí nghiệm Bell bang New Jersey, Mỹ Ban đầu ơng đặt tên cho “C with classes” (C với lớp) Tuy nhiên đến năm 1983 ơng đổi tên thành C++, ++ tốn tử tăng thêm C - C++ biết đến ngôn ngữ lập trình hướng vật hay hướng đối tượng OOP (Object Oriented Programming) Nó cung cấp lớp mà có chức thơng dụng ngơn ngữ OO: tính trừu tượng, tính bao đóng, tính đa hình, tính kế thừa C++ bao trùm lên C nên đặc điểm C có C++ Ngồi ra, C++ cịn có số đặc điểm khác như: C++ ngôn ngữ hướng đối tượng C++ ngôn ngữ định kiểu mạnh C++ cung cấp cách truyền tham số tham chiếu cho hàm KHOA CÔNG NGHỆ THÔNG TIN Trang Bài 1: Các khái niệm ngơn ngữ lập trình C/C++ C++ cung cấp cấu thư viện để người lập trình tự tạo thêm hàm thơng dụng vào thư viện tái sử dụng sau C++ cung cấp chế đa dạng hóa tên hàm tốn tử C++ cung cấp class loại cấu trúc đóng gói chung cho liệu lẫn hàm chủ thể bảo vệ cách chặt chẽ Cấu trúc chương trình C++ Khối khai báo thư viện hàm Các định nghĩa biến, hằng, kiểu, hàm Khối hàm main Các định nghĩa hàm người dùng Trong đó: - Khối khai báo thư viện hàm: cú pháp để khai báo thư viện: #include Ví dụ: #include #include - Các định nghĩa biến, hằng, kiểu, hàm: Cung cấp tên hàm, kiểu hàm, số đối số kiểu đối số hàm Các biến định nghĩa trở thành biến toàn cục khai báo nguyên mẫu hàm với cú pháp sau: ([biến tham số]); Ví dụ: int songuyento(int x); - Khối hàm main: Đây thành phần bắt buộc chương trình C++, thân hàm main sau dấu mở móc { dấu đóng móc } - Các định nghĩa hàm người dùng: Một định nghĩa hàm bao gồm tiêu đề hàm, thân hàm với cú pháp sau: KHOA CÔNG NGHỆ THÔNG TIN Trang Bài 1: Các khái niệm ngơn ngữ lập trình C/C++ ([Các biến tham số]) { } 1.2.1.2 Các thành phần ngôn ngữ C/C++ Các thành phần Các thành phần C++ bao gồm: + Từ khóa + Các khai báo biến, + Các cấu trúc điều khiển + Biểu thức phép toán + Các định nghĩa, khai báo hàm, khai báo kiểu,… Những ký tự, ký hiệu sau: (phân biệt chữ in hoa in thường): 26 chữ latinh lớn A,B,C Z 26 chữ latinh nhỏ a,b,c z 10 chữ số thập phân 0,1,2 Các ký hiệu toán học: +, -, *, /, =, , (, ) Các ký hiệu đặc biệt: : , ; " ' _ @ # $ ! ^ [ ] { } Dấu cách hay khoảng trống Các kiểu liệu thông tin đặc trưng kiểu liệu: - Tên kiểu liệu - Kích thước vùng nhớ biểu diễn nó,miền giá trị - Các phép tốn sử dụng - Các kiểu liệu đơn giản C++ kiểu số, thuộc hai nhóm số ngun số thực (số dấu phẩy động) 1.2.2 Các kiểu liệu sở 1.2.2.1 Các kiểu liệu Có kiểu liệu C là: char, int, float, double Bảng 1: Các kiểu liệu C KHOA CÔNG NGHỆ THÔNG TIN Trang Bài 1: Các khái niệm ngơn ngữ lập trình C/C++ Kiểu liệu Kích thước Miền giá trị (Type) (Length) (Range) TT unsigned char byte đến 255 char byte – 128 đến 127 enum bytes – 32,768 đến 32,767 unsigned int bytes đến 65,535 short int bytes – 32,768 đến 32,767 int bytes – 32,768 đến 32,767 unsigned long bytes đến 4,294,967,295 long bytes – 2,147,483,648 đến 2,147,483,647 float bytes 3.4 * 10–38 đến 3.4 * 1038 10 double bytes 1.7 * 10–308 đến 1.7 * 10308 11 long double 10 bytes 3.4 * 10–4932 đến 1.1 * 104932 1.2.2.2 Khái niệm biến Khái niệm tên biến quan trọng trình lập trình, khơng thể rõ ý nghĩa chương trình mà cịn dùng để xác định đại lượng khác thực chương trình Tên thường đặt cho hằng, biến, mảng, trỏ, nhãn… Chiều dài tối đa tên 32 ký tự Tên biến hợp lệ chuỗi ký tự liên tục gồm: Ký tự chữ, số dấu gạch Ký tự đầu tên phải chữ dấu gạch Khi đặt tên không đặt trùng với từ khóa Ví dụ 1: Các đặt tên biến đúng: bien1, b_1, Number_ODD, Case Các đặt tên sai: 3b_1 (ký tự đầu số) number-odd (sử dụng dấu gạch ngang) float (đặt tên trùng với từ khóa) bien (có khoảng trắng) f(x) (có dấu ngoặc trịn) Lưu ý: Trong C/C++, phân biệt đặt tên chữ hoa chữ thường Ví dụ 2: number khác Number KHOA CƠNG NGHỆ THÔNG TIN Trang Bài 1: Các khái niệm ngơn ngữ lập trình C/C++ float khác Float (float từ khóa, bạn đặt tên Float đúng) Hằng đại lượng có giá trị thuộc kiểu liệu định, giá trị thay đổi thời gian tồn chương trình Có hai loại hằng: + Hằng khơng tên (hằng thường): giá trị cụ thể tức thời + Hằng có tên (hằng ký hiệu): phải định nghĩa trước sử dụng, tên đặt theo quy tắc tên Định nghĩa Cú pháp: const = ; const = ; Chú ý: - Hằng số ngầm hiểu hệ 10, ta viết hệ 16 - Các kí tự viết cặp dấu nháy đơn ‘’ - Các xâu kí tự dãy kí tự viết cặp dấu nháy kép “” 1.2.2.3 Từ khóa Từ khóa từ có ý nghĩa dùng để xác định khai báo liệu viết câu lệnh lập trình Trong C/C++ có từ khóa sau: Bảng 2: Các từ khóa C/C++ asm const else for interrupt return sizeof void break continue enum goto long short switch volatile case default extern huge near static typedef while cdecl far if pascal struct union char double float int register signed unsigned Các từ khóa lập trình phải viết chữ thường 1.2.2.4 Ghi Trong lập trình cần phải ghi để giải thích biến, hằng, hàm, thao tác xử lý giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa để người khác đọc vào dễ hiểu Trong C/C++ hỗ trợ chọn phép ghi sau: // /* nội dung ghi */ KHOA CÔNG NGHỆ THÔNG TIN Trang Bài 7: Kiểu liệu người dùng tự định nghĩa xuat(hs,n); printf("\n");system("PAUSE"); return EXIT_SUCCESS; } Kết in hình Hình 129: Kết chương trình chạy ví dụ mục 7.2.1.5 Ví dụ 8: Cải tiến lại ví dụ sau #include #include using namespace std; struct hocsinh { char hoten[20]; float toan; float ly; float hoa; KHOA CÔNG NGHỆ THÔNG TIN Trang 146 Bài 7: Kiểu liệu người dùng tự định nghĩa }; typedef struct hocsinh HOCSINH; HOCSINH newhs() { HOCSINH hs; float t,l,h; cout