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

Giải pháp phát huy tính tích cực trong học tập của học sinh đồng thời nâng cao chất lượng giảng dạy chương trình con

17 169 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 17
Dung lượng 108 KB

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

Nội dung

Sử dụng phương pháp nội dung như thế nào để qua mỗi phần học, tiết học học sinh hiểu được kiến thức đã học trên lớp, qua đó thích thú với kiến thức mới, đồng thời học sinh thấy được tầm

Trang 1

MỤC LỤC

A PHẦN MỞ ĐẦU……… ……….………2

1 Lí do chọn đề tài……… …….……….…….2

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

3 Đối tượng nghiên cứu……….……… ……… 2

4.Phương pháp nghiên cứu……… ….3

B NỘI DUNG……… ………….……4

1 Cơ sở lí luận……… ……… ……

……….4

2 Thực trạng vấn đề trước khi áp dụng sáng kiến… …….……4

3 Tóm tắt lí thuyết……….… …….4

4 Tổ chức thực hiện các giải pháp……… … …… 5

5 Bài học kinh nghiệm……… … …… 14

6 Hiệu quả của sáng kiến……… … …… 14

C PHẦN KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN SÁNG KIẾN 17

D TÀI LIỆU THAM KHẢO……… … 17

Trang 2

A PHẦN MỞ ĐẦU

1 Lí do chọn đề tài

Hiện nay nước ta đang trong giai đoạn đổi mới phương pháp dạy - học Yêu cầu người giáo viên phải lựa chọn nhiều phương pháp giảng dạy và xây dựng các đề án dạy học theo chuyên đề Mục tiêu là giúp học sinh chủ động tích cực trong học tập, nắm bắt được kiến thức cơ bản của bộ môn, từ đó tạo được lòng đam mê, hứng thú các môn đã học Nhất là do đặc điểm của môn Tin học khối

11, học ngôn ngữ lập trình, học sinh rất khó khăn để tiếp thu kiến thức vì các câu lệnh trong ngôn ngữ lập trình rất cô đọng ngắn gọn, dễ nhầm lẫn và hiểu nó một cách trừu tượng

Xuất phát từ thực tiễn giảng dạy tại trường THPT 4 Thọ Xuân với đa số học sinh có học lực trung bình và yếu, tôi thấy rằng cần phải thiết kế bài giảng cho phù hợp với nội dung kiến thức, phương pháp, phương tiện dạy học, phù hợp với từng đối tượng học sinh để đạt hiệu quả cao trong mỗi phần học, tiết học Sử dụng phương pháp nội dung như thế nào để qua mỗi phần học, tiết học học sinh hiểu được kiến thức đã học trên lớp, qua đó thích thú với kiến thức mới, đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp ứng nhu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc thực tiễn trong đời sống xã hội Chính vì vậy tôi

mạnh dạn chọn đề tài “Giải pháp phát huy tính chủ động tích cực trong học

tập của học sinh đồng thời nâng cao chất lượng giảng dạy chương trình con”

làm chuyên đề báo cáo cho tổ chuyên môn và cho toàn trường Trước hết phục

vụ cho việc dạy học của mình góp phần nâng cao chất lượng học tập của học sinh trong nhà trường, sau đó là cùng các đồng nghiệp xây dựng các chuyên đề dạy học theo hướng đổi mới

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

Một số biện pháp giảng dạy chương trình con có hiệu quả nhằm giúp học sinh lĩnh hội lí thuyết một cách tốt nhất Thông qua một số bài tập mẫu về hàm

Trang 3

và thủ tục giúp cho học sinh nắm được phương pháp giải chung, từ đó áp dụng

để giải một số bài toán cơ bản và nâng cao có sử dụng chương trình con

3 Đối tượng nghiên cứu

- Chuẩn kiến thức tin học 11

- Các giải pháp tổ chức dạy học theo chủ đề, nội dung

- Học sinh các lớp 11

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

- Chia nội dung kiến thức của chương trình thành từng mục, từng nội dung nhỏ, từng chủ đề

- Vận dụng các phương pháp đổi mới giáo dục vào dạy học như: Đặt vấn

