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

HƯỚNG DẪN DEBUG TRÊN BC 3.1 ppsx

12 207 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 716,66 KB

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

Nội dung

Các bước sửa lỗi: - Khi biên dịch chương trình, màn hình hiển thị thông báo lỗi, bấm phím ENTER để xuất hiện cửa sổ mô tả lỗi.. Thực thi chương trình: Khi chương trình không còn lỗi, bấm

Trang 1

HƯỚNG DẪN DEBUG TRÊN BC 3.1

I Biên dịch, thực thi chương trình:

1 Biên dịch chương trình:

Mục đích: kiểm tra chương trình còn lỗi hay không và sửa lỗi(nếu có

lỗi) để bảo đảm chương trình thực thi được

Thao tác: bấm phím F9 hoặc Atl + F9 hoặc chọn menu Compile 

Compile

Kết quả:

Chương trình không còn lỗi sẽ hiển thị thông báo sau:

Chương trình còn lỗi sẽ hiển thị thông báo sau:

Trang 2

2 Các bước sửa lỗi:

- Khi biên dịch chương trình, màn hình hiển thị thông báo lỗi, bấm

phím ENTER để xuất hiện cửa sổ mô tả lỗi

- Dùng phím mũi tên lên, xuống để duyệt lên xuống và xem mô tả lỗi Khi xem mô tả lỗi, chú ý vệt sáng trên vùng soạn thảo, thông thường

vệt sáng sẽ thông báo vị trí lỗi (có thể ngay tại dòng hoặc trước hoặc

dòng sau đó 1 dòng)

- Một số lỗi thường gặp và một số cách khắc phục sẽ được mô tả trong phần II

3 Thực thi chương trình:

Khi chương trình không còn lỗi, bấm tổ hợp phím Ctrl + F9 hoặc chọn menu Run  Run để thực thi chương trình

Trang 3

II Một số lỗi thường gặp:

1 Statement missing ;

Mô tả: thiếu dấu chấm phẩy “;” khi kết thúc câu lệnh

Khắc phục: bổ sung thêm dấu chấm phẩy “;” vào cuối câu lệnh

Ví dụ:

Sai:

int a scanf(“%i”,&a) Sửa thành:

int a;

scanf(“%i”,&a);

2 Compound statement missing }

Mô tả: thiếu dấu “}” khi kết thúc khối lệnh hoặc hàm

Khắc phục: thêm dấu “}” vào tương ứng

Ví dụ:

Sai:

void main() {

int a;

scanf(“%i”, &a);

Sửa thành:

void main() {

int a;

scanf(“%i”, &a);

}

3 Unexpected }

Mô tả: thiếu dấu “{” khi bắt đầu khối lệnh hoặc hàm hay dư dấu “}” Khắc phục: kiểm tra xem có thiếu dấu “{” hoặc dư dấu “}” và sửa lại

tương ứng

Trang 4

Ví dụ:

Sai:

void main() {

int a;

scanf(“%i”, &a);

} }

Sửa thành:

void main() {

int a;

scanf(“%i”, &a);

}

4 Misplaced else

Mô tả: dấu chấm phẩy “;” được đặt sau phát biểu if hoặc khối lệnh trong

phát biểu if không được đặt trong cặp dấu “{}” và tiếp theo đó là phát biểu else

Khắc phục: tìm và bỏ dấu chấm phẩy “;” sau phát biểu if hoặc đưa khối

lệnh sau phát biểu if vào cặp dấu “{}” tương ứng

Ví dụ:

Sai:

if(a<0);

printf(“la so am\n”);

else

if(a%2==0)

a /=2;

a++;

else

a ;

Sửa thành:

if(a<0)

printf(“la so am\n”);

else

if(a%2==0) {

Trang 5

a /=2;

a++;

} else

a ;

5 For statement missing ;

Mô tả: không dùng dấu chấm phẩy “;” để ngăn các thành phần (3 thành

phần) trong cú pháp vòng lặp for (phải có đủ 2 dấu chấm phẩy “;”)

Khắc phục: kiểm tra lại cho đúng cú pháp

for(<biểu thức khởi tạo>; <biểu thức điều kiện>; <biểu thức tăng giảm>) Trong các biểu thức nếu có nhiều biểu thức con thì mỗi biểu thức con cách nhau bởi dấu phẩy “,”

Ví dụ:

Sai:

for(int i=0, i<5; i++)

printf(“%i”,i);

Sửa thành:

for(int i=0; i<5; I++)

printf(“%i”,i);

6 Function call missing )

Mô tả: thiếu dấu phẩy “,” ngăn cách giữa phần định dạng và danh sách các

biến trong hàm printf , scanf

Khắc phục: thêm dấu phẩy “,” ngăn cách giữa phần định dạng và danh sách

các biến

Ví dụ:

Sai:

scanf(“%d”&a);

printf(“%d”a);

Sửa thành:

scanf(“%d”, &a);

printf(“%d”, a);

7 Declaration terminated incorrectly

Trang 6

Mô tả: khai báo tên biến trùng với tên hang đã được định nghĩa trước Khắc phục: đổi tên biến

Ví dụ:

Sai:

#include<math.h>

void main() {

int M_PI;

} Sửa thành:

#include<math.h>

void main() {

int m_SoPi;

}

Nguyên nhân: hằng số M_PI đã được khai báo trong thư viện math.h

8 Multiple declaration for ‘<tên_biến>’

Mô tả: khai báo trùng tên biến hoặc khai báo 1 biến nhiều lần

