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

Một số kinh nghiệm đề nâng cao chất lượng học tin học cho học sinh yếu kém lớp 11 khi học chương IV kiểu dữ liệu có cấu trúc

22 208 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 22
Dung lượng 191 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 với mỗi kiểu dữ liệu có cấu trúc, học sinh phải biết cách khai báo, biếtthao tác trên từng thành phần cơ sở, sử dụng các phép toán trên các thành phần cơ sở tùy theo kiểu của thành

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT HẬU LỘC I

SÁNG KIẾN KINH NGHIỆM

MỘT SỐ KINH NGHIỆM ĐỂ NÂNG CAO CHẤT LƯỢNG HỌC TIN HỌC CHO HỌC SINH YẾU KÉM LỚP 11

KHI HỌC CHƯƠNG IV-KIỂU DỮ LIỆU CÓ CẤU TRÚC

Người thực hiện: Nguyễn Thị Ninh Giang Chức vụ: Giáo viên

Đơn vị công tác: Trường THPT Hậu Lộc I SKKN thuộc lĩnh mực: Tin học

THANH HOÁ NĂM 2016

Trang 2

MỤC LỤC

Trang

PHẦN I: MỞ ĐẦU ……… 4

I LÝ DO CHỌN ĐỀ TÀI ……… 4

II MỤC ĐÍCH NGHIÊN CỨU ……… 4

III ĐỐI TƯỢNG NGHIÊN CỨU ……… 4

IV PHƯƠNG PHÁP NGHIÊN CỨU ……… 4

PHẦN II: NỘI DUNG SÁNG KIẾN KINH NGHIỆM ……… 5

I CƠ SỞ LÝ LUẬN CỦA SÁNG KIẾN KINH NGHIỆM ……… 5

II THỰC TRẠNG CỦA VẤN ĐỀ ……… 5

III CÁC GIẢI PHÁP ĐÃ SỬ DỤNG ĐỂ GIẢI QUYẾT VẤN ĐỀ …… 6

1 GIẢI PHÁP ĐỐI VỚI BÀI 11- KIỂU MẢNG ……… 6

2 GIẢI PHÁP ĐỐI VỚI BÀI 12- KIỂU XÂU ……… 12

IV HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM VỚI HĐGD ………18

PHẦN III: KẾT LUẬN VÀ KIẾN NGHỊ ………21

TÀI LIỆU THAM KHẢO ……….22

Trang 3

DANH MỤC CÁC KÝ HIỆU VIẾT TẮT SỬ DỤNG TRONG SÁNG KIẾN KINH NGHIỆM

STT Tên viết tắt Giải thích

Trang 4

PHẦN I MỞ ĐẦU

I LÝ DO CHỌN ĐỀ TÀI

Trong chương trình dạy Tin học ở bậc THPT, có thể nói chương trình TinHọc lớp 11 là khó hơn cả Khó ở chỗ các em không phải học thao tác trên một sốphần mềm ứng dụng có sẵn mà các em phải học để hiểu một ngôn ngữ lập trìnhbậc cao ( PASCAL) để từ đó có thể lựa chọn hoặc thiết kế thuật toán và viết đượcchương trình hoàn chỉnh để thực hiện được thuật toán giải quyết được lớp bài toán

cụ thể Đó quả là công việc khó đối với đa số học sinh khối 11 và đặc biệt khó đốivới học sinh yếu kém Khi các em không hiểu sẽ dẫn đến thái độ học tập của các

em buồn chán, thờ ơ, thụ động … và điều đó sẽ ảnh hưởng rất lớn đến kết quả củaquá trình dạy học

Bản thân tôi đã băn khoăn, trăn trở làm thế nào để nâng cao được chất lượngcho đối tượng là học sinh yếu kém để từ đó phát triển được động cơ học tập và gâyđược hứng thú học môn Tin học của tất cả các em khi học lập trình trong chươngtrình Tin học 11

Xuất phát từ thực tế đó và qua nhiều năm trực tiếp giảng dạy Tin Học chokhối 11, trong khuôn khổ sáng kiến kinh nghiệm của mình tôi xin trình bày “Một sốkinh nghiệm để nâng cao chất lượng học Tin Học cho học sinh yếu kém lớp 11 khihọc chương IV- Kiểu dữ liệu có cấu trúc”

II MỤC ĐÍCH NGHIÊN CỨU

- Tìm ra giải pháp nâng cao chất lượng học bộ môn Tin học 11 cho học sinh yếukém khi học chương IV

III ĐỐI TƯỢNG NGHIÊN CỨU

- Học sinh yếu kém lớp 11 qua các năm

- Nghiên cứu chương IV- Kiểu dữ liệu có cấu trúc

IV PHƯƠNG PHÁP NGHIÊN CỨU.

- Phương pháp điều tra, quan sát

- Phương pháp tổng kết kinh nghiệm

- Phương pháp thực nghiệm sư phạm

- Phương pháp dùng phương tiện trực quan

- Phương pháp rèn luyện tư duy theo lối mòn

- Phương pháp gợi mở vấn đề

Trang 5

PHẦN II: NỘI DUNG SÁNG KIẾN KINH NGHIỆM

I CƠ SỞ LÝ LUẬN CỦA SÁNG KIẾN KINH NGHIỆM

- Kiểu dữ liệu có cấu trúc giúp người lập trình thể hiện ( mô phỏng ) được dữliệu thực tế Từ đó, có khả năng giải quyết được những bài toán đặt ra trên thực tế

- Mỗi kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theomột số cách thức tạo kiểu do ngôn ngữ lập trình quy định

- Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bàitoán thường gặp

- Trong ngôn ngữ lập trình Pascal, dùng mô tả kiểu dữ liệu mới với từ khóaType có thể tránh được sự lặp lại khi mô tả trực tiếp kiểu dữ liệu mới với từ khóaVar ( cho nhiều biến cùng kiểu này)

- Đối với mỗi kiểu dữ liệu có cấu trúc, học sinh phải biết cách khai báo, biếtthao tác trên từng thành phần cơ sở, sử dụng các phép toán trên các thành phần cơ

sở tùy theo kiểu của thành phần cơ sở, điều này khác biệt với các kiểu dữ liệu đơngiản

II THỰC TRẠNG CỦA VẤN ĐỀ

Chương IV- Kiểu dữ liệu có cấu trúc là một chương quan trọng trong chươngtrình Tin Học 11 Trong chương này sau giảm tải các em học sinh khối 11 sẽ đượchọc hai bài là: Bài 11- Kiểu Mảng và Bài 12 – Kiểu Xâu

Để viết được chương trình có sử dụng hai kiểu dữ liệu này quả thật là khó khăn đốivới đối tượng học sinh yếu kém Phần lớn các bài tập hay trên thực tế đều sử dụngcác kiểu dữ liệu này Tuy nhiên, các em chưa nắm được cách khai báo, cách nhập

dữ liệu, cách truy cập đến từng phần tử cũng như là các thao tác tính toán của cáckiểu dữ liệu này nên việc viết chương trình tỷ lệ thành công chưa cao dẫn đến các

em dễ chán nản và không mấy hứng thú với môn học Từ chỗ đó các em ngồi họckhông tập trung, nói chuyện, làm việc riêng … để giáo viên phải nhắc nhở nhiềudẫn đến ảnh hưởng cả một tập thể

Qua điều tra, quan sát, tổng kết kinh nghiệm tôi nhận thấy nguyên nhân sâu

xa của thực trạng trên là các em học sinh yếu kém chưa tự xác định được kiểu dữliệu thích hợp khi viết chương trình giải quyết bài toán là gì, chưa nhớ chính xácđược các từ khóa, cách khai báo cho các kiểu dữ liệu, cú pháp của các câu lệnh…( sử dụng ngôn ngữ Tiếng Anh), chưa nắm được cách truy cập đến từng phần tửcủa mỗi kiểu dữ liệu, chưa nhớ chính xác được các phép toán, các hàm, thủ tục khilàm việc với kiểu dữ liệu này…

