Tải bản đầy đủ (.doc) (26 trang)

skkn bổ sung hệ thống bài tập tin học lớp 11 thpt đoàn kết

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (246.7 KB, 26 trang )

1
SỞ GIÁO DỤC ĐÀO TẠO ĐỒNG NAI
TRƯỜNG THPT ĐOÀN KẾT


Mã số:……….

SÁNG KIẾN KINH NGHIỆM
Môn : Tin

Đề tài:
BỔ SUNG HỆ THỐNG BÀI TẬP
MÔN TIN LỚP 11
Người thực hiện: VŨ QUỐC KHANH
Tổ chuyên môn: TIN
Lĩnh vực nghiên cứu:
- Quản lý giáo dục 
- Phương pháp dạy học bộ môn: 
- Lĩnh vực khác: Bổ sung hệ thống bài tập tin 11 
Có đính kèm:
 Mô hình  Phần mềm  Phim ảnh  Hiện vật khác
Năm học: 2013-2014
MỤC LỤC
NỘI DUNG TRANG
Phần 1:
I. Lý do chọn đề tài: 1
II. Thực trạng trước khi thực hiện đề tài :
Phần 2 :
I Cơ sở lý luận: 2
II Những căn cứ để xây dựng đề tài : 2
III Nội dung


1. Bổ sung các bài tập trong mp Oxy 3
2. Bổ sung các bài tập về dãy số 5
3. Bổ sung các bài tập về tổ hợp, thống kê 16
4. Biện pháp thực hiện 19
5. Kết quả thực hiện đề tài 19
III. Bài học kinh nghiệm: 19
IV. Kết luận: 20
V. Tài liệu tham khảo: 21
2
SƠ LƯỢC LÝ LỊCH KHOA HỌC
I. THÔNG TIN CHUNG VỀ CÁ NHÂN
1. Họ và tên: Vũ Quốc Khanh
2. Ngày tháng năm sinh: 04-03-1965
3. Giới tính : Nam
4. Địa chỉ: 24, tổ 7, khu 12, TT Tân Phú, Tân Phú, Đồng Nai
5. Điện thoại: 0919479560
6. E-mail:
6. Chức vụ : Tổ trưởng chuyên môn
7. Đơn vị công tác: Trường THPT Đoàn Kết
II. TRÌNH ĐỘ ĐÀO TẠO
 Học vị cao nhất: Đại học
 Năm nhận bằng: 1987
 Chuyên ngành đào tạo: Toán (Văn bằng 2: Tin)
III. KINH NGHIỆM KHOA HỌC
 Lĩnh vực chuyên môn có kinh nghiệm: Dạy toán – tin
 Số năm có kinh nghiệm: 27 năm
3
Phần 1: PHẦN MỞ ĐẦU
I. Lí do chọn đề tài:
Nền giáo dục Việt Nam đang ngày càng chuyển mình đổi mới để hòa nhịp

với nền giáo dục tiên tiến toàn cầu. Tin học là một ngành khoa học quan trọng đối
với sự phát triển của một quốc gia trong thời đại mới. Tuy nhiên Tin học lại là môn
học còn non trẻ, từ nhà trường cho đến giáo viên và học sinh còn coi nhẹ và chưa
có sự quan tâm đúng mức. Ngoài ra đây lại là môn học không thi tốt nghiệp và
không có mặt trong các khối thi vào trường đại học, ngay cả ngành CNTT.
Đặc biệt môn tin học lớp 11 (lập trình PASCAL) đối với đa số học sinh là
khó, cộng với tâm lý “môn phụ” nên học sinh càng lười học. Hầu hết các học sinh
đều không làm bài tập với lý do là khó quá không làm được.
Trong quá trình giảng dạy bộ môn, tôi suy nghĩ nhiều về những khó khăn
trên và đã nảy ra ý tưởng: nếu mình kết hợp nội dung của môn học với một môn
học khác mà học sinh thích học (Hoặc là môn chính) thì có thể học sinh sẽ hứng
thú hơn và có thể hỗ trợ ôn tập, củng cố kiến thức cho môn học đó. Với lợi thế là
giáo viên toán và môn toán cũng rất gần gũi với tin học, tôi quyết định chọn môn
toán .
Xuất phát từ vấn đề trên, với mong muốn khơi dạy sự hứng thú của học sinh
đối với môn tin và cũng mong muốn góp phần khắc phục khó khăn trong việc dạy
môn tin 11, tôi quyết định chọn đề tài:
“ BỔ SUNG HỆ THỐNG BÀI TẬP MÔN TIN HỌC 11 ”
II. Thực trạng trước khi thực hiện các giải pháp của đề tài:
1. Thuận lợi:
- Là giáo viên toán lâu năm
- Nhà trường có đủ phòng thực hành tin học
- Được sự động viên của lãnh đạo và đồng nghiệp
2. Khó khăn.
a/ Các yếu tố chủ quan:
- Do chuyên môn chính là toán nên trình độ chuyên sâu về lập trình còn hạn chế
- Do tuổi cao nên khả năng sáng tạo của bản thân bị hạn chế, nhất là với môn
tin học đòi hỏi sự nhạy bén.
b/ Các yếu tố khách quan:
4

