TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
KHOA CÔNG NGHỆ THƠNG TIN
HỆ CHÍNH QUI – LỚP CỬ NHÂN TÀI NĂNG 2014
MƠN: NHẬP MƠN LẬP TRÌNH
BÀI TẬP THỰC HÀNH
Tuần 3
THỰC THI TỪNG DỊNG LỆNH MÃ NGUỒN
ĐẶNG HỒNG HẢI
ĐỖ NGUN KHA
TP.HCM, ngày 27 tháng 10 năm 2014
{dhhai, dnkha}@fit.hcmus.edu.vn
1 Hướng dẫn
1.1 Nhập và xuất
Sử dụng Visual Studio viết chương trình như sau:
#include
<stdio.h>
int
main(int
argc,
char
*argv[])
{
//
Khai
báo
các
biến
số
nguyên
int
a,
b,
tong;
//
Khơng
sử
dụng
tiếng
Việt
có
dấu
trong
mã
nguồn
(trừ
comment)
printf("Nhap
so
a:
");
//
Sử
dụng
%d
và
hàm
scanf
để
nhập
một
số
nguyên
từ
bàn
phím
//
Chú
ý
có
ký
hiệu
&
trước
a
scanf("%d",
&a);
//
Tương
tự
với
b
printf("Nhap
so
b:
");
scanf("%d",
&b);
tong
=
a
+
b;
//
Sử
dụng
%d
và
printf
để
xuất
số
nguyên
//
\n
là
ký
tự
xuống
dòng
printf("Tong
hai
so
%d
va
%d
là:
%d\n",
a,
b,
tong);
return
0;
}
Những dịng nằm sau // khơng được biên dịch, có tác dụng chú thích cho mã nguồn.
2
{dhhai, dnkha}@fit.hcmus.edu.vn
Để khảo sát quá trình thực thi của chương trình bằng cách chạy từng dịng lệnh:
Bước 1: Chọn những điểm dừng (breakpoint) bằng cách nhấp chuột trái vào những
vị trí bên trái khung soạn thảo hoặc nhấn F9. Để hủy chọn nhấn trái một lần
nữa (F9)
Bước 2: Chọn từ menu Debug > Start Debugging (F5)
Bước 3: Nếu chương trình khơng có lỗi biên dịch q trình thực thi sẽ bắt đầu như
bình thường nhưng với sự kiểm sốt của Visual Studio. Ngay trước khi máy
tính thực thi đến lệnh tương ứng với (những) dịng lệnh có breakpoint,
chương trình sẽ dừng lại cho phép lập trình viên khảo sát trạng thái của
chương trình ngay tại thời điểm đó.
3
{dhhai, dnkha}@fit.hcmus.edu.vn
• Khung soạn thảo mã nguồn: Mũi tên đánh dấu vị trí dịng lệnh sắp được thực thi
• Khung xem giá trị các biến (Locals/Auto/Watch): Cho phép xem giá trị các biến
khi thực thi
• Khung hàm: Cho phép xem thứ tự các hàm được gọi (sẽ đi chi tiết khi học về hàm)
Bước 4: Sử dụng lệnh Step Over (F10 hoặc trong menu Debug) để thực thi tiếp tục
dòng lệnh hiện tại và xem sự thay đổi giá trị các biến trong khung biến. Quá
trình này gọi là quá trình debug.
Bước 5: Lặp lại bước 4 cho đến khi kết thúc chương trình
4
{dhhai, dnkha}@fit.hcmus.edu.vn
Khi sử dụng lệnh Step Over chương trình sẽ thực thi và dừng theo từng dòng cho đến khi
chương trình kết thúc. Nếu muốn thực thi bình thường cho khi gặp các breakpoint khác
thì sử dụng lệnh Continue (dấu tam giác màu xanh lá hoặc F5).
Để dừng quá trình debug khi chương trình chưa kết thúc sử dụng lệnh Stop (dấu hình
vng màu xanh dương hoặc Shift + F5).
Khơng sửa mã nguồn trong quá trình debug hoặc chạy bình thường vì những sửa chữa đó
khơng có tác dụng khi chưa biên dịch lại.
1.2 Điều kiện if-else
Nhập chuột phải vào solution Add > New Project để tạo thêm project khác
Nhấp chuột phải vào project để chọn project sẽ thực thi Set as StartUp Projects
5
{dhhai, dnkha}@fit.hcmus.edu.vn
Nhập mã nguồn giải phương trình bậc 1
#include
<stdio.h>
int
main(int
argc,
char
*argv[])
{
//
Khai
báo
biến
kiểu
số
thực
float
a,
b,
x;
//
Nhập
giá
trị
a
và
b
printf("Nhap
so
a:
");
scanf("%f",
&a);
printf("Nhap
so
b:
");
scanf("%f",
&b);
printf("Giai
phuong
trinh
%f*x
+
%f
=
0\n",
a,
b);
//
Giải
phương
trình
if
(a
==
0)
{
//
Nếu
a
bằng
0
//
Chú
ý
2
dấu
=
if
(b
==
0)
{
//
Nếu
a
bằng
0,
b
bằng
0
thì
phương
trình
có
vơ
số
nghiệm
printf("Phuong
trinh
co
vo
so
nghiem");
}
else
{
//
Nếu
a
bằng
0,
b
khác
không
thì
phương
trình
vơ
nghiệm
printf("Phuong
trinh
vo
nghiem");
6
{dhhai, dnkha}@fit.hcmus.edu.vn
}
}
}
else
{
//
Nếu
a
khác
0,
phương
trình
có
1
nghiệm
-‐b/a
x
=
-‐b
/
a;
printf("Phuong
trinh
co
nghiem
duy
nhat
x
=
%f",
x);
}
printf("\n");
return
0;
Đặt breakpoint ngay tại dòng khai báo biến (dòng đầu tiên sau hàm main), thực thi từng
dòng (debug) chương trình với các giá trị a và b khác nhau và theo dõi sự thay đổi giá trị
trong bảng biến.
2 Bài tập về nhà
Bài tập 1: Hoàn thiện bài tập nhập hai số nguyên và thực hiện xuất ra màn hình:
•
•
•
•
•
So sánh hai số (lớn hơn, bé hơn hoặc bằng)
Tổng hai số
Hiệu hai số
Tích hai số
Thương hai số (chú ý kiểm tra số bị chia)
Bài tập 2: Viết chương trình nhập vào một số nguyên là một năm tính từ Cơng Ngun
(lịch tiêu chuẩn Gregory được sử dụng hiện nay). Nếu năm nhập vào là năm nhuận thì
xuất ra màn hình “Nam %d la nam nhuan” ngược lại xuất ra màn hình “Nam %
KHONG la nam nhuan”.
Gợi ý: Năm x là năm nhuận nếu x chia hết cho 4 nhưng không chia hết cho 100 hoặc x
chia hết cho 400.
Bài tập 3: Dựa vào chương trình giải phương trình bậc 1 viết chương trình giải phương
trình bậc 2. In ra kết quả và nghiệm của phương trình (nếu có).
Chú ý: Trường hợp suy biến thành phương trình bậc 1.
7