Mặt khác, do đặc điểm tâm lý của học sinh yếu kém là thường tự ti, mặccảm, không tin tưởng vào khả năng của bản thân mình

Bên cạnh đó, việc dành thời gian quan tâm, hướng dẫn chi li, chi tiết củagiáo viên chưa nhiều cho đối tượng học sinh này

Trang 6

III CÁC GIẢI PHÁP ĐÃ SỬ DỤNG ĐỂ GIẢI QUYẾT VẤN ĐỀ

Để nâng cao chất lượng học Tin học cho học sinh yếu kém tôi xin đưa ra cácgiải pháp và cách thực hiện như sau:

1 ĐỐI VỚI BÀI HỌC: §11- KIỂU MẢNG

Tôi tiến hành qua các bước sau:

Bước 1: Giới thiệu và yêu cầu học sinh phải hiểu khái niệm mảng một chiều là dãy

hữu hạn các phần tử cùng kiểu Mảng được đặt tên và mỗi phần tử của nó có mộtchỉ số Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh

số các phần tử của mảng cũng như cách tham chiếu tới phần tử của mảng… Yêucầu các em phải học thuộc các từ khóa, các tên chuẩn, các hàm, thủ tục, các câu

lệnh đã được học của Ngôn ngữ lập trình Pascal.

Bước 2: Sau khi giới thiệu và cho học sinh đầy đủ các khái niệm đề ra của đơn vị

bài học, tôi tiến hành lấy ví dụ rất nôm na để minh họa cho khái niệm mảng mộtchiều Giúp các em khắc sâu và có cái nhìn trực quan, sinh động nhất về kiểu dữliệu này

Ví dụ: Dãy phòng học 1 tầng gồm 5 phòng học Có thể coi là 1 mảng một chiều

A

Nhìn vào dãy phòng minh họa trên tôi sẽ đặt câu hỏi cho HS :

- Dãy phòng được đặt tên là gì ?

- Kiểu của các phòng ?

- Cách đánh số phòng ?

- Cách gọi tên phòng ?Lúc đó, đa số các em sẽ trả lời được

- Dãy phòng tên là A

- Kiểu của các phòng đều là phòng học ( giải thích thêm cho HS hiểunghĩa là cùng cấu trúc)

- Cách đánh số phòng từ 1, 2, 3, 4, 5

- Cách gọi tên phòng là tên của dãy[chỉ số] Ví dụ: A[2]

Đến đây , tôi nhấn mạnh đây cũng chính là cách tham chiếu tới phần tử của mảng.

Bước 3: Tôi tiến hành cho học sinh nghiên cứu ví dụ bài toán nhiệt độ trong SGK

và đặt ra hệ thống câu hỏi cho các em suy nghĩ trả lời

Chương trình như sau:

Trang 7

Writeln( ‘Nhiet do trung binh cua tuan: ’,tb:8:2);

Writeln(‘ So ngay nhiet do cao hon nhiet do trung bình la ;

’,dem);

Readln End.

Hệ thống câu hỏi tôi đưa ra là:

- Em nhận thấy gì ở phần khai báo biến?

- Nhận xét về các biến t1, t2, t3, t4, t5, t6, t7 ?

- So sánh các câu lệnh IF THEN trong chương trình ?

- Nếu bài toán là nhiệt độ của cả năm thì điều phiền phức nào sẽ xảy ra?Cùng với các câu hỏi gợi mở cùa mình tôi hướng cho học sinh có thể trả lời các câuhỏi và nếu là bài toán là nhiệt độ của cả năm thì phải khai báo hơn 365 biến để chonhiệt độ của từng ngày và 365 câu lệnh IF THEN để so sánh với nhiệt độ trungbình của năm Điều này tốn nhiều bộ nhớ cho các biến và mất nhiều thời gian để