- Đa số học sinh chưa có nhiều hứng thú với môn học vì cho là môn phụ nên dẫn
tới năng lực học và tiếp thu bài còn nhiều hạn chế.
- Phòng máy của nhà trường tuy đủ về số lượng nhưng đã hết thời hạn sử dụng nên
chất lượng không được tốt.
Phần II : NỘI DUNG ĐỀ TÀI
I.CƠ SỞ LÍ LUẬN:
Chúng ta biết rằng sự nhận thức đúng về tầm quan trọng của một vấn đề sẽ giúp
ta tích cực lĩnh hội nó tốt hơn. Cũng vậy nếu học sinh thấy được tầm quan trọng,
thấy được cái hay, cái đẹp của môn học sẽ giúp học sinh có cảm tình với môn học
đó, từ đó không có thái độ thờ ơ, xem thường mà trái lại hứng thú và say mê học
tập để lĩnh hội nó.
Các môn học trong nhà trường đều có sự liên quan bổ trợ lẫn nhau. Có thể nói
môn tin là môn công cụ giúp việc giải quyết các vấn đề của các môn học khác
được nhanh hơn, với độ chính xác kiểm soát được. Các bài tập tin học giúp học
sinh nhận ra ý nghĩa và vai trò của môn tin đối với các môn học khác và thực tiễn.
Các bài tập tin học còn có ý nghĩa củng cố kiến thức cho các môn học khác.
Việc làm các bài tập tin mang đậm nét toán học sẽ giúp học sinh vừa cảm thấy
gần gũi với môn chính (toán) vừa giúp học sinh củng cố kiến thức toán học đồng
thời cụ thể hóa các vấn đề trừu tượng của toán học giúp HS cảm nhận tốt hơn về
môn học.
II. NHỮNG CĂN CỨ ĐỂ XÂY DỰNG ĐỀ TÀI:
a) Căn cứ vào chương trình tài liệu
- Nhà trường xếp 2 tiết tin ở học kỳ I và 1 tiết ở học kỳ II nên giáo viên có thể triển
khai sớm các kiến thức cơn bản về lập trình PASCAL cho HS ngay trong HK I.
- Chương trình toán 10, 11 rất phù hợp để triển khai các bài tập tin tương ứng:
Chẳng hạn:
+ Ứng với chương các phép biến hình của hình học 11 ta có thể triển khai các bài
tập lập trình về phương pháp tọa độ trong mặt phẳng Oxy
+ Ứng với chương dãy số và giới hạn của giải tích 11 ta có thể triển khai các bài
tập về mảng một chiều

5
+ Ứng với chương Xác suất thống kê ta có thể triển khai các bài tập lập trình tính
tần số, tần suất, phương sai, về giai thừa, tổ hợp,
+ Các bài tập của sách giáo khoa tuy rất hay nhưng thường khó và ít làm cho học
sinh hơi bị sốc khi mới làm quen với lập trình
b) Căn cứ vào phương tiện dạy học của nhà trường:
- Nhà trường có đủ phòng máy thực hành cho môn tin, hầu như giờ nào cũng có
thể dạy trên phòng máy
- Ngoài ra có thể dùng bộ trình chiếu di động để minh họa chương trình và kết quả
chạy chương trình một cách trực quan
c) Căn cứ vào tình hình học sinh trong trường phổ thông
Đa số các em còn xem nhẹ môn tin học, chưa có hứng thú với môn học vì thế
việc tiếp thu môn học rất là khó đối với các em. Việc gắn kết với môn toán sẽ giúp
học sinh cảm thấy môn tin gần gũi hơn, dễ tiếp thu hơn, quan trọng hơn từ đó khơi
dậy hứng thú học tập bộ môn.
III. NỘI DUNG:
1. Bổ sung các bài tập trong mặt phẳng Oxy :
Sau khi học xong cấu trúc rẽ nhánh thì lúc này bên hình học đang học về phép biến
hình vì thế việc triển khai các bài tập về mpOxy trong giai đoạn này là rất phù hợp.
Sau khi các em biết lập trình giải phương trình bậc nhất, bậc hai, hệ phương trình
bậc nhất (trong SGK) có thể cho các em làm bài tập sau:
Bài tập1: Viết chương trình tìm giao điểm của một Parabol (P):y = ax
2
+bx + c và
một đương thẳng d: y = mx +n.
Dữ liệu vào: Các hệ số a, b, c, m, n là các số thực nhập từ bàn phím.
Dữ liệu ra: Tọa độ giao điểm hoặc tọa độ tiếp điểm hoặc thông báo không có
điểm chung.
Nhận xét: Phương trình hoành độ giao điểm của (P) và d là:
ax

2
+(b-m)x + c-n=0. Như vậy bài tập này có thể đưa về phương trình bậc hai mà
SGK đã trình bày.
6

