Nhằm giúp các em tự tin, thích thú với việc học và xây dựng các thuật toán nói riêng, say mê Tin học, tìm hiểu và ứng dụng công nghệ thông tin vào trong học tập, cuộc sống nói chung, căn
Trang 11 Mở đầu.
1.1 Lý do chọn đề tài
Ngày nay, trên thế giới đang diễn ra quá trình tin học hóa trong nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho xã hội có nhiều nhận thức mới
về cách tổ chức các hoạt động Nhiều quốc gia trên thế giới ý thức được rõ tầm quan trọng của tin học và có những đầu tư lớn cho lĩnh vực này, đặc biệt trong giáo dục nâng cao dân trí về tin học và đào tạo nguồn nhân lực có chất lượng cao Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, vì thế chúng ta hi vọng có thể sớm hòa nhập với khu vực và trên thế giới Đả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
Qua thực tế giảng dạy ở trường THPT đối với học sinh lớp 10, mới làm quen với chương trình Tin học các em học sinh rất hào hứng, tò mò, tích cực học hỏi, tìm hiểu Tuy nhiên, khi dạy Bài 4 – “Bài toán và thuật toán” thì học sinh có phần lúng túng, bị động và có khi dẫn đến nhàm chán Để biết và hiểu khái niệm bài toán và thuật toán, các tính chất của thuật toán thì các em ít nhất phải xây dựng được thuật toán của các bài toán đơn giản Nhằm giúp các em tự tin, thích thú với việc học và xây dựng các thuật toán nói riêng, say mê Tin học, tìm hiểu và ứng dụng công nghệ thông tin vào trong học tập, cuộc sống nói chung, căn cứ vào phần giảm tải chương trình Tin học trong bài 4 tôi xin trình bày kinh nghiệm:
“Một số ví dụ được dạy trong bài 4 – Bài toán và thuật toán của
Tin học lớp 10”
1.2 Mục đích nghiên cứu.
Với nhiều năm giảng dạy môn Tin học lớp 10 và trao đổi ý kiến với các đồng nghiệp, tôi nhận thấy nội dung Bài 4 – Bài toán và thuật toán là một bài
Trang 2được cách sử dụng máy tính, các phần mềm trong máy tính như thế nào cho hiệu quả Tuy nhiên, nó lại khô khan, cách diễn đạt một cách tổng quát, trìu tượng Nên tôi đã lấy một số ví dụ và bài tập từ đơn giản, gần gũi, tự nhiên với các em đến những ví dụ phức tạp để các em từng bước làm quen với việc tự mình diễn đạt được thuật toán
1.3 Đối tượng nghiên cứu
Khi mới chuyển về trường THPT Hậu Lộc 2, trong năm học 2014 – 2015 tôi được phân công giảng dạy các lớp 10B4, lớp 10B5, 10B6 tôi vẫn giảng dạy bài 4 – Bài toán và thuật toán với những ví dụ mà sách giáo khoa giới thiệu Sang năm học 2015 – 2016 tôi được phân công giảng dạy tại các lớp 10A1, 10A2, 10A3 có sử dụng các ví dụ và bài tập mới này
Sĩ số các lớp: 10B4 - 47; 10B5- 50 ; 10B6 - 45 ; 10A1 – 45; 10A2 – 47; 10A3 – 40
1.4 Phương pháp nghiên cứu
Căn cứ vào tình hình thực tiễn giảng dạy tại các lớp được phân công, trong năm học này 2015 – 2016 tôi đã hệ thống lại một số ví dụ, bài tập về bài toán và thuật toán sau đó áp dụng dạy vào các lớp 10A1, 10A2, 10A3.Sau đó kiểm tra đánh giá lại quá trình tiếp thu vận dụng của học sinh và thống kê tổng hợp kết quả của học sinh
2 Nội dung sáng kiến kinh nghiệm.
2.1 Cơ sở lý luận
Mục tiêu của nền giáo dục đó là mang đến cho học sinh niềm say mê học tập, khát khao được vươn tới những chân trời mới của tri thức với một niềm tin mãnh liệt rằng mình có thể thực hiện được khát vọng đó Giúp cho người học nhận ra được những năng lực trí tuệ của mình để đi tìm tiếp những lời giải cho những vấn đề mới phù hợp với năng lực trí tuệ của cá nhân
Đổi mới phương pháp dạy học phát huy tính tích cực tự giác, chủ động sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học, bồi
Trang 3dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh Và trong việc đổi mới phương pháp dạy học theo hướng phát huy tích cực, chủ động sáng tạo của học sinh thì mỗi giáo viên phải tự xây dựng phương pháp dạy học cụ thể cho học sinh của mình tại mỗi thời điểm thích hợp Cung cấp cho học sinh những hướng dẫn rõ ràng để nhận ra sự giống nhau và khác nhau để mở rộng hiểu biết của học sinh và khả năng áp dụng những hiểu biết ấy Nội dung bài dạy của giáo viên càng chi tiết, sáng sủa và có cấu trúc tốt bao nhiêu thì học sinh càng dễ hiểu, dễ tiếp thu bấy nhiêu Nên việc hệ thống lại nội dung bài học, lấy ví dụ thích hợp giúp học sinh chủ động, tích cực hơn trong việc hiểu bài và vận dụng tốt những kiến thức đã học vào trong đời sống hàng ngày, tạo hứng thú cho học sinh
2.2 Thực trạng
Khi vào lớp 10 được làm quen với Tin học các em học sinh đang rất hào hứng, hứng thú với việc học môn Tin, nhất là các em nghĩ rằng mình sẽ được lên phòng máy thực hành
Nhà trường đã trang bị các đồ dùng dạy học (máy chiếu) đến từng phòng học phòng thuận lợi cho việc sử dụng trực quan các ví dụ tạo sự hứng thú cho học sinh
Tuy nhiên sau nhiều năm giảng dạy với những ví dụ được giới thiệu trong sách giáo khoa làm cho phần lớn học sinh tiếp thu một cách thụ động, có khi là học vẹt các thuật toán đó
2.3 Các sáng kiến kinh nghiệm.
Tiết 10:
Ví dụ 1: Tính tổng của 2 số nguyên
(Giúp học sinh bước đầu biết cách xác định ý tưởng, và viết thuật toán)
Xác định bài toán:
- Input: 2 số nguyên a, b
Output: t – tổng 2 số nguyên
Trang 4 Ý tưởng:
Một số câu hỏi để học sinh hình thành ý tưởng viết thuật toán (Vì là
thuật toán đầu tiên nên chúng ta cần phải hướng dẫn luôn bước nhập Input – giải thích vì sao bước đầu tiên của mỗi thuật toán giới thiệu trong sách đều có bước nhập các giá trị của Input)
- Muốn tính tổng 2 số nguyên phải có gì mới tính được?
- Nếu có 2 số nguyên rồi thì phải làm gì?
- Tính được rồi thì phải làm sao cho người khác biết được tổng 2 số nguyên đó là bao nhiêu?
Thuật toán:
Bước 1: Nhập a, b ;
Bước 2: T ← a+b ;
Bước 3 : Đưa ra t, rồi kết thúc ;
Bài tập về nhà (BTVN) :
Bài 1 : Tính tích hai số nguyên.
Bài 2 : Giải phương trình bậc 2 : ax2 + bx + c = 0 (a ≠0)
Gợi ý bài 2: Cách giải tổng quát mà các em đã được học trong toán.
- Xác định 3 số a, b, c
- Tính = b2 – 4ac
- Nếu < 0 thì phương trình vô nghiệm (PTVN)
- Nếu = 0 thì tính x1 = x2- = - b/ 2a , kết luận có nghiệm kép
- Nếu > 0 thì tính x1 ← ( - b - D)/2a
x2 ← ( - b + D )/2a
sau đó kết luận 2 nghiệm x1, x2
Nhập a,b
T ←a +b
Đưa ra t, rồi kết thúc
Trang 5( Các em có thể kết hợp 2 trường hợp = 0, > 0 thành ≥ 0 thì
tính x1 ← ( - b - D )/2a; x2 ← ( - b + D )/2a, sau đó kết luận phương trình có 2 nghiệm x1, x2)
Tiết 11 :
Kiểm tra bài cũ : (15 phút) Cho học sinh lên viết thuật toán của Ví dụ 1, Bài 1,
Bài 2.
Chữa bài 1
- Input : 2 số nguyên a, b.
- Output : tich – tích 2 số nguyên
- Thuật toán
Bước 1: Nhập a, b ;
Bước 2: Tich ← a * b ;
Bước 3 : Đưa ra t, rồi kết thúc ;
Chữa bài 2: Nhằm mục đích giúp học sinh hình thành thao tác phân nhánh.
- Input: 3 số thực a, b, c (a ≠ 0)
- Output: Thông báo ’PTVN’ hoặc có hai nghiệm x1, x2.
- Thuật toán:
Nhập a,b
Tich ← a*b
Đưa ra t, rồi kết thúc
Trang 6Bước 1: Nhập a, b, c
Bước 2: Tính D ← b2 – 4ac
Bước 3: Nếu D < 0 thì đưa ra
"PTVN", rồi kết thúc
Bước 4: Tính x1 ← ( - b - D)/2a
x2 ← ( - b + D )/2a
Bước 5: Đưa ra x1, x2, rồi kết thúc
Giải thích: mặc dù trong sơ đồ khối ta thấy sau bước D <0 có 2 nhánh, tuy
nhiên tùy thuộc vào giá tị ban đầu của a, b, c ta tính được D, căn cứ vào giá trị của D mà ta sẽ chọn đi nhánh nào – giống như là các em đến ngã ba đường, các
em chỉ chọn được 1 trong 2 con đường để đi tiếp.
Nội dung bài học (NDBH): (25 phút)
Ví dụ 2: Tính tổng của n số nguyên (Giúp học sinh hình thành thao tác lặp)
Xác định bài toán:
- Input: Số nguyên dương N và dãy n số nguyên a1, a2, … an
- Output: T- tổng của n số nguyên
VD: Giáo viên (GV) viết 5 số nguyên vào 5 tờ giấy dán ghi chú và dán lần lượt
từ đầu cho đến cuối bảng mà học sinh không nhìn thấy giá trị của từng tờ giấy
Sau đó yêu cầu học sinh lên bảng, nhắm mắt (mục đích là không nhìn thấy vị trí của các tờ giấy dán – có sự hỗ trợ của các bạn đọc số nguyên trên các tờ giấy)
tính tổng 5 số nguyên đó
GV: qua cách làm của học sinh giáo viên có thể nói lại cách làm đơn giản, chính
xác là: khi chưa tính gì cả ta coi như tổng = 0 đi từ đầu bảng ta dò được tờ giấy đầu tiên cộng giá trị đó vào tổng đi tiếp dò đến tờ thứ 2 cộng giá trị đó vào tổng đi tiếp dò đến tờ thứ 3 cộng giá trị đó vào tổng đi tiếp
Nhập a, b, c ( a ≠ 0)
D ← b* b – 4 * a* c
D <
0 ?
Đưa ra " PTVN", rồi kết thúc
x1 ← ( - b - )/2a
x2 ← ( - b + )/2a
Đưa ra x1, x2 rồi kết thúc
Đ
S
Trang 7dò đến tờ thứ 4 cộng giá trị đó vào tổng đi tiếp dò đến tờ thứ 5 cộng giá trị đó vào tổng sau đó đi tiếp ta đến cuối bảng thì biết là hết các giá trị trong dãy đưa ra giá trị tổng mà ta đã tính được
GV chú ý: Khi thao tác với 1 dãy số nguyên ta sẽ thực hiện lần lượt từ phần tử đầu cho đến phần tử cuối.
Ý tưởng:
- Khi chưa tính tổng thì giá trị tổng khởi tạo = 0
- Với i từ 1 đến n (từ phần tử thứ nhất đến phần tử thứ n) thì cộng phần tử ai
vào giá trị tổng
Thuật toán
- t←0; khởi tạo giá trị ban đầu cho
biến t vì chưa tính gì cả
- i←1; bắt đầu từ phần tử thứ nhất.
- i > N: để xác định phần tử ai có là
phần tử trong dãy hay không vì ta
chỉ có a1, a2, … an
- t← t + ai; cộng thêm giá trị ai
vào giá trị t (tổng) trước đó
- i ← i +1; chuyển đến phần tử tiếp
theo
Lặp các thao tác i > N; t← t + ai;
i ← i +1; cho đến khi i > N có
nghĩa là hết các phần tử trong dãy
rồi.
BTVN:
Bài 1: Tính tổng các số nguyên dương trong dãy n số nguyên
Tiết 12:
Kiểm tra bài cũ : (15 phút) Viết thuật toán bài tập về nhà.
Nhập n và dãy a1, a2, … an
T ← 0; i ← 1
t ← t +ai
Đ S
i ← i +1
Trang 8Chữa BTVN
- Input: Số nguyên dương N và dãy n số nguyên a1, a2, … an
- Output: T- tổng các số nguyên dương của n số nguyên
- Thuật toán:
Sơ đồ khối
Nội dung bài học (NDBH): (25 phút)
Ví dụ 3: Tìm giá trị lớn nhất của một dãy số nguyên
Xác định bài toán:
- Input: Số nguyên dương N và dãy số nguyên a1, a2, … an
- Output: max – Giá trị lớn nhất của dãy số nguyên
Ý tưởng:
- Khởi tạo trị max = a1
- Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị max, nếu
ai > max thì max nhận giá trị mới là ai
Minh họa: GV lấy ra 4 cái hộp, mỗi hộp có 1 que tính với độ dài khác nhau.
Sau đó cho một em học sinh lên thực hiện tìm que tính dài nhất
Thuật toán:
S
Nhập N và dãy số a1, a2, …., aN;
t ← 0 , i ← 1
i >
N
Đưa ra t, rồi kết thúc
Đ
S
ai >
0
t ← t + ai
i ← i + 1
Đ
Trang 9Bước1 Nhập N và dãy số a1,
a2, …., aN;
Bước2 Max ← a1, i ← 2;
Bước3 Nếu i > N thì đưa ra giá
trị Max, rồi kết thúc;
Bước4 Nếu ai > Max thì Max
← ai;
Bước5 i ← i+ 1 rồi quay lại
bước 3;
BTVN:
Bài 1: Tìm số nhỏ nhất trong dãy n số nguyên.
Tiết 13
Kiểm tra bài cũ: (15 phút) Viết thuật toán của bài tập về nhà
Chữa bài 1: (khác với Ví dụ 3 thay vì kiểm tra a i > max thay là a i < min)
- Input: Số nguyên dương N và dãy số nguyên a1, a2, … an
- Output: min – Giá trị nhỏ nhất của dãy số nguyên.
- Thuật toán
Nhập N và dãy số a1, a2, …., aN;
Max ← a1 , i ← 2
i >
N
Đưa ra Max, rồi kết thúc
Đ
S
ai > Max
i ← i + 1
S Đ
Trang 10Bước1 Nhập N và dãy số a1,
a2, …., aN;
Bước2 Min ← a1, i ← 2;
Bước3 Nếu i > N thì đưa ra giá
trị Min, rồi kết thúc;
Bước4 Nếu ai < Min thì Min
← ai;
Bước5 i ← i+ 1 rồi quay lại
bước 3;
Nội dung bài học (NDBH): (25 phút)
Ví dụ 4: Tìm kiếm tuần tự
Xác định bài toán:
- Input: Số nguyên dương N và dãy số nguyên a1, a2, … an và số k
- Output: ’không có chỉ số hạng ai = k’ hoặc có chỉ số i để ai = k
Ý tưởng: Tìm kiếm tuần tự được thực hiện một cách tự nhiên Lần lượt từ
số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khóa cho đến khi hoặc gặp một số hạng bằng khóa hoặc dãy đã được xét hết và không có giá trị nào bằng khóa Trong trường hợp thứ hai dãy A không có số hạng nào bằng k
Minh họa: Giáo viên đưa ra 4 hộp đựng 4 que tính cuả tiết trước.Và đưa cho 2
em học sinh 2 que tính khác Sau đó gọi từng em một lên tìm xem que tính ở hộp nào có độ dài bằng que tính em đang cầm không?
Thuật toán
Nhập N và dãy số a1, a2, …., aN;
Min ← a1 , i ← 2
i >
N
Đưa ra Min, rồi kết thúc
Đ
S
ai < Min
Min ← ai
i ← i + 1
S Đ
Trang 11Bước 1 Nhập N và a1, a2,
…aN và khoá k ;
Bước 2 i ← 1;
Bước 3 Nếu ai = k thì
thông báo chỉ số i, rồi kết
thúc;
Bước 4 i ← i + 1;
Bước 5 Nếu i > N thì thông
báo dãy A không có số
hạng nào có giá trị bằng k,
rồi kết thúc;
Bước 6 Quay lại bước 3
BTVN:
Bài 1: Cho biết số lượng số nguyên dương trong dãy n số nguyên.
Tiết 14
Kiểm tra bài cũ: (15 phút) Viết thuật toán tìm kiếm tuần tự và bài tập về
nhà
Chữa bài 1
- Input: Số nguyên dương N và dãy số nguyên a1, a2, … an
- Output: dem – số lượng số nguyên dương trong dãy n số nguyên.
- Thuật toán:
Sơ đồ khối
Thông báo dãy A không
có số hạng có giái trị bằng
k, rồi kết thúc
Đưa ra i rồi kết thúc
Nhập N và a 1, a2, … aN, k
i ← 1
ai = k
i ← i + 1
i > N ?
Đ S
Đ S
Trang 12Nội dung bài học (NDBH): (25 phút)
Ví dụ 5: Sắp xếp dãy so nguyên thành 1 dãy không giảm.
Xác định bài toán:
- Input: Số nguyên dương N và dãy A gồm số nguyên a1, a2, … an
- Output: Dãy A được sắp xếp thành dãy không giảm
Ý tưởng: cho HS đọc ý tưởng sau đó lấy ví dụ để học sinh dễ hiểu hơn.
Bây giờ muốn xếp lại vị trí ngồi của 4 bạn ở bàn đầu theo chiều tăng dần của chiều cao thì cô làm như sau?
Lần đầu: Xét cả 4 bạn
Xét từ bạn đầu tiên, nếu bạn này cao hơn bạn ngồi thứ 2 thì đổi vị trí hai bạn đó với nhau
Tiếp theo lại xét từ bạn thứ 2, nếu bạn này cao hơn bạn ngồi thứ 3 thì đổi
vị trí hai bạn đó với nhau
Tiếp theo lại xét từ bạn thứ 3, nếu bạn này cao hơn bạn ngồi thứ 4 thì đổi
vị trí hai bạn đó với nhau
→ Sau lần này ta thấy người cao nhất đã ngồi vào vị trí thứ 4
Câu hỏi: Liệu đã xếp chỗ ngồi xong chưa?
Nhập N và dãy số a1, a2, …., aN;
dem ← 0 , i ← 1
i >
N
Đưa ra dem, rồi kết thúc
Đ
S
ai > 0
dem ← dem +1
i ← i + 1
S Đ
Trang 13Lần thứ 2: Xét 3 bạn đầu tiên
Xét từ bạn đầu tiên, nếu bạn này cao hơn bạn ngồi thứ 2 thì đổi vị trí hai bạn đó với nhau
Tiếp theo lại xét từ bạn thứ 2, nếu bạn này cao hơn bạn ngồi thứ 3 thì đổi
vị trí hai bạn đó với nhau
→ Sau lần này ta thấy người cao thứ 2 đã ngồi vào vị trí thứ 3
Lần thứ 3: Xét 2 bạn đầu tiên
Xét từ bạn đầu tiên, nếu bạn này cao hơn bạn ngồi thứ 2 thì đổi vị trí hai bạn đó với nhau
→ Sau lần này ta thấy người cao thứ 3 đã ngồi vào vị trí thứ 2 và người ngồi vị
trí 1 là người thấp nhất Còn 1 người ta không phải sắp xếp nữa
Thuật toán:
Bước 1 Nhập N, các số
hạng a1, a2, ……aN ;
Bước 2 M ← N;
Bước 3 Nếu M < 2 thì đưa
ra dãy A đã được sắp xếp,
rồi kết thúc
Bước 4 M ← M – 1,
i ← 0;
Bước 5 i ← i + 1;
Bước 6 Nếu i > M thì quay
lại bước 3;
Bước 7 Nếu ai > ai+1 thì
tráo đổi ai , ai+1 cho nhau;
Bước 8: Quay lại bước 5;
BTVN: Ôn tập lại các thuật toán đã học.
ai >
ai+1 ?
Đưa ra dãy A, rồi kết thúc
Nhập N, a
1 , a
2 , …a
N
M ← N
M < 2 ?
M ← M – 1, i ← 0
i ← i + 1
i > M ?
Đ S
Đ
S
Tráo đổi ai và ai +1 Đ
S
Trang 142.4 Hiệu quả
Sau bài 4 – Bài toán và thuật toán (tiết 10, 11, 12, 13, 14) thì học sinh sẽ
có 1 tiết bài tập và sau đó là tiết kiểm tra 1 tiết
Nội dung tiết bài tập - xác định Input, Output và xây dựng thuật toán của các bài toán sau:
Bài 1: Tìm số lớn nhất của 2 số nguyên
Bài 2: Cho N và dãy số a1, a2, an Hãy cho biết có bao nhiêu só hạng trong dãy = 0
Kết quả:
Nhóm lớp 10B4,
10B5, 10B6
Đối với bài 1, thì có khoảng 70% học sinh thực hiện được Đối với bài 2, thì có rất ít học sinh làm được
Nhóm lớp 10A1,
10A2, 10A3
Đối với bài 1, thì có khoảng 95% học sinh thực hiện được Đối với bài 2, thì có khoảng 60% học sinh thực hiện được
Mặc dù trên thực tế thì trình độ giữa hai nhóm lớp là chưa tương đương nhau, nhưng với những bài toán cơ bản thì chúng ta vẫn có thể so sánh được, chỉ
có điều là với nhóm lớp A thời gian thực hiện sẽ nhanh hơn nhóm lớp B Nên sau khi cho học sinh thực hiện 2 bài toán trên giáo viên còn cho các em tìm hiểu
hai ví dụ được giới thiệu trong sách giáo khoa (Ví dụ: Kiểm tra tính nguyên tố của 1 số nguyên, - Ví dụ: Tìm kiếm nhị phân)
Nội dung tiết kiểm tra 1 tiết
Đề:
Bài 1: (2 điểm) Theo sơ đồ cấu trúc máy tính hãy kể tên các bộ phận của máy vi
tính
Bài 2: (3 điểm) Nêu chức năng và bộ phận của bộ xử lý trung tâm.
Bài 3: (5 điểm) Cho N và dãy A gồm n số nguyên dương a1, a2, an Hãy tính tổng các số nguyên lẻ trong dãy A
a (2 điểm) Xác định Input, Output.
b (3 điểm) Xây dựng thuật toán.