đề, diễn giải, thuyết trình, vấn đáp, làm việc với nhóm

- Nội dung kiến thức sách giáo khoa, bài tập, máy chiếu, máy tính, phần mềm pascal

- Khảo sát thực tế, tổng hợp thông tin, xử lí số liệu

Trang 4

B NỘI DUNG

1 Cơ sở lí luận

- Ngày nay việc lập trình để giải quyết các bài toán trong các lĩnh vực đã trở nên

rất phổ biến Để giải quyết các bài toán lớn thì cách lập trình không sử dụng chương trình con khó có thể thực hiện đặc biệt là đối với các bài toán lớn cần nhiều người tham gia

- Làm cơ sở cho học sinh sau này tiếp cận với phương pháp lập trình khác

2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm

a Thuận lợi

- Học sinh đã được tiếp cận một số thuật toán của một vài bài toán cơ bản ở các bài học trước

- Đã sử dụng ngôn ngữ lập trình Pascal để viết chương trình giải quyết các bài toán trong quá trình học

- Được sự hỗ trợ của các thành viên trong tổ

b Khó khăn

- Do bước đầu tiếp cận việc lập trình nên khả năng còn hạn chế

- Khả năng diễn đạt cách giải một bài toán sang thuật toán còn nhiều khó khăn do học sinh vùng nông thôn khả năng tin học còn hạn chế

- Khả năng chuyển đổi từ thuật toán đã biết sang ngôn ngữ lập trình cụ thể còn gặp nhiều khó khăn

- Học sinh vận dụng chương trình con giải quyết các bài toán còn gặp nhiều khó khăn, bỡ ngỡ, nếu không hiểu xâu, hiểu kĩ sẽ rất khó vận dụng

3 Tóm tắt lí thuyết

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

Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện( được gọi) từ nhiều vị trí trong chương trình chính

b Phân loại chương trình con

- Phân loại

• Hàm (function) là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên qua nó

• Thủ tục( procedure) là chương trình con thực hiện các thao tác nhất định nhưng không trả về giá trị qua tên của nó

- Cấu trúc của chương trình con

procedure

<tênthủtục>[(DSTS)];

[<phần khai báo>];

Begin

[<Dãy lệnh>];

End;

Function<tênhàm>[(DSTS)]:<kiểuDL>;

[<phần khai báo>];

Begin [<Dãy lệnh>];

Tênhàm:= giá trị trả về;

End;

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

Trang 5

• Tham số hình thức: Các biến được khai báo cho dữ liệu vào/ra được gọi là tham

số hình thức

• Tham số thực sự: Để thực hiện gọi một chương trình con, ta cần phải có lệnh gọi

nó tương tự lệnh gọi 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ác hằng và các biến chứa dữ liệu vào ra tương ứng với các tham số hình thức đặt trong cặp dấu ngoặc ( ) Các hằng và biến này gọi là tham số thực sự

• Biến cục bộ là biến được khai báo dùng riêng trong chương trình con

• Biến toàn cục là biến được khai báo dùng tại mọi vị trí trong chương trình

• Tham số giá trị( tham trị) trong lệnh gọi chương trình con các tham số hình thức được thay bằng các tham số thực sự tương ứng là các giá trị cụ thể được gọi là các tham số giá trị

• Tham số biến( tham biến) trong lệnh gọi chương trình con các tham số hình thức được thay bằng các tham số thực sự tương ứng là các biến chứa dữ liệu ra được gọi là các tham số biến

• Để phân biệt tham số biến và tham trị, Pascal sử dụng từ khóa Var để khai báo tham số biến

4 Tổ chức thực hiện các giải pháp

Để giảnh dạy chương VI “Chương trình con và phân loại” có hiệu quả đối với

học sinh của mình, để học sinh nắm được kiến thức kĩ năng theo yêu cầu của chương trình, tôi xin đưa ra một số giải pháp như sau:

a Giải pháp 1: Phân bố lượng kiên thức rõ ràng phù hợp với từng tiết dạy:

Kiến thức trong mỗi tiết dạy được đề nghị như sau:

• Tiết 1: Khái niệm chương trình con

• Tiết 2: Cấu trúc và phân loại chương trình con

• Tiết 3: Vị trị đặt chương trình con trong chương trình chính

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

Khái niệm biến toàn cục, biến cục bộ

Tham số hình thức,tham số thực sự

Tham biến, tham trị

• Tiết 4+ 5: Bài tập về hàm và thủ tục

• Tiết 6 + 7 +8 : Thực hành các bài tập về hàm và thủ tục

b Giải pháp 2: Chọn bài toán ví dụ mở đầu phù hợp với trình độ học sinh và có thể sử

dụng xuyên suốt trong quá trình trình bày kiến thức của chương

Đây là vấn đề giáo viên quan tâm nhiều nhất, bởi vì bài toán mở đầu rất quan trọng: Vừa mang kiến thức bài cũ vừa đặt vấn đề cho nội dung bài mới cần tìm hiểu Bài toán mở đầu khó quá sẽ gây áp lực ban đầu cho học sinh, các em thấy khó sẽ thoái chí, không hứng thú tìm hiểu bài Bài toán mở đầu dễ quá sẽ không kích thích được tính tò mò ham học hỏi của học sinh Vì vậy giáo viên phải chọn bài toán mở đầu vừa phù hợp với trình độ của học sinh vừa đặt được vấn đề cho bài mới gây chú ý, khám phá, tìm tòi cho học sinh

Trong SGK Tin học 11( trang 90) đưa ra bài toán Tluythua= an + bm+ cp+dq làm

ví dụ mở bài Với bài toán ví dụ này tôi thấy chưa đáp ứng hết được yêu cầu để đưa đến học sinh khái niệm chương trình con một cách tốt nhất, chưa bao quát và xuyên

Trang 6

suốt hết được kiến thức lí thuyết của chương này Vì vậy bản thân tôi đưa ra hai bài toán ví dụ mở đầu sau:

Bài toán 1: Tính tổng lũy thừa S=ax+by+cz Trong đó a, b, c là các số thực; x, y,

z là các số nguyên dương Giá trị của các số này được nhập vào từ bàn phím khi chạy chương trình

Với bài toán này tôi thực hiện chương trình bằng 2 cách (sử dụng chương trình con và không sử dụng chương trình con)

Program Tong_luy_thua; { cách 1}

Var tluythua,luythua1, luythua2, luythua3: real;

A, b,c: real;

I, x,y,z: integer;

Begin

Write(‘ hay nhap du lieu theo thu tu a, b, c, x, y, z: ‘);

Readln(a,b,c,x,y,z);

Luythua1:= 1.0;

For i:=1 to x do luythua:=luythua*a;

Luythua2:= 1.0;

For i:=1 to y do luythua:=luythua*b;

Luythua3:= 1.0;

For i:=1 to z do luythua:=luythua*c;

Tluythua:= luythua1+luythua2+luythua3;

Writeln(‘ tong lua thua la:’, tluythua);

Readln;

End.

Program Tong_luy_thua; {cach 2}

Uses CRT;

Var a,b,c: real;

x, y, z: word;

Fucntion Luythua(x:real; k: word): real;

Var i: integer;

T:real;

Begin

T:= 1;

For i:=1 to k do

T:= T* x;

Luythua:=T;

End;

BEGIN

Clrscr;

Write(‘nhap a,b,c,x,y,z:’); readln(a,b,c,x,y,z);

S:=Luythua(a,x)+ Luythua(b,y)+Luythua(c,z);

Write(‘Tong luy thua:’,s:8:2);

Readln

END.

Trang 7

Với bài toán 1 cần phân tích để học sinh thấy được việc lặp lại các đoạn lệnh

giống nhau trong một chương trình, sử dụng nhiều biến, ,nếu tăng các phần tử lũy thừa sẽ làm cho chương trình dài và khó theo dõi, sử dụng nhiều biến dẫn đến tốn bộ nhớ Dẫn dắt học sinh còn cách lập trình khác và giáo viên sẽ thực hiện chương trình bằng cách này để học sinh theo dõi

