1. Trang chủ
  2. » Giáo án - Bài giảng

SKKN: Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con Tin học 11

35 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 4,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu của đề tài là Góp phần đổi mới phương pháp dạy học sinh đại trà và học sinh tham dự kì thi học sinh giỏi môn Tin học theo hướng phát huy tính tích cực, chủ động và sáng tạo của học sinh giúp học sinh tiếp thu tri thức một cách có hiệu quả. Góp phần gây hứng thú học tập môn Tin học cho học sinh lớp 11 và học sinh tham gia thi chọn học sinh giỏi, tránh việc học thụ động, học vẹt. Giúp học sinh lĩnh hội tri thức một cách khoa học, củng cố và khắc sâu kiến thức.

Trang 1

SỞ GIÁO DỤC ĐÀO TẠO VĨNH PHÚC TRƯỜNG THPT YÊN LẠC 2

TIN HỌC 11

Tác giả sáng kiến: CHU THỊ THU

Mã sáng kiến: 28.62.01

Yên Lạc, năm 2020

Trang 3

MỤC LỤC

1 LỜI GIỚI THIỆU 1

2 TÊN SÁNG KIẾN 1

3 TÁC GIẢ SÁNG KIẾN 1

4 CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN 2

5 LĨNH VỰC ÁP DỤNG SÁNG KIẾN 2

6 NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG 2

7 MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN 2

7.1 Tổng quan các vấn đề nghiên cứu 2

7.1.1 Mục đích nghiên cứu 2

7.1.2 Bản chất đối tượng nghiên cứu 2

7.1.3 Đối tượng, phạm vi nghiên cứu 2

7.1.4 Phương pháp nghiên cứu 2

7.1.5 Giới hạn về không gian của phương pháp nghiên cứu 3

7.1.6 Phạm vi nghiên cứu 3

7.2 Phần nội dung 3

7.2.1 Cơ sở lý luận 3

7.2.2 Cơ sở thực tiễn 3

7.2.3 Nội dung cụ thể 4

I Khái niệm chương trình con 4

A Khái niệm 4

B Lợi ích của việc sử dụng chương trình con 4

II Phân loại và cấu trúc chương trình con 4

A Phân loại 4

B Cấu trúc chương trình con 4

C Thực hiện chương trình con 5

D Khai báo CTC 5

E Biến toàn cục và biến cục bộ 7

F Cách truyền tham số trong chương trình con 7

G Tính đệ quy của chương trình con 8

H Một số ví dụ 9

Trang 4

J Bài tập áp dụng 15

7.3 Khả năng áp dụng của sáng kiến 22

8 NHỮNG THÔNG TIN CẦN BẢO MẬT 23

9 CÁC ĐIỀU KIỆN CẦN THIẾT ĐỂ ÁP DỤNG SÁNG KIẾN 23

10 LỢI ÍCH THU ĐƯỢC 23

KẾT LUẬN 28

TÀI LIỆU THAM KHẢO 29

Trang 5

BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN

1 LỜI GIỚI THIỆU

Để rèn luyện kỹ năng lập trình cho học sinh khá, giỏi trước khi chọn đội tuyển đithi học sinh giỏi môn Tin học có rất nhiều cách mà giáo viên có thể áp dụng đối với cácđối tượng học sinh khác nhau Các trường có điểm thi đầu vào cao thì việc rèn luyện kỹnăng sẽ có nhiều thuận lợi nhưng với các trường có điểm thi đầu vào trung bình và thấpthì việc rèn luyện kỹ năng lập trình cho các em gặp rất nhiều khó khăn Tuy nhiên trongcùng một trường với các đối tượng học sinh khác nhau giáo viên có thể áp dụng nhiềubiện pháp khác nhau để rèn luyện kỹ năng lập trình cho học sinh với hiệu quả khác nhau.Các giáo viên đều hướng dẫn cho học sinh biết một bài toán có thể được giải với nhiềuthuật toán khác nhau và mỗi thuật toán chỉ giải được một bài toán hoặc một lớp bài toán,nhưng thực tế cho thấy, đứng trước một bài toán tin học đặc biệt là bài toán về xâu kí tựhọc sinh thường lúng túng khi lập trình việc này cũng có thể do nhiều nguyên nhân,chẳng hạn không biết xử lý dữ liệu như thế nào, không biết đọc, ghi dữ liệu ra sao… ,mặt khác học sinh không có máy để thực hành thêm ở nhà Tuy nhiên, khi học sinh đượcrèn luyện từ những bài cơ bản cho đến những bài toán có dạng tương tự hoặc dạng mởrộng từ một bài toán cơ bản nào đó trong sách giáo khoa, hoặc một bài toán cơ bản nào

