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

Xây dựng hệ thống bài tập trong dạy học lập trình pascal tin học 11

87 191 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 87
Dung lượng 886,5 KB

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2VIỆN CÔNG NGHỆ THÔNG TIN NGUYỄN THỊ HỒNG LOAN XÂY DỰNG HỆ THỐNG BÀI TẬP TRONG DẠY HỌC LẬP TRÌNH PASCAL TIN HỌC 11 KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 VIỆN CÔNG NGHỆ THÔNG TIN

NGUYỄN THỊ HỒNG LOAN

XÂY DỰNG HỆ THỐNG BÀI TẬP TRONG DẠY HỌC LẬP TRÌNH

PASCAL TIN HỌC 11

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Chuyên ngành: Sư phạm Tin học

HÀ NỘI – 2018

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

VIỆN CÔNG NGHỆ THÔNG TIN

NGUYỄN THỊ HỒNG LOAN

XÂY DỰNG HỆ THỐNG BÀI TẬP TRONG DẠY HỌC LẬP TRÌNH

PASCAL TIN HỌC 11

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Chuyên ngành: Sư phạm Tin học

Người hướng dẫn khoa học

ThS Nguyễn Văn Hà

HÀ NỘI – 2018

Trang 3

LỜI CẢM ƠN

Sau một thời gian dài nghiên cứu, cố gắng để học tập và làm việc một

cách nghiêm túc, em đã hoàn thành bài khóa luận với đề tài “Xây dựng hệ

thống bài tập trong dạy học lập trình pascal Tin học 11”, ngoài sự cố gắng

của bản thân, em xin bày tỏ lòng biết ơn đến những người đã giúp đỡ, bêncạnh em suốt thời gian qua

Đầu tiên, em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất của

mình tới thầy giáo ThS Nguyễn Văn Hà đã tận tình giúp đỡ, hướng dẫn và

chỉ bảo em trong suốt quá trình thực hiện đề tài

Ngoài ra, em xin chân thành cảm ơn các thầy, cô giáo viện CNTTtrường Đại học Sư phạm Hà Nội 2 đã tạo điều kiện thuận lợi cho em trongsuốt quá trình học tập, nghiên cứu

Trong quá trình khảo sát, cũng như trong quá trình làm khóa luận, dolần đầu tiên làm quen với công tác nghiên cứu khoa học, trình độ lý luận cũngnhư kinh nghiệm thực tiễn còn hạn chế, mặc dù đã rất cố gắng nhưng vẫn khótrách khỏi sai sót, em rất mong các thầy cô bỏ qua Em rất mong nhận đượcnhững ý kiến đóng góp quý báu để em tích lũy thêm được nhiều kinh nghiệm

và khóa luận được hoàn thiện hơn

Em xin chân thành cảm ơn!

Hà Nội, tháng 5 năm 2018

Sinh viên

Nguyễn Thị Hồng Loan

Trang 4

LỜI CAM ĐOAN

Tên em là: Nguyễn Thị Hồng Loan.

Sinh viên lớp: K40B Sư phạm Tin học – Viện CNTT.

Trường: Đại học Sư phạm Hà Nội 2.

Em xin cam đoan đây là công trình nghiên cứu của riêng em và được sự

hướng dẫn khoa học của thầy giáo ThS Nguyễn Văn Hà Trong khóa luận

này em có tham khảo những tài liệu có liên quan đã được hệ thống trong mụctài liệu tham khảo Và nó không trùng với kết quả của bất cứ tác giả nào khác

Hà Nội, tháng 5 năm 2018

Sinh viên

Nguyễn Thị Hồng Loan

Trang 5

MỤC LỤC

DANH MỤC VIẾT TẮT

LỜI MỞ ĐẦU

CHƯƠNG 1 CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI 4

1.1 Lí luận về bài toán Toán học 4

1.1.1 Bài toán và lời giải của bài toán 4

1.1.2 Phương pháp tìm lời giải bài toán Toán học 6

1.2 Lí luận về bài toán Tin học 7

1.2.1 Bài toán Tin học 7

1.2.2 Phương pháp tìm thuật giải bài toán Tin học: 8

1.3 Đặc điểm năng lực nhận thức và năng lực lập trình của HS ở THPT 12

1.4 Phân loại, vị trí và ý nghĩa của bài tập Tin học 13

1.4.1 Phân loại 13

1.4.2 Vị trí 13

1.4.3 Ý nghĩa 14

1.5 Biện pháp sư phạm khi dạy học bài tập lập trình Tin học 14

1.5.1 Thông hiểu các thuật toán cơ bản 14

1.5.2 Phân tích tìm thuật toán giải bài toán 15

1.5.3 Lập trình và test chương trình với bộ dữ liệu cũ 15

1.5.4 Khai thác bài toán 16

CHƯƠNG 2 XÂY DỰNG HỆ THỐNG BÀI TẬP DẠY HỌC KĨ NĂNG LẬP TRÌNH PASCAL CHO HỌC SINH LỚP 11 TRƯỜNG THPT 20

2.1 Tổng quan các bài tập lập trình Tin học 11 THPT 20

2.1.1 Nội dung chương trình các bài tập lập trình 20

2.1.2 Một số nguyên tắc xây dựng hệ thống bài tập nhằm củng cố kiến thức và phát triển tư duy sáng tạo 21

2.2 Xây dựng hệ thống bài tập dạy học lập trình Pascal ở lớp 11 trường THPT 23

2.2.1 Hệ thống bài tập “Cấu trúc rẽ nhánh” 23

2.2.2 Hệ thống bài tập “Cấu trúc lặp” 29

2.2.3 Hệ thống bài tập “Kiểu mảng” 34

2.2.4 Hệ thống bài tập “Kiểu xâu” 44

Trang 6

2.2.5 Hệ thống bài tập “Kiểu tệp” 51

KẾT LUẬN CHƯƠNG 2 61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62

