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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ị

Trang 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 !!!

Trang 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

Trang 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

Trang 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

Trang 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);

Trang 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)/anhư 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 đó

Trang 7

# 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ó)

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

TỪ KHÓA LIÊN QUAN

w