Professional Documents
Culture Documents
106201skkn 2020dung 87202019
106201skkn 2020dung 87202019
Tên sáng kiến: Sử dụng phương pháp dạy học tích cực vào dạy thuật
toán trong ngôn ngữ lập trình Pascal nhằm nâng cao chất lượng bồi dưỡng
học sinh giỏi tin học THPT.
1
SỞ GIÁO DỤC VÀ ĐÀO TẠO VĨNH PHÚC
TRƯỜNG THPT TAM ĐẢO
Các từ viết tắt=====***=====Ý nghĩa
Tên sáng kiến: Sử dụng phương pháp dạy học tích cực vào dạy thuật toán
trong ngôn ngữ lập trình Pascal nhằm nâng cao chất lượng bồi dưỡng học sinh
giỏi tin học THPT.
2
MỤC LỤC
NỘI DUNG TRANG
1. Lời giới thiệu 1
1.1. Lí do chọn đề tài 1
1.2. Mục tiêu đề tài 2
2. Tên sáng kiến 2
3. Tác giả sáng kiến 2
4. Chủ đầu tư tạo ra sáng kiến 3
5. Lĩnh vực áp dụng sáng kiến 3
6. Ngày sáng kiến được áp dụng lần đầu hoặc áp dụng thử 3
7. Mô tả bản chất của sáng kiến 3
7.1 Nội dung sáng kiến 3
7.1.1. Mục đích nghiên cứu 3
7.1.2. Nhiệm vụ nghiên cứu 3
7.1.3 Đối tượng nghiên cứu 4
7.1.4. Phạm vi nghiên cứu 4
7.1.5 Nội dung sáng kiến kinh nghiệm 4
7.1.5.1. Giới thiệu về PPDH tích cực 4
7.1.5.2. Nội dung dạy thuật toán bằng PPDH tích cực 5
7.1.5.3. Nội dung kiến thức 7
7.1.5.3.1. Các thuật toán về số học 7
7.1.5.3.2. Thuật toán QHĐ điển hình 10
7.1.5.4. Quy trình thực hiện dạy học theo PPDH tích cực 16
7.1.5.4.1. Các thuật toán về số học 16
7.1.5.4.2. Thuật toán QHĐ điển hình 23
7.2 Về khả năng áp dụng của sáng kiến 28
8. Những thông tin cần được bảo mật 29
9. Các điều kiện cần thiết để áp dụng sáng kiến 29
10. Đánh giá lợi ích thu được sau khi áp dụng sáng kiến 29
10.1. Đánh giá lợi ích thu được theo ý kiến của tác giả 29
10.2. Đánh giá lợi ích thu được theo ý kiến của tổ chức, cá nhân 30
11. Danh sách những tổ chức/cá nhân đã tham gia áp dụng thử sáng 33
kiến
PHỤ LỤC
TÀI LIỆU THAM KHẢO
3
DANH MỤC CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG SÁNG KIẾN
4
BÁO CÁO KẾT QUẢ
NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN
8
- Nói đến PPDH tích cực chính là nói đến cách dạy học mà ở đó, giáo viên là người đưa ra
những gợi mở cho một vấn đề và cùng học sinh bàn luận, tìm ra mấu chốt vấn đề cũng
như những vấn đề liên quan. Không cho phép giáo viên truyền đạt hết kiến thức mình có
đến với học sinh, mà thông qua những dẫn dắt sẽ kích thích học sinh tiếp tục tìm tòi và
khám phá kiến thức đó. Phương pháp này lấy sự chủ động tìm tòi, sáng tạo, tư duy của
học sinh làm nền tảng, giáo viên, chỉ là người dẫn dắt và gợi mở vấn đề. Cách dạy này đòi
hỏi những giáo viên phải có bản lĩnh, vận dụng linh hoạt các PPDH, kĩ thuật dạy học tích
cực tốt, chuyên môn tốt và cả sự nhiệt thành, hoạt động hết công suất trong quá trình
giảng dạy.
* Cách tiến hành PPDH tích cực
- Dạy học thông qua hoạt động của học sinh là chủ yếu
Trong tiết học, học sinh chính là đối tượng chính để khai phá kiến thức. Lấy người học là
trung tâm và giáo viên có vai trò tổ chức, kiểm tra, hỗ trợ hoạt động học tập của học sinh
một cách hợp lý sao cho học sinh tự chủ chiếm lĩnh tri thức. Chính vì thế, giáo viên phải
làm sao đó, với những cách thức gợi mở vấn đề ở một mức độ nhất định sẽ tác động đến
tư duy của học sinh, khuyến khích học sinh tìm tòi và cùng bàn luận về vấn đề đó.
- Chú trọng đến phương pháp tự học
Với PPDH tích cực, giáo viên sẽ chú trọng cho học sinh cách thức rèn luyện và tự học, tự
tìm ra phương pháp học tốt nhất để có thể tự nắm bắt kiến thức mới. Giáo viên loại bỏ
hoàn toàn suy nghĩ cầm tay chỉ việc, đọc - chép… như những cách thức giảng dạy thông
thường khác.
- Ưu tiên phương pháp học nhóm, tập thể
Với phương pháp học tích cực, giáo viên phải biết cách chia đội, nhóm và giúp các học
sinh phối hợp cùng với nhau để tìm ra phương pháp học tốt nhất.
- Chốt lại kiến thức học
Cuối mỗi buổi học, giáo viên sẽ cùng học sinh tổng hợp lại những kiến thức tìm hiểu
được, đồng thời giải đáp những vấn đề học còn thắc mắc, cùng trao đổi và chốt lại kiến
thức cho cả buổi học.
7.1.5.2. Nội dung dạy thuật toán bằng PPDH tích cực
- Phần thuật toán trong ngôn ngữ lập trình Pascal môn Tin học ( Bồi dưỡng HSG tin 12).
- Giáo viên lập kế hoạch tìm hiểu trước những nội dung liên quan đến phần học, đặt mục
tiêu, giao nhiệm vụ cụ thể cho học sinh, cung cấp tài liệu hỗ trợ cho học sinh.
- Giáo viên thiết kế các bước cho thực hiện dạy học theo PPDH tích cực, nêu những mục
tiêu cụ thể giải quyết vấn đề và hướng dẫn học sinh thực hiện.
- Nội dung dạy học theo PPDH tích cực :
Chương trình bồi dưỡng HSG Tin 12 năm 2019 - 2020
9
Buổi Tên bài Thời lượng
2 Các thuật toán về số học 3 tiết
9 Thuật toán QHĐ điển hình 3 tiết
- Nếu p >1 không chia hết cho số nguyên nào trong tất cả các số từ 2 đến thì p là số
nguyên tố. Do đó ta sẽ kiểm tra tất cả các số nguyên từ 2 đến có round(sqrt(p)), nếu p
không chia hết cho số nào trong đó thì p là số nguyên tố.
Nếu thấy biểu thức round(sqrt(p)) khó viết thì ta có thể kiểm tra từ 2 đến p div 2.
Hàm kiểm tra nguyên tố nhận vào một số nguyên p và trả lại kết quả là true (đúng) nếu p
là nguyên tố và trả lại false nếu p không là số nguyên tố.
Chương trình kiểm tra số nguyên tố :
function ngto(p:integer):boolean;
var i:integer;
begin
ngto:=false;
if p<2 then exit;
for i:=2 to trunc(sqrt(p)) do
if p mod i=0 then exit; {nếu p chia hết cho i thì p không là nguyên tố => thoát luôn}
ngto:=true;
end;
Mở rộng: Dựa trên hàm kiểm tra nguyên tố, ta có thể tìm các số nguyên tố từ 1 đến p bằng
cách cho i chạy từ 1 đến p và gọi hàm kiểm tra nguyên tố với từng giá trị i.
2. Thuật toán tính tổng các chữ số của một số nguyên
Bài toán 2 : Cho 1 số nguyên dương p. Tính tổng các chữ số của số nguyên p
11
Input: p nguyên dương
Outphut: kết luận về tổng các chữ số của số nguyên p
Ý tưởng thuật toán:
- Ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì
sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng
0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.
- Hàm tính tổng chữ số nhận vào 1 số nguyên p và trả lại kết quả là tổng các chữ số của
nó:
12
begin
while b<>0 do begin
r := a mod b;
a := b;
b := r;
end;
UCLN := a;
end;
Mở rộng:
- Dựa trên thuật toán tính UCLN ta có thể kiểm tra được 2 số nguyên tố cùng nhau hay
không.
- Ngoài ra cũng có thể dùng để tối giản phân số bằng cách chia cả tử và mẫu cho UCLN.
4. Thuật toán tính tổng các ước số của một số nguyên
Bài toán 4 : Viết chương trình nhập vào 1 số nguyên dương p. Tính tổng các ước số của
số nguyên p
Input: p nguyên dương
Outphut: kết luận về tổng các ước số của số nguyên p
Thuật toán của ta dựa trên ý tưởng:
Để tính tổng các ước số của số p, ta cho i chạy từ 1 đến p div 2, nếu p chia hết cho số nào
thì ta cộng số đó vào tổng. (Chú ý cách tính này chưa xét p cũng là ước số của p).
9 1 3 7 4 6
Các phần tử trong dãy kết quả chỉ xuất hiện 1 lần. Vì vậy phương pháp làm là ta sẽ dùng
vòng For duyệt qua các phần tử ai trong dãy, khác với các bài toán của mô hình 4(đặc
trưng là bài toán đổi tiền), các phần tử trong dãy có thể được chọn nhiều lần nên ta thực
hiện bằng phương pháp cho giá trị cần quy đổi tăng dần từng đơn vị.
14
Thứ tự của các phần tử được chọn phải được giữ nguyên so với dãy ban đầu.Đặc trưng
này có thể mất đi trong một số bài toán khác tùy vào yêu cầu cụ thể. Chẳng hạn bài Tam
giác bao nhau.
Công thức QHĐ
Hàm mục tiêu : f = độ dài dãy con.
Vì độ dài dãy con chỉ phụ thuộc vào 1 yếu tố là dãy ban đầu nên bảng phương án là bảng
một chiều. Gọi L(i) là độ dài dãy con tăng dài nhất, các phần tử lấy trong miền từ a1 đến
ai và phần tử cuối cùng là ai. Nhận xét với cách làm này ta đã chia 1 bài toán lớn (dãy con
của n số) thành các bài toán con cùng kiểu có kích thước nhỏ hơn (dãy con của dãy i số).
Vấn đề là công thức truy hồi để phối hợp kết quả của các bài toán con.
Ta có công thức QHĐ để tính L(i) như sau:
• L(1) = 1. (Hiển nhiên)
• L(i) = max(1, L(j)+1 với mọi phần tử j: 0<j<i và aj≤ai).
Tính L(i) : phần tử đang được xét là ai. Ta tìm đến phần tử aj <ai có L(j) lớn nhất. Khi đó
nếu bổ sung ai vào sau dãy con ...aj ta sẽ được dãy con tăng dần dài nhất xét từ a1...ai.
Chương trình
Program ChuongTrinh;
const fi = 'DAYSO.INP';
fo = 'DAYSO.OUT';
MAX = 100;
var a: array [1..MAX] of integer;
n: integer;
L, Truoc: array [1..MAX] of integer;
f: text;
procedure Nhap;
var i: integer;
begin
assign(f, fi); reset(f);
readln(f, n);
for i:= 1 to n do read(f, a[i]);
close(f);
15
end;
procedure QHD;
var i, j: integer;
begin
fillchar(Truoc, sizeof(Truoc), 0);
L[1]:= 1;
for i:= 2 to n do
begin
L[i]:= 1;
for j:= 1 to i-1 do
if a[j] <= a[i] then
if 1 + L[j] > L[i] then
begin
L[i]:= L[j] + 1;
Truoc[i]:= j;
end;
end;
end;
procedure TruyVet(k: integer);
begin
if Truoc[k] = 0 then
begin
write(f, a[k]);
exit;
end;
TruyVet(Truoc[k]);
write(f, ' ', a[k]);
end;
procedure KetQua;
16
var i, k: integer;
begin
k:= 1;
for i:= 2 to n do
if L[i] > L[k] then k:= i;
assign(f, fo); rewrite(f);
writeln(f, L[k]);
TruyVet(k);
close(f);
end;
BEGIN
Nhap;
QHD;
KetQua;
END.
Bài 2: Tìm mảng con liên tục có tổng lớn nhất (Bài toán mở rộng từ bài 1)
N=7
-1 7 -2 -3 4 2 -3
Chúng ta sẽ tuần tự thực hiện 5 bước trên:
Bước 1: Xác định cấu trúc con tối ưu của bài toán
Bằng cách tiếp cận tự nhiên, chúng ta xác định được: mảng con liên tục có tổng lớn nhất
cần tìm sẽ phải kết thúc tại một trong n vị trí: hoặc 1, hoặc 2,…, hoặc n. Vậy nếu ta gọi
L(i) là độ dài mảng con liên tục có tổng lớn nhất lấy từ miền a1 đến ai và phần tử cuối
cùng là ai thì độ dài của mảng con liên tục dài nhất là: max{L(i) với 1≤ i≤ n}. Ta đã đạt
được việc xác định được cấu trúc con tối ưu cho bài toán, điều này được chứng tỏ bằng
bước 2 ngay sau đây:
Bước 2: Xây dựng công thức QHĐ
Do mảng con liên tục lớn nhất từ a1 tới ai hoặc là chứa ai-1 hoặc là không chứa ai-1.
Trường hợp không chứa ai-1 thì mảng con liên tục ñó chỉ chứa một phần tử là ai mà thôi
(vì yêu cầu mảng phải liên tục). Vậy: L(i) = max{a[i], L(i-1) + a[i]}
Bước 3: Xác định trình tự tính toán thế nào cho hợp lý?
17
Trường hợp đơn giản này chỉ cần tính toán theo trình tự tự nhiên. for i:= 2 to n do
L[i]:= max(a[i], L[i-1] + a[i]);
Bước 4: Xác định bài toán con cơ bản
L[1]:= a[1];
Bước 5: Truy vết, tìm nghiệm
max:= -∞;
for i:= 1 to n do
if L[i] > max then
begin
max:= L[i];
k:= i;
end;
i:= k;
while max > 0 do
begin
writeln(i, a[i]);
max:= max - a[i];
i:= i - 1;
end;
Chương trình
Program ChuongTrinh;
const fi = 'DAYSO1.INP';
fo = 'DAYSO1.OUT';
MAX =1000;
var a: array [1..MAX] of integer;
n: integer;
L: array [1..MAX] of integer;
f: text;
procedure Nhap;
18
var i: integer;
begin
assign(f, fi); reset(f);
readln(f, n);
for i:= 1 to n do read(f, a[i]);
close(f);
end;
procedure QHD;
var i, j: integer;
begin
L[1]:= 1;
for i:= 2 to n do
begin
L[i]:= 1;
if a[i-1] <= a[i] then
L[i]:= 1 + L[i-1];
end;
end;
procedure TruyVet(k: integer);
var i: integer;
begin
for i:= k-L[k]+1 to k do
write(f, ' ', a[i]);
end;
procedure KetQua;
var i, k: integer;
begin
k:= 1;
for i:= 2 to n do
19
if L[i] > L[k] then k:= i;
assign(f, fo); rewrite(f);
writeln(f, L[k]);
TruyVet(k);
close(f);
end;
BEGIN
Nhap;
QHD;
KetQua;
END.
7.1.5.4. Quy trình thực hiện dạy học theo PPDH tích cực
Từ những kiến thức về mục tiêu, kĩ năng và thái độ của nội dung bài học, tôi xây
dựng tiến trình PPDH theo PPDH tích cực tương ứng các tiến trình sau:
7.1.5.4.1. Các thuật toán về số học
(Buổi 2 - Các thuật toán về số học. Chương trình bồi dưỡng HSG 12 năm 2019-2020)
Bước 1. Tìm hiểu nội dung cần giải quyết:
Giáo viên cho học sinh xem nội dung đề bài của các bài toán. Sau đó để học sinh xác định
input, output, ý tưởng của bài toán. Kết thúc bước này giáo viên đưa ra câu hỏi dẫn dắt bài
toán.
- Bài toán 1 : Cho 1 số nguyên dương p. Làm thế nào để biết được p có phải số nguyên tố
hay không?
- Bài toán 2 : Cho 1 số nguyên dương p. Tính tổng các chữ số của số nguyên p
- Bài toán 3 : Viết chương trình nhập vào 2 số nguyên dương a và b. Tìm ước số chung
lớn nhất của a và b.
- Bài toán 4 : Viết chương trình nhập vào 1 số nguyên dương p. Tính tổng các ước số của
số nguyên p
Bước 2. Khái quát vấn đề chính trong bài học: Từ việc đọc đề bài, ghi nhớ và làm việc với
tư liệu minh họa học sinh đưa ra nội dung chính của bài học. Giáo viên đưa ra câu hỏi “
trình bày ý tưởng giải quyết cho bài toán”, để trả lời câu hỏi này học sinh sẽ tìm hiểu,
động não qua các ví dụ minh họa… học sinh có thể đối chiếu với những vấn đề qua các ví
dụ minh hoạ khác, so sánh, kiểm tra tính đúng đắn của thuật toán.
20
Bước 3. Tiến hành cho học nhóm. Giáo viên sau khi chia 2 nhóm (Do đặc thù môn học, số
lượng học sinh bồi dưỡng ít hoặc nhiều, việc chia nhóm và hoạt động cho học sinh giáo
viên bám sát nội dung công việc, và linh hoạt phân chia nhóm cho hợp lí) thực hiện hoạt
động bài học. Các nhóm bắt đầu phân công nhiệm vụ cụ thể cho mỗi thành viên. Trong
hoạt động của nhóm thì nhóm 1 lại chia làm 2 đội, mỗi đội nhỏ đảm nhận 1 nội dung, khi
làm thì các đội nhỏ dưới sự chỉ đạo của nhóm trưởng có thể trao đổi qua lại với các thành
viên khác trong nhóm khác và tạo ra kết quả chung là sản phẩm được giao thực hiện.
Từng cá nhân sẽ thu thập dữ liệu qua các nguồn, phân tích và tích lũy kiến thức thu được
trong khi làm việc, các kiến thức mà học sinh tích lũy được thử nghiệm qua thực tiễn. Để
xây dựng thuật toán thống nhất, tối ưu và hiệu quả nhất, hình thành năng lực viết chương
trình cho các em.
- Nhóm 1 : Bài 1 và bài 2 (Chia làm 2 đội)
Đội 1: Bài toán 1
p=0 hoặc p=1 thì p không phải số nguyên tố
Nếu p >1 không chia hết cho số nguyên nào trong tất cả các số từ 2 đến thì p là số
nguyên tố. Do đó ta sẽ kiểm tra tất cả các số nguyên từ 2 đến có round(sqrt(p)), nếu p
không chia hết cho số nào trong đó thì p là số nguyên tố.
Nếu thấy biểu thức round(sqrt(p)) khó viết thì ta có thể kiểm tra từ 2 đến p div 2.
Hàm kiểm tra nguyên tố nhận vào một số nguyên p và trả lại kết quả là true (đúng) nếu p
là nguyên tố và trả lại false nếu p không là số nguyên tố.
Đội 2: Bài toán 2 :
Ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ
được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0),
mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng.
Hàm tính tổng chữ số nhận vào 1 số nguyên p và trả lại kết quả là tổng các chữ số của nó:
- Nhóm 2 : Thực hiện bài 3 và 4 (Nhóm 2 chia làm 2 đội)
Đội 1 :Bài toán 3
Ý tưởng của thuật toán Euclide là UCLN của 2 số a,b cũng là UCLN của 2 số b và a mod
b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a.
Hàm UCLN nhận vào 2 số nguyên a,b và trả lại kết quả là UCLN của 2 số đó.
Đội 2 :Bài toán 4
Để tính tổng các ước số của số p, ta cho i chạy từ 1 đến p div 2, nếu p chia hết cho số nào
thì ta cộng số đó vào tổng. (Chú ý cách tính này chưa xét p cũng là ước số của p).
21
Bước 4. Thu thập kết quả, báo cáo: Kết quả cuối cùng của nhóm thực hiện là chương trình
được học sinh viết trên phần mềm Free Pascal. Giáo viên cho các nhóm báo cáo việc thực
hiện chương trình và sản phẩm của nhóm.
22
Hình 1.2. Hình ảnh kết quả bài 1 nhóm 1
Bài toán 2 : Cho 1 số nguyên dương p. Tính tổng các chữ số của số nguyên p
23
- Nhóm 2 thực hiện:
Bài toán 3 : Viết chương trình nhập vào 2 số nguyên dương a và b. Tìm ước số chung lớn
nhất của a và b.
24
Bài toán 4 : Viết chương trình nhập vào 1 số nguyên dương p. Tính tổng các ước số của
số nguyên p
Ban giám khảo là giáo viên dạy và đại diện của các nhóm, giáo viên dự giờ (giáo viên dạy
mời các giáo viên trong nhóm Tin tại trường ).
25
Bước 5. Đánh giá giờ học, rút kinh nghiệm:
- Giáo viên đánh giá bài báo cáo của nhóm học sinh, cả quá trình thực hiện qua sản phẩm
như thuyết trình trên lớp, trình bày chương trình trên máy tính, tinh thần hợp tác khi làm
việc nhóm và hỏi: “Bài báo cáo, chương trình và kết quả chương trình đạt yêu cầu về ý
tưởng, chương trình và câu hỏi tham luận, tính chính xác, thuật toán đã tối ưu hiệu quả
nhất chưa?”, “Các thành viên nhóm khác đánh giá chéo lẫn nhau. Mục đích giúp học sinh
biết cách đánh giá rút kinh nghiệm cho nhau, rèn tư duy biện chứng vấn đề.
- Giáo viên rút kinh nghiệm thông qua 1 số câu hỏi: “Trong quá trình học em học được gì
từ các bạn học sinh trong nhóm?”. Học sinh học được qua những câu hỏi cả của người
học, dự báo cáo và giáo viên.
- Giáo viên mở rộng cho từng bài toán, yêu cầu các em vận dụng linh hoạt thuật toán đã
được học từ đó có thể giải quyết các bài toán khác sáng tạo, và xử lý tốt các bài toán bắt
gặp trong đề thi HSG mà cần có các thuật toán này hỗ trợ.
Nhóm 1:
Bài toán 1 :
Mở rộng: Dựa trên hàm kiểm tra nguyên tố, ta có thể tìm các số nguyên tố từ 1 đến p bằng
cách cho i chạy từ 1 đến p và gọi hàm kiểm tra nguyên tố với từng giá trị i.
Bài toán 2 :
Mở rộng: Tính tích các chữ số cũng tương tự, chỉ cần chú ý ban đầu gán s là 1 và thực
hiện phép nhân s với p mod 10.
Nhóm 2:
Bài toán 3 :
Mở rộng:
Dựa trên thuật toán tính UCLN ta có thể kiểm tra được 2 số nguyên tố cùng nhau hay
không.
Ngoài ra cũng có thể dùng để tối giản phân số bằng cách chia cả tử và mẫu cho UCLN.
Bài toán 4 :
Mở rộng: Dựa trên thuật toán tính tổng ước số, ta có thể kiểm tra được 1 số nguyên có là
số hoàn thiện không: số nguyên gọi là số hoàn thiện nếu nó bằng tổng các ước số của nó.
- Học sinh tiếp tục thực hiện công việc mới được giao với những gợi ý và dẫn dắt của giáo
viên trong phần mở rộng.
- Giáo viên tiếp tục đánh giá kĩ năng lập trình, năng lực áp dụng thuật toán vào giải các
bài toán thường gặp trong đề thi HSG.
26
7.1.5.4.2. Thuật toán QHĐ kinh điển
(Buổi 9 - Thuật toán quy hoạch động điển hình - Chương trình bồi dưỡng HSG 12 năm
học 2019-2020).
Bước 1. Tìm hiểu nội dung cần giải quyết:
Giáo viên cho học sinh xem nội dung đề bài của các bài toán. Sau đó để học sinh xác định
input, output, ý tưởng của bài toán. Kết thúc bước này giáo viên đưa ra câu hỏi dẫn dắt bài
toán.
Bài 1: Gọi L[i] là độ dài dãy con tăng dần, dài nhất của a[1],a[2],..,a[i] và kết thúc bởi a[i]
thì ta tính được:
L[1]=?; L[2]=?; …; L[i]=?
Bước 2. Khái quát vấn đề chính trong bài học: Từ việc đọc đề bài, ghi nhớ và làm việc với
tư liệu minh họa học sinh đưa ra nội dung chính của bài học. Giáo viên đưa ra câu hỏi “
trình bày ý tưởng giải quyết cho bài toán”, để trả lời câu hỏi này học sinh sẽ tìm hiểu,
động não qua các ví dụ minh họa… học sinh có thể đối chiếu với những vấn đề qua các ví
dụ minh hoạ khác, so sánh, kiểm tra tính đúng đắn của thuật toán.
Bài 1:
VD: n=6
9 1 3 7 4 6
Giáo viên cụ thể đưa ra gợi ý.
n 9 1 3 7 4 6
i 1 2 3 4 5 6
L[1]=1; L[2]=1;
L[3]=1
=L[2]+1=1+1=2 Truoc[3]=2;
L[4]=1
=max(1+L[2],1+L[3])
=1+2=3 Truoc[4]=3
L[5]=1
=max(1+L[2],1+L[3])
=1+2=3 Truoc[5]=3
L[6]=1
27
=max(1+L[2],1+L[3],1+L[4])
=1+3=4 Truoc[6]=5
Bước 3. Tiến hành cho học nhóm. Giáo viên sau khi chia 2 nhóm thực hiện hoạt động bài
học. Các nhóm bắt đầu phân công nhiệm vụ cụ thể cho mỗi thành viên. Trong hoạt động
của nhóm thì nhóm 1 lại chia làm 2 đội, mỗi đội nhỏ đảm nhận 1 nội dung, khi làm thì các
đội nhỏ dưới sự chỉ đạo của nhóm trưởng có thể trao đổi qua lại với các thành viên khác
trong nhóm khác và tạo ra kết quả chung là sản phẩm được giao thực hiện. Từng cá nhân
sẽ thu thập dữ liệu qua các nguồn, phân tích và tích lũy kiến thức thu được trong khi làm
việc, các kiến thức mà học sinh tích lũy được thử nghiệm qua thực tiễn. Để xây dựng
thuật toán thống nhất, tối ưu và hiệu quả nhất, hình thành năng lực viết chương trình cho
các em.
Nhóm 1 :
- Xác định cấu trúc con tối ưu của bài toán.
- Xây dựng công thức truy hồi thể hiện mối quan hệ giữa các bài toán
con.
Nhóm 2:
- Xác định trình tự tính toán như thế nào cho hợp lý?
- Giải quyết trực tiếp các bài toán con cơ bản như thế nào?
- Dựa trên giá trị tối ưu của các bài toán con xác định được từ công thức QHĐ tính toán,
truy vết tìm ra nghiệm của bài toán ban đầu.
Bước 4. Thu thập kết quả, báo cáo: Kết quả cuối cùng của nhóm thực hiện là chương trình
được học sinh viết trên phần mềm Free Pascal. Giáo viên cho các nhóm báo cáo việc thực
hiện chương trình và sản phẩm của nhóm.
Nhóm 1 và 2 trình bày báo cáo và chương trình trên máy chiếu, mà nhóm làm.
Nhóm 1: Xây dựng công thức QHĐ
L[1]=1
L[i] L[1]…L[i-1] với (1<=j<=i-1) thỏa mãn a[j]<=a[i];
L[i] = max(1+L[j]) = 1+ max( L[j])
Nhóm 2: Thực hiện truy vết
Truoc[j]=j0
a1 a2 ..aj0…ai-1 ai a[j0] = a[Truoc[j]]
L[1]…L[k]…L[i] a[k]=a[Truoc[k]]
28
- Sau khi đại diện nhóm báo cáo, học sinh giữa các nhóm lớp trao đổi tranh luận tham
chiếu và đặt câu hỏi với nhau để cùng làm sáng tỏ vấn đề, đưa ra lựa chọn thuật toán tốt
nhất cho bài toán.
Nhóm 1:
procedure QHD;
var i, j: integer;
begin
fillchar(Truoc, sizeof(Truoc), 0);
L[1]:= 1;
for i:= 2 to n do
begin
L[i]:= 1;
for j:= 1 to i-1 do
if a[j] <= a[i] then
if 1 + L[j] > L[i] then
begin
L[i]:= L[j] + 1;
Truoc[i]:= j;
end;
end;
end;
Nhóm 2:
29
TruyVet(Truoc[k]);
write(f, ' ', a[k]);
end;
Kết quả đạt được từ công việc của nhóm 1 và nhóm 2
Hình 5.1.Hình ảnh sản phẩm và kết quả bài 1 của học sinh
- Ban giám khảo là giáo viên dạy và đại diện của các nhóm, giáo viên dự giờ (giáo viên
dạy mời các giáo viên trong nhóm Tin tại trường )
Bước 5. Đánh giá giờ học, rút kinh nghiệm:
- Giáo viên đánh giá bài báo cáo của nhóm học sinh, cả quá trình thực hiện qua sản phẩm
như thuyết trình trên lớp, trình bày chương trình trên máy tính, tinh thần hợp tác khi làm
việc nhóm và hỏi: “Bài báo cáo, chương trình và kết quả chương trình đạt yêu cầu về ý
tưởng, chương trình và câu hỏi tham luận, tính chính xác, thuật toán đã tối ưu hiệu quả
nhất chưa?”, “Các thành viên nhóm khác đánh giá chéo lẫn nhau. Mục đích giúp học sinh
biết cách đánh giá rút kinh nghiệm cho nhau, rèn tư duy biện chứng vấn đề.
- Giáo viên rút kinh nghiệm thông qua 1 số câu hỏi: “Trong quá trình học em học được gì
từ các bạn học sinh trong nhóm?”. Học sinh học được qua những câu hỏi cả của người
học, dự báo cáo và giáo viên.
- Giáo viên mở rộng cho từng bài toán, yêu cầu các em vận dụng linh hoạt thuật toán đã
được học từ đó có thể giải quyết các bài toán khác sáng tạo, và xử lý tốt các bài toán bắt
gặp trong đề thi HSG mà cần có các thuật toán này hỗ trợ.
Bài2: Tìm mảng con liên tục có tổng lớn nhất (bài toán mở rộng)
30
N=7
-1 7 -2 -3 4 2 -3
Nhóm 1:
- Xác định cấu trúc con tối ưu của bài toán
Bằng cách tiếp cận tự nhiên, chúng ta xác định được: mảng con liên tục có tổng lớn nhất
cần tìm sẽ phải kết thúc tại một trong n vị trí: hoặc 1, hoặc 2,…, hoặc n. Vậy nếu ta gọi
L(i) là độ dài mảng con liên tục có tổng lớn nhất lấy từ miền a1 đến ai và phần tử cuối
cùng là ai thì độ dài của mảng con liên tục dài nhất là: max{L(i) với 1≤ i≤ n}. Ta đã đạt
được việc xác định được cấu trúc con tối ưu cho bài toán, điều này được chứng tỏ bằng
bước 2 ngay sau đây:
- Xây dựng công thức QHĐ
Do mảng con liên tục lớn nhất từ a1 tới ai hoặc là chứa ai-1 hoặc là không chứa ai-1.
Trường hợp không chứa ai-1 thì mảng con liên tục ñó chỉ chứa một phần tử là ai mà thôi
(vì yêu cầu mảng phải liên tục). Vậy: L(i) = max{a[i], L(i-1) + a[i]}
Nhóm 2:
- Xác định trình tự tính toán thế nào cho hợp lý?
Trường hợp đơn giản này chỉ cần tính toán theo trình tự tự nhiên. for i:= 2 to n do
L[i]:= max(a[i], L[i-1] + a[i]);
- Xác định bài toán con cơ bản
L[1]:= a[1];
Bước 5: Truy vết, tìm nghiệm
max:= -∞;
for i:= 1 to n do
if L[i] > max then
begin
max:= L[i];
k:= i;
end;
i:= k;
while max > 0 do
begin
31
writeln(i, a[i]);
max:= max - a[i];
i:= i - 1;
end;
- Học sinh tiếp tục thực hiện công việc mới được giao với những gợi ý và dẫn dắt của giáo
viên trong phần mở rộng.
Kết quả đạt được từ công việc của nhóm 1 và nhóm 2
Hình 5.2. Hình ảnh sản phẩm và kết quả bài 2 mở rộng của học sinh
- Giáo viên đánh giá năng lực học sinh, kĩ năng lập trình, hiểu bài, biết cách vận dụng
sáng tạo giải quyết các bài toán khác.
7.2 Về khả năng áp dụng của sáng kiến:
- Sáng kiến được đưa vào dạy học bồi dưỡng HSG các khối lớp 10, 11, 12 : Phần thuật
toán trong ngôn ngữ lập trình Pascal.
- Hiện sáng kiến đang được sử dụng bồi dưỡng HSG khối 12 năm học 2019 - 2020, đang
dần được triển khai ở cả 3 cấp học, và thí điểm một lớp ở trường THPT A trên cùng địa
bàn với giáo viên dạy môn tin học để đảm bảo tính ứng dụng cao và đem lại kết quả tốt
nhất.
- Trong dạy học bồi dưỡng HSG khối 12 tại trường THPT A
- Sáng kiến được áp dụng trong việc dạy bồi dưỡng HSG lớp 10, lớp 11 và lớp 12.
- Qua nghiên cứu, tìm hiểu về cách thức và phương pháp bồi dưỡng HSG ở một số trường
THPT trên địa bàn tỉnh Vĩnh Phúc, tôi nhận thấy việc thực hiện bồi dưỡng HSG được
32
trình bày trong sáng kiến mang lại kiệu quả, kết quả cao cho HSG trên địa bàn tỉnh Vĩnh
Phúc và nhiều địa phương khác, giúp học sinh hứng thú, phát huy năng lực sáng tạo trong
quá trình học tập.
8. Những thông tin cần được bảo mật : Không có
9. Các điều kiện cần thiết để áp dụng sáng kiến
* Đối với lãnh đạo nhà trường:
- Tạo điều kiện về cơ sở vật chất, về thời gian, và khuyến khích giáo viên tích cực bồi
dưỡng đội tuyển HSG môn Tin
- Tăng cường các buổi sinh hoạt chuyên môn tổ, nhóm chuyên môn, thảo luận về các
PPDH tích cực hiện nay. Có kế hoạch tổ chức dạy học và triển khai đưa vào giảng dạy bồi
dưỡng HSG, chính khóa bằng các PPDH tích cực nhằm nâng cao hiệu quả học tập.
* Đối với giáo viên:
- Giáo viên thường xuyên học hỏi, nâng cao trình độ chuyên môn , xây dựng các kiến
thức, PPDH, kĩ thuật dạy học để kích thích sự hứng thú học tập cho các em. Bên cạnh đó,
giáo viên phải tâm huyết với nghề, nắm bắt tâm sinh lí của học sinh, không tạo áp lực cho
học sinh, tích cực động viên các em kịp thời. Thường xuyên giao nhiệm vụ học tập cho
học sinh chuẩn bị tương ứng nội dung bài học, giao cho các em các tình huống và vấn đề
giải quyết để phát huy khả năng năng lực sáng tạo lập trình.
- Trao đổi, chuyên môn với đồng nghiệp, trao đổi kiến thức liên quan bộ môn với các giáo
viên thuộc nhóm, tổ chuyên môn
* Về phía học sinh
- Học sinh phát huy tính tự giác tự học, nghiên cứu, tìm tòi tài liệu và kiến thức, trao đổi
thường xuyên với giáo viên và các bạn học sinh.
- Học sinh có ý thức học tập, ham học hỏi, hứng thú, tích cực tìm hiểu kiến thức nâng cao,
mới mẻ và nhiệt tình tham gia các hoạt động giáo viên đưa ra.
10. Đánh giá lợi ích thu được hoặc dự kiến có thể thu được do áp dụng sáng kiến
theo ý kiến của tác giả và theo ý kiến của tổ chức, cá nhân đã tham gia áp dụng sáng
kiến lần đầu, kể cả áp dụng thử (nếu có) theo các nội dung sau:
10.1. Đánh giá lợi ích thu được hoặc dự kiến có thể thu được do áp dụng sáng kiến
theo ý kiến của tác giả:
- Nhận thấy trường THPT mà bản thân tôi đang công tác là trường THPT thuộc huyện
miền núi, chất lượng đầu vào thấp so với các trường khác trong tỉnh. Kết quả và chất
lượng HSG môn Tin của nhiều năm không đều và chưa nổi bật. Sau khi tôi áp dụng sáng
kiến vào công tác giảng dạy đội tuyển đã đạt hiệu quả vả kết quả nhất định cho đội tuyển,
góp phần mang lại chất lượng cho nhà trường trong năm học 2019-2020. Đặc biệt là đối
tượng học sinh lại là học sinh lớp 10, là học sinh thi vượt cấp chương trình 12. Kết quả kỳ
thi HSG cấp Tỉnh khối 12 năm 2019-2020 như sau: 1 giải nhì, 1 giải ba và 1 giải khuyến
khích. (Phụ lục 1)
33
- Bên cạnh đó khi áp dụng sáng kiến, giờ học bồi dưỡng HSG của tôi trở nên sinh động,
hấp dẫn và có ý nghĩa.
- Qua kết quả đạt được, sáng kiến có thể được áp dụng và sử dụng như một tài liệu bồi
dưỡng HSG cho các giáo viên khác cùng trường, các giáo viên giảng dạy bồi dưỡng HSG
môn Tin trên quy mô đối với trường THPT trong địa bàn.
- Trong giờ học sử dụng PPDH tích cực vào dạy bồi dưỡng HSG tôi nhận thấy các em sôi
nổi hơn, học sinh chủ động trao đổi vấn đề khó với giáo viên và tranh luận tích cực với
bạn trong lớp, trong nhóm khi báo cáo sản phẩm, kết quả, chương trình.
- So sánh sự hiệu quả, chất lượng và kết quả với năm học trước chưa áp dụng sáng kiến
thì không khí học trầm, ko sôi nổi học sinh chủ yếu ghi chép, hạn chế hoạt động trao đổi
kiến thức và tự tìm hiểu kiến thức, không có sự trao đổi tranh luận với nhau, tập trung
không cao, kết quả kì thi đạt không cao.
- Đáp ứng đổi mới giáo dục, chương trình giáo dục phổ thông mới, giáo viên nắm vững
kiến thức kĩ năng môn học, nắm vững PPDH, dạy học phân hóa, dạy học tích hợp, không
ngừng cố gắng, nhiệt tình đóng góp trí tuệ và sức lực để hoàn thành các nhiệm vụ được
giao. Góp phần to lớn tạo nên những thành tích rất đáng tự hào của nhà trường trong năm
2019-2020. Bước sang năm 2021, bản thân tôi tiếp tục phấn đấu thực hiện mục tiêu nâng
cao chất lượng đào tạo, góp phần đổi mới PPDH theo hướng phát huy tính tích cực học
tập của học sinh theo định hướng phát triển năng lực học sinh. Để phát triển tư duy độc
lập sáng tạo, tính tự chủ, hợi mở cho học sinh trí tò mò và ý thức tự chủ khám phá kiến
thức. Với việc sử dụng PPDH tích cực chính bản thân giáo viên cũng sẽ say mê tìm tòi và
ứng dụng các phương pháp mới vào dạy học để những bài học thêm sinh động, học sinh
tích cực sáng tạo, góp phần vào đổi mới sự nghiệp giáo dục.
10.2. Đánh giá lợi ích thu được hoặc dự kiến có thể thu được do áp dụng sáng kiến
theo ý kiến của tổ chức, cá nhân
- Sau khi tiến hành tổ chức dạy học theo PPDH tích cực, tôi phát phiếu thăm dò ý kiến
của học sinh đội tuyển khối 12 ở các các lớp 10A1 (tham gia thi vượt cấp), 12A1 trường
THPT Tam Đảo và lớp 12A1, 12A2 trường THPT A trên cùng địa bàn (Phụ lục 2,3,4).
Bên cạnh đó giáo viên chuẩn bị phiếu lấy ý kiến của giáo viên (Phụ lục 5). Sau khi học
sinh và giáo viên đánh dấu theo ý kiến cá nhân tôi tổng hợp kết quả từ hai lớp bồi dưỡng
ở 2 điểm trường khác nhau nhưng đa số các em học sinh đều có chung mong muốn giống
nhau là đều thích học PPDH cách đổi mới này, ý kiến của các giáo viên khác về việc sử
dụng dạy học tích cực cho học sinh và kết quả đều rất khách quan. Giáo viên trong trường
và trường THPT A đều thấy đạt hiểu quả và chất lượng hơn so với cách dạy học và
phương pháp trước đây. Trong quá trình học, học sinh tích cực trao đổi kiến thức với học
sinh khác trong đội tuyển, với giáo viên giảng dạy. Học sinh chủ động vận dụng linh hoạt
những kiến thức, kĩ năng đã học để nhận thức những vấn đề mới và kết quả đạt được cao
hơn. Học sinh tham gia học bồi dưỡng rất sôi nổi, nghiêm túc, tích cực và yêu thích môn
học hơn không còn cảm giác đơn điệu, khô khan, chán học. Góp phần tăng tính sáng tạo,
hứng thú, tìm tòi và nghiên cứu khi học kiến thức giúp ích cho ôn luyện HSG ở trường
THPT. Học sinh thu thập được kiến thức một cách vững chắc hơn tạo nền tảng kiến thức
chắc chắn khi thi HSG. PPDH tích cực mang lại hiệu quả cao trong giờ học đội tuyển ở
34
trường THPT. Giúp học sinh có niềm say mê và hứng thú với môn học, hình thành và
phát triển khả năng tư duy, sáng tạo của học sinh.
- Trong năm học 2019 - 2020, bản thân tôi sử dụng PPDH tích cực cho học sinh ở những
tiết học có nội dung bài học phù hợp. Điểm mới của sáng kiến này của tôi là lựa chọn kiến
thức trọng tâm, mới và khó hơn so với các kiến thức sách giáo khoa, đòi hỏi các em phải
ham học hỏi và nghiên cứu sáng tạo. Thông qua dạy học các em được rèn luyện kĩ năng
lập trình thành thạo và chuyên nghiệp. Đây là điểm mới trong PPDH này và đáp ứng được
yêu cầu đối mới dạy học theo định hướng phát triển năng lực học sinh.
- Tiến hành tổ chức kiểm tra bằng đề thi kiểm tra chất lượng HSG lớp 12 trên lớp cho 2
trường (Phụ lục 6). Lấy kết quả đối chiếu 2 trường nhằm đánh giá hiệu quả sáng kiến đạt
được.
Kết quả kiểm tra chất lượng thi HSG lớp 12 tại trường tôi dạy
Bài kiểm tra thang điểm 20
Số lượng HS 05
Điểm đạt trên 10 05
Điểm đạt trên 10 0
Kết quả kiểm tra chất lượng thi HSG lớp 12 tại trường THPT A
Bài kiểm tra thang điểm 20
Số lượng HS 03
Điểm đạt trên 10 03
Điểm đạt trên 10 0
Ngoài kết quả và đánh giá chất lượng học sinh ở trên lớp thì kết quả các em thi HSG cấp
trường tổ chức cuối tháng 11 có kết quả như sau:
Giải khối 12 Số lượng giải
Nhất 01
Nhì 02
Ba 0
Khuyến khích 0
Kết quả của kì thi HSG năm 2017 - 2018 chưa áp dụng sáng kiến:
Giải khối 10 Số lượng giải
Nhất 0
Nhì 0
Ba 0
Khuyến khích 0
35
Giải khối 12 Số lượng giải
Nhất 0
Nhì 0
Ba 0
Khuyến khích 0
Kết quả của kì thi HSG năm 2018 - 2019 tiến hành thử nghiệm thử sáng kiến:
Giải khối 11 Số lượng giải
Nhất 0
Nhì 0
Ba 0
Khuyến khích 02
Kết quả của kì thi HSG năm 2019 - 2020 được áp dụng sáng kiến:
Giải khối 12 Số lượng giải
Nhất 0
Nhì 01
Ba 01
Khuyến khích 01
- Cùng thực hiện PPDH tích cực, tôi có triển khai mở rộng thêm đối tượng học sinh tại 1
trường THPT A trên cùng địa bàn. Kết quả này tôi có được trong kì thi HSG khối 12 năm
học 2019-2020. Kết quả này đánh giá giữa các lớp áp dụng sáng kiến và lớp chưa áp dụng
sáng kiến để thấy được hiệu quả khi áp dụng phương pháp này vào dạy học.
Kết quả của kì thi HSG năm 2019 - 2020 của trường THPT A áp dụng sáng kiến
Giải khối 12 Số lượng giải
Nhất 0
Nhì 01
Ba 02
Khuyến khích 0
- Nhận thấy khi áp dụng dạy học theo PPDH tích cực vào dạy bồi dưỡng HSG cho phần
thuật toán đã mang lại kết quả, thành tích và chất lượng đạt giải tiến bộ hơn. Thống kê kết
quả qua bảng, đối chiếu so sánh với những lớp chưa thực hiện và thực hiện ở cả hai
trường THPT đều cho kết quả giải HSG chất lượng cao, có tiến bộ rõ rệt so với trước đây
chưa áp dụng PPDH tích cực. Vậy nên, tôi thấy rằng việc sử dụng PPDH tích cực vào
36
giảng dạy bồi dưỡng cho HSG là sự thay đổi, sự cần thiết, đáp ứng được những yêu cầu
về kiến thức, sự nhận thức và khả năng lĩnh hội tìm tòi, sáng tạo lập trình của học sinh.
11. Danh sách những tổ chức/cá nhân đã tham gia áp dụng thử sáng kiến
37
Phụ lục
Phụ lục 1: Kết quả thi chọn HSG cấp tỉnh lớp 12 THPT năm học 2019 - 2020
38
Phụ lục 2: Bảng đo hứng thú học tập của đội tuyển HSG trường THPT Tam Đảo
Lớp Không hứng thú Bình thường Khá hứng thú Rất hứng thú
10A1 0 0 01 02
12A1 0 0 01 01
Phụ lục 3: Bảng đo hứng thú học tập của đội tuyển HSG trường THPT A
Lớp Không hứng thú Bình thường Khá hứng thú Rất hứng thú
12A1 0 0 01 01
12A2 0 0 0 01
39
Phụ lục 4: PHIỂU THĂM DÒ Ý KIẾN HỌC SINH
Em hãy trả lời các câu hỏi sau bằng cách đánh dấu (x) vào sự lựa chọn của em.
1. Khi học đội tuyển môn Tin của trường em ngại nhất điều gì?
Mất nhiều thời gian để học
Phương pháp dạy học của GV khô khan
Kiến thức trừu tượng, khó hiểu
2. Trong giờ học độ tuyển, em thích giáo viên sử dụng phương pháp dạy học nào?
Phương pháp hỏi đáp
Làm việc nhóm
PPDH tích cực
Tất cả các phương pháp trên
3. Trong giờ học đội tuyển em thấy khác các buổi học trước đây ở những chi tiết nào
sau đây?
Giáo viên cho ghi ít
Giáo viên giao làm việc nhiều
Giáo viên sử dụng nhiều câu thoại
Giáo viên kết hợp nhiều PPDH mới
4. Theo em, giáo viên sử dụng PPDH tích cực vào nội dung thuật toán trong bồi
dưỡng HSG tin học có tác dụng gì?
Tạo hứng thú
Học sinh chủ động sáng tạo
Bình thường
Không có tác dụng
Dễ nhớ kiến thức
5. Khi được học theo PPDH tích cực các em học được điều gì từ các bạn trong đội
tuyển?
Tinh thần đoàn kết chung
Tìm hiểu kiến thức nhiều
Tự tin khi thuyết trình
Phát huy được sở trường
Mệt mỏi không muốn làm
40
Phụ lục 5:
41
Phụ lục 6: BÀI KIỂM TRA ĐÁNH GIÁ CHẤT LƯỢNG HSG LỚP 12 SAU KHI
HỌC PPDH TÍCH CỰC
ĐỀ KIỂM TRA ĐÁNH GIÁ CHẤT LƯỢNG HSG MÔN TIN LỚP 12
Thời gian làm bài: 180 phút
Dữ liệu vào: từ tập tin văn bản UOCSO.INP gồm 1 số nguyên N (2 ≤ N ≤ 2*1010).
Kết quả: ghi ra tập tin văn bản UOCSO.OUT một số nguyên duy nhất là số lượng ước số
cần tìm
UOCSO.INP UOCSO.OUT
4 8
6 30
Bài 2: DÃY CON
Một dãy số a1, a2, a3,…, an được gọi là dãy tăng dần nếu
a1 <= a2 <= a3,…, <= an
Yêu cầu: Cho một dãy tối đa n số (1 <= n <= 10000); tìm dãy con liên tiếp tăng dần dài
nhất trong dãy nói trên.
Dữ liệu vào: Từ tập tin văn bản daycon.inp; dòng đầu ghi giá trị n; các dòng tiếp theo
gồm các số a1, a2, a3,…, an nguyên dương.
Dữ liệu ra: Ghi vào tập tin văn bản daycon.out dãy con liên tiếp tăng dần dài nhất tìm
được (nếu có nhiều dãy cùng độ dài thì ghi tất cả các dãy ấy).
42
Ví dụ:
daycon.inp daycon.out
11 1 4 10
1 125
4
10
8
3
4
3
2
1
2
5
Bài 3: Hệ đếm
Lần đầu tiên tiếp xúc với các vấn đề cơ sở Tin học, Mạnh ngỡ ngàng và thú vị khi
đượclàm quen với hệ đếm cơ số 2 (Hệ đếm nhị phân). Mạnh nghĩ ra một xâu kí tự chỉ bao
gồm cáckí tự ‘0’ và ‘1’ biểu diễn một số tự nhiên N trong hệ đếm cơ số 2 và đố Hải tìm
biểu diễn của Ntrong hệ đếm cơ số 10 (Hệ đếm thập phân).Ví dụ: Mạnh nghĩ ra xâu
‘00010101’ là biểu diễn của số tự nhiên 15 trong hệ đếm cơ số 2. Yêu cầu: Hãy giúp Hải
chuyển xâu kí tự biểu diễn số tự nhiên N trong hệ đếm cơ số 2 thànhxâu biểu diễn N trong
hệ đếm cơ số 10.Dữ liệu vào: Từ tệp văn bản BAI1.INP gồm một dòng duy nhất chứa xâu
S có độ dài khôngquá 32 ký tự.Dữ liệu ra: Ghi ra tệp văn bản BAI1.OUT xâu biểu diễn
của N trong hệ đếm cơ số 10.
HEDEM.INP HEDEM.OUT
10101110 174
00010101 21
43
TÀI LIỆU THAM KHẢO
[1]. Sách giáo khoa tin học lớp 11, nhà xuất bản giáo dục Việt Nam
[2]. Một số bài toán QHĐ điển hình, Nguyễn Thanh Tùng, Ebook
[3]. Bài tập QHĐ, Trần Đỗ Hùng - Đỗ Đức Đông - Lê Sĩ Quang, NXB Giáo dục
[4]. Giải thuật & Lập trình, Lê Minh Hoàng, Ebook
[5]. Dạy và học tích cực - Nhà xuất bản ĐHSP Hà Nội
[6]. Các phương pháp dạy học hiệu quả, Nguyễn Hồng Vân, NXB Giáo dục
[7]. Đổi mới PPDH ở trường THPT, Trần Kiều - Trần Đình Châu, NXB Giáo dục
[8]. Các trang website tham khảo hình ảnh, tư liệu và tài liệu :
https://dthphuongsp.wordpress.com
https://www.slideshare.net
http://giasuttv.net
44