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

skkn Kinh nghiệm định hướng giúp học sinh rèn luyện kĩ năng giải bài tập tin học 11

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 (182.1 KB, 19 trang )

1. Mở đầu
1.1. Lý do chọn đề tài
Từ cuối thế kỷ XX cuộc cách mạng khoa học kỹ thuật Công nghệ thông
tin đã diễn ra mạnh mẽ. Người ta thường ví sự bùng nổ Công nghệ thông tin như
cuộc Cách mạng công nghiệp thế kỷ XVII. Công nghệ thông tin đã và đang mở
ra một nền kinh tế tri thức, nền kinh tế đầy hứa hẹn và thách thức của kỷ nguyên
phát triển mới của trí tuệ loài người. Sự phát triển của công nghệ thông tin đã và
đang tạo ra những vận hội mới cũng như nhiều thách thức mới cho ngành Giáo
dục Việt Nam.
Cùng với sự phát triển của khoa học kỹ thuật và bùng nổ thông tin trong
giai đoạn hiện nay. Ngành Giáo dục - Đào tạo đòi hỏi phải đổi mới nội dung
chương trình và phương pháp giảng dạy nhằm đáp ứng nhu cầu đào tạo nguồn
lực cho sự nghiệp công nghiệp hoá, hiện đại hoá đất nước.
Trong thời đại thông tin bùng nổ ngày nay, việc lập được các chương trình
tự hoạt động cho máy tính, máy gia dụng là rất cần thiết. Và để làm được việc
đó cần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua
đó nhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp.
Trong các trường trung học phổ thông, Tin học là một môn học còn mới
mẻ cho nên học sinh còn nhiều bỡ ngỡ khi tiếp cận với môn học này. Nội dung
tin học lập trình lớp 11 là một nội dung mới lạ đối với đa số học sinh với nhiều
khái niệm, thuật ngữ, cấu trúc dữ liệu mà học sinh mới được tiếp xúc lần đầu.
Chính vì vậy mà học sinh chưa tìm được cách giải quyết các bài toán khi lập
trình. Nguyên nhân dẫn đến những khó khăn mà học sinh thường gặp là rất
phong phú nhưng có thể thấy một số nguyên nhân chính sau đây:
- Học sinh thường gặp khó khăn khi xác định bài toán.
- Khó liên hệ phương pháp giải một bài toán trong toán học với thuật giải
bài toán tin học.
- Nắm không vững cú pháp của ngôn ngữ lập trình.
1



- Điều kiện học tập chưa thật sự đầy đủ: thiếu máy tính, thiếu tài liệu.
Khi nghiên cứa SGK Tin học 11 tôi nhận thấy tư tưởng được thể hiện nhằm
phát triển tư duy sáng tạo và rèn luyện năng lực trí tuệ cho học sinh THPT,
nhưng vấn đề giải bài toán Tin học với học sinh nói chung và học sinh trường
THPT TrÇn ¢n Chiªm nói riêng còn gặp rất nhiều khó khăn vì:
- Đây là lĩnh vực đòi hỏi HS phải có kiến thức cơ bản về bài toán Tin học
- Cần có năng lực tư duy logic nhất định.
- Cần có sự say mê với bộ môn Tin học
Vì vậy, để giúp các em phát triển khả năng tư duy logic, có định hướng đúng,
có niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này tôi đã chọn
đề tài:
“ Kinh nghiệm định hướng giúp học sinh rèn luyện kĩ năng giải bài tập
Tin học 11”
1.2. Mục đích nghiên cứu
Việc gặp phải những khó khăn trên nên khi lập trình giải các bài toán học
sinh thường đi vào hướng bế tắc, thậm chí có những em không xác định rõ được
yêu cầu mà bài toán chính vì thế học sinh không đưa ra được thuật toán chính
xác dẫn đến kết quả sai hoặc không giải được bài toán.
Mặt khác với học sinh môn Tin học bị coi là môn “phụ” nên các em học
theo kiểu đối phó, lấy điểm, học vẹt vì thế độ lười về tư duy cho bài tập Tin học
càng cao.
Trong nội dung đề tài này tôi nêu ra sẽ giúp các em có được hướng giải
quyết bài toán Tin học một cách đơn giản, dễ hiểu và tạo cho các các em được
không khí học tập tích cực.
1.3. Đối tượng, kế hoạch và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Học sinh các lớp 11A3, 11A4, 11A5, 11A6, 11A7,
11A8 trường THPT TrÇn ¢n Chiªm năm học 2017-2018.
- Kế hoạch nghiên cứu: Trực tiếp qua các tiết bài tập.
2



- Phạm vi nghiên cứu: Toàn bộ chương trình tin học lớp 11 ( Một số dạng
bài tập cơ bản khi học ngôn ngữ lập trình Pascal).
1.4. Phương pháp nghiên cứu
Các dạng bài tập rất phong phú. Tuy nhiên trong phạm vi sáng kiến kinh
nghiệm này tôi chỉ trình bày một số nội dung cụ thể sau:
- Phương pháp phân tích và xác định bài toán Tin học theo hướng đặt câu
hỏi gợi mở.
- Phương pháp tổng hợp, đặt vấn đề, vấn đáp, thảo luận, xử lí thông tin,
thực nghiệm về một số vấn đề có liên quan đến nội dung nghiên cứu.
1.5. Những điểm mới của sáng kiến kinh nghiệm
- Giúp học sinh phát huy tính tích cực, chủ động vận dụng kiến thức toán
học đã có vào giải các bài tập tin học.
- Khai thác triệt để được khả năng tư duy logic của học sinh và định hướng
cho học sinh giải đúng các bài tập.
- Thông qua hướng dẫn của giáo viên giúp học sinh thấy được bài tập tin
học không hề mới hay xa lạ với các em, việc giải các bài tập tin học giúp các em
củng cố tri thức và tăng khả năng tư duy logic, tư duy sáng tạo trong quá trình
học.

3


2. Nội dung sáng kiến kinh nghiệm
2.1.Cơ sở lí luận
Cùng với sự phát triển của Khoa học kỹ thuật và bùng nổ thông tin trong
giai đoạn hiện nay. Ngành Giáo dục - Đào tạo đòi hỏi phải đổi mới nội dung
chương trình và phương pháp giảng dạy nhằm đáp ứng nhu cầu đào tạo nguồn
lực cho sự nghiệp công nghiệp hoá, hiện đại hoá đất nước. Tính cấp thiết đó một
lần nữa đã được khẳng định trong Nghị Quyết đại hội đảng toàn quốc lần thứ X:

“Đổi mới phương pháp giảng dạy, phát huy tư duy sáng tạo và năng lực tự đào
tạo của người học, coi trọng thực hành ngoại khoá, làm chủ kiến thức, tránh
nhồi nhét học vẹt, học chay”.
Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin
học và đã đưa môn học này vào nhà trường phổ thông như những môn khoa học
khác bắt đầu từ năm học 2006 - 2007.
Chỉ thị số 55/2008/CT- BGTĐT ngày 30/9/2008 của Bộ trưởng Bộ GDĐT
về tăng cường giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong ngành
giáo dục giai đoạn 2008 - 2011.
2.2. Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
Qua thực tế giảng dạy ở Trường THPT TrÇn ¢n Chiªm các năm qua, tôi
nhận thấy khi học đến chương trình tin học lớp 11, học sinh luôn phản ánh với
giáo viên rằng bộ môn này khó hiểu và trừu tượng. Khi kiểm tra với mức độ
tương đương các ví dụ SGK, các em vẫn mơ hồ và đạt kết quả chưa cao.
Tuy nhiên cũng có một số lượng không nhỏ học sinh rất yêu thích và hứng
thú với môn Tin học.

4


2.3. Các giải pháp sử dụng để giải quyết vấn đề:
a. Phương pháp tiếp cận và giải một bài toán
Khi đưa ra một bài toán thì việc phát hiện cách giải quyết vấn đề là hết
sức cần thiết.
Bước 1: Tìm hiểu nội dung đề bài (giúp cho người đọc thấy được yêu cầu
của bài toán):
- Phát biểu lại bài toán để có thể hiểu rõ hơn (nếu cần)
- Xác định các dữ kiện vào (Input), ra (Output)
Bước 2: Xây dựng ý tưởng giải thuật
- Tìm tòi, phát hiện cách giải nhờ khả năng tư duy kết hợp với hệ thống

giải thuật được cung cấp.
- Thể hiện ý tưởng thông qua việc liệt kê các bước giải hoặc dùng sơ đồ
khối.
Bước 3: Sự kết hợp giữa giải thuật và ý tưởng để đưa ra lời giải
- Dùng ngôn ngữ lập trình
- Sử dụng phương pháp lập trình Top – Down và tinh chế từng bước.
Bước 4: Nghiên cứu lời giải để phát triển khả năng tư duy
- Kiểm tra lời giải.
- Tìm những cách giải khác, so sánh lựa chọn cách thích hợp.
- Nghiên cứu khả năng ứng dụng.
- Nghiên cứu để áp dụng cho những bài toán tương tự.
b. Các biện pháp tổ chức thực hiện:
* Xây dựng hệ thống câu hỏi gợi mở:
Giải bài tập là củng cố lại tri thức cho học sinh, việc xây dựng câu hỏi gợi
mở để giải quyết vấn đề là hết sức cần thiết. Đây là bước khởi đầu giúp
học sinh đưa ra ý tưởng giải quyết vấn đề.

5


Xây dựng câu hỏi gợi mở dựa vào căn cứ sau:
- Căn cứ vào yêu cầu của bài toán
- Căn cứ vào tiến trình thực hiện của giáo viên
- Căn cứ vào năng lực học tập của học sinh
- Căn cứ vào lượng kiến thức có liên quan và những vướng mắc có thể
của học sinh trong quá trình giải quyết bài toán
- Căn cứ vào phương tiện thiết bị hỗ trợ
c. Ví dụ vận dụng:
Ví dụ 1: Viết chương trình nhập vào số nguyên dương N, in lên màn hình
tổng các chữ số của nó.

