1. Trang chủ
  2. » Tất cả

SKKN NOP TINH

15 6 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 15
Dung lượng 135 KB

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

Nội dung

Điều đó đã thúc đẩy tôi trong quá trình giảng dạy phải nghiên cứu tìm tòi biện pháp, kinh nghiệm để giúp cho các em có sự đam mê học tập về lập trình, giúp các em biết được quy trình

Trang 1

1 Lời nói đầu:

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

Sự phát triển của tin học đã đem lại hiệu quả to lớn cho hầu hết các lĩnh vực của xã hội, hơn thế nữa nó còn đi sâu vào đời sống của con người

Đặc trưng của môn Tin học lớp 8 là kiến thức về lập trình Ngôn ngữ lập trình dường như rất xa lạ vì đây là kiến thức đầu tiên trong lập trình mà các em được học Qua giảng dạy môn Tin học ở trường THCS Ngũ Lạc, bản thân tôi nhận thấy rằng nhiều học sinh lớp 8 thấy môn lập trình Pascal khó, khô khan và cực kỳ loằng ngoằng Mới đầu các em cũng rất sợ vì khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra kết quả còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng chục phút mà có thể cho kết quả sai Pascal trở nên quá xa lạ và khó khăn đối với người sử dụng và nhất là đối với học sinh THCS là những người đang trực tiếp ứng dụng ngôn ngữ lập trình này

Từ thực tế trên, trong quá trình dạy học tôi luôn băn khoăn trăn trở làm thế nào nâng cao chất lượng kỹ năng lập trình cho học sinh lớp 8 Việc tiếp cận với môn học rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các em mới hiểu việc nhập và xuất dữ liệu Do đó sẽ rất khó khăn để các em hình thành kỹ năng viết chương trình Nhất là những năm gần đây Ngành giáo dục luôn thành lập đội tuyển tham dự kì thi Tin học trẻ, học sinh giỏi môn Tin học lớp 9,… Điều đó

đã thúc đẩy tôi trong quá trình giảng dạy phải nghiên cứu tìm tòi biện pháp, kinh nghiệm để giúp cho các em có sự đam mê học tập về lập trình, giúp các em biết được quy trình lập trình như thế nào và định hướng cho học sinh cách để trở thành một nhà lập trình thì cần phải biết “ Một số biện pháp rèn luyện kỹ năng thực

hành trong lập trình Pascal môn Tin học 8” để giúp học sinh tiến bộ hơn trong

học tập đặc biệt là các giờ thực hành ở bộ môn Tin học khối 8 bậc Trung học cơ

sở

1.1.1.Cơ sở lí luận:

Công nghệ thông tin càng ngày càng phát triển, có nhiều đổi mới và sự thay đổi rất bất chợt đến nỗi ngày nay tất cả các lập trình viên hầu như không thể nắm

rõ hiện tại là có những gì đang xảy ra Sự phát triển nhanh vọt kéo theo những yêu cầu mới về kỹ năng, và trình độ hiểu biết của một lập trình viên;

Trang 2

Trong lĩnh vực công nghệ thông tin đang trên đà phát triển hiện nay, đã và đang nảy sinh khá nhiều lĩnh vực và tạo nên các nhóm ngành mới, tạo điều kiện cho các lập trình viên mới có thể tiếp cận và chọn lựa ngành phù hợp với khả năng của mình;

Chính vì vậy việc trang bị và rèn luyện kỹ năng lập trình bằng việc tăng cường các tiết thực hành ở nhà trường cho các em học sinh là một cách vô cùng hiệu quả Việc học lập trình cũng giống như giải một bài toán, có rất nhiều cách khác nhau để đi đến đáp số của một bài toán Các em cũng sẽ có nhiều cách khác nhau để viết nên một chương trình Việc tìm hiểu nhiều nguồn tài liệu từ các kênh khác nhau sẽ giúp các em biết được cách làm nào tốt, cách làm nào chưa tốt, và rút

ra cách làm tối ưu nhất cho mình trong tất cả các trường hợp ở các dạng bài tập

1.1.2.Cơ sở thực tiễn:

Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổ thông tin và mạng máy tính Công nghệ thông tin là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sử dụng có hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trong mọi lĩnh vực hoạt động của con người và xã hội