đó mà các em biết thì các em có thể xây dựng và có hứng thú để xây dựng thuật toán chobài toán đặt ra Vì vậy giáo viên có thể chọn các bài tập cơ bản liên quan đến mảng mộtchiều, mảng hai chiều, xâu kí tự từ đó mở rộng và phát triển đến các bài toán có sử dụngchương trình con để để rèn luyện kỹ năng lập trình và kích thích hứng thú học tập bộ mônTin học cho học sinh

Dĩ nhiên cách làm này không mới với giáo viên nhưng cách chọn các bài toán cơbản như thế nào để học sinh có thể vận dụng và kích thích được húng thú học tập mônTin học cho học sinh đó lại là điều đáng quan tâm

Chương trình con là một trong những vấn đề hay gặp trong lập trình nói chung và

lập trình pascal nói riêng Chương trình tin học lớp 11 đã giới thiệu và có một số ví dụ vềchương trình con nhưng trong quá trình học lập trình khô khan, để học sinh không nhàmchán và tránh mắc phải những sai lầm khi lập trình lại kích thích hứng thú học tập cho

học sinh không phải là việc đơn giản Vì những lý do trên tôi chọn đề tài “Kích thích

hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con tin học 11”

nhằm cung cấp cho học sinh những kiến thức khái quát hơn về chương trình con, rènluyện kỹ năng lập trình và kích thích hứng thú học tập bộ môn này cho học sinh thôngqua một số bài toán cụ thể

2 TÊN SÁNG KIẾN

“Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con tin học 11”

Trang 6

3 TÁC GIẢ SÁNG KIẾN

- Họ và tên: Chu Thị Thu

- Địa chỉ: Trường THPT Yên Lạc 2 – Huyện Yên Lạc – Tỉnh Vĩnh Phúc

- Số điện thoại: 037467972 E_mail:chuthu.yl2@gmail.com

4 CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN

- Họ tên: Chu Thị Thu

- Trình độ chuyên môn: Đại học sư phạm Tin học

- Đơn vị công tác: Trường THPT Yên Lạc 2– Huyện Yên Lạc – Tỉnh Vĩnh Phúc

5 LĨNH VỰC ÁP DỤNG SÁNG KIẾN

Ứng dụng chương trình con trong lập trình giảng dạy học sinh lớp 11 môn Tin học

và bồi dưỡng học sinh tham gia kì thi chọn học sinh giỏi các cấp môn Tin học

6 NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG

Từ ngày 01/08/2018

7 MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN

7.1 Tổng quan các vấn đề nghiên cứu

7.1.1 Mục đích nghiên cứu

Góp phần đổi mới phương pháp dạy học sinh đại trà và học sinh tham dự kì thi họcsinh giỏi môn Tin học theo hướng phát huy tính tích cực, chủ động và sáng tạo của họcsinh giúp học sinh tiếp thu tri thức một cách có hiệu quả

Góp phần gây hứng thú học tập môn Tin học cho học sinh lớp 11 và học sinh thamgia thi chọn học sinh giỏi, tránh việc học thụ động, học vẹt Giúp học sinh lĩnh hội trithức một cách khoa học, củng cố và khắc sâu kiến thức

Qua đề tài này tôi mong muốn cung cấp cho học sinh một trong những vấn đề màcác em đang gặp phải trong khi lập trình thông qua việc sử dụng chương trình con giúpcác em chủ động hơn trong học tập, tích luỹ kiến thức, kỹ năng lập trình

7.1.2 Bản chất đối tượng nghiên cứu

Đưa ra hệ thống lý thuyết về chương trình con và ứng dụng chương trình con giảicác bài tập trong ngôn ngữ lập trình Pascal giúp học sinh lĩnh hội tri thức, giúp các emtích cực, chủ động tích lũy kiến thức, kích thích hứng thú học tập bộ môn Tin học Qua

đó, học sinh phát triển được tư duy logic thông qua hệ thống bài tập giúp các em rènluyện được tính tự giác, tính kỉ luật, thói quen tự học đó là những đức tính rèn luyện tốtcủa học sinh

7.1.3 Đối tượng, phạm vi nghiên cứu

