Kết quả khi ứng dụng các bài tập thực tế đã xây dựng trong quá trình dạy học và bồi dưỡng học sinh giỏi tin học...22 8.. Lời giới thiệu Một trong những mục tiêu của chương trình giáo dục
Trang 1MỤC LỤC Nội dung Trang
1 Lời giới thiệu 2
2 Tên sáng kiến 3
3 Tác giả sáng kiến 3
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 3
7 Mô tả bản chất của sáng kiến 3
7.1 Lý thuyết về cấu trúc rẽ nhánh 3
7.1.1 Rẽ nhánh 3
7.1.2 Câu lệnh If - then 4
7.1.3 Câu lệnh ghép 4
7.2 Xây dựng và giải các bài tập thực tế về cấu trúc rẽ nhánh 5
7.2.1 Các bài tập có thể áp dụng cho dạy học tin học đại trà 5
7.2.2 Các bài tập có thể áp dụng cho bồi dưỡng học sinh giỏi 14
7.3 Kết quả khi ứng dụng các bài tập thực tế đã xây dựng trong quá trình dạy học và bồi dưỡng học sinh giỏi tin học 22
8 Những thông tin cần được bảo mật 24
9 Các điều kiện cần thiết để áp dụng sáng kiến 24
10 Đánh giá lợi ích thu được 25
11 Danh sách những tổ chức/cá nhân đã tham gia áp dụng thử hoặc áp dụng sáng kiến lần đầu 25
Trang 2BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN
1 Lời giới thiệu
Một trong những mục tiêu của chương trình giáo dục phổ thông tổng thểsắp tới của bậc trung học phổ thông là nhằm giúp học sinh củng cố và phát triểnnhững kết quả của giáo dục trung học cơ sở, hoàn thiện học vấn phổ thông và cónhững hiểu biết thông thường về kỹ thuật và hướng nghiệp, có điều kiện pháthuy năng lực cá nhân để lựa chọn hướng phát triển, tiếp tục học đại học, caođẳng, trung cấp, học nghề hoặc đi vào cuộc sống lao động
Trong đó giáo dục tin học đóng vai trò chủ đạo trong việc chuẩn bị chohọc sinh khả năng tìm kiếm, tiếp nhận, mở rộng tri thức và sáng tạo trong thờiđại cách mạng công nghiệp lần thứ tư và toàn cầu hoá Tin học có ảnh hưởnglớn đến cách sống, cách suy nghĩ và hành động của con người, là công cụ hiệuquả hỗ trợ biến việc học thành tự học suốt đời
Môn Tin học còn giúp học sinh thích ứng và hoà nhập được với xã hộihiện đại, hình thành và phát triển cho học sinh năng lực tin học để học tập, làmviệc và nâng cao chất lượng cuộc sống, đóng góp vào sự nghiệp xây dựng và bảo vệ
Tổ quốc
Một trong những nội dung của tin học là 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 Và để làm được việc đó cần có mộtquá 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 Tuy nhiên mọi thứ đều có điểmkhởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngônngữ lập trình bậc cao Từ đó các em có thêm một định hướng, một niềm đam mê
về tin học, về nghề nghiệp mà các em chọn sau này Đồng thời Pascal là một
“ngôn ngữ học đường”.
Bản chất viết chương trình là một môn học khó, trừu tượng, học sinh khónắm kiến thức Học sinh muốn nắm được kiến thức phải nắm vững những kiếnthức cơ bản của các câu lệnh, mà câu lệnh rẽ nhánh là một câu lệnh cơ bản củamọi ngôn ngữ lập trình
Từ thực tiễn giảng dạy và bồi dưỡng học sinh giỏi các năm tại trườngTHPT Nguyễn Thái Học tôi thấy rằng: Đại đa số học sinh chưa hứng thú họcmôn Tin, chưa thấy rõ việc lập trình ứng dụng vào các tình huống trong cuộcsống như thế nào? Do đó tôi băn khoăn và suy nghĩ vậy làm thế nào để qua mỗihoạt động học, qua mỗi bài tập học sinh giải quyết các em sẽ hứng thú, yêu thíchmôn Tin hơn? Để các em thấy được sự cần thiết của các ứng dụng tin học vàotrong thực tế cuộc sống hàng ngày ra sao? Để sau này khi học tiếp hoặc tham giavào cuộc sống lao động các em có thể áp dụng tin học vào thực tiễn, hoặc có thể
lý giải tin học ứng dụng trong cuộc sống như thế nào? Chính vì những lý do trên
Trang 3nên ngay từ đầu năm học 2019 - 2020 tôi đã chọn và xây dựng đề tài “Xây dựng
và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11”.
2 Tên sáng kiến
“Xây dựng và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11”
3 Tác giả sáng kiến
- Họ và tên: Nguyễn Thị Mơ
- Địa chỉ tác giả sáng kiến: trường THPT Nguyễn Thái Học
- Số điện thoại: 0396.88.99.56 E_mail: nguyenthimo86@gmail.com
4 Chủ đầu tư tạo ra sáng kiến: Nguyễn Thị Mơ
5 Lĩnh vực áp dụng sáng kiến: Dạy và học tin học 11 đại trà, bồi dưỡng học
sinh giỏi Tin THPT
6 Ngày sáng kiến được áp dụng lần đầu:
7 Mô tả bản chất của sáng kiến
Câu nói của Ngọc khẳng định một trong hai việc cụ thể (Ngọc đến nhàChâu hay Ngọc gọi điện cho Châu) chắc chắn sẽ xảy ra Tuy nhiên, việc nàotrong hai việc sẽ được thực hiện thì tuỳ thuộc vào điều kiện cụ thể (trời khôngmưa) thoả mãn hay không Cách diễn đạt như vậy ta nói thuộc dạng mệnh đề đủ:Nếu… thì…, nếu không thì…
Từ đó có thể thấy, trong nhiều thuật toán, các thao tác tiếp theo sẽ phụthuộc vào kết quả nhận được từ các bước trước đó
Trang 4Cấu trúc dùng để mô tả các mệnh đề có dạng như trên được gọi là cấu trúc
rẽ nhánh
7.1.2 Câu lệnh If - then
Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then Tương ứng với
hai dạng mệnh đề thiếu và đủ nói ở trên, Pascal có hai dạng câu lệnh if-then:
Điều kiện: Biểu thức quan hệ hoặc lôgic.
Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal.
Theo cú pháp, sau một số từ khoá (như then hoặc else) phải là một câu lệnh.
Nhưng trong nhiều trường hợp, các thao tác sau những tên dành riêng đó kháphức tạp, đòi hỏi không phải chỉ một mà là nhiều câu lệnh để mô tả Trong cáctrường hợp như vậy, ngôn ngữ lập trình cho phép gộp một dãy câu lệnh thành
một câu lệnh ghép (hay câu lệnh hợp thành) Chẳng hạn, câu lệnh ghép của
Câu lệnh 2
Trang 5 Chú ý: Trước else không có dấu “;”
7.2 Xây dựng và giải các bài tập thực tế về cấu trúc rẽ nhánh
Các bài tập được xây dựng và giải là các bài tập gắn với các tình huống gầngũi, quen thuộc trong cuộc sống hàng ngày của các em Qua mỗi bài tập đó các
em thấy được ứng dụng của tin học trong cuộc sống hàng ngày như thế nào?Thấy được những phần mềm, ứng dụng không phải quá xa vời, cao siêu mà bắtnguồn từ những bài học hàng ngày các em được học Qua hệ thống các bài tậpđược xây dựng học sinh cũng hình thành và phát huy năng lực, kĩ năng của mình
để giải quyết các vấn đề thực tiễn trong cuộc sống hoặc lý giải được việc tin họcứng dụng như thế nào trong thực tế Hệ thống bài tập được xây dựng từ dễ đếnkhó, từ cơ bản đến nâng cao và chia thành 2 loại:
Các bài tập có thể áp dụng cho dạy và học tin học đại trà trong chươngtrình tin học THPT
Các bài tập có thể áp dụng cho dạy học và bồi dưỡng học sinh giỏi Tinhọc THPT
Mỗi bài tập xây dựng gồm 3 nội dung:
Phát biểu nội dung bài toán gắn với tình huống học sinh gặp trong thực tế
Phân tích để đưa ra hướng giải của bài toán, có thể phân tích học sinh họcđược gì qua bài toán đó, lý do tại sao lại xây dựng và chọn bài toán đó Từ bàitoán đó có thể nâng cao mở rộng sang bài toán khác không?
Đưa ra chương trình đề xuất
7.2.1 Các bài tập có thể áp dụng cho dạy học tin học đại trà
Các bài tập áp dụng cho dạy học tin học đại trà được viết chương trình đềxuất đầy đủ sử dụng nhập dữ liệu từ bàn phím Các bài tập này cũng có thể dùng
để dạy học và bồi dưỡng học sinh giỏi
Trang 6Bài 1: Giải phương trình bậc 2
Bài toán: Lớp 11 năm nay An được cô giáo Tin học giới thiệu mình sẽ được học
lập trình An liền suy nghĩ luôn chương trình giải phương trình bậc hai trên máytính cầm tay không biết họ lập trình ra sao nhỉ? Em giúp An viết chương trìnhnhập từ bàn phím hệ số a,b,c Tìm nghiệm thực của phương trình bậc 2:
ax2+bx+c=0 (a≠0)
Phân tích: bài toán giải phương trình bậc hai là bài toán rất quen thuộc với học
sinh trong toán học Qua bài toán các em thấy được ứng dụng giải phương trìnhbậc hai trong máy tính cầm tay được cài đặt tương tự như chương trình đề xuất
if d<0 then writeln('Phuong trinh vo nghiem.')
else if d=0 then writeln('Phuong trinh co
nghiem kep x=',-b/(2*a):8:3)
else begin x1:= (-b-sqrt(d))/(2*a);
Bài toán: Trong những ngày dài nghỉ học vì dịch bệnh Covid-19 An mong mỏi
đến ngày được quay trở lại trường đề gặp lại thầy cô, bạn bè Mỗi ngày làm bàitập trên máy tính An lại xem lịch xem hôm nay là thứ mấy, ngày mấy rồi, sắpđến ngày được đi học trở lại chưa? Khi xem lịch An thấy năm nay là năm nhuậnnên tháng 2 có 29 ngày An muốn biết thuật toán nào để biết năm nào là nămnhuận? Vậy em hãy giúp An Tìm số ngày của năm N, biết rằng năm nhuận lànăm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 Ví dụ,các năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945không phải là năm nhuận và có số ngày là 365
Trang 7Phân tích: Muốn học sinh biết được thuật toán tìm năm nào là năm nhuận? Các
em cũng thấy bài học của mình được ứng dụng như thế nào trong các phần mềmcủa tin học Mà phần mềm lịch cũng là ứng dụng gần gũi trong cuộc sống của các
Bài 3: Ứng dụng trong viết phần mềm học toán của trẻ em
Bài toán: Những ngày nghỉ học vì dịch bệnh Covid-19 An ở nhà phải trông em
thấy đứa em lớp 1 học toán bằng phần mềm trên máy tính Khi nhập kết quảtổng của hai số a và b bất kỳ thì máy tính đưa ra Đúng hay Sai? An nghĩ cái này
dễ mà, kỳ I học Tin mình đã được học cấu trúc rẽ nhánh có gì mà không viếtđược Em giúp An viết chương trình nhập vào hai số nguyên a, b từ bàn phím.Máy hiển thị a+b=? Người dùng nhập kết quả Máy hiển thị “Bạn làm đúng rồi”hoặc “Rất tiếc bạn làm sai rồi”
Phân tích: Các phần mềm học của trẻ em thường sử dụng rất nhiều câu lệnh if –
then để viết ví dụ như: nếu gõ đáp án đúng thì thế nào, nếu chọn hình đúng thìthế nào….Qua bài toán này để học sinh thêm yêu thích lập trình
if c=a+b then write('Ban lam dung roi!') else
write('Ban lam sai roi!');
readln
end.
Trang 8Bài 4: Ứng dụng trong toán hình học
Bài toán: Nhà trường có một khoảng đất trống sau thư viện và giao cho mỗi lớp
một mảnh vườn hình chữ nhật hoặc hình vuông để trồng hoa
a Điều kiện là hình vuông hay hình chữ nhật?
An muốn biết mảnh vườn của lớp mình là hình vuông hay hình chữ nhật Emgiúp An viết chương trình nhập vào vào độ hai đỉnh đối trên trái và dưới phảicủa một tứ giác lồi có các cạnh song song với các trục tọa độ và có tọa độ cácđỉnh là nguyên (như hình dưới)
Hình 3
Kiểm tra xem tứ giác này có phải là hình vuông hay không Nếu đúng thì đưa rathông báo “HINH VUONG”, ngược lại thì đưa ra thông báo “HINH CHUNHAT”
Phân tích: Vì các cạnh song song với trục tọa độ nên từ đỉnh trên trái và đỉnh
dưới phải có thể suy ra tọa độ của đỉnh trên phải là (u,y) Điều kiện để là hìnhvuông thêm là hai cạnh kề bằng nhau Tính độ dài cạnh trên và độ dài cạnh bênphải => điều kiện là: √(xưu)2
Trang 9write('Nhap toa do dinh tren trai (x,y):');
readln(x,y);
write('Nhap toa do dinh duoi phai (u,v):');
readln(u,v);
if abs(u-x) = abs(v-y) then write('HINH VUONG')
else write('HINH CHU NHAT');
readln
end.
b Điều kiện là tam giác và là tam giác gì?
Để cho vườn hoa của lớp mình đặc sắc các bạn trong lớp muốn các cây hoatrồng sẽ tạo thành một tam giác vuông Em giúp An viết chương trình nhập vào
3 số nguyên a, b, c Kiểm tra xem 3 số đó có tạo thành tam giác hay không? Nếu
là tam giác thì có là tam giác vuông hay không?
Phân tích: Điều kiện để 3 số là độ dài 3 cạnh của tam giác là tổng độ dài hai
cạnh bất kỳ lớn hơn cạnh còn lại Điều kiện để tam giác đã cho khi biết độ dài 3cạnh là tam giác vuông dựa vào định lý pitago: bình phương cạnh huyền bằngtổng bình phương hai cạnh góc vuông
write('Nhap 3 so nguyen a, b, c:'); readln(a,b,c);
if (a+b>c) or (a+c>b) or (b+c>a) then
begin write('La tam giac');
Bài toán: Lần đầu tiên An được đi chơi vườn bách thú An thích nhất các con
sếu vì nhiều con trong số chúng đứng một chân trông rất ngộ nghĩnh, khi đóchân kia không thấy đâu như vốn sinh ra chúng đã chỉ có một chân An đếmđược tất cả a chân Sau khi đi xem các con thú khác An lại quay về chỗ chuồngsếu Một số con đã thay đổi vị trí và cách đứng, An đếm lại lần nữa và có sốchân là b
Qua số chân thì không thể xác định chính xác có tất cả bao nhiêu con sếutrong chuồng nhưng An vẫn muốn biết có ít nhất và nhiều nhất là bao nhiêu con
Trang 10Hãy xác định và đưa ra màn hình số lượng sếu tối thiểu và tối đa Các số a và bđược nhập từ bàn phím Ví dụ, với a=3 và b=4, số lượng sếu tối thiểu là 2 và tối
đa là 3
Phân tích: Số liệu quan sát là a chân Giả sử là mỗi con đứng 2 chân thì số
lượng sếu tối thiểu sẽ là phần nguyên của a+1 chia cho 2 Số lượng sếu tối đa sẽ
là a coi như mỗi con đứng 1 chân Tương tự số liệu quan sát là b cũng vậy Kếtquả ta có bảng dưới đây:
Số liệu quan sát Số lượng sếu tối thiểu Số lượng sếu tối đa
if c > d then max:=c else max:=d;
if a >b then min:=b else min:=a;
writeln('So luong seu toi da la:',min);
writeln('So luong seu toi thieu la:',max);
readln
end.
Bài 6: Ứng dụng trong tính hoa hồng kinh doanh
Bài toán: Tèo thấy bây giờ người ta đăng bán hàng qua facebook rất nhiều Qua
tìm hiểu Tèo thấy đấy là xu hướng kinh doanh tất yếu của thời đại công nghiệp4.0 nên Tèo cũng muốn thử Tèo tìm hiểu vì mình đang đi học và chưa có vốnnên Tèo sẽ đăng bài cho một công ty, nếu bán được sản phẩm thì Tèo sẽ đượchưởng hoa hồng, với mức hoa hồng theo doanh số bán hàng tháng như sau:
5% nếu tổng doanh số nhỏ hơn hoặc bằng 2 triệu
10% nếu tổng doanh số lớn hơn 2 triệu và nhỏ hơn hoặc bằng 4 triệu
20 % nếu tổng doanh số là lớn hơn 4 triệu
Trang 11Tèo muốn tính hoa hồng mà mình được hưởng dựa trên doanh số bán hàng Emhãy giúp Tèo lập trình nhập vào từ bàn phím doanh số bán hàng (theo đơn vịtiền triệu) của Tèo mỗi tháng và đưa ra màn hình số tiền hoa hồng mà Tèo đượchưởng?
Phân tích: Tương tự bài trên sử dụng câu lệnh if – then lồng nhau với điều kiện
là doanh thu nằm trong những điều kiện đề bài cho Qua bài toán học sinh thấyđược xu hướng kinh doanh online trong thời đại công nghệ 4.0
if a<=2 then h:=0.05*a
else if(a<=4) and (a>2) then h:=0.1*a
Bài 7: Ứng dụng trong xếp loại học sinh
Bài toán: Năm học này An được cô giáo chủ nhiệm giao nhiệm vụ làm tổ
trưởng phải tổng hợp xếp loại hạnh kiểm hàng tuần của các thành viên trong tổ.Biết điều kiện điểm nề nếp của các bạn nếu:
Phân tích: Sử dụng câu lệnh if – then lồng nhau với điều kiện là điểm nề nếp
nằm trong các khoảng mà đề bài cho Có thể mở rộng bài toán xếp loại trênthành bài toán xếp loại học lực, hạnh kiểm của học sinh cuối kỳ, cuối năm họccũng làm tương tự nhưng điều kiện ràng buộc nhiều hơn bài toán trên
Chương trình đề xuất
program Xep_loai;
uses crt;
Trang 12var a:integer;
begin
clrscr;
write('Nhap diem ne nep:'); readln(a);
if a>=160 then write('Loai A')
else if(a>=130) and (a<160)then write('Loai B') else if(a>=100) and (a<130)then write('Loai C') else write('Loai D');
readln
end.
Bài 8: Tính điểm thi đấu của các đội bóng
Bài toán: Trường Tèo tổ chức giải bóng đá khối 11 có 3 đội tham gia là lớp A,
B, C Giải được tổ chức theo thể thức thi đấu vòng tròn một lượt tính điểm: Agặp B, A gập C và B gặp C Điểm mỗi trận đấu tính theo luật FIFA: Đội thắngđược 3 điểm, đội thua được 0 điểm, nếu kết quả hòa thì mỗi đội được 1 điểm.Kết quả trận A gặp B có tỉ số là p:q – đội A ghi được p bàn thắng và bị thủnglưới q lần, kết quả trận A gặp C có tỉ số là r:s – đội A ghi được r bàn thắng và bịthủng lưới s lần, kết quả trận B gặp C có tỉ số là u:v – đội B ghi được u bànthắng và bị thủng lưới v lần Em hãy giúp Tèo viết chương trình nhập từ bànphím kết quả các trận đấu và đưa ra màn hình điểm của mỗi đội?
Phân tích: So sánh cặp p-q nếu p>q thì cộng 3 điểm cho đội A, nếu p<q thì
cộng 3 điểm cho đội B, nếu bằng nhau thì cộng đội A 1 điểm, đội B 1 điểm.Tương tự so sánh cặp r-s và u-v cũng như vậy
if p<q then b:=b+3 else if p>q then a:=a+3 else
begin a:=a+1; b:=b+1; end;
if r<s then c:=c+3 else if r>s then a:=a+3 else
begin a:=a+1; c:=c+1; end;
if u<v then c:=c+3 else if u>v then b:=b+3 else
begin b:=b+1; c:=b+1; end;
writeln('Diem cua doi A la:',a);
writeln('Diem cua doi B la:',b);
writeln('Diem cua doi C la:',c);
readln
Trang 13Bài 9: Bầu ban cán sự lớp
Bài toán: Đầu năm học lớp Tèo bầu lớp trưởng Kết quả bầu lớp trưởng cho biết
bạn An được p phiếu, bạn Vinh được q phiếu, bạn Quang được r phiếu Ai cóphiếu cao nhất sẽ làm lớp trưởng Nếu có hai phiếu cùng đạt số phiếu cao nhấthoặc cả ba bạn có cùng số phiếu thì phải bầu lại Em giúp Tèo viết chương trìnhxác định tên bạn được làm lớp trưởng hay thông báo “BAU LAI”
Phân tích: Áp dụng thuật toán tìm max trong 3 số p, q, r Xét nếu p<q then
max:=q else max:=p; Sau đó so sánh max với r nếu max<r then max:=r;
if (p=q) and (q=r) then write('BAU LAI') else
begin
if p > q then max:=p else max:=q;
if max<r then max:=r;
if (max=p) and (max=q) then write ('BAU LAI') else
if (max=q) and (max=r) then write ('BAU LAI') else if (max=p) and (max=r) then write ('BAU LAI') else begin
if max= p then writeln('Ban la lop truong la: