1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Cq nmlt hdth tuan03

10 3 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,01 MB

Nội dung

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THƠNG TIN BỘ MƠN CƠNG NGHỆ PHẦN MỀM HỆCHÍNH QUI MƠN: NHẬP MƠN LẬP TRÌNH GVLT: ThS PHẠM MINH TUẤN HDTH TUẦN 03 PHẠM TÚ SAN TRẦN NGỌC HIỆU TP.HCM, tháng 11 năm 2012 ptsan/tnhieu@fit.hcmus.edu.vn Mục tiêu - Cách sửa lỗi debug chương trinh C++ Làm quen với cấu trúc lặp Cách sửa lỗi debug chương trình C++ Khi viết chương trình C++ ta thường gặp hai loại lỗi lỗi cú pháp (syntax error) lỗi logic (logic error) - Lỗi cú pháp lỗi xảy viết sai cú pháp, định dạng ngơn ngữ lập trình Lỗi logic lỗi xảy đoạn mã viết không logic gây lỗi trình thực thi đoạn mã chạy chương trình 2.1 Lỗi cú pháp Các ví dụ lỗi cú pháp ngơn ngữ lập trình C/C++ Hình 1: Lỗi thiếu dấu „;‟ Trang ptsan/tnhieu@fit.hcmus.edu.vn Hình 2: Lỗi viết sai tên biến”nghiem” thay cho “ngiem” Hình 3: Lỗi thiếu dấu „}‟ Và cịn nhiều lỗi khác… 2.2 Lỗi logic Một chương trình biên dịch thành công không chạy theo logic dẫn đến chương trình bị dừng đột ngột cho kết sai yêu cầu Ví dụ chương trình giải phương trình bậc trên, sau sửa hết lỗi cú pháp Trang ptsan/tnhieu@fit.hcmus.edu.vn Bấm Ctrl+Shift+B để dịch chương trình, trình biên dịch thơng báo dịch thành cơng khơng có lỗi: Nhưng chạy chương trình với a = 2, b = cho kết sai??? Hoặc tệ hơn, chương trình bị dừng đột ngột nhập a = 0, b =1??? Trang ptsan/tnhieu@fit.hcmus.edu.vn Giải pháp dò dòng lênh chương trình để tìm lý gây lỗi sai Phương pháp gọi DEBUG chương trình 2.3 Các thao tác để debug chương trình 2.3.1 Debug tồn chương trình Bước Bấm Ctrl+Shift+B để dịch chương trình Bước Nếu chương trinh dịch thành công, không báo lỗi, bấm F10 để bắt đầu debug chương trình Mũi tên màu vàng xuất trước dịng code theo dõi Bước Bấm tiếp F10 để nhảy sang dòng lệnh (bỏ qua dòng khai báo biến) Lưu ý, lúc cửa sổ Local Watch bên xuất biến sử dụng chương trình giá trị Trang ptsan/tnhieu@fit.hcmus.edu.vn Bước Bấm tiếp F10, lệnh printf thực xong nhảy tiếp sang lệnh scanf – yêu cầu người dùng nhập liệu vào Bước Sau nhập a,b xong quay lại số chương trình bấm F10 để nhảy sang dòng lệnh tiếp theo, lúc giá trị a,b cửa sổ Local cập nhật lại Trang ptsan/tnhieu@fit.hcmus.edu.vn Bước Bấm tiếp F10 để tiếp tục thực lênh tính nghiem = (-b)/a Lúc cửa số Local, biến nghiem cập nhật lại thành Đây lỗi logic Lý biến nghiem kiểu số nguyên (int) nên gán nghiem = (-b)/a = -1/2 = -0.5 làm tròn thành Cách khắc phục khai báo biến nghiem kiểu float, ép kiểu biến nguyên a,b thành float thay đổi cách xuất nghiệm lệnh printf Trang ptsan/tnhieu@fit.hcmus.edu.vn Bước Thốt khỏi q trình debug cách dịch lại chương trình Chạy lại với a = 2, b = cho kết Lỗi chương trình kết sai nhập a = 0, b = dòng lệnh nghiem = (-b)/a bị lỗi chia cho 2.3.2 Debug dòng lệnh định trước Thay phải debug tồn chương trình ta debug từ dịng lệnh trở (nghi ngờ bị lỗi logic đoạn mã phía sau) cách đặt Breakpoint dòng lệnh muốn kiểm tra Mặt khác, ta theo dõi giá trị biến chương trình mà ta quan tâm cửa sổ Watch (khác cửa sổ Local) Bước Biên dịch chương trình Ctrl+Shift+B Bước Đặt Breakpoint (F9) dịng lệnh cần theo dõi Lưu ý dấu chấm tròn màu đỏ xuất dịng lệnh (muốn gỡ bỏ Breakpoint việc bấm F9 lại lần nữa) Trang ptsan/tnhieu@fit.hcmus.edu.vn Bước Quá trình debug tương tự 2.3.3 Một số phím tắt debug chương trình (VS 2005/2008/2010/2012)  Ctrl+Shift+B: Biên dịch (build) chương trình  F4: Phân tích lỗi q trình biên dịch có lỗi (View->Other Windows->Error List)  F9: Đặt breakpoint (chỉ có hiệu lực chạy Debug)  F5: Chạy Debug, dừng dịng đặt Breakpoint (nếu khơng có breakpoint, chương trình chạy hết tự động đóng)  F10: Chạy Debug dòng code  Ctrl+F10: Đặt trỏ chuột đến dòng code bấm Ctr+F10, chương trình chạy thẳng đến dịng code chế độ debug  F11: Chạy Debug vào hàm (nếu có)  Ctrl+Shift+B: Thốt khỏi chế độ Debug  Ctrl+F5: Chạy chương trình Trang ptsan/tnhieu@fit.hcmus.edu.vn Bài tập lớp Áp dụng kĩ thuật debug để kiểm tra sửa lỗi chương trình (nếu có) tập sau: Giải phương trình ax2 + bx + c = Nhập vào số nguyên dương n Tính xuất kết quả: a S(n) = +1/2 + 1/3 +1/4 + … + 1/n b S(n) = 1! + 2! + … + n! Tìm xuất số có chữ số thỏa điều kiện: Chữ số hàng chục = chữ số hàng trăm + chữ số hàng đơn vị Xuất số lượng số tìm Bài tập nhà Các tập làm chung solution Tên solution MSSV bạn Mỗi project Tên project Bai01, Bai02, … Nộp bài: nén thư mục chứa solution thành file có tên dạng .rar .zip Mọi trường hợp làm sai qui định  điểm tập Nhập vào số nguyên dương n (nếu người dùng nhập n khơng ngun dương u cầu nhập lại) Tính giá trị biểu thức sau: a S(n) = 1/2 + 1/4 + … + 1/(2n) b S(n) = 1/(1 *2) + 1/(2*3) + … + 1/(n*(n+1)) c S(n) = 1/2 + 2/3 + 3/4 + … + n/(n+1) Nhập vào số nguyên dương n số thực x (nếu người dùng nhập n không nguyên dương u cầu nhập lại) Tính giá trị biểu thức sau: a S(x,n) = x + x2 + x3 + … + xn b S(x,n) = x + x3 + … + x2n+1 c S(x,n) = x + x2/(1 + 2) + x3/(1 + + 3) + … + xn/(1 + + … + n) Nhập vào số nguyên dương n (nếu người dùng nhập n khơng ngun dương u cầu nhập lại) Hãy cho biết n có phải số nguyên tố hay ko? Nhập vào số nguyên dương n (nếu người dùng nhập n khơng ngun dương u cầu nhập lại) Hãy cho biết n có phải số phương hay ko? Thởi hạn nộp bài: 23h55 Ngày 14/11/2012 Trang 10

Ngày đăng: 11/04/2023, 18:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN