
Tài liệu hướng dẫn thực hành: Kỹ thuật lập trình C/C++
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Tài liệu hướng dẫn thực hành: Kỹ thuật lập trình C/C++ Tài liệu hướng dẫn thực hành: Trường ĐHBK Hà Nội Khoa Điện KĨ THUẬT LẬP TRÌNH C/C++ Bộ môn Điều khiển Tự động Bài 1: Lập trình cơ sở 1 Mục đích bài thực hành Giúp học viên làm quen với công cụ lập trình Visual C++, thử nghiệm viết chương trình theo phong cách hướng hàm, qua đó nắm vững các kiến thức lập trình cơ sở như: 1) Phương pháp thể hiện thuật toán bằng các các cấu trúc điều kiện, vòng lặp 2) Cách sử dụng mảng, con trỏ, bộ nhớ động 3) Khai báo, thực hiện và sử dụng hàm; các phương pháp truyền tham số hàm. 2 Nhiệm vụ thí nghiệm 2.1 Bài tập 1. Xây dựng một hàm thực hiện phân loại các số chẵn và lẻ trong một dãy số nguyên, kết quả được nhớ vào hai dãy số mới. Sử dụng mảng động để biểu diễn hai dãy số kết quả sao cho bộ nhớ được cấp phát động chỉ vừa đủ dùng. Kết quả trả về của hàm sẽ là số các số chẵn trong dãy ban đầu, hay cũng chính là chiều dài của một dãy kết quả. 2. Viết chương trình minh họa cách sử dụng hàm trong câu 1 với hai trường hợp: - dãy số ban đầu được chứa trong một mảng tĩnh và giá trị các số trong dãy được khởi tạo ngay khi khai báo. - dãy số ban đầu được chứa trong một mảng động và giá trị các số cần được đưa vào qua bàn phím Hai dãy số kết quả được đưa ra màn hình. 2.2 Nhiệm vụ chuẩn bị ở nhà 1) Ôn lại các kiến thức cơ sở nêu trong phần 1, xem lại các ví dụ và bài tập trên lớp. 2) Xây dựng thuật toán và viết chương trình sẵn trên giấy (viết tay, không chấp nhận bản sao!) 2.3 Nhiệm vụ trên phòng thí nghiệm 1) Làm quen với Visual C++, tạo một dự án mới (New Project), đặt tên dự án (ví dụ “SortApp”) và chọn “Win32 Console Application” 2) Viết hàm trên máy và lưu vào một 2 files riêng: Header file (ví dụ sort.h) chứa mã khai báo hàm và file nguồn (*.cpp) chứa mã thực hiện hàm. Bổ sung 2 files đó vào dự án. Biên dịch file nguồn (ví dụ sort.cpp), tìm cách giải thích và sửa các lỗi biên dịch (compile error). 3) Viết chương trình minh họa trong file chính (ví dụ sortapp.cpp). Dịch toàn bộ dự án (Build), sửa các lỗi biên dịch (compile error), lỗi liên kết (link error) nếu có và chạy thử chương trình. 4) Làm quen sử dụng Debugger để tìm lỗi chạy (runtime error), tìm cách giải thích và sửa lỗi nếu có. 5) Mở menu “Project Setting” và tìm hiểu ý nghĩa các thông số lựa chọn cho dự án. 6) Thử nghiệm thay đổi cách thể hiện vòng lặp (for... hoặc while..., sử dụng phương pháp dịch con trỏ thay cho sử dụng chỉ số). 7) Thử nghiệm không dùng mảng động, mà dùng mảng tĩnh để chứa dãy số đầu vào và các dãy số kết quả trong hàm. Phân tích các vấn đề gặp phải. 8) Ghi chép các bước thực hiện để làm báo cáo. 3 Báo cáo thực hành Mỗi học viên phải làm một báo cáo riêng, nộp cho cán bộ hướng dẫn thí nghiệm chậm nhất là một tuần sau buổi thực hành. Báo cáo có thể viết tay hoặc in, nhưng các bản sao photocopy sẽ không được chấp nhận. Bài báo cáo phải có đủ các phần sau: 1. Toàn bộ mã chương trình đã chạy chia làm 3 files như hướng dẫn trong phần 2.3 2. Mô tả từng bước thực hiện như hướng dẫn trong phần 2.3. Trong mỗi bước, cần nêu bật các công việc đã làm, các vấn đề đã gặp phải, các lỗi chủ yếu đã gặp, lý giải lỗi và mô tả cách giải quyết. 3. Nêu các vấn đề mà anh (chị) thấy chưa thật hiểu, cần giảng viên giải thích kỹ hơn. [1] #include [2] #include [3] int phanloai(int* a, int n, int*& chan, int*& le) { [4] int i = 0, sochan = 0; [5] while (i < n) { [6] if (a[i] % 2 == 0) // so chan [7] ++sochan; [8] ++i; [9] } [10] chan = new int[sochan]; [11] le = new int[n-sochan]; [12] i = 0; [13] int ic=0,il=0; [14] while (i < n) { [15] if (a[i] % 2) // so le [16] le[il++] = a[i]; [17] else [18] chan[ic++] = a[i]; [19] ++i; [20] } [21] return sochan; [22] } [23] void print(int* a, int n) { [24] for (int i = 0; i < n; ++i) [25] cout Các câu hỏi gợi ý, kiểm tra bổ sung: 1. Dòng 1 và 2 có ý nghĩa gì ? 2. Tại sao các tham biến chan và le ở dòng 3 lại có kiểu int*& ? 3. Giải thích các dòng lệnh 16 và 18 4. Tại sao ở dòng 30, ta không thể viết a[n] = {...} thay cho a[10] ? 5. Tại sao ở dòng 39, ta không viết delete c; delete l? 6. Dòng 57 có ý nghĩa gì? Nếu xóa dòng đó đi thì sao? Trường ĐHBK Hà Nội Tài liệu hướng dẫn thực hành: Khoa Điện KĨ THUẬT LẬP TRÌNH C/C++ Bộ môn Điều khiển Tự động Bài 2: Lập trình hướng đối tượng: Lớp và chồng toán tử 1 Mục đích bài thực hành Học viên biết cách xây dựng một cấu trúc dữ liệu tiêu biểu dưới dạng một lớp với các phép toán thông dụng, thử nghiệm viết chương trình theo phong cách hướng đối tượng, qua đó nắm vững các khái niệm và phương pháp thực hiện như: 1) Đóng gói dữ liệu 2) Hàm tạo, hàm hủy, hàm tạo bản sao, hàm toán tử gán, chồng toán tử 3) Tham số mặc định, truyền tham số và kiểu trả về 4) Xây dựng một thư viện lớp 2 Nhiệm vụ thí nghiệm 2.1 Bài tập 1. Xây dựng một lớp Vector để biểu diễn kiểu vector toán học có các phần tử (thành phần) kiểu double với các yêu cầu sau: - Có thể khai báo một vector với kích thước (số chiều) bất kỳ. Nếu không đưa kích thước thì nó sẽ được mặc định là 0. Tất cả các phần tử được khởi tạo giá trị bằng 0. - Một vector tự quản lý bộ nhớ động, có khả năng tự sao chép và thực hiện phép gán tương tự như với các kiểu dữ liệu cơ bản - Có thể xác định số chiều vector cho một vector bất kỳ - Có thể truy nhập từng phần tử vector thông qua toán tử [] với số thứ tự tính từ 0 và toán tử gọi hàm () với số thứ tự tính từ 1 ...
Tìm kiếm theo từ khóa liên quan:
Tài liệu hướng dẫn thực hành Hướng dẫn thực hành Kỹ thuật lập trình C Kỹ thuật lập trình C++ Kỹ thuật lập trình Kỹ thuật lập trình C/C++Tài liệu có liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 306 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 246 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 222 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 188 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 159 0 0 -
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 132 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 126 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 119 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 115 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 113 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 110 0 0 -
STL lập trình khái lược trong C++ part 1
35 trang 107 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 1
246 trang 106 0 0 -
Giáo trình kỹ thuật lập trình C part 9
22 trang 105 0 0 -
Giáo trình toán rời rạc - Phụ lục 2
15 trang 92 0 0 -
Nghiên cứu triển khai nội địa hóa máy tính thương hiệu Việt Nam
585 trang 87 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 86 0 0 -
Hướng dẫn thực hành - Lập trình Windows 1
63 trang 78 0 0 -
Cách chia sẻ File, dữ liệu mạng Lan trong Windows Xp
10 trang 67 0 0 -
Giáo trình Ngôn ngữ lập trình C++: Phần 2 - TS. Vũ Việt Vũ
107 trang 67 0 0