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

(SKKN 2022) rèn luyện kỹ năng lập trình pascal

24 4 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 24
Dung lượng 68,61 KB

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

Nội dung

Trong tiết thực hành một số em gõ chương trìnhmột cách máy móc các nội dung của bài thực hành từ sách giáokhoa chứ không thực sự tìm hiểu xem tại sao lại viết câu lệnhnày, câu lệnh này m

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO QUẢNG XƯƠNG

SÁNG KIẾN KINH NGHIỆM

TÊN ĐỀ TÀI RÈN LUYỆN KỸ NĂNG LẬP TRÌNH PASCAL

ĐỐI VỚI HỌC SINH LỚP 8

Người thực hiện: Đỗ Chí Huấn

Chức vụ: Giáo viên

Đơn vị công tác: Trường THCS Nguyễn Du

SKKN thuộc lĩnh vực (môn): Tin học.

THANH HÓA NĂM 2022

Trang 2

MỤC LỤC

Trang 3

1 MỞ ĐẦU.

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

Theo thói quen của nhiều em học sinh, học môn Tin là học những thaotác sử dụng như: cách sử dụng Internet, sử dụng hệ điều hành Window, chươngtrình soạn thảo văn bản Microsoft Word, chương trình bảng tính MicrosoftExcel … Đây là những phần học không cần đòi hỏi tư duy cao, mà chỉ cần học

kĩ và nhớ thao tác, thực hành nhiều lần thì sẽ thành thạo

Nhưng khi học lập trình Pascal trong chương trình Tin học lớp 8 hiệnhành, hầu như các em bị “choáng” vì bộ môn rất “mới”, và cách học cũng

“mới” Học những thao tác và thực hành nhiều không còn tác dụng, học thuộcbài cũng không còn ổn nữa Lúc này các em cần phải học cách tư duy logic,tìm thuật toán, và viết những dòng lệnh máy tính chính xác đến từng dấu chấm,dấu phẩy

Với tâm lí thông thường các em học sinh coi tin học là môn phụ khôngquan trọng nên nhiều em chủ quan không dành đủ thời gian để học nên khônghiểu bài và dần bị mất căn bản Đây cũng là lí do mà nhiều em bị điểm kém,mặc dù có thể các em học rất giỏi các môn học khác

Từ những điều đó, sau một thời gian giảng dạy nội dunglập trình Pascal cho đối tượng là học sinh lớp 8 tôi đã rất trăntrở Phải làm gì để học sinh của tôi có thể thay đổi cách nhìnnhận với môn học và cách học với môn lập trình này Sau mộtthời gian suy nghĩ tôi cho rằng muốn thay đổi được các em thìtrước tiên người giáo viên phải thay đổi: thay đổi cách tiếp cậnnội dung, thay đổi phương pháp Phải làm thế nào để các em cóthể yêu thích môn học này, có yêu thích, hứng thú thì các emmới có thể tập trung học tập nghiêm túc được, các em sẽkhông còn học đối phó nữa Khi các em yêu thích thì hãy hướngcác em đi từ việc đơn gian tới phức tạp, nhìn nhận vấn đề haygiải các bài toán bằng nhiều cách để từ đó các em lĩnh hội đượcđầy đủ và chủ động kiến thức môn học Từ những lí do trên tôiquyết định nghiên cứu và thực hiện sáng kiến “ RÈN LUYỆN KỸ NĂNG LẬP TRÌNH PASCAL ĐỐI VỚI HỌC SINH LỚP 8 ”

nhằm giúp học sinh lớp 8 khắc phục được những hạn chế nêutrên và tạo sự ham mê yêu thích của học sinh với môn học lậptrình này

Trang 4

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

- Tạo sự hứng thú, tìm tòi và sáng tạo đối với học sinh lớp 8 khi học lậptrình Pascal

- Rèn luyện kỹ năng lập trình Pascal cho học sinh lớp 8

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

Các biện pháp rèn luyện kỹ năng lập trình Pascal đối với học sinh lớp 8

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

- Qua các tiết học lý thuyết; các tiết thực hành

- Qua trao đổi kinh nghiệm với các đồng nghiệp

- Qua quá trình đọc và nghiên cứu tài liệu, sách, các bài viết trênInternet…

2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM

2.1 Cơ sở lí luận của sáng kiến kinh nghiệm

Theo Nghị quyết số 29-NQ/TW Hội nghị Trung ương 8 khóa XI về đổimới căn bản, toàn diện giáo dục và đào tạo và Nghị quyết số 44/NQ-CP banhành Chương trình hành động của Chính phủ thực hiện Nghị quyết số 29/NQ-