Bài tập 2: Viết chương trình nhập vào tọa độ 3 điểm A, B, C trong mp Oxy . Kiểm
tra tính thẳng hàng của 3 điểm A, B, C. Nếu A, B, C không thẳng hàng thì kiểm tra
tính cân, đều, vuông của ∆ABC.
Dữ liệu vào: xA, yA, xB, yB, xC, yC là các số thực nhập từ bàn phím.
Dữ liệu ra: In ra các câu trả lời theo yêu cầu
Nhận xét: Bài này các em có thể sử dụng các tính toán đơn giản của hình học trong
mp Oxy cùng với cấu trúc If….then… else…
Bài tập 3: Viết chương trình xét vị trí tương đối của đường tròn (T) có phương
trình x
2
+ y
2
– 2ax – 2by + c = 0 và đường thẳng d: y = kx + m
Dữ liệu vào: a, b, c, k, m là các số thực nhập từ bàn phím.
Dữ liệu ra: câu trả lời về vị trí tương đối của (T) và d
Nhận xét: Bài này các em có thể sử dụng các tính toán đơn giản của hình học trong
mp Oxy: xác định tâm, bán kính đường tròn (T), tính khoảng cách từ tâm đường
tròn (T) đến đường thẳng d, cùng với cấu trúc If….then… else…
Bài tập 4: Viết chương trình tìm ảnh của điểm M qua phép đối xứng tâm I
Dữ liệu vào: xM, yM, xI, yI là các số thực nhập từ bàn phím.
Dữ liệu ra: xN, yN là tọa độ điểm N đối xứng với M qua I
Nhận xét: Bài này các em có thể sử dụng các tính toán đơn giản của hình học trong
mp Oxy: công thức tọa độ trung điểm .
Bài tập 5: Viết chương trình tìm ảnh của điểm M qua phép vị tự tâm I tỉ số k
Dữ liệu vào: xM, yM, xI, yI, k là các số thực nhập từ bàn phím.

Dữ liệu ra: xN, yN là tọa độ điểm N là ảnh của M
Nhận xét: Tương tự bài tập 4 bài này chỉ mang tính chất tính toán không thiên về
tin học. Tuy nhiên nó có thể tạo hứng thú cho học sinh vì các em đang học về phép
biến hình trong mpOxy.
Bài tập 6: Viết chương trình xét vị trí tương đối của đường tròn (T) có phương
trình x
2
+ y
2
– 2ax – 2by + c = 0 và điểm M(p,q)
Dữ liệu vào: a, b, c, p, q là các số thực nhập từ bàn phím.
7
Dữ liệu ra: câu trả lời về vị trí tương đối của (T) và M
Nhận xét: Bài này các em có thể sử dụng các tính toán đơn giản của hình học trong
mp Oxy: xác định tâm, bán kính đường tròn (T), tính khoảng cách từ tâm đường
tròn (T) đến điểm M, cùng với cấu trúc If….then… else… để in ra kết quả
Bài tập7: Viết chương trình nhập vào tọa độ 3 điểm A, B, C, M trong mp Oxy .
Kiểm tra tính thẳng hàng của 3 điểm A, B, C. Nếu A, B, C không thẳng hàng thì
kiểm tra xem điểm M có nằm trong ∆ABC không.
Dữ liệu vào: xA, yA, xB, yB, xC, yC, xM, yM là các số thực nhập từ bàn phím.
Dữ liệu ra: In ra các câu trả lời theo yêu cầu
Nhận xét: Bài này khó giáo viên có thể hướng dẫn cho các em thuật giải sau:
+ Viết phương trình tổng quát của các cạnh AB, BC, CA
+ Nếu A, M nằm cùng phía so với BC và B, M nằm cùng phía so với AC và C, M
nằm cùng phía so với AB thì kết luận M nằm trong ∆ABC
Có thể phát triển bài toán này thành bài toán tối ưu của đại số 10
2. Bổ sung các bài tập về dãy số :
Sau khi học sinh được học về cấu trúc lặp và dữ liệu kiểu mảng thì tương ứng ở
giải tích 11 các em cũng được học về dãy số, cấp số cộng, cấp số nhân… vì thế
việc triển khai các bài tập về dãy số trong giai đoạn này là rất phù hợp, giúp cho

các em vừa hứng thú học tập vừa củng cố thêm các kiến thức toán học.
Bài tập 8: Viết chương trình in ra các số hạng của dãy số u
n
=
1
1
n
n
 
+
 ÷
 
với n từ 1
đến 20. Nêu nhận xét về kết quả in ra trên màn hình: Tính tăng giảm, dự đoán giới hạn
Dữ liệu vào: Không có dữ liệu nhập vào.
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét: Bài này giúp các em rèn luyện về kiểu mảng và cấu trúc lặp xác định.
Ngoài ra giúp các em có cái nhìn thực tiễn về số e.
Bài tập 9: Viết chương trình in ra n số hạng của cấp số cộng với u1 = 5 và công
sai d = 4. Tính và in ra tổng của n số hạng nói trên.
Dữ liệu vào: n.
8
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét: Bài này giúp các em rèn luyện về kiểu mảng và cấu trúc lặp xác định.
Ngoài ra giúp các em ôn tập về cấp số cộng.
Bài tập 10: Viết chương trình in ra n số hạng của cấp số nhân với u1 = 5 và công
bội p = 2. Tính và in ra tổng của n số hạng nói trên.
Dữ liệu vào: n.
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét: Bài này giúp các em rèn luyện về kiểu mảng và cấu trúc lặp xác định.