TÀI LIỆU THAM KHẢO 64

Trang 8

LỜI MỞ ĐẦU

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

Đất nước ta đang trong giai đoạn đẩy mạnh công nghiệp hóa, hiện đạihóa và hội nhập quốc tế, nguồn lực con người trở nên có ý nghĩa quan trọngquyết định đến sự thành công của công cuộc phát triển đất nước Mục tiêu củagiáo dục phổ thông đã đề ra: “Mục tiêu của giáo dục phổ thông là giúp HSphát triển toàn diện về đạo đức, trí tuệ, thể chất, thẩm mỹ và các kĩ năng cơbản, phát triển năng lực cá nhân, tính năng động và sáng tạo, hình thành nhâncách con người Việt Nam xã hội chủ nghĩa, xây dựng tư cách và trách nhiệmcông dân; chuẩn bị cho HS tiếp tục học lên hoặc đi vào cuộc sống lao động,tham gia xây dựng và bảo vệ Tổ quốc” Chính vì vậy, giáo dục có vai trò vôcùng quan trọng trong việc xây dựng một thế hệ con người Việt Nam mớiphát triển toàn diện, có lý tưởng, đạo đức, có tính tổ chức và kỷ luật, làm chủtri thức hiện đại, có tư duy sáng tạo, đáp ứng yêu cầu xây dựng và bảo vệ tổquốc

Trong thực tế, Tin học là môn học vừa mang tính khoa học vừa mangtính kĩ thuật, ngành Tin học đang phát triển như vũ bão, ngày càng xâm nhậpvào các ngành khoa học công nghệ và đời sống, môn Tin học phản ánh vàonhà trường những tri thức và phương pháp phổ thông cơ bản nhất trong nhữngthành tựu cơ bản của nhân loại, sắp xếp chúng thành một hệ thống logic đảmbảo tính khoa học, tính tư tưởng, tính thực tiễn, và tính sư phạm, phù hợp vớiđiều kiện hoàn cảnh của đất nước, đáp ứng được yêu cầu của cách mạng khoahọc công nghệ ngày nay, phục vụ công cuộc công nghiệp hóa, hiện đại hóađất nước, chuẩn bị cho nền kinh tế tri thức Tin học 11 giúp học sinh hìnhthành nên những kiên thức cơ bản và quan trọng nhất, chuẩn bị cho các emmột hành trang để bước vào đời hoặc học lên những bậc học cao hơn Đócũng chính là chiếc chìa khoá mở cửa cho tương lai

Hiện nay môn Tin học đã trở thành môn học bắt buộc trong nhà trườngphổ thông, đây là một thuận lợi lớn cho việc tiến hành giảng dạy Tuy nhiên,

Trang 9

thực tế ở trường phổ thông nhà trường và HS chưa chú ý nhiều đến môn Tinhọc Vì vậy đa số HS lớp 11 THPT còn non kém về kĩ năng lập trình.

Trong chương trình môn Tin học lớp 11 trường THPT, kĩ năng được đềcập đến và quan trọng nhất đó là những kĩ năng lập trình giải quyết các bàitoán Nhờ có kĩ năng này mà HS có được những trải nghiệm thú vị, thấy đượcmáy tính có thể giúp con người giải quyết các bài toán, các công việc mộtcách tự động bằng chương trình, chính những nhận thức và kĩ năng lập trìnhnày sẽ kích thích HS hứng thú hơn trong việc tìm tòi về thuật toán về NNLT

Thấy được tầm quan trọng của việc dạy và học môn Tin học nói chung

và Tin học 11 nói riêng, đồng thời phát huy cao hơn nữa hiệu quả trong giảngdạy theo tinh thần đổi mới sách giáo khoa, với mong muốn đóng góp mộtphần rất nhỏ về PPDH một môn học còn rất mới mẻ trong nhà trường THPT,

tôi tiến hành nghiên cứu đề tài: “Xây dựng hệ thống bài tập trong dạy học

lập trình Pascal Tin học 11”, nhằm giúp các em có thể phân loại được các

dạng bài tập phù hợp với khả năng và mục đích của mình

3 Nhiệm vụ nghiên cứu

Nghiên cứu tổng hợp cơ sở lí luận về hình thành và phát triển kĩ năngtrong giảng dạy lập trình Tin học ở trường THPT

Nghiên cứu cách tổ chức dạy học các bài tập lập trình Tin học để pháttriển kĩ năng lập trình cho HS

Đề xuất những biện pháp phát triển kĩ năng lập trình

Phân loại, phân tích hệ thống các bài toán, các phương pháp giải cácbài toán Tin học trong chương trình Tin học 11

Trang 10

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

Một số phương pháp nghiên cứu được sử dụng trong đề tài đó là: Tìmhiểu, phân tích, tổng hợp những tài liệu về lý luận dạy học Tin học, về kĩ nănglập trình Tin học

Phương pháp ứng dụng tổ chức dạy học bài tập lập trình cho HS lớp 11trường THPT

Phân tích đánh giá mức độ học sinh hiểu vận dụng, giải được các bàitoán trong các môn học khác, từ đó xây dựng, giới thiệu các bài toán phù hợpvới từng đối tượng học sinh

5 Ý nghĩa khoa học và thực tiễn của đề tài

Ý nghĩa khoa học

Tìm hiểu những đặc điểm và yêu cầu cần có của học sinh Từ đó biênsoạn hệ thống bài tập dạy hoc lập trình Pascal Tin học và áp dụng các phươngpháp hướng dẫn giải bài tập phù hợp giúp bồi dưỡng học sinh giỏi

Ý nghĩa thực tiễn

Kết quả nghiên cứu có thể sẽ là một tài liệu tham khảo cho việc dạy họclập trình nói chung và lập trình Pascal Tin học 11 nói riêng

Nếu xây dựng được một hệ thống bài tập khoa học và tổ chức dạy học

