Các cách thiết kế bài giảng hiện nay nhằm mục đích áp dụng phương pháp hiện đại để bồi dưỡng cho học sinh năng lực ham muốn học hỏi, tư duy sáng tạo, năng lực tự giải quyết vấn đề, rèn l[r]
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO BẮC NINH TRƯỜNG THPT LƯƠNG TÀI
Giáo viên: Nguyễn Thị Thương Huyền Tổ: Toán Tin
Trang 2Bắc Ninh, tháng 12/2011
Trang 3Bµi tËp KiÓu x©u
A PHẦN MỞ ĐẦU
I Lí do chọn sáng kiến kinh nghiệm.
Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Việc sử dụng máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, tổ chức kinh tế, và trong các gia đình Song song với quá trình trên, việc giảng dạy Tin học trong các trường đại học, THPTcũng được đẩy mạnh đi đôi với việc tăng cường trang
bị máy vi tính Đả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 trường phổ thông như những môn học khác bắt đầu từ năm học 2006-2007
Chính vì vậy, đối với mỗi giáo viên giảng dạy môn Tin học ở các trường phổ thông, việc tìm hiểu, nghiên cứu các vấn đề về Tin học, cùng với việc tìm các biện pháp giảng dạy Tin học trong nhà trường phổ thông là một công việc cần phải làm thường xuyên, nhằm đáp ứng với sự đòi hỏi ngày càng cao của xã hội
Trong nghiệp vụ của người thầy giáo có hai vấn đề quan trọng: thứ nhất
là thực tiễn về tiềm năng - những kiến thức lý thuyết mà họ được học rất cơ bản Thứ hai là thực tiễn về nghiệp vụ - thầy giáo phải biết cách truyền thụ kiến thức phù hợp với trình độ của học sinh Trong đó, thực tiễn thứ hai là điều quyết định trong nghiệp vụ của thầy giáo, nó đánh giá chất lượng giảng dạy của thầy giáo Hai thực tiễn trên vừa mâu thuẫn với nhau, lại vừa thống nhất với nhau Thầy giáo không thể mang hết các kiến thức lý thuyết cao xa và trừu tượng dạy cho học sinh, nhưng cũng không thể dạy tốt cho học sinh nếu thầy giáo hiểu biết quá ít
Trang 4Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ : “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Như vậy, chúng ta
có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận Cốt lõi của việc đổi mới phương pháp dạy học
ở trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động
Đổi mới phương pháp dạy học theo hướng tích cực hóa hoạt động của học sinh là một quá trình lâu dài; không thể ngày một ngày hai mà đông đảo giáo viên từ bỏ được kiểu dạy học truyền thụ kiến thức, tiếp thu thụ động đã quen thuộc từ lâu việc phát triển các phương pháp tích cực đòi hỏi một số điều kiện, trong đó quan trọng nhất là bản thân mỗi giáo viên cần có một sự nỗ lực
để tìm tòi, sáng tạo trong công tác giảng dạy của mình
Đổi mới phương pháp dạy học là một vấn đề hết sức quan trọng, nhất là với bộ môn Tin học hiện đang được đưa vào giảng dạy ở các trường phổ thông
Là một giáo viên giảng dạy bộ môn này, theo tôi không phải cứ tìm được nhiều bài toán khó, bài toán hay để giảng dạy cho học sinh Mà vấn đề đặt ra là chúng
ta cần phải tích cực tìm tòi, sáng tạo trong việc đưa ra những bài toán đó để giúp cho học sinh có sự hứng thú, tìm tòi sáng tạo trong quá trình giài quyết học tập, từ đó biết vận dụng linh hoạt trong các tình huống cụ thể ngoài thực tế
Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản Người thầy còn phải biết kích thích tính tích cực, sự sáng tạo say mê học hỏi của học sinh trong việc học tập của các em Bởi vì,
Trang 5việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân
họ hoạt động để đạt các mục tiêu đó Điều này được thực hiện trong dạy học không chỉ đơn giản bằng việc nêu rõ mục tiêu mà quan trọng hơn còn do gợi động cơ
Các cách thiết kế bài giảng hiện nay nhằm mục đích áp dụng phương pháp hiện đại để bồi dưỡng cho học sinh năng lực ham muốn học hỏi, tư duy sáng tạo, năng lực tự giải quyết vấn đề, rèn luyện và phát triển năng lực tự học sáng tạo, nghiên cứu, nghĩ và làm việc một cách tự chủ… Đồng thời để thích ứng với sự phát triển tư duy của học sinh trong xã hội mới và tiếp cận với các công nghệ tiên tiến trong xã hội, trên thế giới Bên cạnh đó, trong các kỹ thuật dạy học mới, vai trò của người thầy có sự thay đổi là: “hướng dẫn học sinh biết
tự mình tìm ra hướng giải quyết những vấn đề nảy sinh trong quá trình học tập, biết cách làm việc độc lập, làm việc tập thể Thầy là người định hướng, là người
cố vấn giúp học sinh tự đánh giá, cũng như giúp học sinh luôn đi đúng con đường tìm hiểu, lĩnh hội kiến thức…”
- Xuất phát từ thực tiễn giảng dạy tại trường THPT L ương Tài tôi thấy rằng, để đạt hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bài giảng cho phù hợp với nội dung kiến thức; phương pháp, phương tiện dạy học phải phù hợp với từng đối tượng học sinh Để qua mỗi phần học, tiết học học sinh thích thú với kiến thức mới, qua đó hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp ứng những yêu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc thực tiển trong đời sống xã hội (nếu 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à 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
đó người lập trình có thể chọn một ngôn ngữ lập trình thích hợp Tuy nhiên mọi
Trang 6thứ điều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao, qua đó giúp các em hình dung được sự
ra đời, cấu tạo, hoạt đông cũng như ích lợi của các chương trình hoạt động trong máy tính, các máy tự động…Quá đó giúp các em có thêm một định hướng, một niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này Đồng thời Pascal là một ngôn ngữ có cấu trúc thể hiện trên 3 yếu tố: Cấu trúc
về mặt dữ liệu, cấu trúc về mặt lệnh, cấu trúc về mặt chương trình
Tuy nhiên, trong các môn học ở bậc học THPT thì môn Tin học lớp 11 được các em học sinh cho là môn học “khó nhai” nhất trong các môn học Từ việc các em chỉ là người sử dụng các phần mềm sẵn có như: hệ điều hành, sọan thảo văn bản Word, bảng tính Excel, các phần mềm học tập, nghe nhạc hay chơi game… thì các em lại là người phải tìm ra lời giải cho các bài toán, chỉ ra các bước cho máy tính thực hiện và viết chương trình để tạo ra các sản phẩm phần mềm cho người khác sử dụng mặc dù mới chỉ là bước khởi đầu, cơ bản
Turbo Pascal là ngôn ngữ lập trình có cấu trúc, nó được dùng phổ biến ở nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ họa Turbo Pascal được dùng trong chương trình giảng dạy Tin học ở hầu hết các trường đại học, cao đẳng, trung học phổ thông và nó được mệnh danh là “ngôn ngữ học đường”
Các em học sinh phải làm quen với nhiều kiểu dữ liệu mới mà trong các môn học khác không có, nhiều học sinh còn bỡ ngỡ không hiểu vì sao cùng là kiểu số nguyên mà lại chia làm nhiều kiểu như byte, integer, word, … mà trong toán học chỉ gồm số nguyên âm và nguyên dương Hoặc các loại thông tin như hình ảnh, âm thanh… được xử lý như thế nào Kiến thức mới và khó, học sinh
sợ học môn Tin học 11, kết quả giảng dậy thấp, nhất là ở các lớp học sinh yếu
về môn tự nhiên, ít có điều kiện sử dụng máy tính Người thầy phải làm gì để khắc phục được điều này?
Trang 7Để khắc phục được điều đú, theo tụi chỳng ta cần phải tỡm tũi, nghiờn cứu tỡm ra những bài toỏn phự hợp, kớch thớch được sự độc lập, tớch cực của học sinh trong học tập Học sinh cú thể tự mỡnh tỡm ra được những ý tưởng sỏng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đú cỏc em
cú thể tự mỡnh hoàn thành được ý tưởng đú
Trờn cơ sở những gỡ mà học sinh được học tập về mụn lập trỡnh Pascal,
để giỳp cho học sinh nhỡn nhận vấn đề một cỏch tớch cực hơn, sỏng tạo hơn và nhất là giỳp cho cỏc em cú thể yờu thớch nhiều hơn nữa ngụn ngữ lập trỡnh Pascal
Xuất phỏt từ cơ sở trờn, tụi đó chọn đề tài “Bài tập kiểu xõu”, giỳp cỏc
em nắm được kiểu dữ liệu cú cấu trỳc - kiểu xâu và ứng dụng của kiểu dữ liệu này trong thực tiễn (Chương IV, bài 12, tin học 11)
II Mục đớch của sỏng kiến kinh nghiệm.
Sử dụng cỏc vớ dụ cụ thể trước hết để học sinh nắm được cỳ phỏp, ý
nghĩa của kiểu xâu Và thụng qua cỏc vớ dụ đú kết hợp với bài tập và thực hành
số 6 (giới thiệu trước 2 thủ tục) để củng cố về phần kiến thức này, đồng thời tăng sự yêu thích, ham học hỏi của học sinh đối với môn học vốn đợc mệnh danh là khó nhất trong các môn học ở lớp 11
III Nhiệm vụ của sỏng kiến kinh nghiệm
Đưa ra 1 số bài tập để học sinh thảo luận qua đú nắm vững được kiểu dữ liệu cú cấu trỳc: kiểu xõu Và hỡnh thành ở học sinh kỹ năng phõn tớch, sử lý cỏc vấn đề liờn quan đến bài tập kiểu xõu, sử dụng thành thạo vũng lặp biết trước, thủ tục chuẩn vào/ra đơn giản bước đầu làm quen với 1 số chương trỡnh con dạng thủ tục tạo điều kiện thuận lợi cho việc tiếp thu kiến thức về cỏch viết chương trỡnh cú cấu trỳc
IV Đối tượng nghiờn cứu.
Học sinh khối 11 tại trường THPT Lơng Tài – Bắc Ninh
Sử dụng mỏy tớnh cú mỏy chiếu kết nối để chạy cỏc chương trỡnh về kiểu xõu
Trang 8V Phương pháp nghiên cứu.
- Kết hợp thực tiễn giáo dục ở trường THPT Lương Tài
- Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal và tài liệu về sáng kiến kinh nghiệm
B NỘI DUNG
I Cơ sở lí luận
Khi học sinh học bài học Bài 12 “Kiểu xâu”, học sinh đã có rất nhiều khó khăn, nhầm lẫn trong việc xử lý dữ liệu vì các em đang quen với các bài toán
xử lý dữ liệu kiểu số, các bài toán quen thuộc như tính tổng hoặc tích của 1 dãy
số thoả mãn điều kiện nào đó…
- Ở bài kiểu xâu giáo viên có thể tạo sự hứng thú cho học sinh bằng các
ví dụ cụ thể, có thể làm được các công việc mà các em đã gặp trong thực tế cuộc sống như các biển hiệu quảng cáo, chế độ nghỉ màn hình,
II Nội dung và giải pháp thực hiện
1 Nội dung.
Bài tập 1: Viết chương trình nhập vào một xâu ký tự từ bàn phím Đổi xâu ký
tự đó sang chữ in hoa rồi in kết quả ra màn hình
Ví dụ : Input: ‘abcdAbcD’
Output: ‘ABCDABCD’
GV nêu câu hỏi: Ứng dụng của viết chữ in hoa các em gặp trong những trường hợp nào?
HS: khi đi làm giấy khai sinh, kê khai lý lịch, làm hồ sơ thi tốt nghiệp, ĐH-CĐ…
GV: Làm thế nào để khi ta nhập họ tên vào máy là chữ thường thì khi hiện lên trên màn hình là chữ in hoa có dấu?
HS; sử dụng hàm upcase(ch)
GV: Nhưng hàm upcase(ch) chỉ đổi được 1 kí tự thành ký tự in hoa, ở đây chúng ta đổi cả 1 xâu kí tự? vậy chúng ta xử lý vấn đề này như thế nào?
HS: đưa ra cách xử lý
GV: Chúng ta đã biết có thể coi xâu là mảng 1 chiều mà mỗi phần tử là một kí
tự Mỗi kí tự của xâu được đánh số thứ tự thường bắt đầu từ 1, số kí tự của xâu chính là độ dài của xâu Vậy để có thể chuyển 1 xâu nhập từ bàn phím thành
Trang 9chữ in hoa thì ta sẽ chuyển từng kí tự trong xâu thành kí tự in hoa: duyệt lần lượt từng phần tử trong xâu và gán phần tử đó bằng giá trị mới upcase(ch);
Câu lệnh for i:=1 to length(st) do St[i]:=upcase(St[i]); dùng để thực hiện yêu cầu đó
Giáo viên gọi học sinh lên bảng viết chương trình HS viết chương trình, sau
đó GV nhận xét , sửa chữa ếu có sai sót Chạy chương trình để học sinh theo dõi kết quả thực hiện
Chương tình bài tập 1:
Program inhoa;
Uses Crt;
Var St: String;
i:Byte;
Begin
Write(‘Nhap xau St: ‘); Readln(St);
For i:=1 to length(St) do St[i]:=Upcase(St[i]);
Write(‘Xau ket qua: ‘, St);
Readln;
End.
Bài tập 2: Nhập 1 xâu St từ bàn phím (St<=80), đưa ra màn hình xâu đảo
ngược của xâu đó (viết theo chiều ngược lại)
VD: Input: ‘Hello’
Output: ‘olleH’
Gv nêu câu hỏi: làm thế nào để chúng ta có thể viết ngược lại xâu nhập vào?
HS trả lời:
GV: Để duyệt lần lượt các kí tự trong xâu St từ 1 đến hết (phần tử cuối cùng có chỉ số trùng với độ dài của xâu) ở các ví dụ và bài tập 1 chúng ta sử dụng vòng lặp biết trước for i:=1 to length(st) do …Vậy nếu chúng ta sử dụng vòng lặp lùi for i:=length(s) downto 1 do …thì có thể giải quyết được yêu cầu của bài toán không? Nếu được, em nào có thể viết được chương trình?
HS: trả lời,
GV gọi hs lên bảng viết CT, sau đó nhận xét và chạy thử chương trình học sinh viết, hs quan sát kết quả thực hiện chương trình trên màn hình máy chiếu
Chương trình bài tập 2:
Program xaunguoc;
Trang 10Uses Crt;
Var St: String[80];
i:Byte;
Begin
Write(‘Nhap xau St: ‘); Readln(St);
For i:=length(St) downto 1 do write(St[i]);
Write(‘Xau nguoc cua xau st la: ‘, St);
Readln;
End.
Bài tập 3: Nhập 1 xâu St từ bàn phím (St<=25), đưa ra màn hình xâu st nhưng
mỗi kí tự viết trên 1 dòng
VD: Input: ‘Hello’
Output: H
e l l o Phần lớn học sinh vẫn chưa biết khi nào thì sử dụng write, khi nào dùng writeln Mục đích của bài tập này tôi đưa ra để nhằm củng cố cho hs viêc sử dụng thành thạo thủ tục write và writeln, sự khác biệt giữa 2 thủ tục này
GV gọi hs nhắc lại sự khác biệt giữa 2 thủ tục, sau đó gọi hs lên bảng viết chương trình
GV chạy chương trình hoặc sửa chương trình của bài tập 2, hs theo dõi kết quả thực hiện trên màn hình sự hứng thú cho học sinh khi học bài kiểu xâu và kết hợp với các thủ tục tưởng chừng như đã rất quen thuộc nhưng khi vận dụng thì các em thấy được sự kì diệu của tin học
Chương trình bài tập 3:
Program baitap3;
Uses Crt;
Var St: String[25];
i:Byte;
Begin
Write(‘Nhap xau St: ‘); Readln(St);
Write(‘ket qua la: ‘);
Trang 11For i:=1 to length(St) do writeln(St[i]:15);
Readln;
End.
mỗi kí tự viết trên 1 dòng ngược lại với xâu St
VD: Input: ‘Hello’
Output: o
l l e H
Khi tôi nêu bài toán và hỏi hs: bạn nào xung phong lên bảng viết chương trình thì đã có khá nhiều cách tay giơ lên.
Chương trình mà em HS đã sửa như sau:
Program baitap4;
Uses Crt;
Var St: String[25];
i:Byte;
Begin
Write(‘Nhap xau St: ‘);
Readln(St);
Write(‘ketqua la:’);
For i:= length(St) downto 1 do writeln(St[i]:15);
Readln;
End.
Khi GV chạy CT cho các em hs theo dõi kết quả trên màn hình máy chiếu mà mình đã sửa thì các em ngạc nhiên và rất hào hứng: đơn giản chỉ sửa chương trình có 1 ít mà đã có kết quả rất thú vị, các em thấy tin học 11 không khó lắm.
GV: Vậy chúng ta có thể tô màu cho chữ được không? Chẳng hạn xâu S đưa ra có màu xanh hoặc đỏ hoặc mỗi kí tự có một màu khác nhau?
GV làm mẫu cho học sinh để các em thấy được kết quả cho các kí tự hiện ra có màu xanh lá Tất cả hs trong lớp đều thấy phấn chấn và hào hứng học tập
Chương trình:
Program baitap4;
Trang 12Uses Crt;
Var St: String[25];
i:Byte;
Begin
Write(‘Nhap xau St: ‘);
Readln(St);
Write(‘ketqua la:’);
Textcolor(2);
For i:= length(St) downto 1 do writeln(St[i]:15);
Readln;
End
Gv giới thiệu cho học sinh về nhà tham khảo bài 19 ‘Thư viện chương trình con chuẩn” – phần kiến thức giảm tải và nêu thêm 1 số yêu cầu coi như bài tập ở nhà
GV: Vậy làm thế nào để chúng ta có thể tạo ra được các dòng chữ chạy trên các biển hiệu quảng cáo, hoặc khi các em không sử dụng máy tính vài phút thì trên màn hình hiện ra các dòng chữ chuyển động từ trái sang hoặc từ trên xuống, kiểu chữ, màu chữ… trông rất đẹp
Khi nêu bài tập 5, tôi đã đặt câu hỏi như trên sau đó tôi mới nêu bài toán:
Bài tập 5: Nhập 1 xâu từ bàn phím, đưa xâu đó ra giữa màn hình, chuyển động
dần về bên trái, các ký tự đầu xâu sẽ lần lượt mất đi nhưng lại xuất hiện lần lượt
ở cuối xâu Tô màu cho xâu xuất hiện trên màn hình
GV chạy thử chương trình cho hs quan sát kết quả thực hiện, sau đó GV hướng dẫn học sinh viết chương trình có sử dụng 2 thủ tục chuchay và catdan ở bài tập
và thực hành số 6, giải thích các câu lệnh trong 2 thủ tục
procedure catdan(s1:st79; var s2:st79);
begin
s2:=copy(s1,2,length(s1)-1)+s1[1];
end;
procedure cangiua(var s:st79);
var i,n:integer;
begin