Trong những năm gần đây Bộ GD&ĐT chỉ rõ: Nâng cao nhận thức về vai trò của công nghệ thông tin (CNTT); ứng dụng và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước chuyển cơ bản trong quá trình đổi mới nội dung, chương trình, phương pháp giảng dạy, học tập và quản lí giáo dục

Đặc trưng của môn Tin học là môn khoa học gắn liền với công nghệ hiện đại, do vậy dạy học Tin học trong nhà trường nhằm trang bị cho học sinh kiến thức khoa học về Tin học, phát triển tư duy thuật toán, kỹ năng lập trình và tiếp cận những công nghệ mới của Tin học phục vụ học tập và đời sống Nội dung chương trình của môn Tin học hiện hành ở các trường THCS đã đáp ứng được những yêu cầu trên

Trong nhà trường hiện đang phấn đấu các mục tiêu cụ thể của ngành là: Tổ chức tốt việc hướng dẫn học sinh biết cách lập trình để tham gia các kỳ thi như Tin học trẻ, học sinh giỏi lớp 9,…Thời đại công nghệ 4.0

Trang 3

1.2 Phạm vi đề tài:

Học sinh khối 8 trường trung học cơ sở Ngũ Lạc

2 Thực trạng:

2.1 Quan sát thực tế:

Học sinh đã được học Tin học ngay từ lớp 6 và lớp 7 nhưng ở mỗi lớp các

em học một chương trình khác nhau Ở lớp 6 thì học chủ yếu về Microsoft Word, lớp 7 thì học chủ yếu là về Microsoft Excel Còn ở lớp 8 các em lại học về lập trình Như đã nói ở trên, học lập trình là một nội dung mới và thật sự khó với học sinh lớp 8 vì nó đòi hỏi khả năng tư duy rất cao Mặt khác, học sinh ít được tiếp xúc nhiều với máy tính nên kĩ năng viết chương trình của các em rất hạn chế và không đủ máy cho học sinh thực hành (thường phải ngồi 2 – 3 học sinh/máy)

Thực tế qua những năm trực tiếp giảng dạy bộ môn, qua các tiết dự giờ, thao giảng cũng như trao đổi với đồng nghiệp tôi nhận thấy: hầu như học sinh đều rất yêu thích và hứng thú với môn Tin học đặc biệt là Tin học 6, Tin học 7 và Tin học

9 Còn Tin học 8 thì thường có rất ít học sinh hứng thú khi học về lập trình vì các

em cho rằng nó là quá khó với các em Bởi vì, khi viết chương trình thì cần rất nhiều kiến thức cũng như kỹ năng mới có thể viết được một chương trình hoàn chỉnh và đúng với yêu cầu đề ra

2.2 Nghiên cứu tài liệu:

- Chuẩn kiến thức kỹ năng

- Tin học dành cho Trung học cơ (Quyển 3) của Bộ Giáo Dục

- Sách giáo viên Tin học 8 quyển 3

- Kỹ năng cơ bản trong lập trình Pascal (Vũ Đức Khánh biên soạn)

- Giáo trình Ngôn Ngữ lập trình Pascal (Nguyễn Ngọc Cương biên soạn)

2.3 Thực trạng:

Trước khi thực hiện đề tài, tôi đã khảo sát học sinh khối 8 thông qua những giờ dạy lý thuyết, dạy thực hành Tổng hợp kết quả thu được ở học kỳ I năm học

2017 – 2018:

Lớp Tổng

số

Trang 4

8/1 37 8 21,6% 10 27% 7 18,9% 8 21,6% 4 10,8% 25 67,6%

Tổng 153 37 24,2% 50 32,7% 45 29,4% 16 10,5% 5 3.3% 123 86,3%

3 Các giải pháp:

Pascal là một ngôn ngữ lập trình cấp cao sớm xuất hiện và phần nào thể hiện được ưu điểm của nó trong việc ứng dụng để giải quyết các bài toán trên máy tính Ở trường phổ thông chúng ta không chú trọng học chuyên sâu về ngôn ngữ lập trình để tạo ra các phần mềm máy tính mà tập trung rèn luyện kĩ năng tư duy logic,

tư duy hệ thống và sáng tạo không chỉ để giải quyết những vấn đề trong tin học mà đây còn là những kĩ năng vô cùng quan trọng để giải quyết nhiều vấn đề trong cuộc sống;

Trang 5

Việc giải quyết các bài toán trên máy tính thật sự không đơn giản đối với các