TƯ ngày 04 tháng 11 năm 2013 Hội nghị lần thứ tám Ban Chấp hành Trungương khóa XI:

- Đẩy mạnh ứng dụng công nghệ thông tin và truyền thông trong dạy vàhọc

Phát huy vai trò của công nghệ thông tin và các thành tựu khoa học công nghệ hiện đại trong quản lý nhà nước về giáo dục, đào tạo

Từng bước hiện đại hóa cơ sở vật chất kỹ thuật, đặc biệt là hạ tầng côngnghệ thông tin

Trong chương trình Tin học lớp 8, ngôn ngữ lập trình Pascal là ngôn ngữđược Sách giáo khoa dùng làm ngôn ngữ để giải quyết các bài toán Tuy nhiênhọc sinh chưa có hứng thú học tập với bộ môn, kỹ năng lập trình còn nhiều hạnchế

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

Trang 5

Qua quá trình giảng dạy tôi nhận thấy rằng đa số học sinh gặp khó khănnhiều khi học các tiết học về chương trình và viết chương trình bằng ngôn ngữlập trình Pascal Nhiều em không hiểu ý nghĩa của các câu lệnh, quá trình giảimột bài toán và không tìm ra được thuật toán nên các em học theo kiểu máymóc, học thuộc không hiểu về quy trình lập trình Vẫn còn những học sinh họctập một cách thụ động, chỉ chờ thầy đọc cho chép, hoặc trả bài một cách đối phóhay lười suy nghĩ Trong tiết thực hành một số em gõ chương trìnhmột cách máy móc các nội dung của bài thực hành từ sách giáokhoa chứ không thực sự tìm hiểu xem tại sao lại viết câu lệnhnày, câu lệnh này mục đích để làm gì, câu lệnh này sẽ chochúng ta kết quả gì, các học sinh hầu như chưa ý thức việc họccủa mình, hay nói cách khác học sinh chưa có động cơ, thái độhọc tập đúng đắn Để dẫn tới điều này có thể do các em chưatìm thấy niềm vui và sự đam mê đối với môn học, các em nghĩmôn Tin học là môn phụ

Là môn học sử dụng ngôn ngữ lập trình Pascal nên các em có nhiều bỡngỡ vì đây là lần đầu tiên các em biết đến khái niệm lập trình và hiểu nghĩa các

từ khóa bằng Tiếng Anh Mặt khác đây cũng là môn học vận dụng kiến thức vềToán học rất khó cho các em trong quá trình lập trình

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

Để rèn luyện kỹ năng lập trình Pascal đối với học sinh lớp 8, tôi đưa ra một sốbiện pháp sau:

2.3.1 Thay đổi cách nhìn và tạo niềm đam mê của học sinh với môn học.

Lập trình là môn học đòi hỏi học sinh phải giải các bài toánbằng cách viết chương trình trên máy tính Đây là môn học mớiđối với học sinh nên phần đông các em không nắm bắt đượckiến thức để vận dụng vào giải bài tập Về ngôn ngữ lập trìnhPascal đang gây khó khăn cho các học sinh mới bắt đầu tìmhiểu học lập trình Vì Pascal có nhiều hạn chế về mặt hình thứcnhư: Giao diện là dòng lệnh, khó nhớ và không thân thiện, dễgây sự nhàm chán cho học sinh, về cú pháp thì chặt chẽ chỉ cầnthiếu hoặc thừa một dấu cũng báo lỗi sai trong chương trình,toàn bộ thông báo lại bằng ngôn ngữ tiếng anh đó cũng là hạnchế và khó khăn cho học sinh

Trang 6

Qua một thời gian giảng dạy ở bộ môn này, tôi nhận thấykhi học Pascal học sinh thường không thích thú với môn học này

vì nhiều lý do như khó hiểu, đòi hỏi tư duy, … nên việc viết đượcmột chương trình chạy được trên máy tính đối với các em rấtkhó khăn Do đó để học tốt đòi hỏi học sinh phải có hứng thú.Trước khi nghĩ đến việc rèn luyện kĩ năng lập trình cho học sinh,theo tôi trước hết là người thầy cần giúp học sinh yêu thích,hứng thú với môn học, hướng tới việc học tập chủ động, chốnglại thói quen học tập thụ động Để khắc phục điều này thì chúng

ta cần giải quyết được các vấn đề sau:

* Vấn đề 1: Học sinh chúng ta vừa đọc xong đề bài là kêu

khó, không chịu tìm hiểu xem đề bài yêu cầu gì Nói cụ thể hơn

là sau khi đọc xong bài toán thì học sinh không định hướng được

là phải bắt đầu từ đâu, phải sử dụng cấu trúc dữ liệu nào haycấu trúc lệnh nào để giải quyết Để giúp học sinh vấn đề này thìsau khi đọc đề bài xong giáo viên hướng dẫn các em xác định rõbài toán (xác định thành phần Input và Output của bài toán) TừInput và Output của bài toán giáo viên yêu cầu học sinh gạch ragiấy chỉ ra từng bước để giải quyết bài toán rồi từ đó đưa ra cácthuật toán, từng bước tinh chỉnh thuật toán tìm được thuật toánđúng đắn nhất, tối ưu nhất, cuối cùng là viết chương trình hoànchỉnh

Ví dụ: Khi yêu cầu học sinh lập trình tính chu vi và diện tích hìnhtròn với bán kính R được nhập vào từ bàn phím

- Để giải bài này giáo viên yêu cầu học sinh nêu rõ Input vàoOutput bài toán

Input: Bán kính hình tròn

Output: Diện tích và chu vi của hình tròn

- Giáo viên yêu cầu học sinh gạch ra giấy các công việc cần làm

để giải quyết bài tập này ?

Các công việc cần làm để giải quyết bài tập này :

Trang 7

Chu vi Cv = 2*Pi*R

– Với những yêu cầu cụ thể đó, giáo viên yêu cầu học sinh gõcác câu lệnh để hoàn thành bài toán Có thể gợi ý cụ thể trongbài toán này: Cần thực hiện lệnh nhập dữ liệu như thế nào?Dùng lệnh gán để tính chu vi và diện tích với các công thức toánhọc đã có Sau khi tính toán xong thì dùng lệnh in kết quả ramàn hình

* Vấn đề 2: Hầu như các em học sinh khi thực hành lập trình

đều đùn đẩy cho nhau vì thiếu tự tin và không biết phải gõ gìvào máy, sợ gõ sai lỗi quy tắc các câu lệnh hay gõ sai từ khóa

Để giúp các em vấn đề này thì giáo viên nên khuyến khích các

em cứ mạnh dạn gõ, một lần sai, hai lần sai,… rồi từ từ các em

sẽ gõ đúng câu lệnh nhờ trợ giúp của các bạn học tốt hơn vàcủa giáo viên, có như vậy các em mới nhớ được từ khóa, cúpháp của câu lệnh và chủ động hơn trong việc gõ các câu lệnhgiải quyết bài toán Lúc đầu giáo viên giám sát quá trình làmviệc của các em, sửa các lỗi sai, về sau để các em tự làm việc,chỉ sửa lỗi khi các em gặp khó khăn thực sự, không giải quyếtđược bắt buộc cần có hướng dẫn của giáo viên Khi các em tự

gõ chương trình các em mới thực sự hiểu chương trình đó hoạtđộng thế nào chứ không thể nhìn mà hiểu được Chỉ có tự gõcác lệnh thì mới nhớ được và hiểu từ đó sẽ tự tin khi ngồi lậptrình trước máy tính Khi tự tin làm việc với máy tính thì các emmới say mê và yêu thích môn học

* Vấn đề 3: Khi thực hành các em chỉ gõ cho xong nội dung của

bài thực hành, hoặc tìm kiếm những bài mẫu có sẵn và gõ theo,sau đó các em kiểm soát lỗi chính tả rồi chạy thử, hiện kết quả

là coi như xong bài tập Học như vậy các em hoàn toàn thụđộng, chứ không thực sự tìm hiểu xem tại sao lại có câu lệnh

đó, tại sao phải dùng cấu trúc điều khiển này mà không dùngcấu trúc điều khiển kia, tới câu lệnh này thì kết quả sẽ như thếnào, … Chính vì vậy mà các em không hiểu bài và không thể tựsửa lỗi nếu gõ sai Hướng dẫn các em cách chạy chương trìnhtừng bước và cách quan sát giá trị các tham số cần thiết Hướngdẫn các em “Biến mình thành cái máy tính” để thực hiện lầnlượt các câu lệnh từ trên xuống dưới xem nếu là máy thì tạibước này sẽ thực hiện công việc gì, kết quả sẽ là gì? Có như vậy

Trang 8