Khắc phục: kiểm tra đổi tên biến khác hoặc bỏ bớt các khai báo biến trùng

nhau

Ví dụ:

Sai:

int i;

for(int i =0; i<5; i++)

printf(“%d”, i);

Sửa thành:

int i;

for(i =0; i<5; i++)

printf(“%d”, i);

9 Undefined symbol ‘<tên_biến>’

Mô tả: sử dụng biến chưa khai báo

Khắc phục: khai báo biến trước khi sử dụng

Ví dụ:

Trang 7

Sai:

scanf(“%i”, &a);

Sửa thành:

int a;

scanf(“%i”, &a);

10 Declaration syntax error

Mô tả: thiếu dấu chấm phẩy “;” sau khi khai báo biến

Khắc phục: thêm dấu chấm phẩy “;” sau khi khai báo biến

Ví dụ:

Sai:

int a Sửa thành:

int a;

11 Function ‘<tên_hàm>’ should have a prototype

Mô tả: thiếu khai báo thư viện nếu sử dụng hàm thư viện hoặc chưa khai

báo nguyên mẫu hàm, gọi sai tên hàm

Khắc phục: kiểm tra khai báo thư viện, khai báo nguyên mẫu hàm hoặc tên

hàm

Ví dụ:

Sai:

#include<conio.h>

void main() {

printf(“Hello\n”);

Getch();

} Sửa thành:

#include<stdio.h>

#include<conio.h>

void main() {

printf(“Hello\n”);

getch();

}

Trang 8

Nguyên nhân: hàm printf được khai báo trong thư viện stdio.h và gọi sai

tên hàm getch trong thư viện conio.h

12 Possibly incorrect assignment

Mô tả: dùng sai kí hiệu phép toán quan hệ

Khắc phục: sử dụng các kí hiệu phép toán quan hệ

Ví dụ:

Sai if(a=0)

printf(“a bang khong”);

Sửa thành:

if(a==0)

printf(“a bang khong”);

13 Code has no effect

Mô tả: dùng kí hiệu phép toán quan hệ cho phép gán

Khắc phục: dùng kí hiệu phép toán số học

Ví dụ:

Sai:

a == 1;

Sửa thành:

a = 1;

III Hướng dẫn Debug:

1 Vì sao phải Debug:

Dù cho chương trình không còn lỗi nhưng khi thực thi vần có thể cho kết quả sai, một số nguyên nhân:

- Định dạng nhập xuất hoặc sai kiểu dữ liệu

- Điều kiện dừng sai

- Thuật toán sai hoặc thiếu trường hợp…

2 Các thao tác Debug:

- Bấm phím F7 hoặc F8 để chạy từng bước (chương trình không còn lỗi biên dịch)

 F7: đi từng lệnh của hàm con nếu có gọi hàm

Trang 9

 F8: không đi từng lệnh của hàm con mà chỉ trả về kết quả của

hàm con

 Quan sát vệt sáng để biết chương trình thực thi đến đâu

- Nếu muốn bỏ qua 1 đoạn lệnh nào đó thì đưa dấu nháy đến dòng kế

tiếp đoạn lệnh đó rồi nhấn phím F4 để chương trình thực thi đến

dòng có dấu nháy và dừng lại ở đó

- Cửa sổ theo dõi giá trị các biến (cửa sổ watch):

 Nếu cửa sổ watch chưa xuất hiện: nhấn tổ hợp phím Alt + W

sau đó nhấn tiếp phím W hoặc vào menu Windows 

Watch

 Bấm tổ hợp phím Ctrl + F7 hoặc phím INSERT (nếu cửa sổ

watch đã được mở), nhập vào các biến cần theo dõi giá trị khi

Trang 10

thực hiện xong 1 câu lệnh hoặc hàm vào ô Watch

Expression sau đó bấm phím ENTER hoặc bấm nút OK

 Xóa biến trên cửa sổ watch bằng cách chọn vào biến đó trên

cửa sổ watch, bấm phím DELETE

- Muốn thay đổi giá trị của biến ta bấm tổ hợp phím Ctrl+F4 hoặc vào menu Windows  Evaluate/modify… để hiển thị cửa sổ

Evaluate and Modify

 Nhập tên biến vào ô Expression sau đó bấm phím ENTER

hoặc bấm nút Evaluate, ô Result sẽ hiển thị kết quả hiện tại

của biến vừa nhập

 Nhập giá trị mới cho biến vừa nhập vào ô New Value, sau đó

bấm phím ENTER hoặc bấm nút Modify để thay đổi giá trị

của biến

Trang 11

- Đánh dấu để chương trình thực thi đến vị trí đánh dấu (khi chưa debug) bằng cách đưa dấu nháy đến dòng cần đánh dấu, bấm tổ hợp

phím Ctrl + F8 Vị trí đánh dấu sẽ có vệt sáng màu đỏ Có thể đánh

dấu nhiều vị trí khác nhau

Bấm tổ hợp phím Ctrl+F9 để chương trình thực thi đến vị trí đánh dấu theo thứ tự từ trên xuống Có thể dùng phím F7 hoặc F8 để chạy

từng bước giống như trên

Bỏ đánh dấu tại vị trí nào thì đưa dấu nháy đến vị trí đó rồi bấm tổ

hợp phím Ctrl + F8

- Bấm tổ hợp phím Atl + F5 để xem kết quả xuất trong quá trình

debug

Trang 12

- Bấm tổ hợp phím Ctrl + F2 để dừng quá trình debug

Ngày đăng: 30/07/2014, 04:20

TỪ KHÓA LIÊN QUAN

w