1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hướng tiếp cận mới trong dạy bài chương trình con cho học sinh trường THPT quan sơn

21 122 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 21
Dung lượng 216 KB

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

Nội dung

Vì vậy trong khi dạy môn Tin học cho học sinh trong một lớp có sự phânhóa giữa hai đối tượng rất rõ: “đối tượng thứ nhất các em có điều kiện thực hành ở nhà tốt thì khi học Ngôn ngữ lập

Trang 1

MỤC LỤC

PHẦN I: MỞ ĐẦU 2

I LÝ DO CHỌN ĐỀ TÀI 2

II MỤC ĐÍCH NGHIÊN CỨU 3

III ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3

IV PHƯƠNG PHÁP NGHIÊN CỨU 3

PHẦN II: NỘI DUNG 4

I CƠ SỞ LÝ LUẬN 4

II THỰC TRẠNG VẤN ĐỀ 4

III CÁC BIỆN PHÁP ĐÃ TIẾN HÀNH ĐỂ GIẢI QUYẾT VẤN ĐỀ 5

3.1 Một số khái niệm 5

3.1.1 Chương trình con 5

3.1.2 Các loại biến 5

3.1.3 Lời gọi chương trình con 5

a Thủ tục (Procedure) 5

b Hàm (Function) 7

3.1.4.Truyền tham số cho chương trình con 9

3.2 Hiệu quả của chương trình con 11

* Lợi ích của chương trình con mang lại 11

IV KẾT QUẢ ĐẠT ĐƯỢC 16

1 Kết quả sau khi áp dụng sáng kiến kinh nghiệm vào thực tế 16

2 Điều kiện áp dụng sáng kiến 17

3 Đề xuất hướng tiếp tục nghiên cứu sáng kiến 17

a Đề xuất 17

b Hướng tiếp tục nghiên cứu 17

PHẦN III: KẾT LUẬN 18

TÀI LIỆU THAM KHẢO 19

PHỤ LỤC 20

Trang 2

1 PHẦN I: MỞ ĐẦU

I LÝ DO CHỌN ĐỀ TÀI

Trong thực tế hiện nay, để tổ chức lớp nhà trường thường phân bố học sinhtrong lớp dựa trên lượng kiến thức thực tế các môn nằm trong chương trình thiTốt nghiệp THPT Quốc gia và Đại học, mặt khác môn Tin học lại đòi hỏi họcsinh cần phải có điều kiện thực hành nhiều nên ngoài kiến thức lĩnh hội đượctrên lớp còn phụ thuộc vào điều kiện kinh tế của từng phụ huynh học sinh tự học

ở nhà Vì vậy trong khi dạy môn Tin học cho học sinh trong một lớp có sự phânhóa giữa hai đối tượng rất rõ: “đối tượng thứ nhất các em có điều kiện thực hành

ở nhà tốt thì khi học Ngôn ngữ lập trình các em tiếp thu tốt, nhưng khả năng tưduy toán học thì hạn chế, đối tượng khác thì khả năng tư duy Toán học tốtnhưng khả năng vận dụng Ngôn ngữ lập trình chưa được tốt” Vì thế làm chogiáo viên Tin học khi đứng lớp để dạy môn Tin học 11 về lập trình thường gặprất khó để đưa phương pháp phù hợp cho các đối tượng này trong một tiết dạy.Mặt khác vấn đề dạy học có vận dụng phương pháp tích hợp đang được BộGiáo dục và Đào tạo, các Sở Giáo dục và Đào tạo đang được triển khai và mởrông trên mọi phương diện, được vận dụng cho các bộ môn trong thực tiễnkhông chỉ dành riêng cho bộ môn Tin học

Vậy vấn đề đặt ra là làm sao chúng ta vận dụng được kiến thức Toán học

mà các em đã được học để vận dụng ngôn ngữ lập trình giải nhằm cúng cố kiếnthức toán học hoặc mở rộng kiến thức toán học trong thực tiễn, qua đó có thểnhằm giúp cho việc đáp ứng được vấn đề thiết yếu ở chỗ, các em tư duy toán tốt

có thể phát huy được thế mạnh về giải thuật, còn các em có khả năng về Ngônngữ lập trình có thể phát huy được sở trường của mình nhằm giúp cho Giáo viên

có một hướng tiếp cận mới để truyền đạt kiến thức cho hai đối tượng trên thậthiệu quả trong việc giảng dạy môn Tin học THPT cụ thể Tin học 11, phần

“Chương trình con và phân loại”, thay vì dạy đi dạy lại những bài toán quenthuộc đã được tiếp cận ở các tiết học hoặc lớp học trước đó thuận lợi cho nhữnghọc sinh có khả năng về ngôn ngữ lập trình mà làm chênh lệch kiến thức giữahai đối tượng trên

Trong thiết kế thuật giải thì chương trình con là một cách cài đặt khá quenthuộc được sử dụng để giải khá nhiều bài toán Với mục đích tổ chức chươngtrình dưới dạng chương trình con tránh được những đoạn chương trình hay phéptính lặp lại nhiều lần Tư tưởng tổ chức chương trình dưới dạng chương trìnhcon đã được viết ở nhiều tài kiệu khác nhau, trong đề tài này tôi tập trung đưa ramột số dạng bài tập từ phổ biến từ dễ đến khó có thể áp dụng phương pháp này

và phân tích tính hiệu quả của nó đối với từng bài toán, từng đối tượng

Vì thế tôi chọn đề tài: “Hướng tiếp cận mới trong dạy bài Chương trình con

và phân loại môn Tin học 11 cho học sinh trường THPT Quan Sơn”

Trang 3

II MỤC ĐÍCH NGHIÊN CỨU

Trong phạm vi đề tài của mình tôi muốn chia sẻ một số phương pháp tuykhông phải mới về mặt lý thuyết nhưng là các phương pháp khá hiệu quả trongviệc giải các bài toán tin học giúp hình thành kỹ năng giải bài toán tin học và rènluyện tư duy thuật toán từ đó rèn luyện tư duy lập trình Đây là cơ hội tốt làmquen với phương pháp lập trình Tuy chỉ trong phạm vi hẹp nhưng tôi hy vọngcùng với nổ lực của bản thân và sự giúp đỡ của đồng nghiệp sẽ có những đề tàisáng kiến kinh nghiệm tốt, lý thú và hiệu quả cho công tác giảng dạy tin học lớp

11 trường THPT Quan Sơn

Một module chỉ cần viết một lần và sau đó có thể truy xuất nó nhiều lần,bất kỳ nơi nào trong chương trình chính Khi cần thiết, ta chỉ việc gọi tênchương trình con đó ra để thi hành lệnh Học sinh hiểu được việc sử dụngchương trình con, chương trình có thể tiết kiệm được ô nhớ Đồng thời, có thểkiểm tra tính logic trong tiến trình lập trình cho máy tính điện tử, có thể nhanhchóng loại bỏ những sai sót khi cần hiệu chỉnh hay cải tiến chương trình Đây làkhái niệm cơ bản trong ý tưởng lập trình có cấu trúc Một quá trình tính cũng cóthể có nhiều chương trình con lồng ghép vào nhau

III ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

Đề tài này được áp dụng đối với học sinh thuộc lớp 11 với nhiệm vụ chủyếu là tổng hợp kiến thức môn học và vận dụng vào bài tập trong toán học vàothực tiễn phù hợp với các đối tượng trong việc giảng dạy nhằm giúp cho họcsinh ngày càng yêu thích bộ môn Tin học

- Đối tượng: Học sinh các lớp 11A5, 11A6 trường THPT Quan Sơn Năm học 2017 - 2018

- Kế hoạch nghiên cứu: Trực tiếp trong các bài dạy

- Phạm vi nghiên cứu: Trong toàn bộ chương VI

IV PHƯƠNG PHÁP NGHIÊN CỨU

Để hoàn thành đề tài này, tôi đã tiến hành và áp dụng một số phương pháp nghiên cứu sau:

 Phương pháp đặt vấn đề - giải quyết vấn đề

 Phương pháp phân tích tổng hợp

 Phương pháp tích hợp, liên môn

 Phương pháp so sánh đối chiếu

 Phương pháp thực nghiệm

Trang 4

PHẦN II: NỘI DUNG

I CƠ SỞ LÝ LUẬN

Trong xã hội ngày nay, sự bùng nổ của Internet còn sản sinh ra một lượngthông tin khổng lồ, sự thâm nhập của công nghệ thông tin đã dần dần trở nên rõnét hơn trong các hoạt động của con người, các chương trình được lập ra ngàycàng nhiều để máy tính xứ lý đã giúp con người giải phóng sức lao động trí óc,nâng cao hiệu quả làm việc, học tập, giảng dạy, giải trí… Vì vậy, đòi hỏi conngười phải có những phương pháp, kỹ thuật ngày càng hiệu quả hơn nữa để lậptrình cho máy tính xứ lý, lưu trữ, khai thác lượng thông tin hữu ích ấy Vậy bêntrong những chương trình ấy là gì? Đó chính là những thuật toán tìm kiếm, sắpxếp, tối ưu hóa… cùng với những kỹ thuật giải quyết vấn đề mang đặc trưng củaTin học

Đối với hoạt động giảng dạy bộ môn Tin học cho học sinh, việc đưa ra mộtchiến lược thiết kế giải thuật tổng quát giúp giải quyết được hầu hết các bài toántối ưu là điều kiện không thể vì mỗi bài toán có những đặc trưng phải được giảiquyết bằng một phương pháp riêng

Chương trình con là một cách tổ chức chương trình có khoa học giúp chongười lập trình tránh được sự lặp đi lặp lại của một số câu lệnh, là cách tổ chứcphố biến được sử dụng để giải quyết các bài toán phức tạp trở nên đơn giản hơn

Ưu điểm của nó là lời giải thường ngắn gon, dễ cài đặt Cái khó của nó là sự đòihỏi người học phải biết phân chia bài toán lớn thành các bài toán con và tổ chứcchương trình con cho các bài toán con, kết hợp các bài toán con tìm nghiệm chobài toán lớn

II THỰC TRẠNG VẤN ĐỀ

Khi dạy môn Tin học cho học sinh trong một lớp có sự phân hóa giữa haiđối tượng: “đối tượng thứ nhất các em có điều kiện thực hành ở nhà tốt thì khihọc Ngôn ngữ lập trình các em tiếp thu tốt, nhưng khả năng tư duy toán học thìhạn chế, đối tượng khác thì khả năng tư duy Toán học tốt nhưng khả năng vậndụng Ngôn ngữ lập trình chưa được tốt” Ví thế làm cho giáo viên Tin học khiđứng lớp để dạy môn Tin học 11 về lập trình thường gặp rất khó để đưa phươngpháp phù hợp cho các đối tượng này trong một tiết dạy Vậy ứng dụng kiến thứcToán học mà các em đã được học để vận dụng ngôn ngữ lập trình giải nhằmcúng cố kiến thức toán học hoặc mở rộng kiến thức toán học trong thực tiến, qua

đó có thể nhằm giúp cho việc đáp ứng được vấn đề thiết yếu ở chỗ, các em tưduy toán tốt có thể phát huy được thế mạnh về giải thuật, còn các em có khảnăng về Ngôn ngữ lập trình có thể phát huy được sở trường của mình nhằm giúpcho Giáo viên có một hướng tiếp cận mới để truyền đạt kiến thức cho hai đốitượng trên thật hiệu quả trong việc giảng dạy môn Tin học THPT cụ thể Tin học11

Để tiếp thu tốt các kiến thức của chương trình, người dạy phải biết cáchhướng dẫn học sinh vận dụng thật tốt các kiến thức ấy vào giải quyết những vấn

Trang 5

đề cụ thể, gần gũi trong cuộc sống thường ngày để bài giảng trở nên sinh động,thiết thực, tránh đi sự khô khan, nhàm chán cho học sinh.

Qua gần 8 năm giảng dạy tại nhà trường tôi đã rút ra được một kinh nghiệmnhằm giúp cho các em học sinh hiểu và vận dụng được phương pháp này để tăng

sự hứng thú học tập môn Tin học của học sinh

III CÁC BIỆN PHÁP ĐÃ TIẾN HÀNH ĐỂ GIẢI QUYẾT VẤN ĐỀ

3.1 Một số khái niệm

3.1.1 Chương trình con

Trong khi lập trình chúng ta thường gặp những đoạn chương trình lặp đilặp lại nhiều lần ở những chỗ khác nhau Để tránh rườm rà những đoạn chươngtrình này được thay thế bằng các chương trình con tương ứng Khi cần, ta chỉcần gọi tên chương trình con đó ra

Lý do thứ hai để xây dựng chương trình con: Một vấn đề lớn và phức tạp sẽtương ứng với một chương trình có thể rất lớn và dài Do đó việc sửa chữachương trình sẽ rất khó khăn Ta có thể phân tích nó thành các vấn đề nhỏ hơn,

để dễ kiểm tra, sau đó ghép lại thành một chương trình lớn

3.1.2 Các loại biến

Biến toàn cục: là biến chung, khai báo ở đầu chương trình, phạm vi sử

dụng trong toàn bộ chương trình Biến toàn cục sẽ tồn tại trong suốt quá trìnhthực hiện chương trình

Biến cục bộ: là biến riêng, khai báo ở đầu chương trình con, phạm vi sử

dụng bên trong thân chương trình con đó Biến cục bộ chỉ tồn tại và được cấpphát bộ nhớ khi chương trình con đang hoạt động, sẽ được giải phóng ngay saukhi chương trình con kết thúc

Tham số thực: là một tham số mà nó có thể là một biến toàn cục, một biểu

thức hoặc một giá trị số mà ta dùng chúng khi truyền giá trị cho các tham sốhình thức tương ứng của chương trình con

Tham số hình thức: là các biến được khai báo ngay sau Tên chương trình

con, nó dùng để nhận giá trị của các tham số thực truyền đến Tham số hình thứccũng là một biến cục bộ, ta có thể xem nó như là các đối số của hàm toán học

3.1.3 Lời gọi chương trình con

Để chương trình con được thi hành, ta phải có lời gọi đến chương trình con,lời gọi chương trình con thông qua tên chương trình con và danh sách các tham

số tương ứng (nếu có) Các qui tắc của lời gọi chương trình con:

Trong thân chương trình chính hoặc thân chương trình con, ta chỉ có thểgọi tới các chương trình con trực thuộc nó

Trong chương trình con, ta có thể gọi các chương trình con ngang cấp đãđược thiết lập trước đó

a Thủ tục (Procedure)

Thủ tục là chương trình con, thủ tục được đặt tên để gọi và có thể chứadanh sách tham số hình thức Các tham số này phải được đặt trong dấu ngoặcđơn ( ) Chương trình sẽ tự động truy xuất thủ tục đúng tên đã gọi và thực hiện

Trang 6

các lệnh chứa trong thủ tục đó Sau khi thực hiện thủ tục xong, chương trình sẽtrở lại ngay lập tức sau vị trí câu lệnh gọi thủ tục đó.

- Dữ liệu vào: nhập 4 số thực xA, yA, xB, yB

- Dữ liệu ra: Khoảng cách AB

Ý tưởng: Phương trình tính khoảng cách:

Write('Nhap toa do diem A='); Readln(xA,yA) ;

Write('Nhap toa do diem B='); Readln(xB,yB) ;

PROCEDURE < Tên thủ tục > (<danh sách tham số hình thức : kiểu biến>);

{ Các khai báo hằng, biến, kiểu cục bộ }

BEGIN

{ các lệnh trong nội bộ thủ tục }

END ;

Trang 7

Cấu trúc của thủ tục có tham số: Khi viết một thủ tục, nếu có các tham sốcần thiết, ta phải khai báo nó (kiểu, số lượng, tính chất, ) Các tham số này gọi

là tham số hình thức

Một thủ tục có thể có 1 hoặc nhiều tham số hình thức

- Nếu các tham số hình thức có cùng một kiểu thì ta viết chúng cách nhaubởi dấu phẩy (,)