học sinh mới thực sự hiểu vấn đề, hiểu cách làm việc của ngônngữ lập trình Pascal.

* Vấn đề 4: Tìm hiểu các từ khóa.

Trong mỗi bài học việc tìm hiểu nghĩa các từ khóa rất quan trọng, phảilàm cho các em hiểu được ý nghĩa của các từ khóa trước khi yêu cầu các em vậndụng nó vào công việc viết chương trình hay cấu trúc lệnh Vì mỗi cấu trúc lệnhcủa Pascal đều có nghĩa của nó Nếu công việc này nếu giáo viên cho học sinhhiểu được thì xem như giáo viên đã đạt được một phần lớn trong mục tiêu bàihọc

- If then else : có nghĩa là Nếu thì ngược lại

- While do : Trong khi thì làm việc

- Begin end.: Bắt đầu kết thúc

2.3.2 Tiếp cận bài toán.

2.3.2.1 Rèn luyện kỹ năng lập trình với câu lệnh điều kiện

Đối với học sinh, khi làm quen với bất kỳ một cấu trúc lệnh nào cũng đều

bỡ ngỡ vì các em chưa quen và biết cách sử dụng cấu trúc đó Để học sinh có thểhiểu và vận dụng các cấu trúc lệnh vào từng bài toán cụ thể thì điều đầu tiên giáoviên phải giúp các em hiểu rõ cấu trúc lệnh, thuộc cấu trúc lệnh sau đó sẽ đưa racác dạng bài tập áp dụng cấu trúc lệnh để củng cố kiến thức cho các em Phải thựchiện chi tiết cả về mặt cấu trúc ngôn ngữ lập trình và phân tích bài toán từ đó xácđịnh rõ bài toán sẽ cho kết quả là gì? Chúng ta sẽ lấy ví dụ bài toán sử dụng câulệnh điều kiện sau:

Ví dụ: Viết chương trình nhập vào 3 số nguyên dương a, b, c khác nhau

Trang 9

+ Tìm số lớn nhất: (a>b) và (a>c) thì a lớn nhất; (b>a) và (b>c) thì b lớn nhất;(c>a) và (c>b) thì c lớn nhất;

+ Tìm số nhỏ nhất: (a<b) và (a<c) thì a nhỏ nhất; (b<a) và (b<c) thì b nhỏ nhất;(c<a) và (c<b) thì c nhỏ nhất;

- Từ ý tưởng trên chúng ta sẽ xây dựng chương trình:

+ Nếu a>b thì ta gán a cho Max, b cho Min, ngược lại thì ta gán Max cho b, Mincho a {Tìm số lớn nhất và nhỏ nhất trong hai số a, b Sau khi thực hiện dònglệnh trên Max sẽ nhận được giá trị lớn nhất, Min sẽ nhận được giá trị nhỏ nhất}.+ Nếu c > Max thì ta gán c cho Max, ngược lại nếu c < Min thì ta gán c cho Min{So sánh c với giá trị lớn nhất (Max) và nhỏ nhất (Min)}

Trang 10

Tam:=a;

a:=b;

b:=tam ; End;

If b>c Then Begin

Tam:=b;

b:=c;

c:=tam ; End;

If a>b Then Begin

Tam:=a;

a:=b;

Trang 11

b:=tam ; End;