có hiệu quả thì sẽ phát triển được năng lực tự giải quyết vấn đề, kỹ năng lậptrình, tính tích cực, sáng tạo cho học sinh, qua đó nâng cao chất lượng dạy vàhọc lập trình Pascal Tin học 11

6 Cấu trúc khóa luận

Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo,nội dung khóa luận gồm 2 chương:

Chương 1: Cơ sở lý luận và thực tiễn của đề tài

Chương 2: Xây dựng hệ thống bài tập dạy học lập trình Pascal cho họcsinh lớp 11 trường THPT

Trang 11

CHƯƠNG 1

CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI

1.1 Lí luận về bài toán Toán học

1.1.1 Bài toán và lời giải của bài toán

1.1.1.1 Bài toán

Theo G.POLYA Bài toán là việc đặt ra sự cần thiết tìm kiếm một cách

có ý thức các phương tiện thích hợp để đạt đến một mục đích nhất định trôngthấy rõ ràng, nhưng không thể đạt được ngay

Trên cơ sở định nghĩa khái quát của G.POLYA cho ta thấy rằng: Bàitoán là sự đòi hỏi phải đạt tới mục đích nào đó Như vậy, bài toán có thể đồngnhất với một số quan niệm khác nhau về bài toán như đề toán, bài tập,

Trong định nghĩa về bài toán ở trên ta thấy có hai yếu tố chính hợp thànhcủa một bài toán:

- Bài toán luôn có mục đích xác định

- Sự đòi hỏi người khác thực hiện mục đích của bài toán (giao nhiệm vụhoặc yêu cầu người khác thực hiện mục đích của bài toán)

Đây là bài toán vì trong đó bao gồm hai yếu tố cơ bản

- Sự đòi hỏi của bài toán thể hiện qua cụm từ “tìm”

Trang 12

1.1.1.2 Lời giải bài toán

Lời giải của bài toán được hiểu là tập hợp hữu hạn, sắp thứ tự các thao

tác cần thực hiện để đạt tới mục đích đã đặt ra trong bài toán

Như vậy ta thống nhất các thuật ngữ bài giải, cách giải và đáp án củabài toán đều theo nghĩa lời giải ở trên

Một bài toán có thể có lời giải như sau

- Một lời giải;

- Nhiều lời giải;

- Không có lời giải

Giải được một bài toán được hiểu là tìm ra và trình bày đúng ít nhất mộtlời giải của bài toán trong trường hợp bài toán có lời giải, hoặc lý giải đượcbài toán là không giải được trong trường hợp nó không có lời giải

Ví dụ 1: Tìm các lời giải của bài toán cổ sau.

“Vừa gà vừa chó,

Bó lại cho tròn, Ba mươi sáu con, Một trăm chân chẵn

Tính số gà, số chó?”

Cách giải: Giả thiết tạm

Giả sử tất cả 36 con vật đều là gà

Vậy số chân của 36 con vật là

Tổng số chân hụt đi so với điều kiện thực tế của bài toán là

100 – 72 = 28 (chân)

Ta thấy 28 chân thiếu hụt so với điều kiện thực của bài toán là do ta giả

sử tất cả 36 con vật đều là gà Như vậy, ta đã bỏ đi ở mỗi con chó là 2 chân.Vậy số con chó là 28 : 2 = 14 (con chó)

Trang 13

Số con gà là 36 – 14 = 22 (con gà)

Đáp số: Số gà là 22 con; số chó là 14 con

1.1.2 Phương pháp tìm lời giải bài toán Toán học

Bốn bước giải toán của G.POLYA

Bước 1.Tìm hiểu đề

Trước khi giải một bài toán ta phải phân tích nội dung của bài toán, rồitìm hiểu thấu đáo nội dung của bài toán bằng những câu hỏi sau:

- Những cái gì đã biết? Cái gì chưa biết của bài toán?

- Tìm những yếu tố cố định, những yếu tố không đổi, những yếu tốthay đổi và biến thiên của bài toán

- Xác định các ẩn và các giá trị hằng của bài toán

- Dữ kiện của bài toán có đủ để xác định cái chưa biết hay không?

Bước 2 Xây dựng chương trình giải

Để tìm được lời giải cho bài toán một cách có hiệu quả thì bước xâydựng chương trình giải là bước quyết định, đồng thời đây cũng là bước khókhăn nhất

Bước xây dựng chương trình giải đòi hỏi chúng ta biết huy động cáckiến thức đã biết để xem xét, phân tích, so sánh, bác bỏ, tổng hợp Từ đó mới

có thể thiết lập được mối liên hệ giữa cái đã cho và cái cần tìm

Trả lời một số câu hỏi:

– Bạn đã gặp bài toán nào tương tự thế này chưa? Hay ở một dạng hơi

Trang 15

– Đây là bài toán mà bạn đã có lần giải nó rồi, bạn có thể áp dụng được

gì ở nó? Phương pháp? Kết quả? Hay phải đưa thêm yếu tố phụ vào mới ápdụng được?

– Nếu bạn chưa giải được bài toán này, hãy thử giải một bài toán phụ

dễ hơn có liên quan, một trường hợp riêng, tương tự, tổng quát hơn? Hãy giữlại một phần giả thiết khi đó ẩn được xác định đến chừng mực nào? Từ cácđiều đó bạn có thể rút ra được điều gì có ích cho việc giải bài toán? Với giảthiết nào thì bạn có thể giải được bài toán này?

– Bạn đã tận dụng hết giả thiết của bài toán chưa?

Bước 3 Thực hiện chương trình giải

Thực hiện lời giải mà bạn đã đề ra Bạn có nghĩ rằng các bước là đúng?Bạn có thể chứng minh nó đúng?

Đây là quá trình tổng hợp lại của bước xây dựng chương trình giải, tadùng các phép suy luận hợp logic xuất phát từ giả thiết của bài toán hay cácmệnh đề Toán học đã biết ta suy dần ra đi tới kết luận của bài toán

Trong bước thực hiện chương trình giải một bài toán cần chú ý phânbiệt sự khác nhau giữa những điều đã thấy được và những điều suy ra được -chính là điều chứng minh được

Bước 4 Kiểm tra lời giải và khai thác bài toán

Bạn có nghĩ ra một hướng khác để giải bài toán? Lời giải có ngắn hơn,đặc sắc hơn

Bạn đã áp dụng cách giải đó cho bài toán nào chưa?

Bạn có thể áp dụng bài toán này để giải các bài toán khác đã biết?

1.2 Lí luận về bài toán Tin học

1.2.1 Bài toán Tin học

- Bài toán là những việc nào đó ta muốn máy tính thực hiện

- Tìm hiểu nội dung bài toán: Khi dùng máy tính giải toán cần quan tâm Input

và Output

Input : Thông tin nào đưa vào máy tính

Trang 16

Output : Thông tin đưa ra từ máy tính.

Ví dụ 1: Tìm ước số chung lớn nhất của 2 số tự nhiên M, N

Input : Cho 2 số tự nhiên M, M

Output: Một số UC là ước số chung lớn nhất của 2 số M và N

Ví dụ 2: Kiểm tra 1 số tự nhiên N có phải là nguyên tố ?

Input : Cho số tự nhiên N

Output: Số N là nguyên tố hay không là số nguyên tố

1.2.2 Phương pháp tìm thuật giải bài toán Tin học:

Bước 1: Tìm hiểu nội dung bài toán

Input → Process → Output(Dữ liệu vào → Xử lý → Kết quả ra)Tìm hiểu nội dung bài toán hay nói chính xác hơn là ta đi xác định xem

ta phải giải quyết vấn đề gì, với giả thiết nào đã cho và lời giải cần phải đạtnhững yêu cầu gì?

Mỗi bài toán được đặc tả bởi hai thành phần: Input và Output Việc xácđịnh bài toán chính là xác định từ hai thành phần này và mối quan hệ giữachúng Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọnthuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trongquá trình giải bài toán và NNLT thích hợp

Ví dụ 3:

Tạo mảng A gồm n (n ≤ 100) số nguyên, mỗi số có trị tuyệt đối khôngvượt quá 300 Tính tổng các phần tử của mảng là bội số của một số nguyên kcho trước

Đối với bài toán này, GV cần hướng dẫn HS xác định được Input,Output của bài toán, cách thể hiện các đại lượng đã cho, các đại lượng phátsinh trong quá trình giải bài toán như sau:

- Input: Mảng A gồm n phần tử là các số nguyên

- Output: Tổng các phần tử của mảng chia hết cho số k

- Thể hiện các đại lượng đã cho:

Trang 17

+ Vì n là số phần tử của mảng A và n ≤ 100 nên ta khai báo kiểu dữliệu của n là Byte.

+ Mỗi phần tử của mảng là kiểu số nguyên và có giá trị tuyệt đối khôngvượt quá 300 vì vậy ta khai báo kiểu dữ liệu của mảng là Integer

- Các đại lượng phát sinh

+ Để tham chiếu đến từng phần tử của mảng cần khai báo thêm biến i.+ Để tính tổng các phần tử của mảng là bội số của một số nguyên k chotrước ta khai báo biến Tong kiểu Integer và phải gán giá trị ban đầu (bằng 0)trước khi sử dụng biến Tong

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

Thuật toán là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xácđịnh một dãy thao tác trên cấu trúc dữ liệu sao cho: Với một bộ dữ liệu vào,sau một số hữu hạn bước thực hiện thao tác, ta đạt được mục tiêu đã định

Dựa vào các thông tin đó xác định được về bài toán để lựa chọn hoặcthiết kế thuật toán, đây là bước quan trọng nhất để giải một bài toán Ở bướcnày ta có thể hướng dẫn hoặc yêu cầu HS viết thuật giải bằng sơ đồ khối hoặcngôn ngữ phỏng trình Tức là xây dựng dãy các tác động để cho máy tính cóthể thực hiện trong một khoảng thời gian nhất định nhằm đạt được một kếtquả xác định Cũng có thể cho HS biết được nhiều thuật giải giải quyết cùngmột bài toán, sau đó yêu cầu HS chọn xem trong số các thuật giải đó thuậtgiải nào tốt nhất

Ví dụ 4: Nhập vào từ bàn phím một xâu Thay thế tất cả các cụm kí tự “anh”

Trang 18

- Tìm vị trí bắt đầu của xâu “anh”

- Xóa xâu “anh” vừa tìm thấy

- Chèn xâu “em” vào xâu s tại vị trí trước xuất hiện xâu “anh”KETTHUC;

{In xâu S}

KETTHUC

Bước 3: Thực hiện xây dựng chương trình

Xây dựng chương trình hay cũng được gọi là lập trình Lập trình làdùng một ngôn ngữ máy tính cụ thể để diễn tả thuật toán, cấu trúc dữ liệuthành các câu lệnh để máy tính có thể thực hiện được và giải quyết đúng bàitoán mà người lập trình mong muốn

Ở bước này GV có thể yêu cầu HS xây dựng chương trình bằng cáchtinh chế từng bước, đây là phương pháp có hệ thống giúp HS phân tích cácthuật toán và cơ sở dữ liệu để từ đó viết thành chương trình

Ban đầu chương trình được viết bằng những câu lời tự nhiên thể hiện

sự phân tích tổng thể Ở từng bước sau các câu lời được phân tích chi tiết hơnthành những câu lời khác tương ứng với sự phân tích công việc thành nhữngcông việc nhỏ hơn Mỗi câu lời đó là sự đặc tả công việc Sự tinh chế đượchướng về phía NNLT mà ta sẽ dựng nghĩa là càng ở những bước sau các câulời tự nhiên càng được thay bằng các câu lời của NNLT