- Nếu các kiểu của chúng khác nhau hoặc giữa khai báo tham số truyềnbằng tham biến và truyền bằng tham trị (sẽ học ở phần sau ) thì ta phải viết cáchnhau bằng dấu chấm phẩy (;)

Ví dụ : Tính khoảng cách giữa 3 điểm A, B và C khi biết tọa độ 3 điểm

A(xA,yA), B(xB,yB) và C(xC,yC)

- Dữ liệu vào: nhập 4 số thực xA, yA, xB, yB

- Dữ liệu ra: Khoảng cách AB

Ý tưởng: Phương trình tính khoảng cách:

Write('nhap toa do diem A'); Readln(xA,yA);

Write('Nhap toa do diem B'); Readln(xB,yB);

Write('Nhap toa do diem C'); Readln(xC,yC);

write('khoang cach AB='); Lines(xA,yA,xB,yB);

write('khoang cach BC='); Lines(xC,yC,xB,yB);

write('khoang cach AC='); Lines(xA,yA,xC,yC);

Readln;

END.

Trong chương trình trên x, y, u và v là các tham số hình thức của thủ tụclines Khi gọi thủ tục lines(xA,yA,xB,yB) thì tham số thực xA,yA,xB và yBđược truyền tương ứng cho tham số hình thức x, y, u và v

b Hàm (Function)

- Hàm là một chương trình con cho ta 1 giá trị kiểu vô hướng

- Hàm tương tự như thủ tục nhưng trả về một giá trị thông qua tên hàm vàlời gọi hàm tham gia trong biểu thức

Trang 8

- Tên hàm là tên tự đặt cần tuân thủ theo nguyên tắc đặt tên trong Pascal.

- Kiểu dl trả về là một kiểu vô hướng, biểu diễn kết quả giá trị của hàm

- Một hàm có thể có 1 hay nhiều tham số hình thức

+ Nếu có nhiều tham số hình thức cùng một kiểu giá trị thì ta có thể viếtcách nhau bằng dấu phẩy (,)

+ Nếu các tham số hình thức khác kiểu thì ta viết cách nhau bằng dấu chấmphẩy (;)

- Trong hàm có thể sử dụng các hằng, kiểu, biến đã được khai báo trongchương trình chính nhưng ta có thể khai báo thêm các hằng, kiểu, biến dùngriêng trong nội bộ hàm

Chú ý: là phải có một biến trung gian có cùng kiểu kết quả của hàm để lưukết quả của hàm trong quá trình tính toán để cuối cùng ta có 1 lệnh gán giá trịcủa biến trung gian cho tên hàm

Ví dụ : function lines(x,y,u,v:real): real;

Đây là một hàm số có tên là lines với 4 tham số hình thức x, y, u và v Kiểucủa x, y, u và v là kiểu số thực real Hàm lines sẽ cho kết quả kiểu số thực real

Ví dụ: Tìm khoảng cách lớn nhất giữa 3 điểm A, B và C khi biết tọa độ 3 điểm

A(xA,yA), B(xB,yB) và C(xC,yC)

- Dữ liệu vào: nhập 4 số thực xA, yA, xB, yB

- Dữ liệu ra: Khoảng cách AB

Ý tưởng:

- Phương trình tính khoảng cách:

- Tìm max của 3 số AB, AC và BC

Program lineABC;

Var t,xA,yA,xB,yB,xC,yC:real ;{ t,xA,yA,xB,yB,xC,yC biên toàn cục}

function lines(x,y,u,v:real):real; { x,y,u,v danh sách tham số}

Var line:Real; {line biến cục bộ}

Begin

line:=sqrt(sqr(u-x)+sqr(v-y));

lines:=line;

end ;

Trang 9

function maxline(x,y:real):real; {x,y danh sách tham số}

begin

if x>y then maxline:=x else maxline:=y;

end;

BEGIN

Write('nhap toa do diem A'); Readln(xA,yA);

Write('Nhap toa do diem B'); Readln(xB,yB);

Write('Nhap toa do diem C'); Readln(xC,yC);

t:=maxline(maxline(Lines(xA,yA,xB,yB),Lines(xC,yC,xB,yB)),Lines(x A,yA,xC,yC)); {lời gọi hàm line, maxline}