Đối tượng: Chương trình con trong lập trình

Phạm vi: Các vấn đề về chương trình con trên ngôn ngữ lập trình Pascal

Trang 7

7.1.4 Phương pháp nghiên cứu

Phương pháp

Nghiên cứu lí luận chung

Khảo sát điều tra thực tế dạy học

Tổng hợp đúc rút kinh nghiệm

Cách thực hiện

Trao đổi với đồng nghiệp, tham khảo ý kiến giáo viên cùng bộ môn Liên hệ thực

tế trong nhà trường, áp dụng và đúc rút kinh nghiệm qua quá trình giảng dạy Thông quaviệc giảng dạy trực tiếp học sinh khối 11 và học sinh tham gia thi chọn học sinh giỏi mônTin học lớp 11

7.1.5 Giới hạn về không gian của phương pháp nghiên cứu

Đề tài được đề cập với đồng nghiệp và thực nghiệm sư phạm qua các em học sinhlớp 11A1, 11A2 và các em học sinh tham gia dự kì thi chọn học sinh giỏi môn Tin họclớp 11 năm học 2017-2018, năm học 2018-2019

là không cao, một số học sinh kém hơn thì không biết cách tìm thuật toán từ đâu và điều

đó gây tâm lý chán nản cho các em Với tình hình ấy để giúp học sinh định hướng tốt hơntrong quá trình tìm thuật toán, trước khi có thể tự tìm được thuật toán tốt hơn thì ngườigiáo viên cần tạo cho học sinh thói quen tìm thuật toán từ các các bài toán cơ bản quenthuộc mà các em đã biết, khai thác các yếu tố đặc trưng của một số bài toán cơ bản sửdụng chương trình con để giải quyết cho các bài toán mới Việc áp dụng thuật toán củacác bài toán cơ bản về chương trình con xây dựng thuật toán cho các bài toán tương tựhoặc các bài toán mở rộng từ các bài toán cơ bản đó là một quá trình giúp học sinh kíchthích hứng thú học tập và rèn luyện kỹ năng lập trình

7.2.2 Cơ sở thực tiễn

Trường tôi nằm dưới chân đê dải sông Hồng nên đa số học sinh ở nông thôn nên chưa có

cơ hội, điều kiện tiếp xúc với công nghệ và máy tính Vì vậy, tin học là một môn học tươngđối lạ lẫm và khó đối với học sinh trường tôi Học sinh học trên lớp đã không có hứng thúhọc tin học đặc biệt là các bài lập trình vì các em không học thêm hay tin học không phải là

Trang 8

môn mà các em thi đại học Điều này dẫn đến ý thức tự giác của học sinh chưa cao, đặc biệt

là đối với môn học lập trình Tin học lớp 11 Những thao tác thực hành thì đa phần học sinhchưa nhớ vì ở nhà các em cũng không có máy tính để học sinh rèn luyện các kỹ năng thựchành cho học sinh Phần chương trình con là phần các em học rất ít trên tiết lý thuyết Cơ sởtrên đã giúp tôi áp dụng đề tài kích thích hứng thú học tập bộ môn Tin học thông qua chươngtrình con trong lập trình Pascal giảng dạy cho học sinh khối 11 và áp dụng cho học sinh tham

dự kì thi chọn học sinh giỏi cấp tỉnh và cấp quốc gia

B Lợi ích của việc sử dụng chương trình con

II Phân loại và cấu trúc chương trình con

A Phân loại

Trong nhiều ngôn ngữ lập trình, chương trình con thường gồm hai loại:

một giá trị qua tên của nó

Ví dụ:

Sin(x) nhận vào giá trị thực x và trả về giá trị sin x

Sqrt(x) nhận vào gía trị x trả về giá trị căn bậc hai của x

Length(x) nhận vào xâu x và trả về độ dài của xâu x

không trả về giá trị nào qua tên của nó

Ví dụ: Các thủ tục vào/ra chuẩn hay thủ tục xử lí xâu: writeln, readln, delete

B Cấu trúc chương trình con

<phần đầu>

Trang 9

[<phần khai báo>]

<phần thân>

Phần đầu: Cấu trúc chương trình con tương tự chương trình chính, chương trình chính,

nhưng nhất thiết phải có phần đầu để khai báo tên, nếu là Hàm thì phải có khai báo

kiểu dữ liệu trả về.