- Ban đầu, chương trình được thể hiện bằng ngôn ngữ tự nhiên, thể hiệnthuật toán với các bước tổng thể, mỗi bước nêu lên một công việc phải thựchiện

- Một công việc đơn giản hoặc là một thuật toán cơ sở đã biết thì ta tiếnhành viết mã lệnh ngay bằng NNLT

- Một công việc phức tạp thì ta lại chia ra thành những công việc nhỏhơn để lại tiếp tục với những công việc nhỏ hơn đó

Phương pháp tinh chế từng bước là một thể hiện của tư duy giải quyết

Trang 19

vấn đề từ trên xuống, giúp cho người lập trình có được một định hướng thểhiện trong phong cách viết chương trình Tránh việc mò mẫm, xoá đi viết lạinhiều lần, biến chương trình thành tờ giấy nháp.

+ Thủ tục Delete(S,k,n): Xoá n kí tự trong xâu S bắt đầu từ vị trí k

+ Thủ tục Insert(s1,s2,k): chèn xâu s1 vào xâu s2 bắt đầu từ vị trí k

Chèn xâu “em” vào xâu s tại vị trí trước xuất hiện xâu “anh”:

Trang 20

End;

Write (s);

Readln;

Trang 21

Bước 4: Thực hiện chương trình (chạy chương trình)

Để tạo điều kiện vận dụng tri thức khoa học Tin học vào thực tế cầntránh tình trạng HS chỉ dừng lại ở phương hướng xây dựng giải thuật màkhông trực tiếp sử dụng các NNLT để mã hóa và thực hành kiểm thử lạichương trình trên máy Tình trạng này sẽ có tác hại không nhỏ đối với HStrong học tập hiện tại cũng như trong cuộc sống sau này (VD: thói quen làmviệc nửa vời, mang tính lí thuyết nhiều hơn, làm việc không suy tính đến cáckết quả có thể xảy ra sau này, …)

Một chương trình viết xong chưa chắc nó chạy được trên máy tính; kĩnăng tìm lỗi sửa lỗi, điều chỉnh viết lại chương trình cũng là một kĩ năng quantrọng trong lập trình

Khi chương trình không chạy được hoặc chạy cho kết quả sai là có lỗi

về thuật toán hoặc lỗi trình tự hoặc lỗi có pháp Học sinh cần phát hiện được

và sửa được các lỗi để có chương trình chạy đúng Trong bước này GV nênyêu cầu HS xây dựng các bộ test nhằm kiểm tra tính đúng đắn của chươngtrình, theo dõi và đánh giá chương trình của HS

1.3 Đặc điểm năng lực nhận thức và năng lực lập trình của HS ở THPT

Lứa tuổi học sinh ở trường THPT là thời kì các em đạt được sự trưởngthành về mặt thể lực, về hệ thần kinh, tạo điều kiện cho sự phát triển hoạtđộng phân tích, tổng hợp của HS

Nội dung và tính chất hoạt động học tập của học sinh có tính năng động

và độc lập ở mức cao hơn, yêu cầu có sự phát triển tư duy lý luận Các em cóvốn kinh nghiệm sống rất phong phú, thái độ ý thức đối với học tập ngày càngphát triển, hứng thú học tập gắn liền với khuynh hướng nghề nghiệp

Lứa tuổi HS cấp THPT tính chủ định phát triển mạnh ở tất cả các quátrình nhận thức, tri giác có mục đích đạt tới mức độ cao Quan sát trở nên có

Trang 22

mục đích, có hệ thống toàn diện hơn Tuy nhiên, quan sát của HS khó có hiệuquả nếu thiếu sự chỉ đạo của GV.

Sự ghi nhớ có chủ định giữ vai trò chủ đạo trong hoạt động trí tuệ, vaitrò của ghi nhớ logic trừu tượng, ghi nhớ ý nghĩa ngày một tăng lên rõ rệt

Nắm được quy trình thao tác thực hành nhằm đạt được mục đích, điều

cơ bản HS thông hiểu kĩ năng, ghi nhớ và áp dụng lý thuyết, thực hiện cácthao tác hành động gần như hoàn thiện

Tuy nhiên ở lứa tuổi HS cấp THPT chưa phát huy hết năng lực độc lậpsuy nghĩ của bản thân, nhiều lúc cũng kết luận vội vàng, Vì vậy việc giúpcác em phát triển khả năng nhận thức là một nhiệm vụ quan trọng của GV khithực hiện giảng dạy kiến thức trên lớp

1.4 Phân loại, vị trí và ý nghĩa của bài tập Tin học

Trong thực tế dạy học hiện nay, giáo viên có thể sử dụng bài tập ở bất

cứ lúc nào, bất cứ nơi nào khi thấy nó có thể giúp mình thỏa mãn nhiệm vụdạy học và mục đích dạy học

Bài tập tin học không phải là nội dung tri thức mới của Tin học nhưng

nó chứa đựng nội dung dạy học Bài tập phải phù hợp với nội dung dạy học,với năng lực nhận thức của học sinh và phải phục vụ được ý đồ của giáo viên.Khi ra một bài tập phải xác định đúng vị trí của nó để bài tập trở thành một bộphận hữu cơ của hệ thống kiến thức cần truyền thụ

Trang 23

1.5 Biện pháp sư phạm khi dạy học bài tập lập trình Tin học

1.5.1 Thông hiểu các thuật toán cơ bản

Ở phương diện thuật giải, khi tìm thuật toán giải bài toán lập trình làtìm cách đưa bài toán cần giải về áp dụng các thuật toán cơ sở đã biết nào đó.Như vậy, yêu cầu HS phải thông hiểu một số thuật toán cơ sở trong lập trinhTin học ở lớp 11

Trong dạy học từng thuật toán cơ sở cần chú ý tuân thủ các bước sau:

- Xác định Input và Output của bài toán

