1. Trang chủ
  2. » Luận Văn - Báo Cáo

skkn Kinh nghiệm định hướng giúp học sinh rèn luyện kĩ năng giải bài tập tin học 11

19 204 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 19
Dung lượng 151 KB

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

Nội dung

Nội dung tin học lập trình lớp 11 là một nội dung mới lạ đối với đa số học sinh với nhiều khái niệm, thuật ngữ, cấu trúc dữ liệu mà học sinh mới được tiếp xúc lần đầu.. Chính vì vậy mà

Trang 1

1 Mở đầu

1.1 Lý do chọn đề tài

Từ cuối thế kỷ XX cuộc cách mạng khoa học kỹ thuật Công nghệ thông tin đã diễn ra mạnh mẽ Người ta thường ví sự bùng nổ Công nghệ thông tin như cuộc Cách mạng công nghiệp thế kỷ XVII Công nghệ thông tin đã và đang mở

ra một nền kinh tế tri thức, nền kinh tế đầy hứa hẹn và thách thức của kỷ nguyên phát triển mới của trí tuệ loài người Sự phát triển của công nghệ thông tin đã và đang tạo ra những vận hội mới cũng như nhiều thách thức mới cho ngành Giáo dục Việt Nam

Cùng với sự phát triển của khoa học kỹ thuật và bùng nổ thông tin trong giai đoạn hiện nay Ngành Giáo dục - Đào tạo đòi hỏi phải đổi mới nội dung chương trình và phương pháp giảng dạy nhằm đáp ứng nhu cầu đào tạo nguồn lực cho sự nghiệp công nghiệp hoá, hiện đại hoá đất nước

Trong thời đại thông tin bùng nổ ngày nay, 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 là rất cần thiết Và để làm được việc đó cần có một quá 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

Trong các trường trung học phổ thông, Tin học là một môn học còn mới

mẻ cho nên học sinh còn nhiều bỡ ngỡ khi tiếp cận với môn học này Nội dung tin học lập trình lớp 11 là một nội dung mới lạ đối với đa số học sinh với nhiều khái niệm, thuật ngữ, cấu trúc dữ liệu mà học sinh mới được tiếp xúc lần đầu Chính vì vậy mà học sinh chưa tìm được cách giải quyết các bài toán khi lập trình Nguyên nhân dẫn đến những khó khăn mà học sinh thường gặp là rất phong phú nhưng có thể thấy một số nguyên nhân chính sau đây:

- Học sinh thường gặp khó khăn khi xác định bài toán

- Khó liên hệ phương pháp giải một bài toán trong toán học với thuật giải bài toán tin học

- Nắm không vững cú pháp của ngôn ngữ lập trình

Trang 2

- Điều kiện học tập chưa thật sự đầy đủ: thiếu máy tính, thiếu tài liệu.

Khi nghiên cứa SGK Tin học 11 tôi nhận thấy tư tưởng được thể hiện nhằm phát triển tư duy sáng tạo và rèn luyện năng lực trí tuệ cho học sinh THPT, nhưng vấn đề giải bài toán Tin học với học sinh nói chung và học sinh trường THPT TrÇn ¢n Chiªm nói riêng còn gặp rất nhiều khó khăn vì:

- Đây là lĩnh vực đòi hỏi HS phải có kiến thức cơ bản về bài toán Tin học

- Cần có năng lực tư duy logic nhất định

- Cần có sự say mê với bộ môn Tin học

Vì vậy, để giúp các em phát triển khả năng tư duy logic, có định hướng đúng,

có niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này tôi đã chọn

đề tài:

“ Kinh nghiệm định hướng giúp học sinh rèn luyện kĩ năng giải bài tập

Tin học 11”

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

Việc gặp phải những khó khăn trên nên khi lập trình giải các bài toán học sinh thường đi vào hướng bế tắc, thậm chí có những em không xác định rõ được yêu cầu mà bài toán chính vì thế học sinh không đưa ra được thuật toán chính xác dẫn đến kết quả sai hoặc không giải được bài toán

Mặt khác với học sinh môn Tin học bị coi là môn “phụ” nên các em học theo kiểu đối phó, lấy điểm, học vẹt vì thế độ lười về tư duy cho bài tập Tin học càng cao