khai báo nhiều biến giống nhau chỉ khác mỗi chỉ số, lặp đi lặp lại câu lệnh IF…

THEN gần như giống nhau chỉ khác mỗi tên biến chứa nhiệt độ của từng ngày.

Nhấn mạnh thêm , các biến t1, t3, …, t7,… đều là các biến nhiệt độ của ngày chỉ

khác mỗi số ngày ( cụ thể ở đây ngày được kí hiệu từ 1, 2, …,7, … ) Nói cáchkhác, về cấu trúc các biến này giống nhau Tại sao chúng ta không sử dụng mảngmột chiều? Vì đây gồm nhiều phần tử cùng kiểu

Bước 4: Đến lúc này tôi giới thiệu 2 cách khai báo mảng một chiều đến các học

sinh và yêu cầu các em học thuộc các cách khai báo

Cách 1: Khai báo trực tiếp biến mảng một chiều.

Var <tên biến mảng > : array[kiểu chỉ số] of <kiểu phần tử >;

Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều.

Type <tên kiểu mảng > = array[kiểu chỉ số] of kiểu phần tử;

Var <tên biến mảng> : <tên kiểu mảng>;

Bước 5: Vì đối tượng là học sinh yếu kém nên tôi tiến hành lấy các ví dụ rất cơ

bản, tôi trực tiếp thực hiện trên máy chiếu, giải thích cặn kẽ từng câu lệnh và chạychương trình cho các em xem kết quả

Ví dụ 1: Viết chương trình nhập từ bàn phím một mảng một chiều không quá 10 sốnguyên Đưa ra màn hình các phần tử của mảng vừa nhập

Chương trình như sau:

Trang 8

Ví dụ 2: Viết chương trình nhập từ bàn phím dãy các số thực không quá 50 phần

tử Đưa ra màn hình dãy số vừa nhập

Chương trình như sau:

- Từ đó tôi chỉ ra để các em phải nhận thấy được đối với bài toán này sử dụng kiểumảng một chiều để làm việc là tối ưu hơn cách làm cũ Số biến khai báo chứa nhiệt

Trang 9

độ cho từng ngày chỉ còn 1 biến mảng Nhietdo và chỉ còn lại 1 câu lệnh IF THEN

để so sánh nhiệt độ từng ngày với nhiệt độ trung bình Vì vậy chương trình trở nênngắn gọn, dễ đọc, dễ hiểu và tiết kiệm được thời gian viết chương trình hơn

Chương trình như sau:

If Nhietdo[i] > tb then dem:= dem+1;

Writeln( ‘ Nhiet do trung binh ‘,N, ‘ ngay: ’, tb: 8:2);

Writeln( ‘ So ngay nhiet do cao hon trung binh: ’, dem );

Readln End.

Sau 3 ví dụ trên, tôi đưa ra so sánh đề bài và cách khai báo của 3 ví dụ

- Ở vd 1, mảng không quá 10 phần tử kiểu nguyên nên khi khai báo biến mảng thìkiểu chỉ số là [1 10], kiểu phần tử là kiểu số nguyên Integer;

- Ở vd 2, dãy số không quá 50 phần tử kiểu thực nên khi khai báo biến mảng thìkiểu chỉ số là [1 50], kiểu phần tử là kiểu số thực Real;

- Ở vd 3, mảng chứa nhiệt độ các ngày trong năm nên kiểu chỉ số [1 366], kiểuphần tử là kiểu số thực Real

Nhấn mạnh:

+ Tùy theo đề bài cho mà các em lựa chọn, kiểu dữ liệu, kiểu chỉ số cho phù hợp vàtối ưu

+ Trong chương trình có sử dụng biến kiểu mảng thường chứa câu lệnh lặp với số

lần biết trước FOR DO để duyệt các phần tử của mảng Với số lần biết trước là

số phần tử của mảng ( thường được nhập từ bàn phím)

Trang 10