- Nêu ý tưởng chung thuật toán

- Trình bày thuật toán bằng lời nói với ngôn ngữ thông thường

- Mã hóa thuật toán

- Test thuật toán: Đưa ra bộ dữ liệu cụ thể để phân tích tìm giá trị cácbiến thay đổi thế nào qua từng dòng lệnh, qua từng đoạn chương trình

Hệ thống thuật toán cơ sở ở lớp 11:

- Thuật toán hoán đổi giá trị của hai số

- Thuật toán kiểm tra số nguyên tố

- Thuật toán tính tổng các chữ số của một số nguyên

- Thuật toán Euclide tìm UCLN

- Thuật toán tìm Max, Min của một dãy số

Trang 24

- Các thuật toán sắp xếp: Sắp xếp nổi bọt; Sắp xếp chèn; Sắp xếp chọn

- Các thuật toán tìm kiếm: Tìm kiếm tuần tự; Tìm kiếm nhị phân

Thực tế, đa phần các em HS sau khi học chương trình Tin học 11 đềurất bỡ ngỡ và yếu khi xây dựng thuật toán cho các bài toán Việc nắm vữnggiả thiết, kết luận và cách giải một bài toán cơ sở rất quan trọng trong việcnhận dạng, mở rộng phạm vi bài toán từ đó HS xác định, xây dựng được cáchgiải các bài toán cùng dạng hoặc mở rộng Cũng từ đó khuyến khích khả năng

tự học, tự nghiên cứu của HS

1.5.2 Phân tích tìm thuật toán giải bài toán

Từ bộ dữ liệu cụ thể được chọn là bộ dữ liệu đưa vào trong máy tínhđiện tử để giải bài toán, HS biết phân tích trên bộ dữ liệu đó tìm ra thuật toán

để giải bài toán đó

→ Đây là bước khó khăn nhất nhưng quan trọng nhất của quá trình giải mộtbài toán Tin học, vì các bài toán có thể không có thuật Algorithm (không phảicác dạng thuật toán có sẵn, không theo một trình tự nào), HS phải tự phân tíchtheo từng bước để có thể khái quát thành một thuật toán cho riêng mình

Tiếp theo mô tả thuật toán giải bài toán bằng sơ đồ khối hoặc bằngphương pháp liệt kê từng bước Tức là xây dựng dãy các tác động để cho máytính có thể thực hiện Từ đó mã hóa chương trình theo thuật toán tìm được

1.5.3 Lập trình và test chương trình với bộ dữ liệu cũ

- Mã hóa thuật toán đã có bằng NNLT cụ thể

- Kiểm thử lại chương trình với bộ dữ liệu ban đầu

+ Các bộ test phải đa dạng, tránh sự lặp đi lặp lại các bộ test tương tự

Có một vài test lớn chỉ để kiểm tra tính chịu đựng của chương trình mà

Trang 25

thôi Kết quả có đúng hay không thì trong đa số trường hợp, ta không thểkiểm chứng được với test này.

1.5.4 Khai thác bài toán

Thử lại kết quả của bài toán, thử lại các lập luận trong lời giải đã tìmđược của bài toán

Tìm các cách giải khác nếu có của bài toán

Nghiên cứu bài toán liên quan: Bài toán tương tự, bài toán khái quát, …

Ví dụ: Nhập vào một số nguyên dương N từ bàn phím Đưa ra số nguyên nhỏ

nhất mà lớn hơn N từ việc hoán vị các chữ số có trong N

- Giả sử số N = 326541 nhập từ bàn phím, số phải tìm được là 341256

- Phân tích: Số cần tìm phải lớn hơn số hiện tại, nghĩa là khi ta hoán vị cácchữ số, số sinh ra vừa đủ lớn hơn theo nghĩa không thể có một số nào nữađược tạo ra chen giữa khi chúng sắp thứ tự

- Ý tưởng:

+ Xét 4 chữ số cuối cùng, ta thấy chúng được xếp giảm dần, có nghĩa là cho

dù ta có hoán vị 4 phần tử này thế nào, ta cũng được một số bé hơn số N.+ Như vậy ta phải xét đến chữ số thứ 2, thay nó bằng một giá trị khác:

Không thể là 1 bởi nếu vậy sẽ được số nhỏ hơn (316542)

Không thể là 3 vì đã có chữ số thứ nhất bằng 3 rồi

 Còn lại các giá trị 4, 5, 6 Vì cần một số mới vừa đủ lớn hơn số N nên ta chọn chữ số thứ hai là 4

+ Còn các chữ số thứ 3, 4, 5, 6 sẽ lấy trong tập {2, 6, 5, 1} Cũng vì tính vừa

đủ lớn nên ta sẽ tìm biểu diễn nhỏ nhất của 4 số này, gán cho lần lượt chữ sốthứ 3, 4, 5, 6 tức là (1, 2, 5, 6)

+ Vậy số cần tìm sẽ là 341256

- Từ ý tưởng bài toán, ta xây dựng thuật toán như sau:

(Dùng xâu kí tự S biểu diễn số nguyên dương N)

Trang 26

Xác định đoạn cuối giảm dần dài nhất, tìm chỉ số i của phần tử s[i]đứng liền trước đoạn cuối đó Điều này đồng nghĩa với việc tìm từ vị trí sátcuối dãy lên đầu, gặp chỉ số i đầu tiên thỏa mãn s[i] < s[i+1].

+ Nếu tìm thấy chỉ số i như trên:

 Trong đoạn cuối giảm dần, tìm phần tử s[k] nhỏ nhất thỏa mãn điều kiện s[k] > s[i] Do đoạn cuối giảm dần, điều này thực hiện bằng cáchtìm từ cuối dãy lên đâu gặp chỉ số k đầu tiên thỏa mãn s[k] > s[i]

Đảo giá trị s[k] và s[i]