Ngoài ra giúp các em ôn tập về cấp số nhân.
Bài tập 11: Viết chương trình in ra u
n
. Biết rằng u
1
= 2 và số u
n
=
1
n
u +
với
2n

.
Dữ liệu vào: n.
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét: Bài này giúp các em rèn luyện về kiểu mảng và cấu trúc lặp xác định.
Ngoài ra giúp các em ôn tập về dãy số cho bằng công thức truy hồi.
Bài tập 12: Viết chương trình xét xem một số n có phải là số nguyên tố không?
a.Hướng dẫn:
- Nếu n không chia hết mọi số i có giá trị từ 2 đến n - 1 thì n là số nguyên
tố.
- Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true.
- Cho biến i chạy từ 2 đến n – 1. Xét n mod i. Nếu bằng 0 thì gán ok = false.
Ngược lại vẫn để nguyên ok.
b.Mã chương trình:
Program Nguyen_to_1;
uses crt;
var n, i: integer;

ok: boolean;
begin
ok:=true;
write('Nhap n: ');readln(n);
for i:= 2 to n - 1 do if n mod i = 0 then
ok :=false;
if ok then write(n,' la so nguyen to')
else write(n, ' khong la so nguyen to');
9
readln
end.
c. Nhận xét: Ở đây ta sử dụng biến có kiểu logic (Đúng, sai). Chỉ cần một lần n
mod i = 0 thì sau khi thực hiện xong vòng lặp ok có giá trị là false.
Bài tập 13:
Dựa vào bài tập 12, viết chương trình in ra dãy số gồm tất cả các số nguyên tố bé
hơn hoặc bằng n?
a. Hướng dẫn:
- Cho i chạy từ 2 đến n.
- Xét i. Nếu nó là số nguyên tố thì in nó ra.
b. Mã chương trình:
Program Nguyen_to_1;
uses crt;
var n, i, j: integer;
ok: boolean;
begin
clrscr;
write('Nhap n: '); readln(n);
for i := 2 to n do
begin
ok:=true;

for j:= 2 to i - 1 do if i mod j = 0 then
ok :=false;
if ok then write(i,';')
end;
readln
end.
Bài tập 14:
Dãy Fibonacy có hai phần tử đầu là 1, 1. Các phần tử sau bằng tổng hai
phần tử đứng ngay trước nó: 1, 1, 2, 3, 5, 8, 13, 21,
Viết chương trình in ra dãy Fibonacy có phần tử lớn nhất nhỏ hơn n?
a.Hướng dẫn:
- Sử dụng mảng M để chứa dãy n số fibonacy. Tạo lập hai phần tử đầu tiên là 1, 1.
- Cho i chạy từ 3 đến n. M [i] = M[i-1]+M[i-2].
- In n phần tử đầu tiên của mảng.
10
b.Mã chương trình:
Program Fibonacy_mang;
uses crt;
var i,n: integer;
m:array[1 100] of longint;
begin
write('Nhap so phan tu can in:'); readln(n);
m[1]:=1;
m[2]:=1;
for i:=3 to n do m[i]:=m[i-1]+m[i-2];
for i:=1 to n do write(m[i],' ,');
readln
end.
Bài tập 15:
Viết chương trình nhập dãy n số và in ra tổng các số lẻ trong dãy số vừa nhập.

a. Hướng dẫn:
Thực hiện cộng dồn các số lẻ bằng lệnh:
if M[i] mod 2 =1 then tong:=tong+M[i]
b. Mã chương trình:
Program Mang_Tong_Le;
uses crt;
var i,n:byte;
M:array[1 100] of integer;
tong:longint;
begin
write('Nhap so phan tu cua day: ');readln(n);
for i:=1 to n do
begin
write('M[',i,']'); readln(M[i]);
end;
tong:=0;
for i:=1 to n do if M[i] mod 2 =1 then
tong:=tong+M[i];
write('Tong cac so le trong day la: ',tong);
readln
end.
c. Nhận xét: Với yêu cầu của bài toán thì không cần sử dụng biến mảng vẫn giải
được. Hãy thử nhé.
Bài tập 16:
Viết chương trình nhập n số, xoá số thứ k trong n số vừa nhập.In ra n-1 số còn lại.
11
n= 10 (Nhập 10 phần tử)
Ví dụ: Nhập 2, 3, 4, 5, 6, 8, 7, 6, 5, 4.
k= 8 (Xoá phần tử thứ 8).
In ra: 2, 3, 4, 5, 6, 8, 7, 5, 4.

