1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn thực hành tuần 2 - Nhập môn lập trình pptx

7 293 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 7
Dung lượng 571,26 KB

Nội dung

Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 1 Người soạn: Nguyễn Hải Minh Email: nhminh@fit.hcmuns.edu.vn CHỦ ĐỀ: DEBUG TRÊN VC++ 6.0 oOo I. GIỚI THIỆU Một chương trình được biên dịch thành công không chắc chạy đúng theo logic. Ví dụ chương trình giải phương trình bậc nhất như sau: Bấm F7 để dịch chương trình, trình biên dịch thông báo không có lỗi : Nhưng khi chạy với a = 2, b = 1, chương trình cho kết quả sai !!! Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 2 Tệ hơn, chương trình bị dừng đột ngột khi ta nhập a = 0, b = 1 ?!! ª Giải pháp: theo dõi từng dòng code để tìm ra dòng chứa lỗi sai (lỗi logic) => Phương pháp này gọi là DEBUG II. CÁC THAO TÁC ĐỂ DEBUG MỘT CHƯƠNG TRÌNH 1. Debug từ dòng code thứ 1 đến dòng code cuối cùng # Bước 1: Bấm F7 để dịch chương trình # Bước 2: Nếu chương trình biên dịch thành công (không có lỗi), bấm F10 để bắt đầu Debug. Mũi tên màu vàng xuất hiện trước dòng code đang theo dõi Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 3 # Bước 3: Bấm tiếp F10 để chuyển sang dòng code tiếp theo (bỏ qua dòng khai báo biến), mũi tên màu vàng di chuyển xuống tương ứng. * Lưu ý : ở cửa sổ Context đã xuất hiện 3 biến a, b, x và giá trị hiện thời của chúng. Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 4 # Bước 4: Bấm tiếp F10, câu lệnh printf thực hiện xong, mũi tên vàng di chuyển xuống hàm scanf, màn hình xuất ra chuỗi tương ứng: # Bước 5: Bấm tiếp F10, câu lệnh scanf thực hiện xong, chương trình dừng lại chờ người dùng nhập vào 2 số a, b mới chuyển sang dòng code tiếp theo * Lưu ý : Sau khi nhập xong a, b, giá trị 2 biến này trong cửa sổ Context thay đổi theo. Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 5 # Bước 6: Bấm tiếp F10, dòng x = (-b)/a thực hiện xong, kết quả biến x thay đổi trong cửa sổ Context: ) Rõ ràng chính câu lệnh x = (-b)/a đã làm chương trình chạy sai logic. Tìm hiểu kỹ dòng code này, ta sẽ phát hiện được nguyên nhân chính là phép chia (-b)/a đã được làm tròn thành số nguyên: (-1)/2 = -0.5 làm tròn thành 0 ) Cách giải quyết: ép kiểu a hoặc b thành số thực và thay khai báo x thành khai báo kiểu số thực, đồng thời sửa đặc tả biến x trong câu lệnh printf cuối cùng ) Dịch lại chương trình (F7) và chạy (Ctrl+F5), chương trình đã cho kết quả đúng: float x; x = (float)(-b)/a; //Hoặc x = (-b)/float(a); printf("Nghiem cua phuong trinh %ix + %i = 0 la: %f\n",a,b,x); Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 6 ) Tương tự, nếu Debug chương trình trên (trước khi sửa) và nhập vào a=0, b=1 , ta sẽ gặp thông báo lỗi tại dòng code x=(-b)/a như sau: Lỗi chia một số nguyên cho 0 Gặp lỗi này, chương trình không thể chạy tiếp được, bấm Shift+F5 để thoát khỏi chế độ Debug. 2. Debug một dòng code định trước Giả sử bạn đã biết hoặc nghi ngờ lỗi logic nằm ở dòng code thứ i nào đó trong chương trình và chỉ muốn chạy ngay đến dòng code ấy để kiểm tra: # Bước 1: Biên dịch chương trình (F7) # Bước 2: Đặt Breakpoint (bấm phím F9) tại dòng code bạn muốn chạy đến, lưu ý dấu chấm tròn màu đỏ xuất hiện ngay tại dòng code đó Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B # Bước 3: Bấm F5 để chạy Debug, chương trình sẽ dừng lại ngay dòng code đã đặt breakpoint. # Bước 4: Bấm F10 để chuyển đến dòng tiếp theo (dòng i+1) hay bấm F5 để chuyển đến dòng breakpoint tiếp theo. 3. Một số phím tắt trong VC++ 6.0 • F7: Biên dịch (build) chương trình • F4: Phân tích lỗi nếu quá trình biên dịch có lỗi • F9: Đặt breakpoint (chỉ có hiệu lực nếu chạy Debug) • F5: Chạy Debug, dừng tại dòng đặt Breakpoint (nếu không có breakpoint, chương trình sẽ chạy cho đến hết và tự động đóng) • F10: Chạy Debug từng dòng code • Ctrl+F10: Đặt con trỏ chuột đến 1 dòng code rồi bấm Ctr+F10, chương trình sẽ chạy thẳng đến dòng code đó • F11: Chạy Debug vào hàm con (nếu có) • Ctrl+F5: chạy chương trình trực tiếp (không Debug) GVHDTH: Nguyễn Hải Minh 7 . a = 2, b = 1, chương trình cho kết quả sai !!! Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 2 Tệ hơn, chương trình bị dừng đột ngột khi ta nhập. sổ Context thay đổi theo. Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B GVHDTH: Nguyễn Hải Minh 5 # Bước 6: Bấm tiếp F10, dòng x = (-b)/a thực hiện xong, kết quả biến. float x; x = (float)(-b)/a; //Hoặc x = (-b)/float(a); printf("Nghiem cua phuong trinh %ix + %i = 0 la: %f ",a,b,x); Hướng dẫn thực hành tuần 2 - Nhập môn lập trình Lớp 07DB_A/B

Ngày đăng: 12/08/2014, 22:21

TỪ KHÓA LIÊN QUAN

w