Bài toán 2: Viết chương trình nhập vào số nguyên dương N (N≤ 300) và dãy A

gồm N số nguyên Sắp xếp dãy số vừa nhập thành dãy không giảm và xuất dãy được sắp xếp ra ngoài màn hình

• Phân tích: Đây là bài toán quen thuộc học sinh đã được tìm hiểu ở bài mảng một chiều Vì vậy tôi thực hiện chương trình này bằng cách không sử dụng chương tình con mà học sinh đã được tìm hiểu:

Program sapxepdayso;

Uses CRT;

Const Nmax = 300;

Type ArrInt = Array[1 300] of integer;

Var

A: ArrInt;

N,I,j,t: integer;

Begin

Clrscr;

Write(‘ nhap so lương phan tu cua day so:’);

Readln(N);

For i:=1 to N do

Begin Write(‘phan tu thu ‘,I,’+’);

Readln(A[i]);

End;

For j:= N downto 2 do

For i:= 1 to j-1 do

If A[i] > A[i+1] then Begin

t:= A[i];

A[i]:=A[j];

A[j]:= t;

End;

Writeln(‘ day so dươc sap xep la:’);

For i:= 1 to N do write(A[i]:4);

Readln;

End

• Phân tích: Chương trình trên thực hiện rất nhiều công việc Sẽ khó theo dõi, chỉnh sửa và đặc biệt với những bài toán lớn nếu chúng ta thiết kế chương trình theo dạng này sẽ gặp rất nhiều khó khăn Vì vậy cần phân tích để học sinh nhận ra nên:

- Thiết kế một chương trình con phục vụ việc nhập dãy số

- Thiết kế một chương trình con phục vụ việc xuất dãy số ra màn hình

Trang 8

- Thiết kế một chương trình con dùng để thực hiện công việc sắp xếp Chương trình:

Program sapxepdayso;

Uses CRT;

Const Nmax = 300;

Type ArrInt = Array[1 300] of integer;

Var

A: ArrInt;

N: integer;

Procedure Nhap_Mang(var A: ArrInt; var M: integer);

Var i: integer;

Begin

Write(‘Nhap so phan tu cua day so:’); Readln(M);

For i:=1 to M do

Begin

Write(‘A[‘,i,’]=’); Readln(A[i]);

End;

End;

Procedure Hoan_doi(var a,b:integer);

Var tam: integer;

Begin

tam:= a;

a := b;

b:= tam;

End;

Procedure Sap_xep(var A: ArrInt; M: integer);

Var i, j: integer;

Begin

For j:=M downto 2 do

For i:=1 to j-1 do

If A[i] > A[i+1] then Hoan_doi(A[i],A[i+1]);

End;

Procedure Xuat_mang(A: ArrInt; M: integer);

Var i: integer;

Begin

For i:=1 to M do

Write(A[i]: 5);

End;

BEGIN

Clrscr;

Nhap_mang(A,n);

Sap_xep(A,n);

Xuat_mang(A,n)

Trang 9

Readln

END

Với bài toán 2 bằng việc phân tích và lập luận giáo viên sẽ đưa đến cho học sinh

sự cần thiết chia bài toán lớn thành các bài toán nhỏ để giải quyết Từ đây giáo viên diễn giải để học sinh đến với khái niệm chương trình con một cách thuận lợi và hiệu quả

• Trong các tiết 2 + 3: Vẫn sử dụng hai chương trình trên để đưa ra kiến thức sau:

- Hai loại chương trình con( hàm và thủ tục)

- Cấu trúc của từng loại chương trình con

- Vị trí chương trình con

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

- Biến cục bộ

- Biến toàn cục

- Tham số hình thức

- Tham số thực sự

Program Tong_luy_thua;

Uses CRT;

Var a,b,c: real; {a,b,c, x,y,z: biến toàn cục}

x, y, z: word;

Fucntion Luythua(x:real; k: word): real; { sử dụng hàm, x, k: tham số hình thức}

Var i: integer; { I, T : biến cục bộ}

T:real;

Begin

T:= 1;

For i:=1 to k do