a. Hướng dẫn:
Xoá phần tử k bằng cách ghi đè phần tử thứ k+1 lên nó.
b. Mã chương trình:
Program Xoa_mang;
uses crt;
var m:array[1 100] of integer;
n,i,k:byte;
begin
Write('So phan tu cua day: ');readln(n);
for i:=1 to n do
Begin
write('M[',i,']=');
readln(M[i]);
end;
write('Nhap phan tu can xoa: ');readln(k);
for i:=k to n-1 do m[i]:=m[i+1];
for i:=1 to n-1 do write(m[i],', ');
readln
end.
c. Nhận xét: Với yêu cầu của bài tập trên chỉ cần kiểm tra chỉ số khi in (VD nếu
i=8 thì không in). Tuy nhiên trong khi sử dụng mảng để lưu dữ liệu giải toán, nhiều
khi ta có nhu cầu xóa bớt hoặc chèn thêm phần tử vào dãy.
Bài tập 17:
Viết chương trình cho phép nhập một dãy gồm n số nguyên. Nhập thêm một
số và chèn thêm vào dãy sau phần tử k.
a. Hướng dẫn:
- Dời các phần tử từ vị trí k về sau một bước.
- Nhập giá trị cần chèn vào vị trí k.
b. Mã chương trình:
Program Mang_chen;

uses crt;
var M: array[1 100] of integer;
i,n,k:integer;
begin
12
clrscr;
write('Nhap : ');readln(n);
for i:=1 to n do
begin
write('M[',i,']='); readln(M[i]);
end;
write('Vi tri chen: ');readln(k);
for i:=n+1 downto k+1 do M[i]:=M[i-1];
write('Nhap so can chen: '); readln(M[k]);
for i:=1 to n+1 do write(M[i],', ');
readln
end.
Bài tập 18:
Viết chương trình cho phép nhập n số và cho biết số nhỏ nhất trong các số vừa
nhập là số thứ mấy.
a.Hướng dẫn:
- Dùng biến n để lưu lượng số cần nhập.
- Dùng mảng để lưu các số vừa nhập.
- Cho Min = M[1], j = 1 (Xem phần tử đầu tiên là bé nhất)
- So sánh Min với n-1 số còn lại. Trong quá trình so sánh nếu Min > M[i] thì
gán Min = M[i], j=i và tiếp tục so sánh .
b.Mã chương trình:
Program TIM_NHO_NHAT;
uses crt;
var n,i,nhonhat:integer;

