Tải bản đầy đủ

HƢỚNG DẪN BÀI TẬP/BÀI THỰC HÀNH TIN HỌC 11 - CẤU TRÚC RẼ NHÁNH VÀ LẶP

Trƣờng Đại học Sƣ phạm Tp. HCM
Khoa Công nghệ thông tin
Môn: Phƣơng pháp dạy học Tin học 2

HƢỚNG DẪN BÀI TẬP/BÀI THỰC
HÀNH TIN HỌC 11
CHƢƠNG III
CẤU TRÚC RẼ NHÁNH VÀ LẶP

GVHD: Nguyễn Thị Ngọc Hoa
Nhóm SVTH: Trần Thị Kim Duyên
Trần Thị Hồng Ninh
Lý Lê Thế Triển

K36.103.012
K36.103.054
K36.103.080


§9 CẤU TRÚC RẼ NHÁNH
Bài tập cơ bản

1. Viết chương trình nhập số lượng đĩa DVD cần mua. Sau đó tính số tiền phải
trả. Biết rằng mỗi đĩa DVD có giá 5000 VNĐ. Nếu mua hơn 10 cái thì sẽ giảm
10%.
Bộ dữ liệu mẫu:
Input
Số đĩa DVD
5
10
17
20
33

Output
Số tiền phải trả
25000
50000
76500
90000
148500

2. Viết chương trình nhập 2 số nguyên a và b. Kiểm tra xem a có phải là ước của b
hay không.
Bộ dữ liệu mẫu:
Input
a
2
3
8
-2
0
Gợi ý: a là ước của b nếu b chia hết cho a.

b
8
5
2
8
7

Output


Kết quả
Yes
No
No
Yes
No

3. Viết chương trình nhập vào số kw điện, tính và xuất ra số tiền phải trả (T) theo
công thức sau:
- Nếu kw <= 100 thì tính 2000đ cho 1kw.
- Nếu 100 < kw <=200 thì những kw vượt 100 tính 2500đ cho 1 kw.
Bộ dữ liệu mẫu:
Input
Tin học 11

Output
Trang 1


kw
50
100
150
73
201

T
100000
200000
325000
146000
452500

Bài tập nâng cao
1. Viết chương trình nhập vào một hàm số bậc 2: ax2 + bx + c (a ≠ 0), tính và
xuất ra cực trị của hàm.
Bộ dữ liệu mẫu:

a
1
-3
4
-1
-5

Input
b
1
12
0
4
12

c
1
1
5
0
-3

Output
Cực trị
M(-1, 0), cực tiểu
M(2, 13), cực đại
M(0, 5), cực tiểu
M(2, 4), cực đại
M(1,2; 4,2), cực đại

2. Viết chương trình giải phương trình ax4 + bx2 + c = 0 (a ≠ 0)
Bộ dữ liệu mẫu:

a
2
7
1
-1
-4

Tin học 11

Input
b
-3
6
4
4
0

c
1
-8
-5
0
5

Output
Nghiệm
1; -1; -0.7071; 0.7071
-0.8504; 0.8504
-1; 1
-2; 0; 2
-1.0574; 1.0574

Trang 2


§10 CẤU TRÚC LẶP
Bài tập cơ bản
1. Viết chương trình nhập vào số n (n nguyên dương), xuất ra dãy số chẵn
trong khoảng 1 đến n.
Bộ dữ liệu mẫu:
Input
n
5
2
20
0
-4

Output
Dãy số
2, 4
2
2, 4, 6, 8, 10, 12, 14, 16, 18, 20
Nhập lại
Nhập lại

2. Nhập số nguyên dương n, tính n!, biết n! = 1.2.3.4.5…..n.
Bộ dữ liệu mẫu:
Input
n
0
2
3
10
-5

Output
n!
1
2
6
3628800
Nhập lại

3. Tìm ước chung lớn nhất của hai số nguyên dương a và b được nhập từ
bàn phím.
Bộ dữ liệu mẫu:
Input
a
8
6
Tin học 11

b
12
12

Output
UCLN
4
6
Trang 3


7
2
60

1
3
90

1
1
30

4. Nhập vào số thực a và số nguyên dương n, tính a mũ n (an).
Bộ dữ liệu mẫu
Input
a
2
3
-2
5
-8

n
0
4
3
4
3

Output
an
1
81
-8
625
-512

Bài tập nâng cao
1. Tìm lỗi của chương trình sau và sửa lại cho đúng:
program TongBinhPhuong
var
n: integer;
ketqua: longint;
begin
write(‘Nhap vao n:’);
readln(n);
for i=1 to n do
ketqua=ketqua+i*i;
writeln(‘Voi n= ’, n ‘ tong binh phuong la ’, ketqua);
readln
end

2. Viết chương trình tìm tất cả các số nguyên tố trong khoảng từ 2 đến n. Với n là
số nguyên do người dùng nhập vào.
Bộ dữ liệu mẫu
Input
n
0
2
Tin học 11