Phần khai báo: Có thể khai báo cho dữ liệu vào ra, các hằng được sử dụng trong

chương trình con

Phần thân: Là dãy các lệnh được thực hiện trong chương trình con từ dữ liệu vào và

được kết quả như mong muốn Phần này luôn nằm giữa hai từ khóa là Begin và End Ở giữa là các thao tác cần thực hiện Sau từ khóa End là dấu chấm phẩy (;).

oMột số lưu ý:

Một chương trình con có thể có hoặc không có tham số hình thức, có thể có hoặckhông có biến cục bộ

C Thực hiện chương trình con

hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số (nếu có) là cáchằng và biến chứa dữ liệu vào và ra tương ứng với các tham số hình thức đặt trongcặp ngoặc ( và ) Các hằng và biến này được gọi là các tham số thực số thực sự

của tham số thực sự tương ứng Khi xuất dữ liệu thì tham số hình thức lưu trữ dữ liệu

ra sẽ trả giá trị cho tham số thực sự tương ứng

D Khai báo CTC

– Nhắc lại cấu trúc của một chương trình

PROGRAM Tên_chương_trình; { Tên chương trình}

USES ; {Khai báo thư viện}

CONST ;{Khai báo hằng}

TYPE ;{Khai báo kiểu}

VAR ;{Khai báo biến}

Khai báo CTC

BEGIN {Chương trình chính}

<các lệnh>;

Trang 10

Như vậy phần khai báo CTC nằm ở phần cuối của phần khai báo

a Khai báo và lời gọi hàm

– Khai báo:

FUNCTION <tên hàm>(Danh sách ác tham số):<Kiểu dữ liệu>;

[Khai báo Const, Type, Var]

Trang 11

<tên thủ tục>(danh sách các tham số thực);

Ví dụ:

inso(6);

E Biến toàn cục và biến cục bộ

được dùng ở mọi nơi trong chương trình và tồn tại trong suốt thời gian làm việc củachương trình

được sử dụng trong phạm vi ctc mà nó được khai báo Sau khi kết thức ctc các biếnnày sẽ không còn tồn tại

Ví dụ:

PROGRAM vidu;

Var a,b,c:integer; {3 biến toàn cục}

PROCEDURE thutuc(n:integer);{n là biến cục bộ}

var i:integer; {i là biến cục bộ}

Trong trường họp biến cục bộ trùng tên với biến toàn cục thì máy không bị nhầm lẫn mà

sẽ thực hiện trên biến cục bộ Biến toàn cục không bị ảnh hưởng

F Cách truyền tham số trong chương trình con

tiếp biến toàn cục

với khi khai báo ctc

inso(13,'a'); {lời gọi đúng}

inso('a',13); {loi goi sai}

inso(13);{lời gọi sai}

Trang 12

Tham số thực sự là các tham số sau tên hàm và thủ tục trong lời gọi.

biến chứ không được là giá trị Tham biến có thể được thay đổi trong CTC và sau khi rakhỏi CTC nó vẫn giữ giá trị thay đổi đó

thực có thể là các giá trị, hằng, biến Tham trị có thể thay đổi trong ctc nhưng sau khi kếtthúc ctc giá trị của nó trở về như ban đầu

hoặc tham biến

kiểu dữ liệu có cấu trúc (Array, Record, File)

Chú ý: Nếu một công việc có thể làm bằng hàm thì chắc chắn sẽ làm được bằng thủ

tục {tuy nhiên sẽ phức tạp hơn khi dùng hàm} nhưng một chương trình làm bằng thủtục thì chưa chắc ta đã làm được bằng hàm

Đối với Borland Pascal 7.0 ta có thể gọi hàm như gọi một thủ tục Không nhất thiếtphải lấy giá trị trả về Để thực hiện được điều này trong menu Options >Compiler cầnkhai báo cú pháp mở rộng (Extended syntax), hoặc trong chương trình cần có dẫn hướngbiên dịch {$ X+} Nếu không, khi biên dịch (gõ F9) Pascal sẽ thông báo lỗi “Error 122:Invalid variable reference”

G Tính đệ quy của chương trình con

Một CTC trong Pascal có thể gọi về chính nó Một lời gọi như thế gọi là một lờigọi đệ quy Ta xét ví dụ sau:

Trang 13

 Khi sử dụng đệ quy phải có điều kiện kết thúc đệ quy (TH suy biến) Trong ví dụ

