Một số dạng bài tập điển hình trong giảng dạy bài tập môn Tin học Lớp 11 phổ thông

UED JOURNAL OF SOCIAL SCIENCES, HUMANITIES AND EDUCATION  
VOL.2, NO.3 (2012)  
MỘT SỐ DẠNG BÀI TẬP ĐIỂN HÌNH TRONG GIẢNG DẠY BÀI TẬP MÔN  
TIN HỌC LỚP 11 PHỔ THÔNG  
Lê Viết Chung*  
TÓM TẮT  
Trong chương trình Tin học 11 ở phổ thông hiện nay, việc dạy bài tập gặp rất nhiều khó  
khăn, đặc biệt là về thời lượng, về chương trình và về nội dung các bài tập trong sách giáo  
khoa. Cần phải đẩy mạnh việc thay đổi hình thức và nội dung bài tập, thay đổi cách dạy và  
hướng dẫn học sinh giải bài tập để phát huy năng lực học tập cũng như tích cực hóa hoạt động  
học tập của học sinh là nội dung chính của bài viết.  
Từ khóa: bài tập điển hình, tin học lớp 11  
1. Đặt vấn đề  
Trong chương trình tin học lớp 11 ở phổ thông hiện nay, việc dạy bài tập tin học  
gặp rất nhiều khó khăn và làm hạn chế những chức năng mà chính bản thân việc giảng  
dạy bài tập mang đến cho học sinh trong quá trình dạy học. Những khó khăn đó bắt  
nguồn từ nhiều vấn đề. Trước hết nói về thời lượng, cả một chương trình kéo dài trong  
một năm học với tổng tiết là 52,5 tiết mà số lượng tiết bài tập chỉ là 7, chiếm 13,7% số  
giờ trên lớp là quá ít không đủ để giáo viên có thể phát huy hết thế mạnh của việc giảng  
dạy bài tập ở trường phổ thông. Thứ đến là nội dung các bài tập trong chương trình  
sách giáo không mang tính điển hình và thiếu sự đa dạng, điều đó làm cho người thầy  
giáo khó lòng đưa ra những hình thức, phương pháp thích hợp khi áp dụng vào việc  
giảng dạy bài tập. Một điều cần phải nhắc đến là nhiều giáo viên không chịu cải tiến,  
thay đổi những hình thức bài tập để phát huy năng lực học tập cũng như tích cực hóa  
học tập của học sinh. Qua thực tế , khi về làm việc với các trường phổ thông, chúng tôi  
thấy cần phải làm mới nội dung và hình thức các bài tập để gây tính hứng thú, tích cực  
và đặc biệt là gây nên sự ham thích với bộ môn học mới mẻ này.  
Việc dạy bài tập tin học là một hình thức hoạt động của tin học, đặc biệt là phần  
bài tập lập trình của sách tin học lớp 11. Hình thức này thể hiện qua việc dạy bài tập lý  
thuyết và việc dạy bài tập thực hành trên máy mà người thầy giáo luôn đóng vai trò chỉ  
đạo khuyến khích, dẫn dắt và hướng học sinh tự tìm đến kết quả. Khi giảng dạy bài tập,  
người giáo viên không cứng nhăc với cách dạy bài tập mang tính truyền thống là kẻ  
bảng chia thành nhiều phần gọi các học sinh lên viết chương trình hoặc trả lời các câu  
hỏi trong sách giáo khoa, giáo viên đánh giá và kết thúc. Việc làm này gắn việc dạy bài  
tập với chức năng củng cố và kiểm tra nhiều hơn. Bài viết xin trình bày một số dạng bài  
tập mà giáo viên có thể tham khảo để có thể thay đổi, cải tiến trong phần bài tập của  
sách giáo khoa bằng nhiều cách mà người giáo viên có thể thực hiện được.  
2. Đối với dạng bài tập củng cố lý thuyết  
93  
TẠP CHÍ KHOA HỌC XÃ HỘI, NHÂ N VĂN VÀ GIÁ O DỤC  
TẬP 2, S3 (2012)  
Trong chương trình phổ thông loại hình bài tập này thường xuất hiện dưới  
dạng những câu hỏi ở cuối bài, cuối chương nó thường là những câu hỏi đơn chẳng hạn  
như:  
- Tại sao người ta phải xây dựng các ngôn ngữ lập trình bậc cao ( Bài 1 – phần câu hỏi  
và bài tập §1,2 sách Tin học 11)  
- Hãy cho biết sự giống nhau và khác nhau của 2 dạng câu lệnh if-then ( Bài 1 - phần  
câu hỏi và bài tập §9,10 sách Tin học 11)  
- Các phần tử của mảng có thể là những kiểu dữ liệu gì. ( Bài 1 – phần câu hỏi và bài  
tập §11,12,13 sách Tin học 11).  
Với những loại câu hỏi bài tập này, giáo viên thường đặt ra trong phần kiểm tra bài cũ  
hoặc phần củng cố. Học sinh có thể trả lời đúng các câu hỏi này bằng cách học thuộc  
lòng hoặc nhìn vào sách để trả lời. Chúng ta có thể thay đổi hình thức các câu hỏi này  
như sau mà không đánh mất bản chất nội dung nhưng góp phần gây hứng thú, hấp dẫn  
đồng thời có thể tổ chức học sinh học tập, thảo luận theo nhóm nhỏ, vv  
Ví dụ 1: Có thể đưa ra 1 trong 2 câu sau  
- Chương trình được viết bằng ngôn ngữ bậc cao không có đặc điểm nào trong các đặc  
điểm sau đây:  
a. Ngắn gọn, dễ hiểu, dễ hiệu chỉnh  
b. Không phụ thuộc vào loại máy tính  
c. Máy tính có thể hiểu và thực hiện trực tiếp chương trình này  
d. Tổ chức dữ liệu đa dạng thuận tiện việc mô tả thuật toán  
e. Gần gủi với ngôn ngữ tự nhiên thuận tiện cho đông đảo người lập trình  
Ví dụ 2:  
Điền vào ô trống kí tự (Đ) (S) vào ô trống trước những khẳng định:  
a) Mọi chương trình của máy tính đều có thể được viết bởi ngôn ngữ lập trình  
b) Chương trình dịch là duy nhất cho tất cả các loại máy tính  
c) Chương trình viết bằng ngôn ngữ lập trình bậc cao để dể hiểu hơn  
d) Cần chọn ngôn ngữ lập trình theo ngôn ngữ máy tính  
e) Chương trình viết bằng ngôn ngữ máy chạy nhay hơn  
f) Không biết ngôn ngữ máy vẫn có thể ra lệnh cho máy tính.  
Ví dụ 3:  
Bốn bạn Xuân, Hạ, Thu và Đông đưa ra kết quả của phép chia, phép chia lấy phần  
dư và phép chia lấy phần nguyên của 2 số nguyên 17 và 5 như sau:  
Xuân: 17/5 = 3;  
17 mod 5 = 2;  
17 mod 5 = 2;  
17 mod 5 = 3;  
17 mod 5 = 2;  
17 div 5 = 3;  
17 div 5 = 3;  
17 div 5 = 2;  
17 div 5 = 2;  
Hạ:  
17/5 = 3.4;  
17/5 = 3.4;  
Thu  
Đông 17/5 = 3;  
94  
UED JOURNAL OF SOCIAL SCIENCES, HUMANITIES AND EDUCATION  
VOL.2, NO.3 (2012)  
Hãy xác định bạn nào đúng?  
Ví dụ 4: Bạn Nam thắc mắc rằng:” Trong câu lệnh rẽ nhánh, câu lệnh 1 và câu lệnh 2  
sau từ khóa then và else có thể là một câu lệnh rẽ nhánh được không? Nếu vậy thì trình  
bày câu lệnh như thế nào cho dễ hiểu, dễ đọc và dễ kiểm tra”. Các em hãy giải thích  
giùm bạn Nam  
Ví dụ 5:  
Các lệnh khai báo biến mảng sau đây đúng hay sai? Nếu sai hãy giải thích vì sao?  
a) Var A: array[1..10] of integer;  
b) Var B: array[1..n] of real;  
c) Var C: array[-10..0] of boolean;  
d) Var D: array[10..1] of char;  
e) Var E: array[‘a’..’Z’] of byte;  
f) Var F: array[-5...5] of word;  
3. Bài tập liên quan đến kỹ năng lập trình  
3.1. Bài tập viết chương trình  
Đây là dạng bài tập thông thường điển hình và chiếm phần lớn nội dung bài tập trong  
sách giáo khoa và chiếm nhiều thời gian trên lớp. Học sinh phổ thông hiện nay rất ngán  
dạng bài tập này vì không hiểu là những bài tập này để làm gì, tại sao như vậy. Thực  
chất vấn đề là do giáo viên không giải thích ý nghĩa của bài toán cũng như mối liên hệ  
input và output của bài toán để từ đó cho học sinh thấy rằng các em có đủ khả năng để  
hiểu và giải quyết nó. Hơn nữa loại bài tập này khi giải trên bảng thì học sinh thường ít  
có điều kiện để kiểm chứng cũng như là đánh giá tính đúng của chương trình do đó  
đâm ra cảm giác chán và xem nhẹ. Vơi loại bài tập này giáo viên thường cho học sinh  
giải trên giấy hoặc trình bày trên bảng đen, do đó cần phải nhận thức rằng việc kiểm  
chứng trên máy là hình thức thao tác, kỹ năng đơn giản, việc giải bài tập trên giấy, trên  
bảng mới thực sự có tác dụng quan trọng trong việc rèn luyện các thao tác tư duy. Trong  
hình thức này người thầy luôn hướng dẫn cho học sinh cách xác lập đầu vào, đầu ra,  
hướng xử lý ( input, output và processing ), tiếp theo là định hình xác định kiểu dữ liệu  
của dữ liệu vào ra và sự rang buộc giữa các dữ kiện để tìm ra thuật toán  
Ví dụ 1 : Hãy viết chương trình nhập số a (a>0) rồi tính và đưa ra diện tích phần được  
gạch chéo trong hình sau (kết quả làm tròn đến 4 chữ số thập phân). (Bài số 9- trang 36  
SGK tin học lớp 11)  
a
x
a  
a
O
95  
a  
TẠP CHÍ KHOA HỌC XÃ HỘI, NHÂ N VĂN VÀ GIÁ O DỤC  
TẬP 2, S3 (2012)  
Hướng dẫn của giáo viên:  
Input: a: Real;  
Output: S(phần gạch chéo) : Real;  
Nếu làm phép quay 1800 qua trục đối xứng ta có thể thấy  
Diện tích phần gạch chéo bằng 1/2 diện tích  
hình tròn tâm O(0;0), bán kính R = a .  
Lưu ý:  
Ví dụ 2: Nhập từ bàn phím tuổi của cha và con (hiện tại tuổi cha lớn hơn hai lần tuổi  
con và tuổi cha hơn tuổi con ít nhất là 25). Đưa ra màn hình câu trả lời cho câu hỏi “Bao  
nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?”  
Hướng dẫn:  
Input: tuổi cha, tuổi con < kiểu dữ liệu nguyên>  
Output: Câu trả lời “ Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con”  
Mối lien hệ giữa tuổi cha và tuổi con hiện nay là gì?  
Tuổi cha lớn hơn hai lần tuổi con : tuoi cha > 2*tuoi con  
Tuổi cha hơn tuổi con ít nhất là 25 : tuoi cha>= tuoi con +25  
Do đó khi nhập dữ liệu cho tuổi cha và tuổi con thì cần phải thỏa mãn điều kiện trên. Đó  
là mấu chốt của bài toán  
Chú ý:  
1. Trong dạng bài tập này cần hướng dẫn cho học sinh cách trình bày một chương trình  
trên giấy, trên bảng cũng như trên máy đó là cách trình bày có cấu trúc các lệnh trong  
khối thụt vào, cùng khối ngang nhau, chương trình chính ( begin và end phải chữ hoa).  
các thủ tục, hàm phải tách biệt có ký hiệu phân cách rõ ràng để chương trình nổi bật  
được tính cấu trúc, rõ ràng giúp người lập trình cũng như người hướng dẫn dể đọc, dò  
tìm và phát hiện lỗi  
96  
UED JOURNAL OF SOCIAL SCIENCES, HUMANITIES AND EDUCATION  
VOL.2, NO.3 (2012)  
2. Điều chỉnh các cách trình bày dữ liệu ra màn hình để khi chạy trên máy có được kết  
quả rõ ràng, hợp lý như:  
+ Trình bày thủ tục nhập dữ liệu bằng cặp: write(‘ thông báo:’);readln(biến);  
+ Trình bày thủ tục xuất dữ liệu theo khuôn dạng writeln( x:m:n);  
3.2. Dạng bài tập đọc chương trình  
Đây là loại bài tập đọc chương trình trong hình thức dạy giải bài tập tin học.  
Loại hình bài tập này giúp học sinh rèn luyện năng lực thay đổi nhanh chóng và dễ dàng  
hướng suy nghĩ, dạng tư duy thuận chuyển qua tư duy nghịch ( đây cũng là một dạng  
như tính đảo ngược của quá trình tư duy khi suy luận toán học ) .Rèn luyện được năng  
lực quan sát, phân tích tìm chỗ sai, thêm vào, bớt ra, phát hiện điều chỉnh v.vv. Thông  
thường có các dạng như sau:  
Dạng 1: Đọc và viết từ kết quả sang chương trình và ngược lại  
Viết chương trình in ra bảng sau:  
1 2 3 4 5 6 7 8 9 10  
11 12 13 14 15 16 17 18 19 20  
91 92 93 94 95 96 97 98 99 100  
Giả sử sau khi giáo viên hương dẫn và học sinh đã có lời giải như sau:  
For i:=0 to 9 do  
Begin  
For j:=1 to 10 do write(10*i+j:4);  
Writeln;  
End;  
Bước 1: Giả sử giáo viên tìm cách thay đổi biến j trong biểu thức Write(10*j+i :4) thử  
xem học sinh đoán được sẽ in ra bảng gì? Bằng một cách nào đó Thầy giáo hướng dẫn  
được học sinh nhận ra bảng kết quả là  
10 20 30 40 50 60 70 80 90 100  
11 21 31 41 51 61 71 81 91 101  
19 29 39 49 59 69 79 89 99 109  
97  
TẠP CHÍ KHOA HỌC XÃ HỘI, NHÂ N VĂN VÀ GIÁ O DỤC  
TẬP 2, S3 (2012)  
Bước 2: Thầy giáo một lần nữa tự cho học sinh viết lại chương trình cho bảng được thay  
đổi theo chiều dọc như sau:  
1 11 21  
2 12 22  
3 13  
91  
92  
4 14  
5 15  
6 16  
7 17  
8 18  
9 19  
10 20 30 40 50 60 70 80 90 100  
Khi học sinh giải được bài toán này thì thật sự học sinh đã nắm rất kỹ về câu lệnh for và  
kỹ năng lập trình  
3.3. Dạng bài tập đọc chương trình và phát hiện ra kết quả sau khi thực hiện  
Đây là dạng bài tập khó, thông thường thì chỉ có học sinh khá, giỏi mới có thể  
thực hiện được. Dạng bài tập này yêu cầu phải nẵm rõ và hiểu kỹ bản chất các hàm, các  
lệnh cũng như hiểu rõ thuật toán của bài toán, do đó khi giải các bài tập này giáo viên  
cần phải ôn tập các câu lệnh, các hàm, các phép toán có liên quan đến trong bài tập.  
Chương trình sau in ra kết quả gì trên màn hình khi ta nhập xâu ht=’Ton ngo khong” ?  
Program vidu;  
Var ht,t:string[30]; i,,n: byte;  
Begin  
Write(‘nhap ho ten:’);readln(ht);  
n:=length(ht); i:=n;  
while ht[i]<>’ ‘ do i:=i-1;  
t:=copy(ht,i+1,n-i);  
write(t);  
End.  
3.4. Dạng bài tập tìm lỗi trong chương trình  
Dạng bài tập này có thể cho học sinh làm theo nhóm rầm rì (nhóm lâm thời) hoạt  
động từ 5-7 phút. Dạng này giúp rèn luyện học sinh khả năng quan sát chương trình,  
phân tích chương trình do đó khi dạy dạng bài tập này giáo viên cần chú ý đến 2 lỗi  
thường xảy ra trong một chương trình đó là: lỗi cú pháp và lỗi thuật toán. Thông thường  
thì lỗi cú pháp học sinh dễ phát hiện còn lỗi thuật toán thì giáo viên hướng dẫn học sinh  
cách chạy chậm và cách trình bày kết quả để phát hiện lỗi thuật toán.  
Ví dụ 1:  
Học sinh A viết đoạn chương trình sau để kiểm tra một mảng số nguyên được nhập có  
phải là mảng tăng hay không? ( Mảng A được gọi là mảng tăng nếu ta có a[i]<=a[i+1]  
(i=1,n-1) ). Em hãy phát hiện lỗi và điều chỉnh giúp bạn.  
i:=1;  
98  
UED JOURNAL OF SOCIAL SCIENCES, HUMANITIES AND EDUCATION  
VOL.2, NO.3 (2012)  
while (i<=N) and (A[i-1]<=A[i]) do i:=i+1;  
if i>=N then writeln('Mang vua nhap la mang tang.')  
else writeln('Mang vua nhap khong phai la mang tang.');  
Ví dụ 2: Chương trình sau có bao nhiêu lỗi cú pháp  
Program  
Var i,n,q: integer;  
A=array[1..10] of integer;  
BEGIN  
Write(‘nhap n:’);readln(5);  
For i:=1 to 5 do  
Begin  
Write(‘A[‘,I,]=’);  
Readln(a[i]);  
End;  
q=0;  
for i=1 to n do q:=q+a[i];  
writeln(‘ tong la:’,’q‘);  
readln;  
END.  
3.5. Dạng bài tập điền khuyết trong chương trình  
Dạng bài tập này giáo viên cho trước một chương trình (đoạn chương trình) hoàn chỉnh  
và để khuyết những câu lệnh cần thiết. Học sinh đọc, phát hiện và điền vào đó câu lệnh  
thích hợp. Dạng bài tập này thường được học sinh thích thú và say mê thực hiện trong  
giờ bài tập. Giáo viên có thể cho các phương án a,b,c và d để học sinh lựa chọn thay vào  
ô trống hoặc cho học sinh tự tìm ra đáp án đrr điền vào, vv tùy theo trình độ học sinh  
của lớp dạy  
Ví dụ 1: Điền vào ô trống các lệnh, phép toán, .. thích hợp của chương trinh in ra tổng  
các chữ số của một số gồm 3 chữ số được nhập vào từ bàn phím.  
Write(‘ nhap vao so n co 3 chu so:’);readln(n);  
t:= n 100;  
c:=(n 10) 10;  
d:= n 10;  
Writeln(‘ tong cac chu so la:’, t+c+d);  
Hoặc giáo viên có thể cho trước một số lệnh, hàm, phép toán để học sinh lựa chọn như:  
‘/’, ‘*’, div, mod  
Ví dụ 2:  
Chương trình sau cho phép nhập liên tiếp các số nguyên và chỉ dừng khi nhập số  
nguyên âm, sau đó đưa ra kết quả tổng các số chẵn, tổng các số lẻ và số các số được  
nhập. Bạn hãy điền vào các ô trống trong dấu ngoặc các câu lệnh, các hàm, biến, phép  
toán thích hợp để có một chương trình đúng đắn.  
99  
TẠP CHÍ KHOA HỌC XÃ HỘI, NHÂ N VĂN VÀ GIÁ O DỤC  
TẬP 2, S3 (2012)  
Program vidu;  
Var n,dem,tc,tl : integer;  
BEGIN  
Dem:={  
}; tc:= { };tl:= { };  
write(‘nhap n:’);readln(n);  
while n{ } 0 do  
begin  
dem:=dem+1;  
if {  
} then tc:=tc+n else { }:=tl+n;  
write(‘nhap n:’);readln(n);  
end;  
writeln(‘tong cac so chan la:’,tc );  
writeln(‘tong cac so le la:’,tl );  
writeln(‘So cac so duoc nhap la:’, dem );  
END.  
Vẫn còn rất nhiều dạng khác nhau nếu người giáo viên chịu khó tìm tòi, thay đổi  
các dạng bài tập. Thực tế sau nhiều năm làm việc với giáo viên phổ thông cũng như  
hướng dẫn kiến tập, thực tập cho thấy rằng những giáo viên nào chịu đổi mới các hình  
thức bài tập thì sẽ gây được nhiều hứng thú học tập cũng như phát huy được tính tích  
cực và năng lực sáng tạo cho học sinh nhiều hơn và điều này sẽ làm cho học sinh ham  
học và yêu thích môn học hơn.  
TÀI LIỆU THAM KHẢO  
[1] Hồ Sĩ Đàm (chủ biên) (2007). Tin học 11. NXB Giáo dục.  
[2] Lê Viết Chung (chủ biên), Nguyễn Lê Trí Toàn (2010), Bài tập Tin học 11. NXB  
Giáo dục, 2010  
SOME TYPICAL EXERCISES IN TEACHING GRADE 11 COMPUTING  
PRACTICE  
Le Viet Chung  
The University of Danang - University of Science and Education  
ABSTRACT  
It is true that when dealing with the syllabus of computing for 11th form pupils, teachers  
have a lot of difficulty guiding pupils to do textbook exercises due to lack of typical tasks and  
task type diversity, and limited time allocation. This article suggests that it is advisable for  
teachers to modify these tasks as well as their teaching methods in the way that helps develop  
learners’ learning abilities and activate their learning activities.  
Keywords: bài tập điển hình, tin học lớp 11  
100  
UED JOURNAL OF SOCIAL SCIENCES, HUMANITIES AND EDUCATION  
VOL.2, NO.3 (2012)  
*ThS. Lê Viết Chung, Email chunglv2000@yahoo.com, Khoa Tin học – Trường  
ĐHSP Đà Nẵng.  
101  
pdf 9 trang yennguyen 13/04/2022 3980
Bạn đang xem tài liệu "Một số dạng bài tập điển hình trong giảng dạy bài tập môn Tin học Lớp 11 phổ thông", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfmot_so_dang_bai_tap_dien_hinh_trong_giang_day_bai_tap_mon_ti.pdf