m: array[1 100] of real;
min:real;
begin
write('Nhap n: '); readln(n);
for i:=1 to n do
begin
write('M[',i,']='); readln(m[i]);
end;
min:=m[1];
nhonhat:=1;
for i:=2 to n do if m[i] < min then
begin
min:=m[i]; nhonhat:=i;
end;
writeln('phan tu nho nhat la phan tu
thu',nhonhat);
readln
13
end.
Bài tập 19:
Viết chương trình cho phép nhập n số sắp xếp và in ra các số đã nhập theo thứ tự
tăng dần.
a. Hướng dẫn: Dùng mảng và thuật toán sắp xếp nổi bọt
b. Mã chương trình:
Program Sap_xep_mang;
Var M: array[1 10] of integer;
i,j,n: byte;
tam: integer;
Begin
Write('Nhap so phan tu n:');Readln(n);

For i:=1 to n do
Begin Write('M[',i,']='); Readln(M[i]); End;
For i:=1 to n-1 do
For j:=i+1 to n do if M[j] <=M[i] then
Begin Tam:= M[i]; M[i]:=M[j]; M[j]:=tam; End;
Write('Sau khi sap xep: ');
For i:=1 to n do Write(M[i],';');
Readln;
End.
Bài tập 20:
Viết chương trình in ra màn hình tam giác Pascal. Ví dụ, với n=4 sẽ in ra hình sau:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Hàng thứ n được xác định từ hàng n-1:
- Phần tử đầu tiên và phần tử cuối cùng đều bằng 1.
- Phần tử thứ 2 là tổng của phần tử thứ nhất và thứ 2 của hàng n-1
- Phần tử thứ k của hàng thứ n là tổng của phần tử thứ k-1 và k của hàng thứ n-1.
Thuật toán:
Bước 1: Khởi tạo một mảng một chiều n phần tử có giá trị 0.
Bước 2: Khởi tạo giá trị cho hàng thứ nhất M[1,1] = 1.
Bước 3: - Đối với hàng thứ i tính giá trị phần tử từ phần tử thứ i + 1 xuống phần tử thứ 2:
M[j]:=M[j] + M[j-1]
- In ra hàng thứ i.
14
Chương trình:
Program Tam_giac_Pascal_mot_chieu;
Var n,i,j: integer;
M: array[1 10] of integer;

Begin
Write('Nhap n: '); Readln(n);
For i:= 1 to n do M[i]:=0;
M[1]:=1;
For i:=1 to n do
Begin
For j:=i+ 1 downto 2 do M[j]:=M[j]+M[j-1];
For j:=1 to i+ 1 do Write(M[j]:3);
Writeln;
End;
Readln
End.
** Một số bài tập nâng cao về dãy dành cho học sinh khá giỏi
Bài tập 21:
Viết chương trình cho phép trộn hai dãy số A và B cùng có số phần tử là k để được
dãy số C theo yêu cầu sau:
A = a
1
, a
2
a
k
B = b
1
, b
2
b
k
Được C = a
1

, b
1
, a
2
, b
2
a
k
, b
k
.
a. Hướng dẫn: Dùng 3 mảng A, B, C cùng với cấu trúc while
b. Mã chương trình:
Program Tron_day;
uses crt;
type kieu_mang = array[1 100] of integer;
var A, B, C: Kieu_mang;
n,i,j: integer;
Procedure Nhap_Mang(Var X: Kieu_mang; n:byte);
var i:integer;
begin
for i:=1 to n do
begin
write('M[',i,']=');readln(X[i]);
end;
end;
Procedure In_Mang(X:kieu_mang; n:byte);
var i: byte;
begin
15

for i:=1 to n do write(x[i],', ');
end;
{ }
begin
clrscr;
write('Nhap so phan tu cua day: ');read(n);
Nhap_mang(A,n);
Nhap_mang(B,n);
i:=1;
j:=1;
while i<= n do
begin
C[j]:= A[i];
C[j+1]:=B[i];
j:=j+2;
i:=i+1;
end;
in_mang(C,2*n);
readln
end.
Bài tập 21:
Cho dãy số gồm n số. Tìm dãy con lớn nhất các phần tử tăng (giảm) dần.
Giải thuật:
Sử dụng kỹ thuật xây dựng dãy con.
Cài đặt:
Program Day_con1;
Var M: array[1 100] of integer;
i,n, dau,ldau, dai,Max: integer;
Begin
Write('Nhap so n: '); Readln(n);

For i:=1 to n do
Begin Write('[',i,']='); Readln(M[i]); End;
{Khoi tao gia tri dau}
i:=0;
Max:=1;
dau:=1;
dai:=1;
ldau:=1;
While i<=n do
Begin
i:=i+1;
if M[i+1]>=M[i] then dai:=dai+1 else
16
if dai> Max then Begin Max:=dai; ldau:=dau; dai:=0
End
else Begin dau:=i+1; dai:=1 End;
End;
Write('Xau con dai:',max,' bat dau tu: ',ldau);
Readln
End.
Nhận xét: Bài toán trên có thể sử dụng giải thuật vét cạn dãy con để giải. Sau đây
là cài đặt:
Program Day_con1b;
Type KM= array[1 100] of integer;
Var M:KM;
i,j,n, dau,ldau, dai,Max: integer;
Function KT(A:KM;m,l:byte):boolean;
Var ok:Boolean;
i:byte;
Begin

ok:=True;
For i:=m to m+l-1 do if A[i]>A[i+1] then ok:=ok and
false;
KT:=ok;
End;
Begin
Write('Nhap so nc: '); Readln(n); Max:=0;
For i:=1 to n do Begin Write('[',i,']=');
Readln(M[i]); End;
For i:= 1 to n-1 do
For j:=1 to n-i+1 do
if KT(M,i,j) then
if j+1> Max then Begin ldau:=i; Max:=j+1
End;
Write('Xau con dai:',max,' bat dau tu: ',ldau);
Readln
End.
Bài tập 22:
Cho dãy số gồm n số. Tìm dãy con lớn nhất các phần tử có cùng dấu, (đan dấu).
Giải thuật:
Thực hiện giống nhu bài 1, chỉ thay điều kiện là M[i+1]*M[i] >0
Cài đặt:
Program Day_con2;
Var M: array[1 100] of integer;
17
i,n, dau,ldau, dai,Max: integer;
Begin
Write('Nhap so nc: '); Readln(n);
For i:=1 to n do Begin Write('[',i,']=');
Readln(M[i]); End;

i:=0;
Max:=1;
dau:=1;
dai:=1;
ldau:=1;
While i<=n do
Begin
i:=i+1;
if M[i+1]*M[i]>0 then dai:=dai+1 else
if dai> Max then Begin Max:=dai; ldau:=dau; dai:=0
End
else Begin dau:=i+1; dai:=1 End;
End;
Write('Xau con dai:',max,' bat dau tu: ',ldau);
Readln
End.
Bài tập 21: Cho dãy số gồm n số nguyên. Tìm dãy con có tổng lớn nhất
Giải thuật:
- Sử dụng kỹ thuật vét cạn các dãy con, dùng hàm tính tổng dãy con để kiểm tra.
Cài đặt:
Program Day_con1b;
Type KM= array[1 100] of integer;
Var M:KM;
i,j,n,ldau, dai,Max: integer;
Function TONG(A:KM;m,l:byte):Integer;
Var Tam,i:integer;
Begin
Tam:=0;
For i:=m to m+l do Tam:=Tam + A[i];
TONG:=Tam;

End;
Begin
Write('Nhap so nc: '); Readln(n);
For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End;
Max:=M[1];dai:=1;ldau:=1;
For i:= 1 to n do
For j:=0 to n-i+1 do
if TONG(M,i,j)> Max then
18
Begin ldau:=i; Max:=Tong(M,i,j) ; dai:=j+1 End;
Write('Xau con co tong:',max,' bat dau tu: ',ldau, ' dai: ',dai);
Readln
End.
3. Bổ sung các bài tập vể tổ hợp, xác suất thống kê :
Bài tập 22:
Viết chương trình tính n! với yêu cầu sử dụng hàm để tính giai thừa.
a. Hướng dẫn: Có thể dung cấu trúc for hoặc while
b. Mã chương trình:
Program Giai_thua_Ham;
uses crt;
var n: longint;
Function Giai_Thua(n:longint):longint;
Var GT:Longint;
begin
GT:=1;
while n > 0 do
begin
GT:=GT * n;
n:=n-1;
end;

Giai_thua:=GT;
end;
begin
clrscr;
write('Nhap n: '); readln(n);
write(n,'!=',Giai_thua(n));
readln
end.
Nhận xét: Hãy so sánh sự khác nhau khi Giai_thua được viết dưới hai dạng
Function và Procedure.
- Khi dùng Procedure cần một biến (toàn cục) để lưu giữa giá trị của n!. Biến này
được truyền cho tham biến trong Procedure. Sau khi gọi nó cần lệnh để in n!
- Khi dùng Function, có thể sử dụng nó như là một biểu thức.
Bài tập 23:
Sử dụng hàm trong bài tập 22, viết hàm tính số tổ hợp, số chỉnh hợp: A(n,k);
C(n,k).
19
a. Hướng dẫn: Sử dụng hàm trong bài tập 22, và công thức trong toán học đã biết
b. Mã chương trình:
Function Cnk(n,k:longint):longint;
begin
ank:=(Giai_thua(n)/(giai_thua(k)*giai_thua(n-k))
end;
Function Ank(n,k:longint):longint;
begin
ank:=(Giai_thua(n)/giai_thua(n-k);
end;
Bài tập 24:
Sử dụng hàm trong bài tập 23, viết chương trình in ra các hệ số trong khai triển
nhị thức Niu-tơn

( )
n
a b+
Dữ liệu vào: n.
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét: Bài này giúp các em rèn luyện cách sử dụng hàm và ôn tập về nhị thức
Niu-tơn
( )
n
a b+
.
Bài tập 25:
Viết chương trình nhập vào điểm số của một bài kiểm tra một tiết của một lớp học
(gồm 40 bài). In ra bảng phân bố tần số, tần suất, số trung bình, mốt, số trung vị,
phương sai. Yêu cầu ghép lớp như sau:
Lớp 1: [0,2)
Lớp 2: [2,4)
Lớp 3: [4,6)
Lớp 4: [6,8)
Lớp 3: [8,10]
Dữ liệu vào: gồm điểm số của 40 học sinh (dùng kiểu mảng).
Dữ liệu ra: in ra kết quả theo yêu cầu
Nhận xét:
Dùng 2 mảng
+ Mảng A[1 40] chứa điểm số
+ Mảng L[1 5] chứa tần số của mỗi lớp
20
Có thể dủng For kết hợp case để tính tần số
Các số liệu khác dùng các công thức về thống kê, kết hợp cấu trúc for
Bài tập này giúp học sinh ôn luyện về thống kê đã học ở lớp 10

Bài tập 26:
Viết chương trình cho phép thực hiện rút gọn phân số.
a. Hướng dẫn:
- Tìm UCLN của tử số và mẫu số.
- Chia tử và mẫu của phân số cho UCLN vừa tìm được.
b. Mã chương trình:
Program Rut_gon_phan_so;
uses crt;
var tu,mau:integer;
Function UCLN(a,b:integer):integer;
var r: integer;
begin
r:= a mod b;
while r <> 0 do
begin
a:= b;
b:= r;
r:=a mod b;
end;
UCLN:=b;
end;
begin
clrscr;
write('Nhap tu: '); readln(tu);
write('Nhap mau: '); readln(mau);
write('Ket qua rut gon: ',tu,'/',mau,'=',tu div
UCLN(tu,mau),'/',mau div UCLN(tu,mau));
readln
end.
Đây là một bài toán đơn giản nhưng tạo hứng thú cho Hs do tính ứng dụng cao

21
4. Phương pháp thực hiện:
- In và phát bài tập trước cho HS nghiên cứu tại nhà
- Thực hành trực tiếp trên phòng máy
- Trước mỗi bài có thể kuểm tra ôn tập cho Hs kiến thức toán lien qua
- Sau mỗi bài tập củng cố, rút kinh nghiệm
5. Kết quả thực hiện đề tài: Kết quả cụ thể trong năm học 2013-2014:
Lớp 11A02 có áp dụng đề tài, lớp 11A03 không áp dụng đề tài
Lop SS Giỏi %Giỏi Khá %Khá TB %TB Yếu %Yếu
11A02 41 26 63,41 14 34,15 1 2,44 0 0
11A03 42 5 11,9 30 71,43 7 16,67 0 0
+ Trước khi áp dụng đề tài HS thường rất lười học và thờ ơ với môn tin,
thậm chí nhiều em sợ học môn tin 11
+ Sau khi áp dụng đề tài HS thường hứng thú hơn với môn tin, thậm chí
nhiều em học giỏi môn tin 11
IV. BÀI HỌC KINH NGHIỆM:
Qua thực hiện đề tài này tôi rút ra bài học kinh nghiệm như sau:
- Tiếp tục thực hiện đề tài và chỉnh sửa bổ sung các bài tập hay hơn gần gũi
hơn với chương trình toán mà các em đang học
- Tận dụng tối đa phòng máy thực hành và công cụ trực quan (Bộ trình chiếu
di động).
- Bản thân cần phải tiếp tục nghiên cứu thêm một số tài liệu khác liên quan
đến lĩnh vực đề tài này
- Đề tài này nhân rộng và áp dụng vào giảng dạy bộ môn tin 11 trong nhà
trường
* Đề tài này đã đưa ra cho học học sinh thử nghiệm và vận dụng được trong
học tập cho kết quả rất tích cực.
Ý nghĩa của đề tài
- Hoàn thành mục tiêu tiết dạy tốt hơn trên cả 3 lĩnh vực: Kiến thức, kỹ năng, thái
độ học tập.

- Tạo hứng thú cho học sinh đối với môn tin 11.
22
- Chất lượng giảng dạy cao hơn, cụ thể học sinh thích thú bộ môn hơn và nhiều em
học giỏi tin.
V. KẾT LUẬN:
Qua thực hiện đề tài này tôi thấy học sinh lớp 11 thích học bộ môn tin hơn và cũng
qua các bài tập kiến thức toán học của các em được củng cố, bổ sung thêm.
Tôi kiến nghị với cấp quản lý như sau:
- Nên xem trọng bộ môn tin học trong nhà trường, không nên có tâm lý xem
môn tin chỉ là môn phụ. Vì CNTT là môn học của thời đại.
- Tăng cường cơ sở vật chất, nhất là việc đầu tư phòng máy thực hành cho Hs,
tạo môi trường học tập cho các em được thoải mái, mát mẻ hơn.
- Nhân đây cũng kêu gọi người dạy cần nghiên cứu, tăng cường thiết kế ra các
bài tập tin hay, gần gũi với các môn học khác để Hs hứng thú hơn trong học
tập.
NGƯỜI THỰC HIỆN
Vũ Quốc Khanh
23
VI. TÀI LIỆU THAM KHẢO:
- Sách giáo khoa tin học lớp 11
- Sách giáo viên tin học lớp 11
- Sách bài tập tin học lớp 11
- Tài liệu 100 bài tập tin học sưu tầm từ internet
- Và một số tài liệu có liên quan khác
24
SỞ GD&ĐT ĐỒNG NAI
Đơn vị : THPT Đoàn Kết
–––––––––––

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc
––––––––––––––––––––––––
Tân Phú, ngày tháng năm
PHIẾU NHẬN XÉT, ĐÁNH GIÁ SÁNG KIẾN KINH NGHIỆM
Năm học: 2013-2014
–––––––––––––––––
Tên sáng kiến kinh nghiệm: Xây Dựng Bài Tập Và Kiểm Tra Trắc Nghiệm
Online
Họ và tên tác giả: Vũ Quốc Khanh Chức vụ : Tổ trưởng chuyên môn
Đơn vị: THPT ĐOÀN KẾT
Lĩnh vực: (Đánh dấu X vào các ô tương ứng, ghi rõ tên bộ môn hoặc lĩnh vực
khác)
- Quản lý giáo dục  - Phương pháp dạy học bộ môn: 
- Phương pháp giáo dục  - Lĩnh vực khác: Bổ xung hệ thống bài tập tin
lớp 11 
Sáng kiến kinh nghiệm đã được triển khai áp dụng: Tại đơn vị  Trong
Ngành 
1.Tính mới (Đánh dấu X vào 1 trong 3 ô dưới đây)
-Đề ra giải pháp thay thế hoàn toàn mới,bảo đảm tính khoa học, đúng đắn
-Đề ra giải pháp thay thế một phần giải pháp đã có, bảo đảm tính khoa học,
đúng đắn 
-Giải pháp mới gần đây đã áp dụng ở đơn vị khác nhưng chưa từng áp dụng ở
đơn vị mình, nay tác giả tổ chức thực hiện và có hiệu quả cho đơn vị 
2.Hiệu quả (Đánh dấu X vào 1 trong 5 ô dưới đây)
- Giải pháp thay thế hoàn toàn mới, đã được thực hiện trong toàn ngành có hiệu
quả cao 
- Giải pháp thay thế một phần giải pháp đã có, đã được thực hiện trong toàn
ngành có hiệu quả cao 
- Giải pháp thay thế hoàn toàn mới, đã được thực hiện tại đơn vị có hiệu quả
cao 

-Giải pháp thay thế một phần giải pháp đã có, đã được thực hiện tại đơn vị có
hiệu quả 
-Giải pháp mới gần đây đã áp dụng ở đơn vị khác nhưng chưa từng áp dụng ở
đơn vị mình, nay tác giả tổ chức thực hiện và có hiệu quả cho đơn vị 
3.Khả năng áp dụng (Đánh dấu X vào 1 trong 3 ô mỗi dòng dưới đây)
- Cung cấp được các luận cứ khoa học cho việc hoạch định đường lối, chính
sách:
Trong Tổ/Phòng/Ban  Trong cơ quan, đơn vị, cơ sở GD&ĐT 
Trong ngành 
25

×