+ Qua ba ví dụ tôi làm trên máy chiếu, nhấn mạnh với các em là ví dụ 1 và ví dụ 2chính là chương trình cơ bản nhất để nhập mảng một chiều với N phần tử , N đượcnhập từ bàn phím

+ Tôi bắt buộc các em phải học thuộc ví dụ này vì nhập mảng là 1 công đoạn đầutiên trước khi thực hiện các thao tác khác khi làm việc với kiểu mảng một chiều.+ Sau khi nhập mảng một chiều xong, tùy theo yêu cầu của bài toán đề ra mà ta cónhững câu lệnh thể hiện các thao tác tiếp theo Đây chính là cách rèn luyện tư duytheo lối mòn cho nhóm đối tượng học sinh này

Bước 6: Tôi ra một số bài tập cho học sinh áp dụng với mức độ nhẹ nhàng hơn

SGK và tăng dần độ khó lên để các em có thể tự làm được Từ đó các em thấy hứngthú, tích cực học tập bộ môn hơn

Hệ thống bài tập áp dụng tôi đưa ra cho đối tượng học sinh này là:

Bài tập 1: Nhập một mảng một chiều gồm N số nguyên (N<=100) Đưa ra màn

hình các số hạng là số chẵn

Bài tập 2: Nhập một dãy số nguyên không quá 50 phần tử Đưa ra vị trí mà tại đó

có số hạng chia hết cho 5

Bài tập 3: Nhập một dãy số thực không quá 200 phần tử Đếm xem dãy số vừa

nhập có bao nhiêu số âm

- Sau khi đưa ra đề bài, tôi sẽ chia nhóm theo khả năng của các em để làmviệc theo nhóm Các nhóm sẽ thảo luận, làm việc và hoàn thành cả 3 bài tập trên.Tôi yêu cầu tất cả các thành viên trong nhóm đều phải tích cực làm việc, cùng nhauxây dựng chương trình và mọi thành viên trong nhóm đều phải được hiểu bài làm.Sau đó, mời đại diện các nhóm lần lượt lên trình bày trực tiếp trên máy chiếu Tôi

sẽ cho điểm để động viên khích lệ để các em ngày càng tự tin vào khả năng củamình, tôi tiến hành chỉnh sửa các lỗi có trong bài làm, hoàn thiện chương trìnhcho các em

- Sau đó, cho tất cả các em thực hành trực tiếp trên máy để Test trên nhiều bộInput khác nhau

Chương trình hoàn chỉnh của các bài tập trên như sau:

Trang 11

If (a[i] mod 5 ) = 0 then