Output
Các số nguyên tố
Không có
2
Trang 4


10
20
-9

Tin học 11

2, 3, 5, 7
2, 3, 5, 7, 11, 13, 17, 19
Nhập lại

Trang 5


HƢỚNG DẪN GIẢI
Bài 9: Cấu trúc rẽ nhánh
Viết chương trình nhập số lượng đĩa DVD cần mua. Sau đó tính số tiền phải trả.
Biết rằng mỗi đĩa DVD có giá 5000 VNĐ. Nếu mua hơn 10 cái thì sẽ giảm 10%.

1. Xác định bài toán:
(I): sl (số lượng đĩa DVD)
(O): st (số tiền cần phải trả)
2. Phân tích:
a) Thành phần dữ liệu:
sl, st: số nguyên
b) Thành phần xử lý:
st ← sl*5000
(1)
Nếu (sl>10)
(2)
st ← st*90/100
vd: sl =15
(1) st = 75000
(2) st = 67500
Vậy số tiền cần trả là 67500 VNĐ
3. Thiết kế:
a) Đơn vị dữ liệu:
sl, st: integer;
b) Đơn vị xử lý:
Tính số tiền cần phải trả
4. Cài đặt:

Bắt đầu

n
Đ

S

n £ 10

T ß5000 * n

T ß5000*n – (5000*n*10%)

T

Kết thúc


var sl, st: integer;

st:=sl*5000;
if sl>10 then st:=st*90/100;
Writeln(‘So tien can tra la:’, st);
Tin học 11

Trang 6




Viết chương trình nhập 2 số nguyên a và b. Kiểm tra xem a có phải là ước của b
hay không.

1. Xác định bài toán:
(I): a, b
Bắt đầu
(O): a có phải là ước của b hay không
2. Phân tích:
a) Thành phần dữ liệu:
a, b (a < b)
a, b: số nguyên
b) Thành phần xử lý:
Nếu (b mod a)= 0 thì
b mod a = 0
 a là ước của b còn ngược lại là
Đ
không
vd: a = 2, b =6
a là ước b
a là ước của b
Vậy kết quả sẽ xuất ra: a là ước của b
3. Thiết kế:
Kết thúc
a) Đơn vị dữ liệu:
a, b: integer;
b) Đơn vị xử lý:
Kiểm tra xem a có là ước của b hay không
4. Cài đặt:

S

a không là
ước b


var a, b: integer;

if b mod a =0 then writeln (‘ a la uoc cua b’)
else
writeln (’a khong la uoc cua b’);



Tin học 11

Trang 7


Viết chương trình nhập vào số kw điện, tính và xuất ra số tiền phải trả (T) theo
công thức sau:
- Nếu kw <= 100 thì tính 2000đ cho 1kw.
- Nếu 100 < kw <=200 thì những kw vượt 100 tính 2500đ cho 1 kw.

1. Xác định bài toán:
(I): kw
(O): tính và xuất ra số tiền phải trả
2. Phân tích:
a) Thành phần dữ liệu:
kw: số thực
b) Thành phần xử lý:
Nếu kw <= 100 thì T = kw*2000.
Nếu kw <= 100 thì T = kw*2000.
3. Thiết kế:
a) Đơn vị dữ liệu:
kw: real;
b) Đơn vị xử lý:
Tính và xuất ra số tiền phải trả T
4. Cài đặt:

Tin học 11

Trang 8


Viết chương trình nhập vào một hàm số bậc 2: ax2 + bx + c (a ≠ 0), tính và xuất ra
cực trị của hàm.
Xác định yêu cầu:
Input: a, b, c (số nguyên, a≠0).
Output: cực trị của hàm.
Ý tưởng:
Cho hàm số bậc hai f(x) = ax2 + bx + c (a ≠0).
Cực trị M của f được xác định như sau:
xM = nghiệm của phương trình f‟(x) = 0
(xM = -b/2a)
yM = f(xM) = axM2 + bxM + c
Nếu a > 0 thì M là cực tiểu.
Nếu a < 0 thì M là cực đại.

Bắt đầu

a, b, c (a≠ 0)

xM ß -b/2a
yM ß axM2 + bxM + c
Đ
a>0
S
Tb ß „cực đại‟

Tb ß „cực tiểu‟

Thuật toán:
M(xM, yM); Tb

B1: nhập a, b, c.
B2: xM ß -b/2a; yM ß axM2 + bxM + c
Kết thúc
B3: nếu a > 0 thì đạt cực tiểu, đến B5.
B4: nếu a < 0 thì đạt cực đại, đến B5.
B5: xuất M(xM, yM) và thông báo cực đại hay cực tiểu, kết thúc.

Tin học 11

Trang 9