Trong nội dung đề tài này tôi nêu ra sẽ giúp các em có được hướng giải quyết bài toán Tin học một cách đơn giản, dễ hiểu và tạo cho các các em được không khí học tập tích cực

1.3 Đối tượng, kế hoạch và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Học sinh các lớp 11A3, 11A4, 11A5, 11A6, 11A7, 11A8 trường THPT TrÇn ¢n Chiªm năm học 2017-2018

- Kế hoạch nghiên cứu: Trực tiếp qua các tiết bài tập

Trang 3

- Phạm vi nghiên cứu: Toàn bộ chương trình tin học lớp 11 ( Một số dạng bài tập cơ bản khi học ngôn ngữ lập trình Pascal)

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

Các dạng bài tập rất phong phú Tuy nhiên trong phạm vi sáng kiến kinh nghiệm này tôi chỉ trình bày một số nội dung cụ thể sau:

- Phương pháp phân tích và xác định bài toán Tin học theo hướng đặt câu hỏi gợi mở

- Phương pháp tổng hợp, đặt vấn đề, vấn đáp, thảo luận, xử lí thông tin, thực nghiệm về một số vấn đề có liên quan đến nội dung nghiên cứu

1.5 Những điểm mới của sáng kiến kinh nghiệm

- Giúp học sinh phát huy tính tích cực, chủ động vận dụng kiến thức toán

học đã có vào giải các bài tập tin học

- Khai thác triệt để được khả năng tư duy logic của học sinh và định hướng cho học sinh giải đúng các bài tập

- Thông qua hướng dẫn của giáo viên giúp học sinh thấy được bài tập tin học không hề mới hay xa lạ với các em, việc giải các bài tập tin học giúp các em củng cố tri thức và tăng khả năng tư duy logic, tư duy sáng tạo trong quá trình học

Trang 4

2 Nội dung sáng kiến kinh nghiệm

2.1.Cơ sở lí luận

Cùng với sự phát triển của Khoa học kỹ thuật và bùng nổ thông tin trong giai đoạn hiện nay Ngành Giáo dục - Đào tạo đòi hỏi phải đổi mới nội dung chương trình và phương pháp giảng dạy nhằm đáp ứng nhu cầu đào tạo nguồn lực cho sự nghiệp công nghiệp hoá, hiện đại hoá đất nước Tính cấp thiết đó một lần nữa đã được khẳng định trong Nghị Quyết đại hội đảng toàn quốc lần thứ X:

“Đổi mới phương pháp giảng dạy, phát huy tư duy sáng tạo và năng lực tự đào tạo của người học, coi trọng thực hành ngoại khoá, làm chủ kiến thức, tránh nhồi nhét học vẹt, học chay”.

Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào nhà trường phổ thông như những môn khoa học khác bắt đầu từ năm học 2006 - 2007

Chỉ thị số 55/2008/CT- BGTĐT ngày 30/9/2008 của Bộ trưởng Bộ GDĐT

về tăng cường giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong ngành giáo dục giai đoạn 2008 - 2011

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

Qua thực tế giảng dạy ở Trường THPT TrÇn ¢n Chiªm các năm qua, tôi nhận thấy khi học đến chương trình tin học lớp 11, học sinh luôn phản ánh với giáo viên rằng bộ môn này khó hiểu và trừu tượng Khi kiểm tra với mức độ tương đương các ví dụ SGK, các em vẫn mơ hồ và đạt kết quả chưa cao

Tuy nhiên cũng có một số lượng không nhỏ học sinh rất yêu thích và hứng thú với môn Tin học

Trang 5

2.3 Các giải pháp sử dụng để giải quyết vấn đề:

a Phương pháp tiếp cận và giải một bài toán

Khi đưa ra một bài toán thì việc phát hiện cách giải quyết vấn đề là hết sức cần thiết

Bước 1: Tìm hiểu nội dung đề bài (giúp cho người đọc thấy được yêu cầu

của bài toán):

- Phát biểu lại bài toán để có thể hiểu rõ hơn (nếu cần)

- Xác định các dữ kiện vào (Input), ra (Output)

Bước 2: Xây dựng ý tưởng giải thuật

- Tìm tòi, phát hiện cách giải nhờ khả năng tư duy kết hợp với hệ thống giải thuật được cung cấp