Writeln(‘ Tại vị trí ’, i , ‘ có so hang chia het cho 5

Trang 12

Write(‘ Day so co ‘, dem , ‘ so hang co gia tri am ’);

Readln;

End.

Bước 7: Tôi yêu cầu các em nghiên cứu trước để hiểu ít nhiều về các chương trình

của các ví dụ có mức độ khó hơn trong SGK đã đưa ra Chỗ nào không hiểu yêucầu các em gạch chân để cô giải thích Sau cùng tôi giải thích chi tiết từng câu lệnhmột và chạy chương trình để minh họa để các em hiểu rõ hơn

2 ĐỐI VỚI BÀI HỌC: §12- KIỂU XÂU

Tôi tiến hành qua các bước sau:

Bước 1 : Giới thiệu và yêu cầu học sinh phải hiểu được xâu là dãy các kí tự trong

bộ mã ASCII Mỗi kí tự trong xâu được gọi là một phần tử của xâu.Số lượng kí tựtrong xâu được gọi là độ dài xâu Các kí tự của xâu được đánh số thứ tự, thường bắtđầu từ 1 Tham chiếu đến phần tử của xâu được xác định bởi tên biến xâu và chỉ sốđặt trong cặp dấu [ ]

Yêu cầu các em phải học thuộc các từ khóa, các tên chuẩn, các hàm, thủ tục, cáccâu lệnh liên quan đã được học của Ngôn ngữ lập trình Pascal

Bước 2 : Sau khi giới thiệu và cho học sinh đầy đủ các khái niệm đề ra của đơn vị

bài học, tôi tiến hành lấy ví dụ để minh họa cho khái niệm kiểu xâu Giúp các emkhắc sâu và có cái nhìn trực quan, sinh động nhất về kiểu dữ liệu này

Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự

Ví dụ minh họa kiểu xâu như hình vẽ sau:

S

Nhìn vào hình trên trên các em dễ dàng thấy kiểu xâu giống kiểu mảng một chiều,chỉ khác là mỗi phần tử của xâu là 1 kí tự

- Cách gọi tên phòng là tên của dãy[chỉ số] Ví dụ: A[2]

Đến đây , tôi nhấn mạnh đây cũng chính là cách tham chiếu tới phần tử của mảng

Bước 3:

- Tôi giới thiệu cách khai báo dữ liệu kiểu xâu và yêu cầu các em học thuộc cáccách khai báo Cụ thể như sau:

Var <tên biến xâu > : string[độ dài lớn nhất của xâu];

Trong đó: String là tên dành riêng để khai báo dữ liệu kiểu xâu

Độ dài lớn nhất của xâu không vượt quá 255

Ví dụ: Var s: string[8];

- Giới thiệu và lấy ví dụ minh họa giải thích cho từng thao tác xử lí xâu mà SGKđưa ra Rồi hướng dẫn cho các em tự đưa ra kết quả

Trang 13

+ Phép ghép xâu, kí hiệu là dấu (+), được sử dụng để ghép nhiều xâu thành một.VD: ‘ Tin ’ + ‘ Hoc’ cho ra kết quả là ‘Tin Hoc’

+ Các phép so sánh =, >, <, <=, >= , <> có thứ tự ưu tiên thực hiện thấp hơn phépghép xâu và thực hiện việc so sánh hai xâu theo quy tắc sau:

Xâu A là lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từtrái sang trong xâu A có mã ASCII lớn hơn

Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A lànhỏ hơn B

VD: ‘ Tin Hoc 11’ > ‘Tin Hoc’

‘HOA HONG’ < ‘HOA MAI’

+ Thủ tục Delete(st,vt,n) thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí

vt VD: Delete(‘Tin hoc’,5,3) thì cho ra kết quả là ‘Tin’

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

VD: Insert(‘11’,’Tin Hoc ’,8) thì cho ra kết quả là ‘Tin Hoc 11’

+ Hàm Copy(s, vt, n ) : tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu s.VD: Copy(‘Tin Hoc’,5,3): cho ra kết quả là ‘Hoc’

+ Hàm length(s) cho ra giá trị là độ dài xâu s

VD: length(‘Tin Hoc’) cho ra kết quả là 7

+ Hàm Pos(s1,s2) cho ra vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2

VD: Pos(‘hoc’,’Tin hoc’) có giá trị là 5

+ Hàm Upcase(ch) cho ra chữ cái in hoa ứng với chữ cái trong ch

VD: Upcase(‘a’) cho ra giá trị là ‘A’

Bước 4 : Vì đối tượng là học sinh yếu kém nên GV phải kiên nhẫn giảng giải từng

ví dụ Đối với bài này, các ví dụ trong SGK đưa ra cơ bản Tôi trực tiếp thực hiệntrên máy chiếu, giải thích cặn kẽ từng câu lệnh và chạy chương trình cho các emxem kết quả

Ví dụ 1: Viết chương trình nhập họ tên của hai người vào hai biến xâu và đưa ramàn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau

Chương trình như sau:

Program Vd1;

Uses crt;

Var a, b: string;

Begin

Write(‘Nhap ho ten thu nhat: ’); Readln(a);

Write(‘Nhap ho ten thu hai: ’); Readln(b);

If length(a) > length(b) then Write(a) else write(b);

Readln;

End.

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

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