write('hai diem co khoang cach lon nhat=',t:8:2);

Readln;

END.

Khi khai báo kiểu dữ kiệu cho các tham số hình thức trong thủ tục và hàm,

ta cần phải chú ý điểm sau:

Nếu kiểu dữ liệu của các tham số hình thức là các kiểu dữ liệu có cấu trúc(kiểu array, string, ) thì việc khai báo kiểu dữ liệu cho các tham số hình thứcnên được khai báo theo cách gián tiếp, tức là phải thông qua từ khóa TYPE

Ví dụ: Procedure Xuat(hoten: array[1 100] of string[30]);

Chương trình con Xuat bị lỗi ở phần khai báo kiểu dữ liệu cho hai tham sốhình thức là hoten Để khắc phục lỗi này, ta sẽ khai báo gián tiếp một kiểu dữliệu arr thông qua từ khóa TYPE như sau:

TYPE arr=Array[1 100] of string[30];{arr là kiểu dữ kiệu mảng có

100 phần tử kiểu xâu}

Tiếp đến, dùng kiểu dữ liệu mới định nghĩa arr để định kiểu cho các tham

số hình thức hoten như sau:

Procedure Xuat1(hoten : arr);

3.1.4.Truyền tham số cho chương trình con

Khi truyền tham số trong Pascal, đòi hỏi phải có sự tương ứng về tên củakiểu dữ liệu của các tham số hình thức và tham số thực Một số định nghĩa vàqui tắc về truyền tham số trong Pascal: Những tham số hình thức nằm sau từkhóa VAR gọi là tham số biến Với tham số biến, các tham số thực bắt buộcphải là biến chứ không được là giá trị Khi giá trị của tham số biến thay đổi thì

nó sẽ làm thay đổi giá trị của tham số thực tương ứng và khi ra khỏi chươngtrình con đó, tham số thực vẫn giữ giá trị đã được thay đổi đó Những tham sốhình thức không đứng sau từ khóa VAR gọi là tham số trị, khi đó các tham sốthực có thể là một biến, một biểu thức, một hằng, hoặc một giá trị số Các tham

số trị nhận giá trị từ tham số thực khi truyền như là giá trị ban đầu, khi giá trịcủa tham số trị thay đổi thì nó sẽ không làm thay đổi giá trị của tham số thực,nghĩa là giá trị của tham số thực sau khi thoát khỏi chương trình con vẫn luônbằng với giá trị của tham số thực trước khi truyền đến chương trình con đó Dovậy một tham trị không bao giờ là kết quả tính toán của chương trình con

Ví dụ 1: Viết chương trình hoán vị hai giá trị a và b.

Trang 10

program Parameter;

var a,b: real; {a,b là hai biến toàn cục}

procedure hoanvi(var x,y:real); {x,y là hai tham số biến}

writeln('hai so truoc khi hoan vi ',a:4:2,' ',b:4:2);

hoanvi(a,b); {hai tham số thực a và b được truyền cho tham số biến x

và y}

writeln('hai so sau khi hoan vi ',a:4:2,' ',b:4:2);

readln;

End.

Chạy chương trình trên: Giả sử dữ liệu vào cho a=5 và b=10

Kết quả kiểm chứng qua các trường hợp như sau:

TH1: Chạy chương trình cho kết quả hoán vị ta được: a=10 và b=5

TH2: Nếu đoạn chương trình con procedure hoanvi(var x,y:real); trên được khai báo như sau:

procedure hoanvi(x,y:real); {x,y là hai tham số trị}

Sau khi chạy chương trình kết quả cho a=5 và b =10; vậy đại lượng a và b

có giá trị không thay đổi vì x và y được khai báo tham trị (không có từ khóa var)nên sau khi ra khỏi chương trình con giá trị x và y không thay đổi nên được trảlại cho a và b là giá trị trước đó

TH3: Nếu đoạn chương trình con procedure hoanvi(var x,y:real); trên được khaibáo như sau:

procedure hoanvi(x: real,var y:real); {x là tham số trị, y là tham biến}

Ngày đăng: 29/10/2019, 08:32

TỪ KHÓA LIÊN QUAN

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