Viết chương trình giải phương trình ax4 + bx2 + c = 0 (a ≠ 0)
Xác định yêu cầu:
Input: a, b, c (a, b, c số nguyên, a ≠0).
Output: các nghiệm (số thực).
Ý tưởng:
o Đặt t = x2.
o Ta được phương trình mới: at2 + bt + c = 0.
o Giải phương trình at2 + bt + c = 0 được nghiệm t.
o Từ t suy ra x bằng cách lấy căn bậc hai của t.

Tin học 11

Trang 10


Bài 10: Cấu trúc lặp
Viết chương trình nhập vào số n (n nguyên dương), xuất ra dãy số chẵn trong
khoảng 1 đến n.
Xác định yêu cầu:
Input: n (số nguyên dương)
Output: dãy số chẵn từ 1 đến n.
Thuật toán:
B1: nhập n.
B2: cho i chạy từ 1 đến n thực hiện:
Nếu i chia hết cho 2 thì xuất i.
B3: kết thúc.
Bắt đầu

n (n > 0)

iß1

S

i£n
Đ
S

i mod 2 = 0
Đ

Xuất i

ißi+1

Kết thúc

Tin học 11

Trang 11


Nhập số nguyên dương n, tính n!, biết n! = 1.2.3.4.5…..n.
Xác định yêu cầu:
Input: n (số nguyên, n  0).
Output: kết quả n!
Thuật toán:
B1: nhập n.
B2: gt ß1, i ß1.
B3: nếu n ≠0 thì gt ß gt*i, i ß i+1.
B4: nếu i £ n lặp lại B3. Ngược lại, xuất gt, kết thúc.
Bắt đầu

n ( 0)

gt ß 1

iß1
S

n≠0
Đ

S

i£n
Đ

gt ß gt * i
ißi+1
gt

Kết thúc

Tin học 11

Trang 12


Tìm ước chung lớn nhất của hai số nguyên dương a và b được nhập từ bàn phím.
Xác định yêu cầu:
Input: a, b (số nguyên, > 0).
Output: UCLN (a, b).
Thuật toán:
B1: nhập a, b.
B2: nếu a ≠b thì
Nếu a > b thì a ß a – b, ngược lại b ß b – a.
B3: UCLN ß b.
B4: xuất UCLN, kết thúc.
Bắt đầu

a, b (>0)
S

a ≠b
Đ
S

bßb–a

a>b
Đ

aßa–b

UCLN ß b

Kết thúc

Tin học 11

Trang 13


Nhập vào số thực a và số nguyên dương n, tính a mũ n (an).
Xác định yêu cầu:
Input: a (số thực), n (số nguyên dương).
Output: giá trị an
Thuật toán:
B1: nhập a, n.
B2: lt ß1, i ß 1.
B3: nếu n ≠0 thì lt ß lt*a, i ß i+1.
B4: nếu i £ n lặp lại B3. Ngược lại, xuất lt, kết thúc.
Bắt đầu

a, n (n  0)

lt ß 1

iß1
S

n≠0
Đ

S

i£n
Đ

lt ß lt * a
ißi+1
lt

Kết thúc
Tin học 11

Trang 14


Tìm lỗi của chương trình sau và sửa lại cho đúng:
program TongBinhPhuong
var
n: integer;
ketqua: longint;
begin
write(‘Nhap vao n:’);
readln(n);
for i=1 to n do
ketqua=ketqua+i*i;
writeln(‘Voi n= ’, n ‘ tong binh phuong la ’, ketqua);
readln
end

Sửa lại
program TongBinhPhuong;
var
n: integer;
ketqua: longint;
i: integer;
begin
write(‘Nhap vao n:’);
readln(n);
for i:=1 to n do
ketqua:=ketqua+i*i;
writeln(‘Voi n= ’, n, ‘ tong binh phuong la ’, ketqua);
readln
end.

Tin học 11

Trang 15


Viết chương trình tìm tất cả các số nguyên tố trong khoảng từ 2 đến n. Với n là số
nguyên do người dùng nhập vào.
Xác định yêu cầu:
Input: a (số thực), n (số nguyên dương).
Output: giá trị an
Ý tưởng:
Ta dùng một cách khác để tìm ra các số nguyên tố từ 2 đến một số nào đó.
Số n là một số nguyên tố nếu như “Tất cả các số nguyên kể từ 2 cho đến căn bậc
hai của n không phải là ước của nó.”
Nếu nhập n < 2, thông báo không có số nguyên tố nào.
Ngược lại, thực hiện:
- Dùng biến j để điều khiển trình bày màn hình.
- Cho m chạy từ 2 đến n:
 Gán k là phần nguyên khi lấy căn bậc hai của m.
 Gán i = 2.
 Khi (m mod i <> 0) và (i <= k) thì:
 Tăng i lên 1 đơn vị.
 Nếu i > k
o Nếu j mod 10 = 0 thì không xuất gì cả.
o Tăng j một đơn vị.
o Xuất ra m.

Tin học 11

Trang 16



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×
x