em học sinh Trước tiên các em phải nắm vững lý thuyết, cú pháp câu lệnh, tính nguyên tắc và logic của bài lập trình Các em phải hiểu được quy tắc đặt tên chương trình, tên biến cho phù hợp với bài toán và đảm bảo tính nguyên tắc, ví dụ như tên chương trình nếu quá 8 kí tự ta cần dùng dấu gạch nối xen giữa, bài lập trình nào thì ta cần dùng câu lệnh gán phối hợp với công thức toán học mà các em

đã học ở bộ môn Toán để tính, bài nào thì dùng câu lệnh If…then, For…do, While…do, khi nào dùng kiểu dữ liệu Integer, Real, String hay Longint;

Bên cạnh đó để học sinh hiểu được, giáo viên cần chú ý cần quan tâm khía cạnh sự thông hiểu của học sinh, nên cho các em tập làm quen với các bài tập đơn giản nhất, dần dần tăng mức độ khó lên từ từ, không nên quá vội vàng để học sinh tiếp xúc với những bài quá khó Nếu các em chưa thông hiểu, chưa giải quyết được vấn đề của bài tập đó, bản thân giáo viên nên giải thích hướng dẫn các em mô tả, phân tích cụ thể để từ đó hiểu rõ hơn bài tập mình đang làm;

Để thực hiện tốt kỹ năng lập trình các em cần nắm vững các công thức toán học của bài toán để có thể chuyển đổi công thức ấy sang biểu thức Pascal Cho học sinh ghi nhớ lại các công thức toán học mà các em chưa biết, chưa hiểu vào vở bài tập Ví dụ một số công thức cơ bản như sau:

Trang 6

+ Tính diện tích hình chữ nhật: SCN = chiều dài × chiều rộng Khi đó ta chuyển sang biểu thức Pascal sẽ là: S:=a*b; nên lưu ý học sinh khi viết xong cuối

dòng công thức phải có dấu chấm phẩy;

+ Tính diện tích hình vuông: SHV = cạnh × cạnh Khi đó ta chuyển sang biểu thức Pascal sẽ là: Dientich:=a*a; nên lưu ý học sinh khi viết xong cuối dòng công

thức phải có dấu chấm phẩy;

+ Tính chu vi hình tam giác: SABC = cạnh a + cạnh b + cạnh c Khi đó ta chuyển sang biểu thức Pascal sẽ là: CV:=a+b+c; nên lưu ý học sinh khi viết xong

cuối dòng công thức phải có dấu chấm phẩy;

Ngoài ra, trong tiết học thực hành để khích lệ động viên tinh thần các em giáo viên nên biểu dương những học sinh có thành tích tốt bằng nhiều biện pháp,

có thể cho điểm khuyến khích, động viên, khen thưởng trước lớp và điều quan trọng hơn nữa là những học sinh có tư duy tốt cùng với thầy hướng dẫn lại các bạn trong quá trình thực hành;

a Cấu trúc cơ bản nhất của một bài lập trình Pascal:

Về mặt lý thuyết giáo viên nên cung cấp chắc chắn cho học sinh cấu trúc chung của một bài lập trình theo cú pháp như sau:

PROGRAM <Tên chương trình>;

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

BEGIN

<Phần thân chương trình>;

READLN;

END.

Bên cạnh đó, cũng cần lưu ý học sinh cách đặt tên chương trình đúng quy tắc, đảm bảo không sai cú pháp khi đặt tên chương trình, tên chương trình không

được trùng với các từ khóa: PROGRAM, BEGIN, USES, VAR, END, , dùng

dấu gạch nối xen giữa nếu tên dài quá 8 ký tự và phải đảm bảo tên không dài quá

127 ký tự, tên chương trình phải được đặt bằng tiếng việt không dấu, không sử dụng dấu cách;

Trang 7

Các biến ở phần khai báo phải đảm bảo phù hợp với bài toán và phù hợp với kiểu dữ liệu cần nhập

+ Cú pháp khai báo tên thư viện: <Từ khóa> <Tên các thư viện>; Ví dụ khai báo thư viện Crt, Graph là: USES CRT,GRAPH;

+ Cú pháp khai báo tên hằng: <Từ khóa> <Tên hằng=Giá trị>; Ví dụ khai

báo tên biến Pi khi tính diện tích hình tròn là: Const Pi=3.14;

