Giáo trình lập trình cơ bản với c++ phần 1

77 1 0
Giáo trình lập trình cơ bản với c++ phần 1

Đ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

Hồ Sĩ Đàm, Trần Thị Minh Châu, Lê Sỹ Vinh GIÁO TRÌNH LẬP TRÌNH CƠ BẢN VỚI C++ NXB Đại học Quốc gia Mục lục Giới thiệu Chương Mở đầu 1.1 Chương trình gì? 1.2 Lập trình gì? 1.2.1 Mức cao độc lập với máy tính 1.2.2 Mức thấp phụ thuộc vào máy tính 10 1.3 Ngơn ngữ lập trình chương trình dịch 10 1.4 Mơi trường lập trình bậc cao 11 1.5 Lỗi tìm lỗi 13 1.6 Lịch sử C C++ .14 1.7 Chương trình C++ .15 Bài tập 19 Chương 2.1 Biến, kiểu liệu phép toán 20 Kiểu liệu 22 2.1.1 Kiểu liệu 22 2.1.2 Kiểu liệu dẫn xuất 24 2.2 Khai báo sử dụng biến 24 2.2.1 Định danh cách đặt tên biến 24 2.2.2 Khai báo biến .25 2.3 Hằng .25 2.4 Các phép toán 26 2.4.1 Phép gán 26 2.4.2 Các phép toán số học 26 2.4.3 Các phép toán quan hệ 27 2.4.4 Các phép tốn lơ-gic 28 2.4.5 Độ ưu tiên phép toán 28 2.4.6 Tương thích kiểu 29 Bài tập 30 Chương Các cấu trúc điều khiển 31 3.1 Luồng điều khiển 31 3.2 Các cấu trúc rẽ nhánh .32 3.2.1 Lệnh if-else 32 3.2.2 Lệnh switch .38 3.3 Các cấu trúc lặp 42 3.3.1 Vòng while .42 3.3.2 Vòng do-while 45 3.3.3 Vòng for 48 3.4 Thuật toán cấu trúc điều khiển lồng .50 3.5 Các lệnh break continue 53 3.6 Biểu thức điều kiện cấu trúc điều khiển 56 Bài tập 58 Chương Hàm 59 4.1 Cấu trúc chung hàm 60 4.2 Cách sử dụng hàm 62 4.3 Các hàm có sẵn .60 4.4 Biến toàn cục biến địa phương .63 4.4.1 Phạm vi biến 63 4.4.2 Thời gian sống biến 65 4.5 Tham số, đối số, chế truyền liệu cho hàm 66 4.5.1 Truyền giá trị 66 4.5.2 Truyền tham chiếu 67 4.5.3 Tham số mặc định 70 4.6 Hàm trùng tên 72 4.7 Hàm đệ quy 73 Bài tập 76 Chương 5.1 Mảng xâu kí tự .77 Mảng chiều 77 5.1.1 Khởi tạo mảng 78 5.1.2 Trách nhiệm kiểm sốt tính hợp lệ số mảng 78 5.1.3 Mảng làm tham số cho hàm 79 5.2 Mảng nhiều chiều .81 5.3 Xâu kí tự 82 5.3.1 Khởi tạo giá trị cho xâu kí tự 83 5.3.2 Thư viện xử lý xâu kí tự .84 5.4 Tìm kiếm xếp liệu mảng 84 5.4.1 Tìm kiếm tuyến tính 84 5.4.2 Tìm kiếm nhị phân .86 5.4.3 Sắp xếp chọn 87 Bài tập 89 Chương Con trỏ nhớ .91 6.1 Bộ nhớ máy tính .91 6.2 Biến địa biến 91 6.3 Biến trỏ 92 6.4 Mảng trỏ 94 6.5 Bộ nhớ động .95 6.5.1 Cấp phát nhớ động .96 6.5.2 Giải phóng nhớ động .96 6.6 Mảng động trỏ .97 6.7 Truyền tham số trỏ 99 Bài tập .102 Chương Các kiểu liệu trừu tượng 104 7.1 Định nghĩa kiểu liệu trừu tượng cấu trúc struct 104 7.2 Định nghĩa kiểu liệu trừu tượng cấu trúc class .110 7.2.1 Quyền truy nhập .113 7.2.2 Toán tử phạm vi định nghĩa hàm thành viên 114 7.2.3 Hàm khởi tạo hàm hủy .115 7.3 Lợi ích lập trình hướng đối tượng 118 7.4 Biên dịch riêng rẽ 119 Bài tập .123 Chương Vào liệu 125 8.1 Khái niệm dòng liệu 125 8.2 Tệp văn tệp nhị phân 126 8.3 Vào tệp .126 8.3.1 Mở tệp 127 8.3.2 Đóng tệp 128 8.3.3 Xử lý tệp văn .129 8.3.4 Xử lý tệp nhị phân 132 Bài tập .136 Phụ lục A Phong cách lập trình 138 Phụ lục B Dịch chương trình C++ GNU C++ 142 Tài liệu tham khảo 145 Giới thiệu Lập trình bước quan trọng quy trình giải tốn Nhiều ngơn ngữ lập trình đời nhằm giúp giải tốn cách hiệu Mỗi ngơn ngữ lập trình có mạnh nhược điểm riêng Các ngơn ngữ lập trình chia thành hai loại ngơn ngữ lập trình bậc thấp (gần gũi với ngơn ngữ máy), ngơn ngữ lập trình bậc cao (ngần gũi với ngôn ngữ tự nhiên người) Giáo trình trang bị cho sinh viên kiến thức lập trình Ngơn ngữ lập trình C++ sử dụng để minh họa cho việc lập trình Việc lựa chọn C++ ngơn ngữ lập trình hướng đối tượng chun nghiệp sử dụng rộng rãi toàn giới để phát triển chương trình từ đơn giản đến phức tạp Hơn nữa, mềm dẻo C++ cho phép giải toán thực tế cách nhanh chóng, ngồi cho phép quản lý tương tác trực tiếp đến hệ thống, nhớ để nâng cao hiệu chương trình Giáo trình chia thành chương, chương trình bày vấn đề lý thuyết lập trình Các vấn đề lý thuyết mô tả ví dụ thực tế Kết thúc chương phần tập để sinh viên giải nắm rõ lý thuyết Cấu trúc giáo trình sau: • Chương 1: giới thiệu khái niệm lập trình quy trình giải tốn Sinh viên hiểu ngơn ngữ lập trình bậc cao ngơn ngữ lập trình bậc thấp Cuối chương giới thiệu môi trường lập trình ngơn ngữ lập trình C++ • Chương 2: Chúng giới thiệu khái niệm biến số, số, kiểu liệu phép toán Sau học, sinh viên biết cách khai báo sử dụng biến số, số, phép toán biến số • Chương 3: Trương giới thiệu cấu trúc chương trình cấu trúc điều khiển Cụ thể cấu rẽ nhánh (if-else, switch), cấu trúc lặp (fordo, while-do, repeat) giới thiệu • Chương 4: Chương trình hàm giới thiệu để sinh viên hiểu chiến lược lập trình “chia để trị” Chúng tơi trình bày chi tiết cách khai báo sử dụng hàm, cách truyền tham số, truyền giá trị cho hàm • Chương 5: Chương trình bày cấu trúc liệu kiểu mảng xâu kí tự Cách khai báo sử dụng mảng chiều mảng nhiều chiều ví dụ liên quan trình bày chi tiết chương • Chương 6: Đây chương tương đối đặc thù cho C++, chúng tơi trình bày nhớ kiểu liệu trỏ Cấu trúc nhớ, cách quản lý xin cấp phép nhớ động thông qua việc sử dụng biến trỏ trình bày • Chương 7: Trong chương chúng tơi trình bày cấu trúc liệu trừu tượng (cụ thể struct class C++) Sinh viên hiểu biết cách tạo cấu trúc liệu trừu tượng phù hợp với kiểu đối tượng liệu cần biểu diễn Cuối chương, giới thiệu lập trình hướng đối tượng, mạnh ngơn ngữ lập trình C++ • Chương 8: Chúng tơi giới thiệu cách vào liệu Sinh viên giới thiệu chi tiết cách làm việc với tệp liệu Chương Mở đầu Trong chương này, giới thiệu qua số khái niệm về: chương trình, lập trình, ngơn ngữ lập trình 1.1 Chương trình gì? Bạn chắn dùng qua nhiều chương trình khác nhau, ví dụ chương trình soạn thảo văn “Microsoft Word” Chương trình, hay phần mềm, hiểu đơn giản tập lệnh để máy tính thực theo Khi bạn đưa cho máy tính chương trình yêu cầu máy tính thực theo lệnh chương trình, bạn chạy chương trình 1.2 Lập trình gì? chương trình dịch trình soạn thảo bút/giấy bút/giấy Lập trình hiểu đơn giản trình viết lệnh hướng dẫn máy tính thực để giải tốn cụ thể Lập trình bước quan trọng quy trình giải tốn mơ tả Hình 1.1 Hình 1.1: Quy trình giải tốn Quy trình chia thành hai mức: mức cao độc lập với máy tính (machine independent) mức thấp phụ thuộc vào máy tính (machine specific) 1.2.1 Mức cao độc lập với máy tính Mức cao độc lập với máy tính thường chia thành ba bước là: xác định vấn đề, thiết kế thuật tốn lập trình Xác định vấn đề: Bước định nghĩa toán, xác định liệu đầu vào, ràng buộc, yêu cầu cần giải kết đầu Bước thường sử dụng bút/giấy ngôn ngữ tự nhiên tiếng Anh, tiếng Việt để mô tả xác định vấn đề cần giải Thiết kế thuật toán: Một thuật toán dẫn nhằm giải toán Các dẫn cần diễn đạt cách hồn chỉnh xác cho người hiểu tiến hành theo Thuật tốn thường mơ tả dạng mã giả (pseudocode) Bước sử dụng giấy bút thường khơng phụ thuộc vào ngơn ngữ lập trình Ví dụ thuật tốn “tìm ước số chung lớn (UCLN) hai số x y” viết ngôn ngữ tự nhiên: • Bước 1: Nếu x>y thay x phần dư phép chia x/y • Bước 2: Nếu không, thay y phần dư phép chia y/x • Bước 3: Nếu hai số x y có số kết luận UCLN số cịn lại • Bước 4: Nếu khơng, quay lại Bước mã giả: repeat if x > y then x := x mod y else y := y mod x until x = or y = if x = then UCLN := y else UCLN := x Lập trình bước chuyển đổi thuật tốn sang ngơn ngữ lập trình, phổ biến ngơn ngữ lập trình bậc cao, ví dụ ngơn ngữ C++, Java Bước này, lập trình viên sử dụng chương trình soạn thảo văn để viết chương trình Trong sau trình lập trình, người ta phải tiến hành kiểm thử sửa lỗi chương trình Có ba loại lỗi thường gặp: lỗi cú pháp, lỗi thời gian chạy, lỗi lô-gic (xem chi tiết Mục 1.5) Hình 4.1 mơ tả cách khai báo, cài đặt sử dụng hàm tính diện tích hình chữ nhật (calculateArea) C++ Hàm calculateArea nhận hai tham số đầu vào rectangleLength rectangleWidth, tính diện tích hình chữ nhật (lưu biến area) trả lại kết (lệnh return area;) #include using namespace std; //Khai báo định nghĩa hàm int calculateArea (int rectangleLength, int rectangleWidth) { int area = rectangleLength * rectangleWidth; return area; //hàm trả lại giá trị } //hàm chương trình int main () { int length = 3; int width = 2; int area = calculateArea (length, width); cout

Ngày đăng: 30/06/2023, 09:52

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

Tài liệu liên quan