T:= T* x;

Luythua:=T;

End;

BEGIN

Clrscr;

Write(‘nhap a,b,c,x,y,z:’); readln(a,b,c,x,y,z);

S:=Luythua(a,x)+ Luythua(b,y)+Luythua(c,z); {có 3 lời gọi hàm}

Write(‘Tong luy thua:’,s:8:2);

Readln

END.

Chương trình:

Program sapxepdayso;

Uses CRT;

Const Nmax = 300;

Type ArrInt = Array[1 300] of integer;

Var

A: ArrInt; { A, N: biến toàn cục}

N: integer;

Procedure Nhap_Mang(var A: ArrInt; var M: integer); { sử dụng thủ tục}

Var i: integer; { i: biến cục bộ}

Trang 10

Begin {a, m : tham số hình thức} Write(‘Nhap so phan tu cua day so:’); Readln(M);

For i:=1 to M do

Begin

Write(‘A[‘,i,’]=’); Readln(A[i]);

End;

End;

Procedure Hoan_doi(var a,b:integer); {giá trị a và b thay đổi theo thủ tục}

Var tam: integer;

Begin

tam:= a;

a := b;

b:= tam;

End;

Procedure Sap_xep(var A: ArrInt; M: integer); {giá trị A thay đổi theo thủ tục}

Var i, j: integer; {giá trị M không thay đổi theo thủ tục} Begin

For j:=M downto 2 do

For i:=1 to j-1 do

If A[i] > A[i+1] then Hoan_doi(A[i],A[i+1]);

End;

Procedure Xuat_mang(A: ArrInt; M: integer);

Var i: integer;

Begin

For i:=1 to M do

Write(A[i]: 5);

End;

BEGIN

Clrscr;

Nhap_mang(A,n);

Sap_xep(A,n);

Xuat_mang(A,n) {thân chương trình chính có 3 lời gọi thủ tục}

Readln

END

• Như vậy, với hai bài toán ví dụ mở đầu trên tôi đã đưa được đến với học sinh toàn

bộ các khái niệm liên quan đến chương trình con một cách thuận lợi và hiệu quả

c Giải pháp 3: Tổng hợp một số bài tập về hàm

Bài toán 1: Viết chương trình tính n giai thừa Trong đó n là số nguyên dương

được nhập vào từ bàn phím khi chạy chương trình Phân tích: Cần thiết kế một chương trình con(hàm) để tính giai thừa

Chương trình:

Program Giai_thua;

Uses CRT;

Trang 11

Var n: word ;

Fucntion GT(k: word): longint;

Var T, i: word;

Begin

T:= 1;

For i:=1 to k do

T:= T* i;

GT:=T;

End;

BEGIN

Clrscr;

Write(‘nhap n:’); readln(n);

Write(n,’!=’, GT(n));

Readln

END

Bài tập tương tự:

1 Viết chương trình tính tổng S= a! + b! + c! Trong đó a, b, c là các số nguyên dương được nhập vào từ bàn phím khi chạy chương trình

2 Viết chương trình tính chỉnh hợp Ank Trong đó n, k là các số nguyên dương được nhập vào từ bàn phím khi chạy chương trình

3 Viết chương trình tính tổ hợp Cnk Trong đó n, k là các số nguyên dương được nhập vào từ bàn phím khi chạy chương trình

Bài toán 2: : Viết chương trình nhập vào hai số nguyên dương Tìm bội số chung

nhỏ nhất của 2 số này

Program BT_BCNN;

Var x, y: word;

Function UCLN(a,b:word):word;

Begin

a:= abs(a);

b:=abs(b);

while a<> b do

begin

if a > b then a:=a-b;

if b > a then b:= b- a;

end;

UCLN:= a;

End;

BEGIN

Write(‘x,y:’);Readln(x,y);

Write(‘BCNN cua’, x, ‘va’, ‘y:’, (x*y) div UCLN(x,y));

Readln

END

Bài tập tương tự:

1 Viêt chương trình rút gọn phân số A/B Với A, B là các số nguyên dương

Ngày đăng: 17/10/2017, 09:30

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