+ Cú pháp khai báo biến: <Từ khóa> <Tên các biến:Kiểu dữ liệu>; Ví dụ khai báo các biến a, b khi thực hiện bài toán tính tổng hai số tự nhiên a và b biết rằng a, b là 2 ký tự được nhập vào từ bàn phím là các số nguyên: Var a,b:Integer;

+ Câu lệnh nhập dữ liệu vào từ bàn phím: Read(<Danh sách biến vào>); hoặc Readln(<Danh sách biến vào>); Ví dụ: Readln(CD,CR);

+ Câu lệnh cho phép xuất dữ liệu hoặc kết quả ra màn hình, câu lệnh này

thường sử dụng khá nhiều trong thực tế: Write(<Danh sách kết quả ra>); hoặc Writeln(<Danh sách kết quả ra>); Ví dụ xuất ra màn hình kết quả dòng chữ WELCOME NGU LAC SECONDARY SCHOOL ta có thể viết như sau: Writeln(‘Welcome to Ngu Lac Secondary School’);

+ Câu lệnh gán được dùng để tính toán giá trị của biểu thức bên phải được

kết quả cuối cùng thì gán cho tên biến phía bên trái là: <Tên biến>:=<Biểu thức>;

Ví dụ: S:=a+b; hoặc CV:=(a+b)*2; ,…

Các phép toán số học, các hàm tính toán cơ bản trong Pascal: Phép cộng (+), phép trừ (-), phép nhân (*), phép chia (/), chia lấy phần nguyên (DIV), chia lấy phần dư (MOD), hàm tính giá trị tuyệt đối cho số thực hoặc số nguyên ABS(x), hàm tính bình phương cho số thực hoặc số nguyên SQR(x), hàm tính căn bậc hai cho số thực hoặc số nguyên SQRT(x), hàm tính lôgarít tự nhiên của x với x là số thực LN(x), EXP(x), SIN(x), COS(x)

b Cấu trúc câu lệnh điều kiện IF THEN:

Trong Pascal để mô tả cấu trúc rẻ nhánh ta thường dùng câu lệnh IF THEN với hai trường hợp thiếu và đủ:

+ Trường hợp 1 câu lệnh cấu trúc rẻ nhánh dạng thiếu có cú pháp đầy đủ như

sau: IF <Điều kiện> THEN <Câu lệnh>; Nếu điều kiện có giá trị đúng thì câu

Trang 8

lệnh sau từ khóa then được thực hiện, nếu điều kiện có giá trị sai thì câu lệnh sau

từ khóa then sẽ không được thực hiện và bị bỏ qua Ví dụ: IF A=10 THEN WRITELN(‘BAI LAM CUA BAN RAT XUAT SAC’);

+ Trường hợp 2 câu lệnh cấu trúc rẻ nhánh dạng đầy đủ có cú pháp như sau:

IF <Điều kiện> THEN <Câu lệnh 1>

ELSE <Câu lệnh 2>;

Nếu điều kiện cho giá trị đúng câu lệnh 1 sau từ khóa then được thực hiện và bỏ qua câu lệnh 2, nếu điều kiện cho giá trị sai thì câu lệnh 2 sau từ khóa Else được thực hiện và bỏ qua câu lệnh 1;

Ví dụ:

IF 9<3 THEN WRITELN(‘BAN NEN HOC BOI DUONG TOAN’)

ELSE WRITELN(‘BAN NEN HOC BOI DUONG TIN HOC’);

Giáo viên trong quá trình cho học sinh thực hành nên hết sức lưu ý học sinh các quy tắc khi sử dụng các câu lệnh cấu trúc rẻ nhánh như dấu chấm phẩy được đặt sau dòng lệnh của từ khóa Else, hoặc trong quá trình sử dụng lệnh rẻ nhánh cũng cần lưu ý có thể sử dụng câu lệnh ghép sau từ khóa Else thì phải đặt giữa hai

từ khóa BEGIN và END;

c Cấu trúc câu lệnh lặp với số lần biết trước FOR DO:

Cũng cần lưu ý học sinh khi giảng dạy lý thuyết lẫn thực hành, câu lệnh lặp với số lần biết trước lúc nào cũng có hai dạng là lệnh lặp dạng tiến và lệnh lặp dạng lùi mà sách giáo khoa chưa đề cập đến;