Lật ngược thứ tự đoạn cuối giảm dần (s[i+1] đến s[k]) thành tăng dần.+ Nếu không tìm thấy tức là số N đã là số lớn nhất, không tìm được số thỏamãn

while (i > 0) and (s[i] > s[i+1]) do i := i-1;

If i = 0 then writeln('Da la so lon nhat')

Trang 29

CHƯƠNG 2 XÂY DỰNG HỆ THỐNG BÀI TẬP DẠY HỌC KĨ NĂNG LẬP TRÌNH PASCAL CHO HỌC SINH LỚP 11 TRƯỜNG THPT

2.1 Tổng quan các bài tập lập trình Tin học 11 THPT

2.1.1 Nội dung chương trình các bài tập lập trình

Chương trình Tin học lớp 11 THPT bao gồm các bài tập gắn với các bàihọc theo chủ đề chính sau:

Bài 1: Cấu trúc rẽ nhánh

- Câu lệnh if - then

- Câu lệnh ghép

Bài 2: Cấu trúc lặp

- Lặp với số lần biết trước và câu lệnh for - to - do

- Lặp với số lần chưa biết trước và câu lệnh while - do

Bài 3: Kiểu mảng

- Kiểu mảng một chiều

- Kiểu mảng hai chiều

Bài 4: Kiểu xâu

Bài 7: Chương trình con

- Khái niệm về chương trình con

- Phân loại và cấu trúc chương trình con

Trang 30

2.1.2 Một số nguyên tắc xây dựng hệ thống bài tập nhằm củng cố kiến thức và phát triển tư duy sáng tạo

Hệ thống bài tập phải góp phần thực hiện mục tiêu môn học

Bài tập là phương tiện để tổ chức các hoạt động của học sinh nhằmkhắc sâu, vận dụng và phát triển hệ thống kiến thức lí thuyết đã học, hìnhthành và rèn luyện các kĩ năng cơ bản

Mục tiêu của tin học ở trường THPT (đối với ban cơ bản) là cung cấpcho HS hệ thống kiến thức, kĩ năng phổ thông cơ bản về môn tin học; cácdịch vụ có sẵn (thiết bị, phần mềm) để thực hiện các công việc thông dụng,tạo ra các sản phẩm đơn giản để phục vụ học tập và đời sống; rèn luyện kỹnăng giải quyết vấn đề khi giải quyết vấn đề có sự trợ giúp của máy tính, cókhả năng chuyển giao thuật toán cho máy tính thực hiện thông qua ngôn ngữlập trình Pascal

Hệ thống bài tập cần phải bám sát nội dung bài học

Hệ thống bài tập ở đây luôn bám sát nội dung chương trình của mônhọc, phải đảm bảo được mức độ kiến thức của HS khi học xong chương trình

Nguyên tắc này thể hiện ở chỗ các bài tập không những phải tuân thủnội dung chương trình của môn học mà còn phải đảm bảo sự phù hợp về kiếnthức trong chương trình

Căn cứ vào mục tiêu của chương, bài và từng nội dung trong bài để xâydựng, lựa chọn bài tập cho phù hợp với mục tiêu đó

Hệ thống bài tập phải đảm bảo tính sư phạm

Các kiến thức bên ngoài khi đưa vào làm bài tập đều phải qua khâu xử

lí sư phạm để phù hợp với phương pháp giảng dạy và thúc đẩy khả năng tiếpthu của HS

Nội dung các bài tập phải đảm bảo tính chính xác, khoa học

Khi xây dựng nội dung của bài tập phải có sự chính xác về kiến thức tinhọc, bài tập, cho đủ các điều kiện, không được dư hay thiếu Các bài tậpkhông được mắc sai lầm về mặt thiếu chính xác trong các diễn đạt, nội dung

Trang 31

thiếu logic chặt chẽ Vì vậy giáo viên khi ra bài tập cần nói, viết một cáchlogic chính xác và đảm bảo tính khoa học về mặt ngôn ngữ Tin học.

Hệ thống bài tập phải đảm bảo tính đa dạng, tính hệ thống

Hệ thống là tập hợp nhiều yếu tố, đơn vị cùng loại hoặc cùng chứcnăng, có quan hệ hoặc liên hệ chặt chẽ làm thành một thể thống nhất

Các bài tập được sắp xếp theo từng dạng bài tập Toàn bộ hệ thống bàitập đều nhằm giúp HS nắm vững kiến thức, hình thành và phát triển hệ thống

kĩ năng cơ bản nếu không việc định hướng suy nghĩ, mục tiêu bài học sẽkhông thể đạt được

Hệ thống bài tập phải đảm bảo tính vừa sức

Tính vừa sức ở đây thể hiện cụ thể như sau: hệ thống bài tập đưa raphải phù hợp với hiểu biết về tri thức cũng như trình độ khả năng nhận thứccủa HS

Hệ thống bài tập phải xây dựng từ dễ đến khó, từ đơn giản đến phứctạp Đầu tiên là những bài tập vận dụng theo mức đơn giản, sau đó là nhữngbài tập phức tạp hơn, sau đó đòi hỏi các dạng bài tập vận dụng, sáng tạo.Từng chương, từng bài, mức độ khó tăng dần theo trình độ phát triển của HS

Nếu bài tập quá khó HS sẽ không đủ sức để giải quyết yêu cầu của bàitập Tuy nhiên bài tập quá dễ sẽ không phát huy được tính sáng tạo của HS

Hệ thống bài tập phải củng cố kiến thức cho HS

Sự nắm vững kiến thức có thể phân biệt ở ba mức độ: biết, hiểu, vậndụng HS nắm vững kiến thức tin học một cách chính xác khi họ được hìnhthành kĩ năng, kĩ xảo vận dụng và chiếm lĩnh kiến thức thông qua nhiều dạngbài tập khác nhau

Hệ thống bài tập phải phát huy tính tích cực nhận thức, năng lực vận dụng sáng tạo của HS