- Thể hiện ý tưởng thông qua việc liệt kê các bước giải hoặc dùng sơ đồ khối

Bước 3: Sự kết hợp giữa giải thuật và ý tưởng để đưa ra lời giải

- Dùng ngôn ngữ lập trình

- Sử dụng phương pháp lập trình Top – Down và tinh chế từng bước

Bước 4: Nghiên cứu lời giải để phát triển khả năng tư duy

- Kiểm tra lời giải

- Tìm những cách giải khác, so sánh lựa chọn cách thích hợp

- Nghiên cứu khả năng ứng dụng

- Nghiên cứu để áp dụng cho những bài toán tương tự

b Các biện pháp tổ chức thực hiện:

* Xây dựng hệ thống câu hỏi gợi mở:

Giải bài tập là củng cố lại tri thức cho học sinh, việc xây dựng câu hỏi gợi

mở để giải quyết vấn đề là hết sức cần thiết Đây là bước khởi đầu giúp học sinh đưa ra ý tưởng giải quyết vấn đề

Trang 6

Xây dựng câu hỏi gợi mở dựa vào căn cứ sau:

- Căn cứ vào yêu cầu của bài toán

- Căn cứ vào tiến trình thực hiện của giáo viên

- Căn cứ vào năng lực học tập của học sinh

- Căn cứ vào lượng kiến thức có liên quan và những vướng mắc có thể của học sinh trong quá trình giải quyết bài toán

- Căn cứ vào phương tiện thiết bị hỗ trợ

c Ví dụ vận dụng:

Ví dụ 1: Viết chương trình nhập vào số nguyên dương N, in lên màn hình tổng các chữ số của nó

- Định hướng khó khăn gặp phải khi giải bài tập trên: học sinh không

nhớ 2 phép toán chia dùng cho số nguyên và không biết sử dụng vòng lặp nào là hợp lí

- Phân tích bài toán để đưa ra định hướng giải quyết:

(1) Chữ số N sẽ được tách như thế nào? Bắt đầu tách từ chữ số nào?

