Tải bản đầy đủ (.pdf) (24 trang)

báo cáo thực hành 05 buổi 5 kỹ thuật lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.85 MB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Vũ Đình Toản – 20215488</b>

TRƯỜNG CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG

<b>TRUNG TÂM MÁY TÍNH VÀ THỰC HÀNH</b>

<b>BÁO CÁO THỰC HÀNH 05 – Buổi 5</b>

<b>KỸ THUẬT LẬP TRÌNH</b>

<b>KỲ 2023.1</b>

<b> Họ và tên sinh viên: Vũ Đình Toản MSSV: 20215488</b>

<b> Lớp thực hành: 732828 GVHD: Vũ Đức Vượng</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Vũ Đình Toản – 20215488</b>

Bài thực hành số 5 – Buổi 5...2

<b>Bài tập 5.2. Tìm và sửa các lỗi cú pháp...4</b>

<b>Bài tập 5.3. Dãy ngoặc đúng...6</b>

<b>Bài 5.4. Bài tốn người du lịch...9</b>

<b>Bài 5.5. Năm nhuận...11</b>

<b>Bài 5.1: Tìm và sửa các lỗi cú pháp</b>

Đoạn code sau liệt kê tất cả các hốn vị n số. Hãy tìm và sửa các lỗi cú pháp như hướng dẫn ở trên.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Vũ Đình Toản – 20215488</b>

 Dịng 7: print(“\n”) => printf(“\n”) Dòng 12: printf() => print()

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài tập 5.2. Tìm và sửa các lỗi cú pháp</b>

Bài toán cái túi: Cho một cái túi có sức chứa M và n đồ vật. Đồ vật thứ i có khối lượng m và giá trị v . Cần chọn ra một số đồ vật để bỏ vào túi sao cho tổng khối lượng <small>ii</small>không quá M và tổng giá trị là lớn nhất có thể. Đoạn code sau đây giải bài tốn cái túi bằng phương pháp duyệt nhánh cận. Hãy tìm và sửa các lỗi cú pháp.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Vũ Đình Toản – 20215488</b>

 Dòng 6: All[100] => all[100] Dòng 19,22: return 0 => return Dòng 21: Thêm dấu “;”

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài tập 5.3. Dãy ngoặc đúng</b>

Viết một chương trình nhận vào một dãy dấu ngoặc và kiểu tra xem dãy dấu ngoặc đóng mở đúng chưa.

Đề bài: nguồn dưới đây là của một sinh viên, khi submit bị lỗi runtime (Exit code is -1073741819). Sử dụng cơng cụ debug ở trên, hãy tìm và sửa các lỗi trong mã nguồn.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Vũ Đình Toản – 20215488</b>

Dịng 36: S.top() != NULL => !S.empty()

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Vũ Đình Toản – 20215488</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài 5.4. Bài tốn người du lịch</b>

Chương trình sai:

Kết quả:

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Vũ Đình Toản – 20215488</b>

Chương trình chuẩn:

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>Vũ Đình Toản – 20215488</b>

Kết quả:

Test case sai:3 6 1 2 70000 1 3 150000 2 1 85000 2 3 90000 3 1 200000 3 2 60000

Ở chương trình đầu tiên, test case này cho kết quả sai vì giá trị khởi tạo tổng khoảng cáchnhỏ nhất smin là 100000; nhỏ hơn so với giá trị tối ưu của bài toán nên chương trình khơng gán thực hiện gán được giá trị nhỏ nhất.

<b>Bài 5.5. Năm nhuận</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Vũ Đình Toản – 20215488</b>

Một năm được coi là nhuận nếu hoặc nó chia hết cho 4 nhưng khơng chia hết cho 100, hoặc nó chia hết cho 400. Cho một danh sách các năm, kiểm tra xem có tồn tại năm nhuận trong danh sách đó hay khơng.

Mã nguồn sau giải quyết bài tốn đó, hãy tinh chỉnh nó để tăng hiệu suất chương trình.Trước khi tinh chỉnh:

Sau khi tinh chỉnh:

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài 5.6. Tổng kết</b>

Một lớp có n sinh viên. Sinh viên thứ i có điểm tổng kết là a theo thang điểm 10. Để <small>i</small>đánh giá chất lượng dạy học, giảng viên muốn biết có bao nhiêu bạn đạt điểm A, B, C, D,F. Quy đổi thang điểm được cho như sau:

a < 4: F4 ≤ a < 5.5: D5.5 ≤ a <7: C7≤ a < 8: B8.5 ≤ a: A

Trước khi tinh chỉnh:

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Vũ Đình Toản – 20215488</b>

Sau khi tinh chỉnh:

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài 5.7: Chia tiền</b>

Sau đại dịch, thầy trò Đường Tăng muốn xin tiền của các nhà giàu để chia cho các nhà nghèo. Họ sẽ vào n thơn, thơn thứ I có ki nhà. Mỗi thôn họ sẽ quyết định xin tiền hay chotiền, phụ thuộc vào đánh giá của họ về mức độ giàu nghèo ở đây. Nếu thôn i giàu, họ sẽ đi từng nhà trong số ki nhà này và xin ai,j tiền của nhà thứ j. Nếu thôn i nghèo, họ sẽ đi từng nhà trong số ki nhà này và phát ai,j tiền cho nhà thứ j. Hãy tính số tiền ít nhất họ , phải mang theo để đảm bảo có thể phát đủ cho người nghèo (tức số tiền luôn không bị âm)

Mã nguồn sau giải quyết bài tốn đó, hãy tinh chỉnh nó để tăng hiệu suất chương trình.

Trước khi tinh chỉnh:

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>Vũ Đình Toản – 20215488</b>

Sau khi tinh chỉnh:

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài 5.8. Cắt hình chữ nhật.</b>

Đề bài: dụng cơng cụ debug ở trên, hãy tìm và sửa các lỗi trong mã nguồn dưới đây:

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>Vũ Đình Toản – 20215488</b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>Vũ Đình Toản – 20215488</b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Vũ Đình Toản – 20215488</b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>Vũ Đình Toản – 20215488</b>

<b>Bài 5.9. Xây tháp</b>

Đề bài: dụng công cụ debug ở trên, hãy tìm và sửa các lỗi trong mã nguồn dưới đây

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>Vũ Đình Toản – 20215488</b>

Sau khi chỉnh:

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>Vũ Đình Toản – 20215488</b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Vũ Đình Toản – 20215488</b>

</div>

×