Tùy theo trình độ HS mà xây dựng hệ thống bài tập cho phù hợp vớikhả năng của HS Bài tập từ dễ đến khó, nếu thấy HS đã đạt đến mức độ dễthì nâng dần lên mức độ cao hơn

Trang 32

2.2 Xây dựng hệ thống bài tập dạy học lập trình Pascal 11 trường THPT 2.2.1 Hệ thống bài tập “Cấu trúc rẽ nhánh”

Kiến thức trọng tâm giáo viên cần truyền tải tới học sinh:

- Câu lệnh dạng thiếu: IF <Điều kiện> THEN <Câu lệnh>;

Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng (có giá trị true)

thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua.

- Câu lệnh dạng đủ: IF <Điều kiện> THEN <Câu lệnh 1>

ELSE <Câu lệnh 2>;

Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng (có giá trị true)

thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện.

Trang 34

Var a, b, c: real;

D, x1, x2: real;

Trang 35

Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho

400 hoặc chia hết cho 4 nhưng không chia hết cho 100 Ví dụ năm 2000, 2004

là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là nămnhuận và có số ngày là 365

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

Input: Số tự nhiên N nhập từ bàn phím

Output: Đưa ra số ngày của năm N ra màn hình

Trang 36

- Chương trình:

Program Nam_nhuan;Uses crt;

Var N, SN: integer;BEGIN

Trang 37

Bài 1: Cho ba số nguyên p, q, r bất kì khác 0 (với p, q, r được nhập vào từ bàn

phím) Viết chương trình kiểm tra ba số này, theo thứ tự nhập vào có tạothành một cấp số nhân hay không

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

Input: Ba số nguyên p, q, r

Output: Kết luận 3 số có tạo thành cấp số nhân hay không

- Ý tưởng:

+ Trong một cấp số nhân, bình phương của mỗi số hạng (trừ số hạng

Trang 39

Writeln(„3 so ‟, p,‟ ,‟, q,‟ ,‟, r, ‟khong lap thanh mot cap

+ Tính D = a.b‟ – b.a‟; Dx = c.b‟ – b.c‟; Dy = a.c‟ – c.a‟;

+ Kiểm tra Nếu D <> 0 kết luân nghiệm hệ là Dx/D và Dy/D

Nếu D = 0 , Nếu Dx = Dy = 0 kết luận hệ vô định

Trái lại kết luận hệ vô nghiệm

- Chương trình: HS tự hoàn thiện

Bài 3: Cho 3 số thực a, b, c Hãy tìm giá trị lớn nhất, bé nhất trong 3 số

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

Input: Các số thực a, b, c nhập từ bàn phím

Output: Đưa ra giá trị Max, Min của 3 số

Trang 40

- Thuật toán:

+ Gán cho biến Max = a (Min = a);

+ Kiểm tra Nếu Max < b (Min > b) thì gán Max = b (Min = b);+ Kiểm tra Nếu Max < c (Min > c)thì gán Max = c (Min = c);

Ngày đăng: 26/09/2019, 01:05

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Nguyễn Thị Kiều Duyên (2017), Lý thuyết và Bài tập lập trình Pascal, NXB Giáo dục Sách, tạp chí
Tiêu đề: Lý thuyết và Bài tập lập trình Pascal
Tác giả: Nguyễn Thị Kiều Duyên
Nhà XB: NXB Giáo dục
Năm: 2017
[2]. Nguyễn Văn Dược, Những bài tập xử lý mảng một chiều và xử lý xâu, Sáng kiến kinh nghiệm, Trường THPT Võ Văn Kiệt – Kiên Giang Sách, tạp chí
Tiêu đề: Những bài tập xử lý mảng một chiều và xử lý xâu,Sáng kiến kinh nghiệm
[3]. Hồ Sĩ Đàm, Sách giáo khoa Tin học 11, NXB Giáo dục Sách, tạp chí
Tiêu đề: Sách giáo khoa Tin học 11
Nhà XB: NXB Giáo dục
[4]. Hồ Sĩ Đàm – Nguyễn Thanh Tùng, Bài tập Tin học 11, NXB Giáo dục Sách, tạp chí
Tiêu đề: Bài tập Tin học 11
Nhà XB: NXB Giáo dục
[5]. Lê Minh Hoàng (1999 – 2002), Giải thuật và lập trình, ĐHSP Hà Nội Sách, tạp chí
Tiêu đề: Giải thuật và lập trình
[6]. Vũ Thị Huệ (2013), Xây dựng hệ thống bài tập luyện kỹ năng cho học sinh chuyển đổi giữa cấu trúc lặp While ... do và For ... do, Sáng kiến kinh nghiệm, Trường THPT Trần Phú – Thanh Hóa Sách, tạp chí
Tiêu đề: Xây dựng hệ thống bài tập luyện kỹ năng cho họcsinh chuyển đổi giữa cấu trúc lặp While ... do và For ... do, Sáng kiếnkinh nghiệm
Tác giả: Vũ Thị Huệ
Năm: 2013
[7]. Vũ Quốc Khanh (2013), Bổ sung hệ thống bài tập môn tin lớp 11, Sáng kiến kinh nghiệm, Trường THPT Đoàn Kết – Hà Nội Sách, tạp chí
Tiêu đề: Bổ sung hệ thống bài tập môn tin lớp 11, Sángkiến kinh nghiệm
Tác giả: Vũ Quốc Khanh
Năm: 2013
[8]. Đặng Văn Tuấn (2015), Một số bài tập về cách làm việc với tệp, Sáng kiến kinh nghiệm, Trường THPT Đông Sơn 1 – Thanh Hóa Sách, tạp chí
Tiêu đề: Một số bài tập về cách làm việc với tệp, Sángkiến kinh nghiệm
Tác giả: Đặng Văn Tuấn
Năm: 2015
[9]. Nguyễn Quang Vịnh, Bài tập thực hành Pascal Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w