Lặp dạng tiến:

FOR <Biến đếm>:=<Giá trị đầu> TO <Giá trị cuối> DO <Câu lệnh>;

Ví dụ 1: Sắp xếp các lệnh sau đây thành một bài lập trình hoàn chỉnh trong Pascal để thực hiện hiển thị các số từ 1 2 3 4 5 mỗi số cách nhau 3 khoảng trắng?

PROGRAM SAP_XEP;

USES CRT;

VAR i:INTEGER;

BEGIN

Trang 9

CLRSCR;

FOR i:=1 TO 5 DO WRITE(i:4);

READLN;

END.

Lặp dạng lùi: (Dạng này dùng cho học sinh khá giỏi giới hạn SGK chưa đề

cập đến):

FOR <Biến đếm>:=<Giá trị cuối> DOWNTO <Giá trị đầu> DO <Câu lệnh>;

Đối với lệnh lặp dạng lùi áp dụng cho bài tập trên cần thực hiện cú pháp các câu lệnh tương tự nhưng chỉ khác ở chỗ câu lệnh lùi có dạng cú pháp như sau:

FOR i:=5 DOWNTO 1 DO WRITE(i:4);

d Cấu trúc câu lệnh lặp với số lần chưa biết trước:

Để thực hành tốt các dạng bài tập câu lệnh lặp với số lần chưa biết trước học sinh cần thiết nắm vững kiến thức lý thuyết thông qua cú pháp:

While <Điều kiện> do <Câu lệnh>;

Với cú pháp này câu lệnh có ý nghĩa nếu câu lệnh kiểm tra điều kiện đúng thì sẽ thực hiện câu lệnh Sau một vòng lặp chúng ta có thể thao tác tăng hoặc giảm biến để cho điều kiện sẽ bị sai sau một số vòng lặp;

Ví dụ: Hãy lập vào chương trình nhập hai số nguyên dương n và x Tính lũy thừa N x

Program Luy_thua;

Var x,n,Tich,Luythua:Integer;

Begin

Writeln(‘Nhap vao so nguyen duong N va X: ’); Readln(n,x);

Tich:=1;

Luythua:=1;

While Luythua<=n do

Begin

Tich:=Tich*x;

Luythua:=Luythua+1;

Trang 10

End;

Writeln(‘Ta co N luy thua x la: ’,Tich);

Readln;

End

e Cấu trúc dữ liệu kiểu mảng:

Đối với nội dung này, giáo viên cần cho học sinh hiểu rõ khái niệm kiểu mảng, hiểu được cách khai báo các phần tử và cách truy cập đến các phần tử của mảng, học sinh cần hiểu được cách cài đặt thuật toán một số bài đơn giản với dữ liệu kiểu mảng, thực hiện việc khai báo mảng, truy cập, tính toán các phần tử của mảng, học sinh cần hiểu rõ các thành phần khai báo dữ liệu kiểu mảng;

Để học sinh nắm được nội dung này tương đối khó khăn đối với trình độ học sinh lớp 8, chính vì vậy ta vừa dạy cho học sinh loại mảng một chiều, vừa nâng cao cho học sinh loại mảng hai chiều:

+ Khai báo mảng một chiều theo hai cách khác nhau, cách thứ nhất là ta khai báo trực tiếp theo cú pháp sau:

Var <Tên biến mảng>: Array[m1 m2] of <Tên kiểu dữ liệu>;

Trong đó: m1, m2 có cùng kiểu dữ liệu xác định phạm vi của chỉ số m1<=m2;

Ví dụ: VAR M:ARRAY[1 5] OF INTEGER;

+ Đối với cách thứ hai ta thực hiện khai báo gián tiếp theo hai bước với cú pháp như sau:

Bước 1: Type <Tên kiểu mảng>=Array[m1 m2] of <Tên kiểu dữ liệu>; Bước 2: Var <Tên biến mảng>:<Tên kiểu mảng>;

Ví dụ: Type M=Array[1 5] of Integer;

Var a:M;

Tùy theo yêu cầu từng bài toán mà ta có thể sử dụng cách trực tiếp hay gián tiếp, học sinh cần hiểu và đọc kỹ đề từng bài toán

Chương trình có thể được viết theo cách 1 có nội dung code như sau:

Program Nhietdo_Tuan;

Uses Crt;

Ngày đăng: 09/11/2020, 20:49

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w