- Định hướng khó khăn gặp phải khi giải bài tập trên: học sinh không
nhớ 2 phép toán chia dùng cho số nguyên và không biết sử dụng vòng lặp
nào là hợp lí.
- Phân tích bài toán để đưa ra định hướng giải quyết:
(1) Chữ số N sẽ được tách như thế nào? Bắt đầu tách từ chữ số nào?
(GV cần lưu ý cho học sinh la ta chưa biết N có bao nhiêu chữ số nhưng
chữ số dễ tách nhất là chữ số hàng đơn vị, vậy tách chữ số hàng đơn vị
bằng cách nào?
(2) Phép toán nào trong kiểu số nguyên cho phép ta tách được chữ số ở
hàng đơn vị? (phép toán lấy số dư : MOD)
(3) Để loại được chữ số tính tổng( chữ số hàng đơn vị) ra khỏi N ta dùng
phép toán nào? ( phép toán lấy phần nguyên: Div)
(4) Việc lặp lại 2 thao tác trên để tách chữ số hàng đơn vị ra tính tổng và
loại nó ra khỏi N lặp lại bao nhiêu lần? Lặp đến khi nào và dùng vòng lặp
nào hợp lí?
(5) Điều kiện lặp là gì?
(6) Cần có những biến nào trong chương trình?
6


- Mô tả thuật toán sau khi xác định ý tưởng giải quyết vấn đề:
Bước 1: Nhập vào số nguyên N
Bước 2: tong:=0
Bước 3: Nếu N<=0 thì qua bước 5
Bước 4: DV:= N mod 10; tong:= tong+DV; N:=N div 10; quay lại bước 3
Bước 5: Đưa ra tong và kết thúc.
- Tinh chế các bước trong thuật toán thành chương trình theo ngôn
ngữ lập trình pascal:
Program tinh_tong_ cac_chu_so;
Var N,tong: integer;

DV: byte;
Begin
Writeln(‘nhap vao N:’);
Readln(n);
Tong:=0;
While N<>0 do
Begin
DV:= N mod 10;
Tong:= tong+DV;
N:= N div10;
End;
Writeln(‘ tong cac chu so cua N:’, tong);
Readln;
End.
Ví dụ 2: Viết chương trình nhập vào từ bàn phím các số nguyên dương,
kết thúc nhập khi nhập số 0. Cho biết có bao nhiêu số dương đã nhập vào
và trung bình cộng của chúng là bao nhiêu?
- Định hướng khó khăn: học sinh không biết sử dụng vòng lặp nào cho
hợp lí, không biết cách tính trung bình cộng.
- Xây dựng câu hỏi gợi mở để giải quyết bài toán:
(1) Để lặp lại việc nhập một số nguyên cần dùng vòng lặp nào?
(2) Điều kiện lặp là gì?
7


(3) Làm thế nào để đếm được số lần nhập các số nguyên dương?
(4) Trong bài toán cần có những biến nào?
(5) Cần làm những phép toán nào để tính được trung bình cộng?
- Từ câu trả lời của học sinh giáo viên cùng học sinh phân tích và đưa ra ý
tưởng giải bài toán

- Xây dựng thuật toán từ ý tưởng giải thuật:
Bước 1: Gán giá trị cho 2 biến Tong:=0; Dem:=0;
Bước 2: Nhập vào số nguyên X, nếu X>0 thì:
+ Đưa X vào tính Tong: Tong:= Tong+X;
+ Tăng số lần nhập lên 1: Dem:= Dem+1;
+ quyay lại bước 2
Bước 3:
+ Nếu Tong>0 thì thông báo “có Dem số nguyên dương và trung
bình cộng là Tong/Dem”
+ Kết thúc.
- Viết lại thuật toán bằng ngôn ngữ lập trình Pascal:
Program Tinh_TBC;
Var

X, Dem,Tong:Integer;
TBC: real;
Begin
Tong:=0; Dem:=0;
Repeat
Write(‘nhap vao so nguyen duong:’);
Readln(X);
If X>0 then
Begin
Dem:=Dem+1;
Tong:= Tong+X;
End;
Until X:=0;
Writeln(‘co’,Dem, ‘so nguyen duong da nhap’);
TBC:= Tong/Dem;
Writeln(‘Trung binh cong cua chung:’,TBC);

Readln; End.
8


Ví dụ 3: Viết chương trình nhập vào một số nguyên dương N, xác định xem N
có phải là một số thuộc dãy Fibonaci hay không?
Dãy Fibonaci được cho bởi công thức sau:
F1=F2=1
Fn=F(n-1) + F(n-2) với mọi n>2.
+ Định hướng khó khăn:
- Học sinh không biết là tạo bao nhiêu số fibonaci thì dừng và làm thế nào để
kiểm tra số vừa tạo có phải là N không?
- Dùng vòng lặp nào phù hợp? Điều kiện lặp là gì?
+ Xây dựng câu hỏi gợi mở để giải quyết bài toán:
(1) Xác định biến để lưu giá trị dãy fibonaci vừa tạo?
(2) Phải lưu dãy fibonaci như thế nào để có thể kiểm tra với N?
(3) Kiểm tra xem N có trong dãy fibo vừa tạo hay không thực chất là ta làm
công việc gì?
(4) Số cuối cùng trong dẫy fibonaci vừa tạo phải như thế nào so với N?
+ Xây dựng thuật toán dựa trên ý tưởng gợi mở đã thực hiện:
Bước 1: Nhập vào số nguyên dương N
Bước 2:

F1:=1; F2:=1; F:=0;

Bước 3: Nếu N=F thì chuyển qua bước 5
Bước 4: Nếu N>F thì
- F:= F1+F2
- F1:=F2; F2:=F quay lại bước 3
Bước 5: Đưa ra kết quả và kết thúc

+ Viết lại thuật toán bằng ngôn ngữ lập trình Pascal:
Program
Var

so_fibo;
F1,F2,F: Integer;
N: Integer;
9


Begin
Writeln(nhap vao so nguyen N:);
Readln(N);
F1:=1; F2:=1; F:=0;
While FBe gin
F:=F1+F2;
F1:=F2; F2:=F;
End;
If N=F then
Writeln(N thuoc day fibonaci)
Else Writeln(N khong thuoc day fibonaci);
Readln;
End.
d. Xây dựng giáo án tiết bài tập nhằm rèn luyện kỹ năng
xây dựng thuật toán và phát huy tính tích cực của học
sinh.
Hot ng ca thy
GV: a ra bi toỏn
- Yờu cu HS xỏc nh

bi toỏn
Hóy xỏc nh Input v
Output ca bi toỏn?
- Gi ý dn dt HS
gii bi toỏn:
(1) Lm th no ta
xỏc nh c N l s
nguyờn dng theo
ỳng yờu cu ca bi
toỏn?
(2) Bng cõu lnh no
xỏc nh Ai<1000?
(3) Em hóy nhc li th

Hot ng ca HS
Theo dừi bi GV a
ra v phõn tớch, xỏc nh
bi.
+ Input: N v dóy A
+ Output: dóy A cú phi
l cp s cng hay
khụng?

Ni dung
Bi 1: Vit chng trỡnh
nhp t bn phớm s
nguyờn dng
N(0N s hng A1, A2,..., AN
cỏc s cú giỏ tr tuyt i

khụng ln hn 1000. Hóy
cho bit dóy A cú phi l
cp s cng hay khụng?
Thụng bỏo kt qu ra mn
hỡnh.

Dựng cõu lnh
repeat..until nhp N
v dóy AN
- Cp s cng l mt dóy
s m k t s hng th Xỏc nh bi toỏn:
2 mi s hng trong dóy + Input: N, dóy AN vi
u bng s hng ng
0
10


nào là cấp số cộng?
(4) Công sai của cấp số
cộng xác định như thế
nào?

trước nó cộng với 1 số
không đổi. Số không đổi
đó gọi là công sai.
- Công sai: d=A2-A1
- Xây dựng các bước giải
- Từ câu trả lời GV giúp bài toán:
học sinh xây dựng ý

Bước 1: Nhập vào N và
tưởng giải thuật và từ ý dãy AN với abs(Ai<1000)
tưởng giải thuật để xây Bước 2: Nếu N và Ai
dựng thuật toán.
chưa thoả mãn yêu cầu
thì quay lại bước 1
Bước 3: Tính công sai
D:= A[2]-A[1]; dem:=2;
GV hướng dẫn HS
Bước 4: Nếu (dem<=N)
chuyển từ thuật toán
và( A[dem]- A[dem-1]
sang ngôn ngữ lập trình =d) thì dem:=dem+1;
pascal
Quay lại bước 4.
Bước 5: Nếu dem>N thì
kết luận dãy AN là cấp số
Sau khi viết xong
cộng. Ngược lại thì
chương trình GV đưa ra không phải là cấp số
một số ví dụ để kiểm tra cộng. Kết thúc.
thử.
Gv cùng với HS tìm
Theo dõi và tiếp nhận
cách giải khác, so sánh kiến thức, ghi chép bài.
và lựa chọn cách thích
giải thích hợp.

+ Output: dãy AN có phải
là cấp số cộng hay không.


Gv đưa ra bài tập tiếp
theo:
- Yêu cầu HS xác định
các dữ kiện bài toán và
phân tích hướng dẫn để
HS giải bài toán.

Theo dõi đề bài và xác
định bài toán:
+ Input: Xâu S,
length(S)<100
+ Output: Số chữ số có
trong xâu S

Bài 2: Viết chương trình
nhập từ bàn phím xâu kí tự
S có độ dài không quá
100. Hãy cho biết có bao
nhiêu chữ số xuất hiện
trong xâu S? Thông báo
kết quả ra màn hình.

* Phân tích, gợi ý:
(1) Chữ số được xác
định như thế nào?
(2) Số và kí tự là số
khác nhau như thế nào?
(3) Bằng cách nào ta có


HS Trả lời các câu hỏi
của GV và từ đó xác
định hướng giải quyết
bài toán, sau đó cụ thể
hoá thành các bước:
Bước 1: Nhập vào xâu S

Viết chương trình bằng
NNLT pascal:
Program cap_so_cong;
Var A: array[1..100] of
integer; dem,N,d: integer;
Begin
Repeat
Write(‘nhap vao so phan
tu:’); Readln(N);
Until (N>0) and (N<100);
For i:=1 to N do
Repeat
Writln(‘nhap vao
a[‘,i,’]=’); Readln(A[i]);
Until (abs(A[i])<1000);
D:=A[2]-A[1]; dem:=2;
While (dem<=N) and
(A[dem]-A[dem-1]) do
Dem:=dem+1;
If dem>N then
Write(‘day A la cap so
cong’)
Else Write (‘khong phai la

cap so cong’);
Readln;
End.

* Trình bày lời giải bằng
ngôn ngữ lập trình pascal:
Program dem_chu_so;
Var S:string[100];
11


thể xác định được đó là
kí tự số?
(4) Sử dụng vòng lặp
nào để có thể kiểm tra
hết các kí tự trong xâu
S?
(5) Dùng những biến
nào cho bài toán?

theo đúng yêu cầu
Bước 2: khởi tạo biến
dem:=0, chỉ số i:=1;
Bước 3: Nếu i>N thì qua
bước 5;
Bước 4: nếu S[i] là chữ
số thì tăng biến dem lên
1;
+ i tăng lên 1; quay lại
- Qua hệ thống câu trả

bước 3;
lời GV hỗ trợ để HS có Bước 5: thông báo kết
định hướng giải thuật rõ quả.
ràng
HS xác định phương án
- GV hướng dẫn HS viết duyệt xâu để đếm các
lời giải bằng NNLT và
chữ số có trong xâu
giúp các em hoàn thiện
bài tập.
Ghi chép bài và tìm tòi
- Đưa ra ví dụ để kiểm
thêm cách giải khác sau
tra tính chính xác của
đó so sánh lựa chọn cách
bài toán và hướng dẫn
giải phù hợp.
để HS có tìm thêm cách
giải khác.

I,dem: byte;
Begin
Write(‘nhap vao xau’);
Readln(s);
Dem:=0;
For i:=1 to length(s) do
If S[i] >=’0’ and S[i]<=’9’
then
dem:=dem+1;
Writeln (‘so chu so thap

phan trong S la:’,dem);
Readln;
End.

ĐỀ VÀ ĐÁP ÁN KIỂM TRA SAU TÁC ĐỘNG
ĐỀ KIỂM TRA
I. Trắc nghiệm (3 điểm)
Câu 1: Cho đoạn chương trình:
i:= 1;
while i< 10 do write (‘A’);
Câu lệnh trên sẽ viết ra màn hình bao nhiêu chữ A
A. Không viết ra chữ A nào cả.
B. Sẽ viết ra vô số chữ A.
C. 9
D. 10
Câu 2: Xác định giá trị của x, y sau khi thực hiện đoạn chương trình?
Var x, y : Integer;
Begin
x:= 10; y:= 15; x:= x+y; y:= y-x;
End;
A. x= 25, y= 15.
B. x= 10, y= -15. C. x= 15, y= -10. D. x= 25, y= -10.
Câu 3: Cách tham chiếu đến phần tử trong mảng một chiều:
A. Tên kiểu mảng, tiếp theo là chỉ số viết trong cặp ngoặc [ và ]
B. Tên biến mảng, tiếp theo là chỉ số viết trong cặp ngoặc [ và ]
C. Tên kiểu mảng, tiếp theo là chỉ số viết trong cặp ngoặc ( và ))
12


D. Tên biến mảng, tiếp theo là chỉ số viết trong cặp ngoặc ( và )

Câu 4: Chọn phát biểu sai. Để nhập giá trị cho các biến, ta có thể dùng các
cách sau:
A. Input(danh sách biến vào);
B. Dùng lệnh gán: tên biến := giá trị;
C. Readln(danh sách biến vào);
D. Read(danh sách biến vào);
Câu 5: Trong Pascal, câu lệnh readln không có tham số có tác dụng:
A. Nhập vào một giá trị bất kỳ
B. Dừng màn hình, xem kết quả
C. Không làm gì cả
D. Xuống dòng.
Câu 6: Phát biểu nào dưới đây là đúng ?
A. Đại lượng có giá trị không đổi trong quá trình thực hiện chương trình gọi
là biến.
B. Khi cần thay đổi ý nghĩa của một từ khóa nào đó người lập trình cần khai
báo theo ý nghĩa mới.
C. Trong chương trình tên gọi cũng là một đối tượng không thay đổi nên cũng
có thể xem là hằng.
D. Tên do người lập trình tự đặt không được trùng với từ khóa nhưng có thể
trùng với tên chuẩn
Câu 7: Câu lệnh lặp tiến có dạng là:
A. For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh> ;
B. For < biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> ;
C. For <điều kiện> do <câu lệnh> ;
D. For <biến đếm> := <giá trị đầu> to<giá trị cuối> then <câu lệnh>;
Câu 8: Trong NNLT Pascal, hai xâu kí tự được so sánh dựa trên?
A. Độ dài thực sự cảu hai xâu
B. Số lượng các kí tự khác nhau trong xâu
C. Độ dài tối đa của hai xâu
D. Mã của từng kí tự trong các xâu lần lượt từ trái sang phải

Câu 9: Chọn tên sai
A. tam_giac
B. hoa – hong
C. dientich
D. _123
Câu 10: Trong Pascal có các loại tên:
A. Tên chuẩn, tên do người lập trình đặt.
B. Tên chuẩn, tên dành riêng, tên do người lập trình đặt.
C. Tên dành riêng, tên do người lập trình đặt.
D. Tên dành riêng, tên chuẩn, từ khóa.
II. Tự luận: (7 điểm)
Câu 1: Viết chương trình: Tạo mảng A gồm n phần tử (n<=100), đếm và tính
tổng các số lẻ trong mảng A.
Câu 2: Điền khuyết
Viết chương trình tìm phần tử có giá trị nhỏ nhất của mảng và đưa ra màn
hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng
giá trị nhỏ nhất thì đưa ra phần tử có chỉ số nhỏ nhất.
Program
btvn;
13


Const
Type
Var

nmax = 100;
............. = array [ 1 . . nmax] of integer;
A : baitap;
n, i, j : integer;


begin
write (..................); readln( n );
for i:= 1 to n do
begin
write ( ‘phan tu thu’, i, ‘=’);
write (..................);
end;
j := 1;
for i:= 2 to n do if ...............................then j := i;
write ( ........................................);
readln;
end.
ĐÁP ÁN:
PHẦN TRẮC NGHIỆM: (3 điểm) (mỗi câu đúng đạt 0.3 điểm)
1. B

2. A

3. B

8. D

9. B

10. B

4. A

5. B


6. D

7. B

PHẦN TỰ LUẬN: (5 điểm) (sửa đúng 1 lỗi đạt 0.5 điểm)
Câu 1:
Program
Sum1;
Uses
crt;
Const
nmax = 100;
Type
baitap = array [ 1 . . nmax] of integer;
Var
A : baitap;
Dem,s, n, i : integer;
begin
clrscr; randomize;
write (‘ Nhap n =’); readln( n );
for i:= 1 to n do A[i]:= random (300) – random (300);
for i:= 1 to n do write (A[i]);
writeln;
s:= 0; dem:=0;
for i:= 1 to n do
if A[i] mod 2 <> 0 then
begin
dem:=dem+1;
14



s := s + A[i];
end;
writeln (s); readln;
end.
Câu 2:
Program
Const
Type
Var

btvn;
nmax = 100;
baitap = array [ 1 . . nmax] of integer;
A : baitap;
n, i, j : integer;

begin
write (‘nhap n’ ); readln( n );
for i:= 1 to n do
begin
write ( ‘phan tu thu’, i, ‘=’); write (A[i]);
end;
j := 1;
for i:= 2 to n do if A[i] < A[i+1] then j := i;
write ( ‘chi so:’, j, ‘gia tri’, A[j] ); readln;
end.
2.4 Hiệu quả của sáng kiến kinh nghiệm sau khi thực hiện đề tài
* Kết quả nghiên cứu

Bảng số liệu kết quả đạt được của học sinh lớp 11 học kỳ I năm học 20172018 khi chưa thực hiện đề tài:
STT
1
2
3
4
5
6

Lớp
11A3
11A4
11A5
11A6
11A7
11A8

Sỉ số
40
38
37
39
40
40

Đạt yêu cầu
50%
43.2%
37,8%
46,2%

32,5%
42,5%

Không đạt yêu cầu
50%
56,8%
62,2%
53,8%
67,5%
57,5%

Sau khi thực hiện thực nghiệm qua các đối tượng học sinh đã nêu trên tôi
nhận thấy kết quả như sau:
- Đa số các em xác định chính xác yêu cầu đề bài.
15


- Các em khắc sâu được kiến thức và xác định đúng hướng để giải quyết
bài toán.
- Một số không ít học sinh có tiến bộ rõ rệt và hoàn thiện được bài tập
bằng ngôn ngữ lập trình pascal.
- Phát hiện lỗ hổng trong kiến thức lí thuyết và kịp thời giúp học sinh
khắc phục thông qua một số dạng bài tập.
- Nâng cao việc yêu thích học tin học đối với một bộ phận học sinh và
một số em có định hướng nghề nghiệp sau này.
Bảng số liệu kết quả đạt được của học sinh lớp 11 năm học 2017-2018 sau
khi thực hiện đề tài:
STT
1
2

3
4
5
6

Lớp
11A3
11A4
11A5
11A6
11A7
11A8

Sỉ số
40
38
37
39
40
40

Đạt yêu cầu
87,1%
84,2%
78,4%
71,8%
77,5%
80%

Không đạt yêu cầu

11,9%
15,8%
21,6%
28,2%
22,5%
20%

3. Kết luận, kiến nghị
3.1. Kết luận
Trong quá trình thực hiện đề tài này tôi nhận thấy đa số học sinh có tiến bộ
rõ rệt, đam mê hơn đối với bộ môn Tin học qua đó tạo cho tôi thêm động lực và
niềm say mê trong công tác giảng dạy.
3.2. Kiến nghị
Để học sinh thật sự cảm nhận được lợi ích và hiệu quả của việc học môn
pascal từ đó các em có hứng thú, đam mê hơn đối với môn học, tôi rất mong
nhận được sự quan tâm hơn nữa của các cấp lãnh đạo, nhà trường và các nhà tài
trợ về vấn đề đầu tư cơ sở vật chất như phòng máy tính, máy chiếu để học sinh
có điều kiện học thực hành tốt hơn.
16


Trên đây là sáng kiến kinh nghiệm của bản thân tôi đúc kết được trong
quá trình giảng dạy môn Tin học lớp 11. Rất mong các bạn đồng nghiệp góp ý
để tôi hoàn thiện hơn trong công việc giảng dạy của mình.
Xin chân thành cảm ơn!
XÁC NHẬN CỦA THỦ TRƯỞNG

Thanh Hóa, ngày 20 tháng 5 năm 2018

ĐƠN VỊ


Tôi xin cam đoan đây là SKKN của
mình viết, không sao chép nội dung
của người khác.
Người viết SKKN

Trịnh Thị Thanh

17


DANH MỤC 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.

Hồ Sỹ Đàm (Chủ biên) (2007), Sách giáo viên Tin học 11, NXB

Giáo dục.
3.

Hồ Sỹ Đàm (Chủ biên) (2007), Sách bài tập Tin học 11, NXB Giáo

4.

Nguyễn Quý Khang – Kiều Văn Hưng, Bài tập Pascal, NXB Đại

dục.

học QG Hà Nội, 2001 (Bắt đầu từ trang 7 đến trang 184)
5.

Quách Tuấn Ngọc (1995), Bài tập ngôn ngữ lập trình Pascal, NXB

Giáo dục. (Bắt đầu từ trang 3 đến trang 97)
6.

Bùi Thế Tâm, Võ Văn Tuấn Dũng (1996), Turbo Pascal 7.0, NXB

Thống kê Hà Nội.(Bắt đầu từ trang 31 đến trang 120)
7.

Trần Đức Huyên, Phương pháp giải các bài toán trong Tin học,

NXB Giáo dục. (Bắt đầu từ trang 21 đến 42 và từ trang 51 đến trang 131)

18


MC LC
1. M u..1
1.1. Lý do chn ti.....1
1.2. Mc ớch nghiờn cu............................................................................2
1.3. i tng, k hoch v phm vi nghiờn
cu........................................2
1.4. Phng phỏp nghiờn cu......................................................................3
1.5. Nhng im mi ca sỏng kin kinh
nghim.......................................3
2. Ni dung sỏng kin kinh nghim...4

2.1. C s lớ lun...............................................................................4
2.2. Thc trng vn trc khi ỏp dng sỏng kin kinh nghim...4
2.3. Cỏc gii phỏp s dng gii quyt vn ..5
a. Phng phỏp tip cn v gii mt bi toỏn ............................................5
b. Cỏc bin phỏp t chc thc hin:
Xõy dng h thng cõu hi gi m..................................................5
c. Vớ d vn dng ..............................................................................6
d. Xây dựng giáo án tiết bài tập nhằm rèn luyện kỹ năng
xây dựng thuật toán và phát huy tính tích cực của học
sinh.......................................9
e. kim tra v ỏp ỏn sau tỏc ng ...................................................13
2.4 Hiu qu ca sỏng kin kinh nghim sau khi thc hin ti..................15
3. Kt lun, kin ngh.16
3.1. Kt lun..16
3.2. Kin ngh...17
DANH MC TI LIU THAM KHO17

19


20



×