Write('So nho la:’,a,’ so lon la’,c);

Readln;

End

=> Nhận xét: Trong 3 phương pháp trên thì mỗi phương pháp đều có một ưuđiểm và hạn chế riêng:

- Phương pháp 1: Giúp học sinh làm quen với câu lệnh điều kiện dạng đủ lồng

nhau và điều kiện ghép ((a>b) and (a>c)) trong câu lệnh điều kiện thông qua phép toán and

- Phương pháp 2: Giúp học sinh làm quen với lệnh gán, sử dụng biến trung gian

Max, Min và câu lệnh ghép (Begin Max:=a; Min:=b; End) trong câu lệnh điều

kiện

- Phương pháp 3: Giúp học sinh làm quen với câu lệnh điều kiện dạng thiếu và

ôn lại kiến thức sắp xếp giá trị hai biến theo thứ tự tăng hoặc giảm dần

2.3.2.2 Rèn luyện kỹ năng lập trình với câu lệnh lặp

Cấu trúc lệnh lặp là cấu trúc cơ bản trong ngôn ngữ lập trình Pascal vàcấu trúc này cũng là cấu trúc giúp học sinh giải quyết một lượng lớn các dạngbài tập Tuy nhiên khi tiếp cận câu lệnh lặp này thì học sinh lại khó hình dung racách hoạt động của từng cấu trúc, đặc biệt là học sinh khó phân biệt cấu trúc lặpxác định và lặp với số lần lặp không xác định Một lỗi mà học sinh thường gặpkhi làm việc với cấu trúc lặp đó là không xác định được điều kiện để dừng vònglặp Chính vì những lý do trên mà khi dạy cho học sinh cấu trúc lặp giáo viêncần xây dựng các ví dụ sử dụng cấu trúc này cụ thể để học sinh hiểu rõ và ghinhớ sau đó các em mới hình thành phản xạ và kĩ năng lập trình có sử dụng cấutrúc lặp

Trang 12

Để học sinh có thể hiểu rõ và phân biệt được cấu trúc lặp chúng ta có thểgiao cho học sinh bài toán sau:

Ví dụ 1: Viết chương trình tính tổng số nguyên từ 1 tới n, n

là số nguyên nhập từ bàn phím bằng cách sử dụng cấu trúc lặp

For do, While do

Với bài toán này cho dù dùng cấu trúc lệnh lặp nào thìcũng cần xác định rõ bài toán với:

Input: Nhập vào số tự nhiên n

Output: in ra màn hình tổng của các chữ số từ 1 tới n vừanhập vào

+ Cấu trúc For do ta có thể xây dựng chương trình như sau:

For i:=1 to n do s:=s+i;

Writeln('tong tu 1den n la: =',s:2:0);

Trang 13

Trong bài toán nêu trên về cơ bản thì cả 2 cách viết đềucho một kết quả nhưng khi dạy làm quen với cấu trúc lặp thìchúng ta cần khuyên khích học sinh viết chương trình giải quyếtcùng một bài toán nhưng dùng cả 2 cấu trúc lặp Đối với câulệnh lặp For do thì đại đa số học tiếp cận nhanh hơn và không

bị nhầm lẫn, chỉ khi các em chuyển bài toán từ dùng For dosang dùng while do thì hầu hết các em đều không hiểu rõ vẫn

đề là điều kiện gì để vòng lặp có thể dừng Chính vì lý do đó màkhi giúp các em xây dựng bài toán theo hướng sử dụng vòng lặpWhile do giáo viên nên nhấn mạnh điểm này Có thể cho họcsinh rơi vào vòng lặp không dừng như ta có thể bỏ qua lệnh làm

thay đổi giá trị của biến i (i:=i+1) Khi học sinh chạy thử chương

trình sẽ bị lặp và dẫn tới không thoát được, khi đó mới phân tíchđiều kiện dừng vòng lặp và yêu cầu học sinh gõ lại chươngtrình, khi đó học sinh mới hiểu rõ được bản chất của hai câulệnh dạng này đồng thời đó cũng là một kinh nghiệm cho các

em khi lập trình mà sử dụng cấu trúc lặp không xác định này

Mặt khác của vấn đề là khi dạy cho học sinh các cấu trúclệnh lặp thì ngoài việc dạy các em cấu trúc còn phải giúp các

em nhận diện bài toán để có thể áp dụng được tốt các cấu trúclệnh sao cho phù hợp Khi các em nhận diện được cấu trúc lệnh

để giải quyết bài toán thì vấn đề đặt ra là các bài toán đó các

em đã giải quyết tốt chưa? Tức là chương trình các em xây dựng

đã tối ưu chưa? Đến lúc này giáo viên cần giúp các em tinhchỉnh bài toán của các em sao cho tối ưu nhất Chúng ta sẽ xemxét vấn đề này qua một số ví dụ sau:

Ví dụ 2: Số nguyên tố là số tự nhiên lớn hơn 1, chỉ có hai ước là 1 và chính

Yêu cầu: Nhập vào số nguyên dương N Kiểm tra xem N có phải là số nguyên

tố hay không, thông báo kết quả sau khi kiểm tra

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

Input: Nhập vào một số tự nhiên N

Output: N có phải là số nguyên tố hay không

* Phương pháp 1:

- Ý tưởng:

+ Cho biến i chạy từ 2 đến n-1 {Ta xét trường hợp n có chia hết cho i haykhông}, nếu n chia hết cho i thì ta tăng biến đếm lên một đơn vị {ban đầu biếnđếm nhận giá trị bằng 0}

Ngày đăng: 09/06/2022, 22:36

TỪ KHÓA LIÊN QUAN

w