(GV cần lưu ý cho học sinh la ta chưa biết N có bao nhiêu chữ số nhưng chữ số dễ tách nhất là chữ số hàng đơn vị, vậy tách chữ số hàng đơn vị bằng cách nào?

(2) Phép toán nào trong kiểu số nguyên cho phép ta tách được chữ số ở hàng đơn vị? (phép toán lấy số dư : MOD)

(3) Để loại được chữ số tính tổng( chữ số hàng đơn vị) ra khỏi N ta dùng phép toán nào? ( phép toán lấy phần nguyên: Div)

(4) Việc lặp lại 2 thao tác trên để tách chữ số hàng đơn vị ra tính tổng và loại nó ra khỏi N lặp lại bao nhiêu lần? Lặp đến khi nào và dùng vòng lặp nào hợp lí?

(5) Điều kiện lặp là gì?

(6) Cần có những biến nào trong chương trình?

Trang 7

- Mô tả thuật toán sau khi xác định ý tưởng giải quyết vấn đề:

Bước 1: Nhập vào số nguyên N

Bước 2: tong:=0

Bước 3: Nếu N<=0 thì qua bước 5

Bước 4: DV:= N mod 10; tong:= tong+DV; N:=N div 10; quay lại bước 3 Bước 5: Đưa ra tong và kết thúc

- Tinh chế các bước trong thuật toán thành chương trình theo ngôn ngữ lập trình pascal:

Program tinh_tong_ cac_chu_so;

Var N,tong: integer;

DV: byte;

Begin

Writeln(‘nhap vao N:’);

Readln(n);

Tong:=0;

While N<>0 do

Begin

DV:= N mod 10;

Tong:= tong+DV;

N:= N div10;

End;

Writeln(‘ tong cac chu so cua N:’, tong);

Readln;

End

Ví dụ 2: Viết chương trình nhập vào từ bàn phím các số nguyên dương, kết thúc nhập khi nhập số 0 Cho biết có bao nhiêu số dương đã nhập vào

và trung bình cộng của chúng là bao nhiêu?

- Định hướng khó khăn: học sinh không biết sử dụng vòng lặp nào cho

hợp lí, không biết cách tính trung bình cộng

- Xây dựng câu hỏi gợi mở để giải quyết bài toán:

(1) Để lặp lại việc nhập một số nguyên cần dùng vòng lặp nào?

(2) Điều kiện lặp là gì?

Trang 8

(3) Làm thế nào để đếm được số lần nhập các số nguyên dương?

(4) Trong bài toán cần có những biến nào?

(5) Cần làm những phép toán nào để tính được trung bình cộng?

- Từ câu trả lời của học sinh giáo viên cùng học sinh phân tích và đưa ra ý tưởng giải bài toán

- Xây dựng thuật toán từ ý tưởng giải thuật:

Bước 1: Gán giá trị cho 2 biến Tong:=0; Dem:=0;

Bước 2: Nhập vào số nguyên X, nếu X>0 thì:

+ Đưa X vào tính Tong: Tong:= Tong+X;

+ Tăng số lần nhập lên 1: Dem:= Dem+1;

+ quyay lại bước 2 Bước 3:

+ Nếu Tong>0 thì thông báo “có Dem số nguyên dương và trung bình cộng là Tong/Dem”

+ Kết thúc

- Viết lại thuật toán bằng ngôn ngữ lập trình Pascal:

Program Tinh_TBC;

Var X, Dem,Tong:Integer;

TBC: real;

Begin

Tong:=0; Dem:=0;

Repeat

Write(‘nhap vao so nguyen duong:’);

Readln(X);

If X>0 then Begin

Dem:=Dem+1;

Tong:= Tong+X;

End;

Until X:=0;

Writeln(‘co’,Dem, ‘so nguyen duong da nhap’);

TBC:= Tong/Dem;

Writeln(‘Trung binh cong cua chung:’,TBC);

Readln; End

Trang 9

Ví dụ 3: Viết chương trình nhập vào một số nguyên dương N, xác định xem N

có phải là một số thuộc dãy Fibonaci hay không?

Dãy Fibonaci được cho bởi công thức sau:

F1=F2=1

Fn=F(n-1) + F(n-2) với mọi n>2

+ Định hướng khó khăn:

- Học sinh không biết là tạo bao nhiêu số fibonaci thì dừng và làm thế nào để kiểm tra số vừa tạo có phải là N không?

- Dùng vòng lặp nào phù hợp? Điều kiện lặp là gì?

+ Xây dựng câu hỏi gợi mở để giải quyết bài toán:

(1) Xác định biến để lưu giá trị dãy fibonaci vừa tạo?

(2) Phải lưu dãy fibonaci như thế nào để có thể kiểm tra với N?

(3) Kiểm tra xem N có trong dãy fibo vừa tạo hay không thực chất là ta làm công việc gì?

(4) Số cuối cùng trong dẫy fibonaci vừa tạo phải như thế nào so với N?

+ Xây dựng thuật toán dựa trên ý tưởng gợi mở đã thực hiện:

Bước 1: Nhập vào số nguyên dương N

Bước 2: F1:=1; F2:=1; F:=0;

Bước 3: Nếu N=F thì chuyển qua bước 5

Bước 4: Nếu N>F thì

- F:= F1+F2

- F1:=F2; F2:=F quay lại bước 3

Bước 5: Đưa ra kết quả và kết thúc

+ Viết lại thuật toán bằng ngôn ngữ lập trình Pascal:

Program so_fibo;

Var F1,F2,F: Integer;

N: Integer;

Trang 10

Writeln(‘nhap vao so nguyen N:’);

Readln(N);

F1:=1; F2:=1; F:=0;

While F<N do

Be gin F:=F1+F2;

F1:=F2; F2:=F;

End;

If N=F then Writeln(‘N thuoc day fibonaci’) Else Writeln(‘N khong thuoc day fibonaci’);

Readln;

End

d X©y dùng gi¸o ¸n tiÕt bµi tËp nh»m rÌn luyÖn kü n¨ng x©y dùng thuËt to¸n vµ ph¸t huy tÝnh tÝch cùc cña häc sinh.

GV: Đưa ra bài toán

- Yêu cầu HS xác định

bài toán

Hãy xác định Input và

Output của bài toán?

- Gợi ý – dẫn dắt HS

giải bài toán:

(1) Làm thế nào để ta

xác định được N là số

nguyên dương theo

đúng yêu cầu của bài

toán?

(2) Bằng câu lệnh nào

để xác định Ai<1000?

(3) Em hãy nhắc lại thế

nào là cấp số cộng?

(4) Công sai của cấp số

Theo dõi đề bài GV đưa

ra và phân tích, xác định

đề bài

+ Input: N và dãy A + Output: dãy A có phải

là cấp số cộng hay không?

Dùng câu lệnh repeat until để nhập N

và dãy AN

- Cấp số cộng là một dãy

số mà kể từ số hạng thứ

2 mỗi số hạng trong dãy đều bằng số hạng đứng trước nó cộng với 1 số không đổi Số không đổi

Bài 1: Viết chương trình

nhập từ bàn phím số nguyên dương N(0<N<100) và dãy A có

N số hạng A1, A2, , AN

các số có giá trị tuyệt đối không lớn hơn 1000 Hãy cho biết dãy A có phải là cấp số cộng hay không? Thông báo kết quả ra màn hình

Xác định bài toán:

+ Input: N, dãy AN với 0<N<100, abs(Ai<1000) + Output: dãy AN có phải

là cấp số cộng hay không

Trang 11

cộng xác định như thế

nào?

- Từ câu trả lời GV giúp

học sinh xây dựng ý

tưởng giải thuật và từ ý

tưởng giải thuật để xây

dựng thuật toán

GV hướng dẫn HS

chuyển từ thuật toán

sang ngôn ngữ lập trình

pascal

Sau khi viết xong

chương trình GV đưa ra

một số ví dụ để kiểm tra

thử

Gv cùng với HS tìm

cách giải khác, so sánh

và lựa chọn cách thích

giải thích hợp

Gv đưa ra bài tập tiếp

theo:

- Yêu cầu HS xác định

các dữ kiện bài toán và

phân tích hướng dẫn để

HS giải bài toán

* Phân tích, gợi ý:

(1) Chữ số được xác

định như thế nào?

(2) Số và kí tự là số

khác nhau như thế nào?

(3) Bằng cách nào ta có

thể xác định được đó là

đó gọi là công sai

- Công sai: d=A2-A1

- Xây dựng các bước giải bài toán:

Bước 1: Nhập vào N và dãy AN với abs(Ai<1000) Bước 2: Nếu N và Ai chưa thoả mãn yêu cầu thì quay lại bước 1 Bước 3: Tính công sai D:= A[2]-A[1]; dem:=2;

Bước 4: Nếu (dem<=N) và( A[dem]- A[dem-1]

=d) thì dem:=dem+1;

Quay lại bước 4

Bước 5: Nếu dem>N thì kết luận dãy AN là cấp số cộng Ngược lại thì không phải là cấp số cộng Kết thúc

Theo dõi và tiếp nhận kiến thức, ghi chép bài

Theo dõi đề bài và xác định bài toán:

+ Input: Xâu S, length(S)<100 + Output: Số chữ số có trong xâu S

HS Trả lời các câu hỏi của GV và từ đó xác định hướng giải quyết bài toán, sau đó cụ thể hoá thành các bước:

Bước 1: Nhập vào xâu S theo đúng yêu cầu

Viết chương trình bằng NNLT pascal:

Program cap_so_cong; Var A: array[1 100] of integer; dem,N,d: integer; Begin

Repeat Write(‘nhap vao so phan tu:’); Readln(N);

Until (N>0) and (N<100); For i:=1 to N do

Repeat Writln(‘nhap vao a[‘,i,’]=’); Readln(A[i]); Until (abs(A[i])<1000); D:=A[2]-A[1]; dem:=2; While (dem<=N) and (A[dem]-A[dem-1]) do Dem:=dem+1;

If dem>N then Write(‘day A la cap so cong’)

Else Write (‘khong phai la cap so cong’);

Readln;

End

Bài 2: Viết chương trình nhập từ bàn phím xâu kí tự

S có độ dài không quá

100 Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu S? Thông báo kết quả ra màn hình

* Trình bày lời giải bằng ngôn ngữ lập trình pascal:

Program dem_chu_so; Var S:string[100];

I,dem: byte;

Ngày đăng: 06/09/2018, 15:27

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