ta xét điều kiện kết thúc đệ quy chính là n=0 Nếu không có điều kiện kết thúc nàychương trình của ta sẽ lặp vô hạn

H Một số ví dụ

Ví dụ 1: Cho số nguyên dương N (N<105) Viết chương trình chuyển đổi số tự nhiên Ncho trước sang hệ cơ số 2 bằng việc xây dựng hàm chuyển đổi Dec2Bin( )

Hướng dẫn:

- Xây dựng hàm Dec2Bin( ) chuyển đổi từ số tự nhiên sang số nhị phân

Sử dụng biến S để lưu giá trị số nhị phân của N Khởi gán bằng 0

Tiến hành lặp chuyển đổi cơ số: Lặp trong khi mà N > 0

SoDu = số dư của N chia cho 2

N = N chia cho 2

Bổ sung chữ số SoDu vào số S thành một chữ số

Trả về kết quả cuối cùng của S

- Viết thân chương trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.Khai báo biến N, M

Thông báo nhập và nhập giá trị cho biến N

Gán giá trị M bằng kết quả trả về của hàm Dec2Bin( N )

In thông báo về kết quả số nhị phân chuyển đổi được (giá trị của M)

Gọi hàm readln trước khi kết thúc chương trình

Chương trình:

Program Doi_Co_So;

Uses crt;

Var N:integer;

{ 1 Thu tuc chuyen so tu nhien n cho truoc sang ket qua tra ve he co so 2 }

Function Dec2Bin ( n:integer ):integer;

Trang 14

write( 'Nhap so N =' ); readln(N );

writeln(' Dang nhi phan cua N la ', Dec2Bin(N) );

Kiểu dữ liệu trả về: integer

Tham số: 2 tham trị là int a, int b

Giá trị trả về: chính là giá trị ước số chung lớn nhất của a và b

Function USCLN( a, b: Integer): Integer;

Trang 15

{Tuong tu ham BSCNN(a, b : Integer)}

Function BSCNN(a,b: Integer): Integer;

Var k :integer;

Begin

For k := a to a*b do { Lap voi moi i co gia tri tu a den 1}

If ((k mod a = 0) and ( k mod b = 0)) then { Kiem tra a, b cung chia het cho k? } Break; { break de thoat, luu giu lai gia tri cua k.}

BSCNN:= k;

End;

* Mở rộng bài toán:

Từ ví dụ 2, viết chương trình tối giản phân số n/m Với n, m là hai số nguyên

Ví dụ 3: Cho số nguyên dương N (N<105) Viết hàm kiểm tra số N có phải là số nguyên

Xử lý kiểm tra: Dựa trên ví dụ đã có ở phần trước

Function KiemtraSNT(N: Integer ): Boolean;

Var OK : Boolean;

i : Integer;

Begin

OK:= True; { Khoi gan gia tri dung cho ktrSNT}

For i := 2 to trunc(sqrt(N)) do { Lap voi moi i co gia tri tu 2 den phan nguyencan bac 2 cua N}

If N mod i = 0 then { Kiem tra xem N co chia het cho i hay khong} Begin OK:=false; break; end;

{ Neu dung thi khong la so nguyen to va thoat khoi vong lap}

KiemtraSNT:=OK;

Trang 16

Cải tiến thuật toán, không sử dụng biến phụ OK:

Function KiemtraSN(N: Integer): Integer;

2 Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ?

3 Viết hàm tính diện tích của tam giác

4 Viết hoàn thiện chương trình chính

Chương trình mẫu

Program Tam_Giac;

Uses crt;

Var a,b,c : Integer;

{ 1 Thu tuc nhap}

Procedure NhapABC (Var a, b, c : Integer);

Begin

Write( 'Nhap a:' ); Readln( a );

Write( 'Nhap b:' ); Readln( b );

Write( 'Nhap c:' ); Readln( c );

End;

Trang 17

{ 2 Ham tinh dien tich}

Function Dientich( a, b, c:Integer ) : Real;

{ 3 Thu tuc kiem tra va In kqua tinh dien tich (neu la tam giac) }

Procedure KiemTra_InDienTich ( a,b,c:Integer);

Begin

If ((a+b>c) and (b+c>a) and (a+c>b)) then

Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) )

để lưu lại giá trị đã nhập vào

với ý tưởng thuật toán:

Chia N cho số nguyên tố u (nhỏ nhất là 2)

Ngày đăng: 29/04/2021, 17:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w