+ Để hướng tới việc tìm ra những phương pháp dạy học tích cực giúp việc tiếp thu kiến thức tin học của học sinh được tốt đề tài này đi sâu vào nghiên cứu việc gợi động học tập mảng một c[r]
(1)MỤC LỤC
Phần Mở đầu 5
1 Lí chọn đề tài
2 Yêu cầu đề tài
2.1 Phạm vi đề tài
2.2 Tính chất đề tài
2.3 Giả thiết khoa học
3 Phương pháp nghiên cứu
Phần Nội dung đề tài 7
Chương I Những mặt lý luận, phục vụ cho việc nghiên cứu đề
I Nghiên cứu mặt lí luận
1 Nghiên cứu mặt lí luận
2 Cơ sở phương pháp luận
II Những sở nhương pháp dạy học 11
Chương II Phân bậc hoạt động 12
I Phân bậc hoạt động 13
1 Phân bậc hoạt động 13
2 Những phân bậc hoạt động 15
3 Căn vào độ phức tạp đối tượng hoạt động 17
4 Sự trừu tượng hóa, khái quát hóa đối tượng 18
5 Nội dung hoạt động đối tượng mảng hai chiều 20
6 Căn vào phức hợp hoạt động đối tượng mảng hai chiều 23
7 Chất lượng hoạt động 25
8 Phối hợp nhiều phương diện phân bậc hoạt động 27
II Điều khiển trình học tập dựa vào phân bậc hoạt động 29
1. Chính xác hóa mục tiêu 29
2. Tuần tự nâng cao yêu cầu 30
3. Tạm thời hạ thấp yêu cầu cần thiết 33
4. Tiến hành dạy học phân hóa 35
Phần Kết luận 38
(2)LỜI CẢM ƠN
Ngày nay, cơng nghệ thơng tin có ảnh hưởng sâu rộng tới toàn lĩnh vực sống toàn giới Dù muốn hay khơng tất phải cơng nhận Đó ngành đời muộn lại phát triển vô mạnh mẽ tất ngành khác ảnh hưởng đến tất lĩnh vực cịn lại Trong khơng loại trừ ngành giáo dục
Cùng với trình hội nhập đất nước, giáo dục đòi hỏi phải có bước tiến, bước phát triển vượt bậc Cơng nghệ thông tin hai lĩnh vực đầu kinh tế tri thức thời kì hội nhập Việc ứng dụng công nghệ thông tin vào tất ngành nghề phát triển cách mạnh mẽ, giáo dục khơng nằm ngồi trào lưu xã hội Phải nói để có người xuất sắc lĩnh vực tin học người phải đào tạo từ cịn ghế nhà trường Và môn tin học đưa vào trường học nước ta điều tất yếu
Nhưng làm để dạy học cho tốt môn học mẽ đầy lý thú này? điều kiện trang thiết bị giáo viên nước ta thiếu thốn non trẻ Điều cần phải có đội ngũ giáo viên nhiệt tình động Là sinh viên học ngành sư phạm tin học em ln có mong muốn đem để học tốt dạy tốt, góp phần bé nhỏ vào cơng xây dựng tương lai đất nước, em học sinh tương lai Trước hết emvô cảm ơn thầy cô giáo Khoa công nghệ thông tin trường đại học sư phạm Hà Nội nhiệt tình giảng dạy chúng em tiếp cận với môn Đã dạy chúng em trở thành thầy giáo, cô giáo Đặc biệt cô giáo Trần Dỗn Vinh người hướng dẫn em mơn tập nghiệp vụ sư phạm người dạy em kiến thức lẫn kỹ để trở thành cô giáo tốt tương lai Cảm ơn bạn đông nghiệp cung cấp thông tin tài liệu để đề tài hoàn thành đầy đủ nội dung kỳ hạn
Tuy nhiên, điều kiện thời gian, kiến thức hạn chế nên tập nghiệp vụ sư phạm em cịn nhiều thiếu sót Mong thầy bạn góp ý để đề tài hồn thiện
(3)Phần Mở đầu Lý chọn đề tài
Sự phát triển công nghệ thông tin xem lĩnh vực then chốt kinh tế quốc gia ứng dụng rộng rãi nhiều lĩnh vực đời sống khoa học kỹ thuật Việc áp dụng công nghệ thông tin giúp tổ chức doanh nghiệp, cá nhân tiết kiệm chi phí, thời gian làm việc khoa học đem lại hiệu kinh tế cao
Hiện GD-ĐT triển khai đưa việc giảng dạy tin học vào nhà trường phổ thơng xem tin học mơn học khoá nhà trường Nhưng điều kiện khách quan nên việc áp dụng tin học vào nhà trường phổ thơng cịn gặp nhiều hạn chế:
- Do kinh phí cịn hạn hẹp nên việc trang bị máy móc thiếu - Đội ngũ giáo viên thiếu số lượng yếu chất lượng
- Tin học mơn khoa học địi hỏi tư học sinh tốt nên việc tiếp thu kiến thức tin học học sinh cịn gặp nhiều khó khăn(đặc biệt việc học tập ngôn ngữ lập trình)
Trong q trình dạy học có nhiều vấn đề giáo viên chưa khai thác hết khó khăn mà học sinh mắc phải q trình tiếp thu kiến thức Với thực trạng đề tài đưa vấn đề mới, yếu tố cịn hồi nghi, chưa biết, nhằm qua giúp cho học sinh tiếp thu tốt kiến thức tin học nhà trường phổ thông
Đề tài hứa hẹn phát có tính quy luật, giúp giáo viên thực tốt phương pháp giảng dạy nhưn giúp học sinh lĩnh hội tốt kiến thức tin học nhà trường phổ thông
2 Yêu cầu đề tài 2.1 Phạm vi đề tài
Đề tài: “phân bậc hoạt động hoạt động việc giảng dạy liệu có cấu trúc mảng hai chiều”
(4)2.2 Tính chất đề tài
Đề tài với mục đích nghiên cứu áp dụng rộng rãi tong việc giảng dạy tin học nhà trường phổ thông
2.3 Giả thiết khoa học
+ Đề tài dự kiến vấn đề cần nghiên cứu có nhiều người cần nghiên cứu
+ Mặc dù có nhiều người tham gia nghiên cứu nhiều vấn đề chưa giải thoả đáng Học sinh tiếp thu cấu trúc mảng cịn gặp khó khăn
+ Từ yếu tố dể dàng thấy đề tài hứa hẹn tìm có tính quy luật
+ Đề tài sâu vào nghiên cứu áp dụng vào phương pháp dạy học tin học trường phổ thơng
+ Để hướng tới việc tìm phương pháp dạy học tích cực giúp việc tiếp thu kiến thức tin học học sinh tốt đề tài sâu vào nghiên cứu việc gợi động học tập mảng chiều
(5)Phần Nội dung đề tài Chương I
NHỮNG CĂN CỨ VỀ MẶT LÝ LUẬN, PHỤC VỤ CHO VIỆC NGHIÊN CỨU ĐỀ TÀI
Các phương pháp nghiên cứu thường dùng khoa học giáo dục nói chung phương pháp dạy mơn tin học nói riêng là: Nghiên cứu lý luận, Quan sát - điều tra, Tổng kết kinh nghiệm Thực nghiệm giáo dục
I. Nghiên cứu mặt lý luận
Trong nghiên cứu lý luận người ta dựa vào tài liệu sẵn có, lý thuyết khẳng định, thành tựu nhân loại lĩnh vực khác Tâm lý học, Giáo dục học, Tin học, để xem xét vấn đề, tìm giải pháp hợp lý có sức thuyết phục vận dụng vào PPDH Tin học
Người ta nghiên cứu kết thân chuyên ngành PPDH Tin học để kế thừa hay, phê phán gạt bỏ dở, bổ xung hoàn chỉnh nhận thức đạt
Những hình thức thường dùng nghiên cứu lý luận là:
- Phân tích tài liệu lý luận: Giúp chọn đề tài, đề mục đích nghiên cứu, hình thành giả thuyết khoa học, xác định tư tưởng chủ đạo đánh giá kiện Khi nghiên cứu lý luận, ta cần phân tích, tổng hợp, so sánh, khái quát để tìm ý Cái lý thuyết hồn tồn mới, đan kết với cũ, tổng hợp nét riêng lẻ chứa cũ, nêu bật chất từ cũ, bổ xung, cụ thể hóa lý thuyết cũ
- So sánh quốc tế: Giúp lựa chọn, xây dựng phương án tác động giáo dục sở đánh giá, so sánh tài liệu, cách làm nước khác
(6)kiến thức Tin học Nó dùng để kiểm nghiệm tượng, q trình có thỏa mãn tiêu chuẩn, u cầu, điều kiện đặt hay không
1 Nghiên cứu mặt lý luận
Quan sát điều tra sử dụng rộng rãi nghiên cứu giáo dục Đó phương pháp tri giác có mục đích tượng giáo dục để thu lượm số liệu, tài liệu, kiện cụ thể đặc trưng cho trình diễn biến tượng mà ta dự định khảo sát Chúng ta quan tâm đến chất lượng mối quan hệ, hoạt động, tình Điều tra giống quan sát chỗ dựa vào khai thác tượng có sẵn, không chủ động gây nên tác động sư phạm, quan sát thiên xuất phát từ dấu hiệu bên ngồi, cịn điều tra khai thác thơng tin sâu kín từ bên trong, chẳng hạn cho làm kiểm tra đánh giá
Quan sát - điều tra giúp theo dõi tượng giáo dục theo trình tự thời gian, phát biến đổi số lượng, chất lượng gây tác động giáo dục Nó giúp ta thấy vấn đề thời cấp bách đòi hỏi phải nghiên cứu góp phần giải nhiệm vụ nghiên cứu Môi trường tự nhiên nguồn cung cấp liệu trực tiếp cho ta Người nghiên cứu đến trực tiếp nơi mà họ quan tâm để quan sát thu thập liệu, hoạt động hiểu tốt môi trường tự nhiên, ngữ cảnh mà chúng xuất
Quan sát - điều tra thực tiễn sư phạm, chẳng hạn thăm lớp dự giúp nhận thức thực trạng dạy học Tin, phát vấn đề thời cấp bách cần nghiên cứu, giúp ta thu tài liệu sinh động bổ ích cho nhiệm vụ nghiên cứu
Theo mối quan hệ đối tượng quan sát - điều tra với người nghiên cứu có dạng quan sát - điều tra trực tiếp, gián tiếp, công khai, kín đáo Theo dấu hiệu thời gian có quan sát - điều tra liên tục, gián đoạn
(7)(chẳng hạn đánh giá học sinh hoạt động tích cực, tích cực, tích cực) Các loại liệu thu thập nghiên cứu bao gồm văn ghi chép vấn, sổ ghi chép, ảnh, băng hình, ghi âm, phiếu điều tra, nhật ký, giúp ta dựng lại cách đầy đủ mà ta quan sát được, giúp ta lý giải họ lại nghĩ thế, họ lại làm vậy?,
Trong quan sát - điều tra diễn biến thực tượng sư phạm, có người ta tình cờ phát kiện, tượng sư phạm dự kiến ban đầu
2 Cơ sở phương pháp luận
Tổng kết kinh nghiệm thực chất đánh giá khái quát hóa kinh nghiệm thu thập hoạt động thực tiễn, từ phát vấn đề cần khẳng định để đưa áp dụng rộng rãi cần tiếp tục nghiên cứu hay loại bỏ Nó có nguồn gốc từ kinh nghiệm, mang tính khoa học, lĩnh hội, kiểm chứng từ trình hoạt động thực tiễn sinh động Bài học kinh nghiệm cụ thể hóa cách sáng tạo tư tưởng, luận điểm, lý luận giáo dục vào sống Trong q trình nghiên cứu tổng kết kinh nghiệm, có người ta khám phá mối liên hệ có tính quy luật tượng giáo dục
Những kinh nghiệm cần đặc biệt ý kinh nghiệm tiên tiến, kinh nghiệm thành công kinh nghiệm lặp lại nhiều lần Kinh nghiệm giáo dục đơn vị tiên tiến coi dạng lý luận giáo dục kiểm chứng thực tiễn, tình huống, điều kiện cụ thể môi trường giáo dục Những học thành công cần đề cập với tư cách liệu đối chiếu, so sánh làm rõ kinh nghiệm thành công Chúng cần xem xét cách khách quan, khoa học, biện chứng theo tính lịch sử vấn đề rút kết luận có tính thuyết phục, có độ Tin cậy cao Qua tổng kết kinh nghiệm, có học kinh nghiệm hàm chứa tri thức, thông Tin, kỹ năng, giải pháp, biện pháp hướng cách làm có giá trị, đem lại hiệu quả, chất lượng cao điều kiện đổi giáo dục đất nước
(8)hổ biến, loại bỏ yếu tố ngẫu nhiên, sâu vào chất vật, tượng, đạt tới kinh nghiệm có giá trị khoa học đích thực Chỉ tổng kết kinh nghiệm thật phương pháp nghiên cứu khoa học hữu hiệu Những học kinh nghiệm, kết luận lý luậngiáo dục góp phần bổ xung, làm cho lý luận giáo dục hồn thiện hơn, mang tính thực tiễn cao hơn, tránh tình trạng lý luận suông Bài học kinh nghiệm giáo dục phải bảo đảm có khái qt định, mang tính khoa học với tính lý luận cụ thể đặc biệt phải mang tính thực tiễn cao
Bài học kinh nghiệm cần trình bày theo trình tự sau: - Tên học kinh nghiệm
- Nêu bối cảnh xuất vấn đề mà giải dẫn đến học kinh nghiệm
- Những kết đạt gắn với nhiệm vụ nghiên cứu - Hệ thống biện pháp vận dụng đạt kết cao
- Đánh giá tác dụng, hiệu học kinh nghiệm, đưa nhận định có tính khái qt học mang tính lý luận
Tổng kết kinh nghiệm khơng đơn giản trình bày lại công việc làm kết đạt Là phương thức nghiên cứu khoa học, phải tiến hành theo quy trình nghiêm túc, thường sau:
Phát cần đảm bảo mặt định tính phần mặt định lượng, tức phải thu thập đủ liệu, tư liệu kiện, việc làm,
Liệt kê kiện, mơ tả q trình
Tước bỏ yếu tố ngẫu nhiên làm bộc lộ chất
Phát mối quan hệ nhân
Dùng lý luận soi sáng
(9)hoạt động tiến hành đạt kết cao Trong cần trọng đến liệu, tư liệu, thông tin mà nội dung chúng phản ánh mối quan hệ kết với nguyên nhân biện pháp Những bước trình phát là:
- Nêu mục đích u cầu phát - Triển khai hình thức phát - Thẩm định, bổ sung thông tin
- Tiến hành xử lý thông tin
Khi tiến hành xử lý thơng tin phải vào có thực thu qua trình khảo sát, phát thu thập Dùng lý luận để phân tích tư liệu, số liệu rút từ thực tiễn Rút học kinh nghiệm dạng khái quát mang tính lý luận hay khẳng định mặt lý luận thực tiễn Trong trình xử lý, cần áp dụng thao tác tư khoa học, trừu tượng hóa yếu tố ngẫu nhiên, tìm tính đặc thù, tất yếu mà chúng thể bối cảnh, hoàn cảnh cụ thể
Phần cuối sơ đồ cho thấy rõ mối liên hệ tổng kết kinh nghiệm với nghiên cứu lý luận thực nghiệm giáo dục
II. Những sở phương pháp dạy học
Cho phép ta tạo nên tác động sư phạm vào trình dạy học giáo dục Những tác động xảy điều kiện khống chế, điều chỉnh, thay đổi được, chịu ảnh hưởng yếu tố ngẫu nhiên khác, từ xác định đánh giá kết tác động
Đặc trưng thực nghiệm giáo dục khơng diễn cách tự phát mà điều khiển nhà nghiên cứu Nhà nghiên cứu tổ chức trình giáo dục cách có ý thức, có mục đích, có kế hoạch, tự giác thiết lập thay đổi điều kiện thực nghiệm cho phù hợp với ý đồ nghiên cứu
Trong điều kiện định, thực nghiệm giáo dục cho phép ta khẳng định bác bỏ giả thuyết khoa học đề
Trong thực nghiệm giáo dục ta cần giải thích rõ kết quả, làm rõ nguyên nhân lý luận phân tích q trình thực nghiệm
(10)vào nhiều yếu tố tâm lý Những kết thực nghiệm thường có ý nghĩa xác suất, phải xử lý phương pháp thống kê Để thống kê cho kết Tin cậy, cần phải đo lường, định lượng dấu hiệu, việc làm khơng dễ Vì ta khơng nên lạm dụng phương pháp thực nghiệm giáo dục Khi nghiên cứu tượng giáo dục, trước hết dùng phương pháp khơng địi hỏi q nhiều cơng sức, ví dụ nghiên cứu lý luận, quan sát, tổng kết kinh nghiệm Chỉ chỗ phương pháp chưa đủ sức thuyết phục, số khâu mấu chốt, ta dùng thực nghiệm giáo dục
Thông thường phương pháp sử dụng kết hợp với nhau, làm cho kết thu vừa có tính lý luận, vừa có tính thực tiễn Chẳng hạn, qua nghiên cứu lý luận, quan sát, tổng kết kinh nghiệm, người ta đề xuất giả thuyết khoa học đem thực nghiệm giáo dục để kiểm nghiệm Sau đó, lại dùng lý luận để phân tích kết quả, xác định nguyên nhân khái quát hóa lên trình độ cao hơn, tổng quát điều đạt Trong phạm vi đề tài đưa nội dung giảng dạy cấu trúc mảng chiều phương pháp phân bậc hoạt động cho học sinh cách phân tích số ví dụ cụ thể
Chương II
XÂY DỰNG HỆ THỐNG BÀI TẬP CHO MẢNG HAI CHIỀU Việc học tập tự giác, tích cực, chủ động sáng tạo địi hỏi học sinh phải có ý thức mục tiêu đặt tạo động lực bên thúc đẩy thân học sinh hoạt động để đạt mục tiêu Điều thực dạy học không đơn giản việc nêu rõ mục tiêu mà quan trọng gợi động
Phân bậc hoạt động làm cho học sinh có ý thức ý nghĩa hoạt động đối tượng hoạt động Phân bậc hoạt động nhằm làm cho mục tiêu sư phạm biến thành mục tiêu cá nhân học sinh vào bài, đặt vấn đề cách hình thức
(11)I. PHÂN BẬC HOẠT ĐỘNG
Có thể phân bậc hoạt động xuất phát từ thực tế từ nội Tin học Khi phân bậc hoạt động xuất phát từ thực tế, nêu lên thực tế gần gũi xung quanh học sinh, thực tế từ môn học nhà trường xã hội Những toán có nội dung thực tế, gắn ý nghĩa thực tế vào tình cơng việc để tập trung ý cho học sinh Tuy nhiên việc gợi đông xuất phát từ thực tế cần phải đảm bảo tính chân thực, đơn giản, nêu vấn đề khơng địi hỏi nhiều tri thức bổ sung, giải vấn đề ngắn tốt
Việc phân bậc hoạt động xuất phát từ thực tế góp phần hình thành giới quan vật biện chứng Nhờ học sinh nhận thức rõ việc cải tạo giới đòi hỏi phải suy nghĩ giải vấn đề tin học nào, tức nhận rõ Tin học bắt nguồn từ nhu cầu đới sống thực tế Vì cần khai thác triệt để khả để phân bậc hoạt động xuất phát từ thực tế
Tin học phản ánh thực tế cách tồn nhiều tầng, khơng phải nội dung nào, hoạt động phân bậc hoạt động xuất phát từ thực tế Vì ta cịn tận dụng khả phân bậc hoạt động xuất phát từ môn Tin học
Phân bậc hoạt động từ môn Tin học nêu vấn đề tin học xuất phát từ nhu cầu tin học, từ phương thức tư hoạt động tin học Nhờ phân bậc hoạt động từ mơn Tin học, học sinh hình dung hình thành phát triển Tin học với đặc điểm tiến tới hoạt động tin học cách độc lập
1 Phân bậc hoạt động gì?
(12)khi nhận xong điểm cho m thí sinh cho biết thí sinh vào vịng trong? Có điểm thành phấn cao nhất?
Học sinh vừa học xong mảng chiều nên biết mảng chiều lưu dãy số n điểm thí sinh, hoăc m số báo danh học sinh khơng thể dùng mảng chiều để lưu n điểm m thí sinh Ta khơng thể dùng hai mảng chiều; để lưu n điểm để lưu số báo danh tính điểm trung bình, đếm điểm thành phần cao thủ cơng, phức tạp dài dịng khơng khoa học
Do yêu cầu lưu n điểm cho m thí sinh, tính điểm trung bình, đếm điểm thành phần cao nên ta cần tổ chức liệu mảng hai chiều để duyệt duyệt lại.Những kiến thức cần khai báo mảng hai chiều có m dịng cho m thí sinh, có n+1 cột để lưu n điểm thành phần cột điểm trung bình cho thí sinh Nhận vào điểm thí sinh dịng điểm giám khảo cột.Khi vào xong cho thí sinh máy tính điểm trung bình in lên hình dòng với điểm thành phần Vào xong liệu cho m thí sinh máy thơng báo kết lên hình theo yêu cầu đề
Sau chương trình: program saomai;
uses crt;
const m=4; n=3; dc=7.5; var a:array[1 m,1 n+1]of real; i,j,dem:byte;
t,cn:real; BEGIN clrscr;
write('Nhap diem cua tung giam khao cho moi thi sinh: '); writeln;
for i:=1 to m begin
write(' Giam khao thu ',i); writeln;
end; cn:=0; dem:=0;
writeln('Diem trung binh'); writeln;
(13)write('Thi sinh ',i,': '); writeln;
t:=0;
for j:=1 to n begin
readln(a[i,j]); t:=t+a[i,j];
if cn<a[i,j] then cn:=a[i,j]; end;
a[i,n+1]:=t/n;
writeln(a[i,n+1]:0:1); end;
writeln('Nhung thi sinh vao vong co so bao danh '); for i:=1 to m
begin
if a[i,n+1]>=dc then write(i:5); for j:=1 to n
if a[i,j]=cn then inc(dem);
end;
writeln(#10);
writeln(dem,' diem cao nhat(',cn:5:1,')da duoc cho'); readln;
END
2 Căn phân bậc hoạt động
Ví dụ: Nhận vào mảng vng gồm n dịng, n cột Tìm xem số lớn mảng nằm vị trí nào?
Ở ví dụ trước học sinh biết tìm số lớn nhất, ta lấy lại ví dụ hướng dẫn học sinh chỉnh sửa chút ta chương trình yêu cầu
Từ chương trình củ ta khai báo thêm biến vị trí để xác định vị trí số lớn đó, dù mảng hai chiều ta biết xác số cột thứ dịng
(14)Chương trình sau: program min_max;
uses crt; const n=3;
var a:array[1 n,1 n]of integer;
i,j,max,min,vtx1,vtx2,vtn1,vtn2:integer; BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln;
end;
max:=a[1,1]; vtx1:=1; vtx2:=1; for i:=1 to n
for j:=1 to n begin
if max < a[i,j] then begin
max:=a[i,j]; vtx1:=i; vtx2:=j; end;
end;
min:=a[1,1]; vtn1:=1; vtn2:=1; for i:=1 to n
for j:=1 to n begin
if > a[i,j] then begin
(15)vtn2:=j; end;
end;
writeln('Max cua mang la: ',max:2,' ','o dong ',vtx1:2,' ','cot',vtx2:2); writeln('Min cua mang la: ',min:2,' ','o dong ',vtn1:2,' ','cot',vtn2:2); readln;
END
2.1 vào độ phức tạp đối tượng hoạt động
Bài tập: Nhập vào mảng hai chiều Tìm số nguyên tố với phần tử mảng đó?
Khi học mảng hai chiều học sinh học cách khai báo cách truy nhập đến phần tử mảng.Khi hướng dẫn học sinh làm tập giáo viên nhắc lại để giúp học sinh khắc sâu khái niệm
Khai báo: var <tên mảng>:array[chỉ số dòng,chỉ số cột]of kiểu phần tử Truy nhập: Để truy nhập đến phần tử mảng hai chiều ta viết tên mảng đặt hai dấu ngoặc vng đóng mỡ số dịng số cột, lưu ý số dòng trước số cột sau cách dấu phẩy
Truy nhập đến phần tử mảng truy nhập đến địa ô nhớ để lấy nội dung lưu giá trị phần tử Khi truy nhập đến phần tử mảng tức số dịng i=1, cơt j=1(a[1,1]) giá trị phần tử số cụ thể Cho vòng FOR duyệt phần tử mảng dể tìm số nguyên tố với phần tử mảng(a[i,j],a[1,1])
for i:=1 to n for j:=1 to n
if ntcn(a[i,j],a[1,1]) then write(a[i,j]:6); Chương trình là:
program nguyento; uses crt;
const n=3;
(16)function ntcn(x,y:word):boolean; begin
while x<>y if x>y then x:=x-y else y:=y-x;
ntcn:=x=1; end;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin
for j:=1 to n write(a[i,j]:3); writeln;
end;
writeln('Cac nguyen to cung voi a[1,1] la: '); for i:=1 to n
for j:=1 to n
if ntcn(a[i,j],a[1,1]) then write(a[i,j]:6); readln;
END
2.2 Sự trừu tượng hóa, khái quát hóa đồi tượng Ví dụ: Tính tổng ba số nguyên nhập từ bàn phím
Học sinh dể dàng tính tổng ba số nguyên nhập từ bàn phím
(17)Học sinh biết cách tính tổng ba số, từ ta khái qt lên thành tốn tính tổng tất phần tử có mảng
Ta dùng hai vòng lặp FOR để duyệt dòng cột, sau duyệt xong phần tử phần tử cộng dồn lưu vào biến tổng S phần tử cuối mảng
for i:=1 to n for j:=1 to n s:=s+a[i,j];
Chương trình tính tổng ba số nguyên:
program tongbaso; uses crt;
var a,b,c,s:integer; begin clrscr;
writeln('Nhap so a: '); readln(a); writeln('Nhap so b: '); readln(b); writeln('Nhap so c: '); readln(c); s:=a+b+c;
writeln('Tong cua ba so a, b, c la: ',s:6); readln;
end
Chương trình tính tổng mảng: program tong;
uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,s:integer;
begin clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
(18)for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
s:=0;
for i:=1 to n for j:=1 to n s:=s+a[i,j];
writeln('Tong cua ma tran: ',s:6); readln;
end
2.3 Nội dung hoạt động đối tượng mảng hai chiều Thường dùng tiết ôn tập, hệ thống kiến thức học Bài tập: Viết chương trình thực công việc sau:
1.Nhập mảng vuông n dòng, n cột 2.In mảng vừa nhập
3.Tính đường chéo 4.Tính đường chéo phụ
Thực mục tập tập riêng lẽ mà học sinh quen làm từ trước Vì hướng dẫn học sinh làm tập giáo viên cần hệ thống lại kiến thức học, xếp công việc cần làm cách có khoa học, để học sinh dễ hình dung có nhìn tổng quan hệ thống công việc mà học sinh làm:
Công việc nhập mảng vng n dịng n cột Tiếp đến in mảng vừa nhập
Tiếp theo tính đường chéo đường chéo phụ cuối in hình kết vừa tính
Hướng dẫn cho học sinh thực cơng việc chương trình riêng biệt, sau sử dụng vịng lặp REPEAT để đưa lựa chọn công việc,dùng câu lệnh CASE để lựa chọn cơng việc mà muồn thực
Đây tiện lợi hợp lí hóa làm việc với mảng hai chiều
(19)program mang2chieu; uses ctr;
const n=4;
type mg=array[1 n,1 n] of word; mgg=array[1 n,1 n] of word; var a,b,c:mg;i,j:byte;
e:array[1 n*n]of word ; tl:integer; procedure nhap(var a:mg);
begin
writeln('Nhap mang '); for i:=1 to n
for j:=1 to n repeat
write('a[',i,',',j,']='); readln(a[i,j]);
if (a[i,j]<3) or (a[i,j]>1999) then writeln('Vao lai'); until (a[i,j]>2) and (a[i,j]<2000);
readln; end;
procedure inmang( var a:mg); begin
writeln(' -'); writeln('Day la mang thu ');
for i:=1 to n begin
for j:= to n write(a[i,j]:6); writeln;
end; end;
procedure dcc ( var a:mg); var tdcc:integer;
begin
writeln(' -'); tdcc:=0;
(20)write(' Tong duong cheo chinh ',tdcc); writeln;
end;
procedure dcp( var a:mg); var tdcp:integer;
begin
writeln(' -'); tdcp:=0;
for i:=1 to n for j:=1 to n
tdcp:=tdcp+a[i,n-i+1];
write('Tong duong cheo phu ',tdcp); writeln;
end;
BEGIN clrscr; repeat
writeln('***************************************'); write('Lam viec voi mang');
writeln;
writeln('1.Nhap mang'); writeln('2.In mang');
writeln('3.Tinh tong duong cheo chinh'); writeln('4.Tinh tong duong cheo phu');
writeln('Ban chon viec nao(1/2/3/4)?, chon la thoat'); repeat
readln(tl);
if(tl<0) or (tl>4) then write('chon lai'); until (tl>=0) and (tl<=4);
case tl of 1:begin
writeln(' -'); nhap(a);
end; 2:begin
writeln(' -'); inmang(a);
(21)3:begin
writeln(' -'); dcc(a);
end; 4:begin
writeln(' -'); dcp(a);
end; end; until tl=0; END
2.4 Căn vào phức hợp hoạt động đối tượng mảng hai chiều
Ví dụ: Nhập hai mảng A, B, in ba mảng A,B,C=2*A-B
Muốn in mảng C ta phải nhập hai mảng A, B trước Khi biết phần tử hai mảng A, B ta tính phần tử mảng C
Ở mảng C phải liên hệ phụ thuộc vào hai mảng A,B C[i,j] = 2*A[i,j] - B[i,j]
Ta có chương trình chính: program mang2chieu;
uses crt;
const m=3; n=4;
type mg=array[1 m,1 n] of integer; var a,b,c:mg;i,j:integer;
procedure nhap(t:char;var x:mg); begin
writeln('Nhap mang ',t); for i:=1 to m
for j:=1 to n repeat
write('x[',i,',',j,']= '); readln(x[i,j]);
(22)until (x[i,j]<10) and (x[i,j]>0) ; end;
procedure mangc; Begin
For i:=1 to m For j:=1 to n
c[i,j]:= (2*a[i,j]) - b[i,j]; end;
procedure inmang(t:char;x:mg); begin
writeln(' -');
writeln('Day la mang ',t,':'); for i:=1 to m
begin
for j:= to n write(x[i,j]:10); writeln;
end; end; BEGIN clrscr; nhap('a',a); nhap('b',b); inmang('a',a); inmang('b',b); mangc;
inmang('c',c); readln;
END
2.5 Chất lượng hoạt động
(23)Khi đưa ví dụ giáo viên cần hướng dẫn học sinh dùng hai vòng lặp FOR để duyệt dịng cột, gặp hàng chẵn tính tổng hàng tiếp tục duyệt hàng Dùng biến SC để lưu kết việc cộng dồn tất hàng chẳn
for i:=1 to n for j:=1 to n
if i mod =0 then sc:=sc+a[i,j]; Chương trình sau:
program tonghangchan; uses crt;
const n=6;
var a:array[1 n,1 n]of integer; i,j,sc:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
sc:=0;
for i:=1 to n for j:=1 to n if i mod =0 then sc:=sc+a[i,j];
writeln('Tong cac hang chan la: ',sc:4); readln;
END
(24)duyệt dòng cột, dùng biến SL để lưu kết tính tổng Nhưng tính tổng hàng lẻ điều kiện đưa ngược lại với tính tổng hàng chẵn là:
for i:=1 to n for j:=1 to n
if j mod <> then sl:=sl+a[i,j];
Sau chương trình: program tongcotle;
uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,sl:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
sl:=0;
for i:=1 to n for j:=1 to n if j mod <> then sl:=sl+a[i,j];
writeln('Tong cac hang le la: ',sl:6); readln;
END
(25)Ví dụ: Nhập mảng vng gồm n dịng, n cột tìm phần tử lớn mảng
Trong học mảng chiều học sinh biết tìm max dãy số cách gán phần tử dãy số lớn nhất, sau dùng vịng FOR để duyệt phần tử dãy đồng thời so sánh phần tử vừa duyệt với số lớn dãy nhỏ bỏ qua duyệt tiếp lớn gán số lớn cho phần tử Tương tự mảng chiều ta tìm max mảng hai chiều vậy, có điều ta phải dùng hai vòng lặp FOR để duyệt dòng duyệt cột:
max:=a[1,1]; for i:=1 to n for j:=1 to n begin
if a[1,1]< a[i,j] then max:=a[i,j]; end;
Chương trình sau: program tim_max; uses crt;
const n=4;
var a:array[1 n,1 n]of integer; i,j,max:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
(26)for i:=1 to n for j:=1 to n begin
if a[1,1]< a[i,j] then max:=a[i,j]; end;
writeln('Phan lon nhat cua mang la: ',max:3); readln;
END
Ra tập cho học sinh nhà làm: Nhập mảng gồm m dịng n cột, tìm mảng?
Hướng dẫn cho học sinh làm tương tự tìm max, có điều kiện khác thơi
program tim_min; uses crt;
const n=4; m=5;
var a:array[1 n,1 m]of integer; i,j,min:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin
write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin
for j:=1 to n
write(a[i,j]:3); writeln; end;
min:=a[1,1]; for i:=1 to n for j:=1 to n begin
(27)end;
writeln('Phan be nhat cua mang la: ',min:3); readln;
END
II. ĐIỀU KHIỂN QUÁ TRÌNH HỌC TẬP DỰA VÀO
SỰ PHÂN BẬC CỦA HOẠT ĐỘNG
Phân bậc hoạt động phân bậc hoạt động cho hoạt động tiến hành bước đạt mục tiêu Phân bậc hoạt động trung gian có ý nghĩa to lớn phát triển lực độc lập giải vấn đề
1 Chính xác hóa mục tiêu
Ví dụ: Hãy viết chương trình nhập in ma trận vuông với điều kiện: phần tử đường chéo 1, cịn lại phần tử vị trí khác
Từ trước học sinh quen với khái niệm mảng, nhập mảng, nhập mảng có điều kiện, in mảng đường chéo Giờ ta nói cho học sinh biết khái niệm ma trận cách gọi khác mảng, nhập ma trận với đường chéo 1, phần tử vị trí khác nghĩa nhập mảng với điều kiện:
IF i=j THEN a[i,j]=1; IF i<>j THEN a[i.j]=0
Ta quy toán dạng nhập in mảng có điều kiện, chương trình sau:
program matran; uses crt;
var a:array[1 n,1 n]of integer; i,j,n:integer;
BEGIN clrscr;
(28)for i:=1 to n for j:=1 to n repeat
write('a[',i,',',j,']= '); readln(a[i,j]);
if ((i=j) and (a[i,j]<>1)) or ((i<>j) and (a[i,j]<>0)) then writeln('Moi vao lai ');
until (i=j) and (a[i,j]=1) or (i<>j) and (a[i,j]=0); writeln('Cac phan tu cua ma tran la: ');
for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
readln; END
2 Tuần tự nâng cao u cầu
Ví dụ: Viết chương trình tính tổng phía phía đường chéo
5
4
Nữa gồm phần tử: 5,3,5,0,3,4 Nữa gômg phần tử: 6,1,2,3,5,1
Cách tính tổng học sinh biết, vấn đề lại dùng vòng lặp FOR để duyệt phần tử đường chéo từ cộng dồn phần tử để tổng
Giáo viên hướng dẫn để học sinh xác định vòng FOR i bắt đầu duyệt từ phần tử đến phần tử nào, vòng FOR j bắt đầu duyệt từ phần tử đến phần tử nào.Vì khơng xác định tính tổng cho kết sai:
Nữa đường chéo chinh: FOR i:=1 TO n-1 DO
FOR j:=i+1 TO n DO
nữa
(29)Nữa đường chéo chinh: FOR j:=1 TO n-1 DO
FOR i:=j+1 TO n DO
Chương trình viết sau: program tongnuadcc;
uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,sct,scd:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= ');
readln(a[i,j]); end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln; end;
sct:=0;
for i:=1 to n-1 for j:=i+1 to n sct:=sct+a[i,j];
writeln('Tong duong cheo chinh nua tren la: ',sct:3); scd:=0;
for j:=1 to n-1 begin
for i:=j+1 to n scd:=scd+a[i,j]; end;
writeln('Tong duong cheo chinh nua duoi la: ',scd:3); readln;
END
(30)uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,spt,spd:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin for j:=1 to n write(a[i,j]:3); writeln;
end; spt:=0;
for i:=1 to n-1 for j:=1 to n-i spt:=spt+a[i,j];
writeln('Tong duong cheo phu nua tren la: ',spt:3); spd:=0;
for i:=2 to n for j:=n-i+2 to n spd:=spd+a[i,j];
writeln('Tong duong cheo phu nua duoi la: ',spd:3); readln;
END
3 Tạm thời hạ thấp yêu cầu cần thiết
Bài tập: Nhập mảng vng gồm n dịng, n cột Tính đường chéo mảng
(31)Như phần tử đường chéo có số I, J Ta dùng vòng lặp FOR để duyệt phần tử mảng, dùng biến TDCC để lưu kết tính tổng
for i:=1 to n tdcc:=tdcc+a[i,i]; Ta có chương trình sau: program dcc;
uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,tdcc:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n
begin write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin
for j:=1 to n
write(a[i,j]:3); writeln; end;
tdcc:=0;
for i:=1 to n tdcc:=tdcc+a[i,i];
writeln('Tong duong cheo chinh la: ',tdcc:3); readln;
END
Sau hướng dẫn học sinh làm tính tổng đường chéo mảng, tương tự ta cho học sinh tính tổng đường chéo phụ mảng?
Đường chéo phụ dòng cột n đến dòmg m cột
(32)cũng dùng vòng lặp FOR dể duyệt dòng nhiên số dòng I, cột J mảng khác
for i:=1 to n
tdcp:=tdcp+a[i,n-i+1]; Sau chương trình chính:
program dcp; uses crt; const n=4;
var a:array[1 n,1 n]of integer; i,j,tdcp:integer;
BEGIN clrscr;
writeln('Nhap cac phan tu cho mang'); for i:=1 to n
for j:=1 to n begin
write('a[',i,',',j,']= '); readln(a[i,j]);
end;
writeln('Cac phan tu cua mang la: '); for i:=1 to n
begin
for j:=1 to n
write(a[i,j]:3); writeln; end;
tdcp:=0;
for i:=1 to n
tdcp:=tdcp+a[i,n-i+1];
writeln('Tong duong cheo phu la: ',tdcp:3); readln;
END
4 Tiến hành hoạt động phân hóa
(33)Khi đưa tập cho học sinh làm giáo viên đặt mục tiêu trước hướng dẫn cho học sinh làm theo ý đồ học sinh phải làm công việc sau:
1.Nhập phần tử có điều kiện vào mảng cụ thể nhập điểm cho học sinh với điều kiện khơng có điểm có điểm 1, 10, nhập điểm báo nhập sai cho phép nhập lại Từ việc nhập mảng ta cố cho học sinh cách khai báo mảng
if (a[i,j]>=10) or (a[i,j]<=2) then writeln('Moi vao lai '); until (a[i,j]<10) and (a[i,j]>2) ;
2.Tính điểm trung bình cho tổ Từ việc tính điểm trung bình cho tổ, học sinh nắm kỹ truy nhập đến phần tử mảng để lấy giá trị tính tốn Hiểu rõ vịng FOR hoạt động từ sử dụng vịng FOR để duyệt dịng cột, ví dụ tính tổng điểm tổ số dịng I=1, cịn J chạy từ đến Điểm trung bình tổng điểm dịng chia cho J phần tử:
for i:=1 to for j:=1 to
if i=1 then S1:=S1+a[1,j]; tb1:=S1/j;
3.Sử dụng vòng lặp FOR duyệt dòng, cột sử dụng câu lệnh IF để đếm phần tử mảng theo điều kiện cho trước Cụ thể đếm bạn điểm đếm ban đạt điểm 9:
for i:=1 to for j:=1 to
if a[i,j] = then d1:= d1+1; for i:=1 to
for j:=1 to
if (a[i,j]=3)or(a[i,j]=4)then d2:=d2+1; Ta có chương trình:
program loptin; uses crt;
var a:array[1 4,3 9]of integer; i,j,m,n,d1,d2,S1,S2,S3,S4:integer; tb1,tb2,tb3,tb4:real;
(34)write('Nhap so to: '); readln(m); write('Nhap diem: '); readln(n); for i:=1 to m
for j:=1 to n repeat
write('a[',i,',',j,']= '); readln(a[i,j]);
if (a[i,j]>=10) or (a[i,j]<=2) then writeln('Moi vao lai '); until (a[i,j]<10) and (a[i,j]>2) ;
for i:=1 to for j:=1 to if i=1 then begin
S1:=S1+a[1,j]; tb1:=S1/j; end;
for i:=1 to for j:=1 to if i=2 then
begin
S2:=S2+a[2,j]; tb2:=S2/j ; end;
for i:=1 to for j:=1 to if i=3 then begin
S3:=S3+a[3,j]; tb3:=S3/j; end;
for i:=1 to for j:=1 to if i=4 then begin
S4:=S4+a[4,j]; tb4:=S4/j; end;
(35)writeln('Diem tb cua to la: ',tb2:6:3); writeln('Diem tb cua to la: ',tb3:6:3); writeln('Diem tb cua to la: ',tb4:6:3); d1:=0;
for i:=1 to for j:=1 to
if a[i,j] = then d1:= d1+1;
writeln('So ban dat diem la: ',d1:3); d2:=0;
for i:=1 to for j:=1 to
if (a[i,j]=3)or(a[i,j]=4)then d2:=d2+1; writeln('So ban bi diem duoi la: ',d2:3); readln;
END
Phần Kết luận
ĐỀ TÀI CÓ NHỮNG KHÓ KHĂN VÀ THUẬN LỢI
Quá trình nghiên cứu thực đề tài này, thân em cố gắng tìm tịi học hỏi, tham khảo tài liệu để xây dựng tập đảm bảo nội dung, đồng thời giúp đỡ thầy, cô giáo bạn nên đề tài hồn thành
Song bên cạnh đề tài có nhiều khó khăn định: Do thời gian có hạn điều kiện phạm vi nghiên cứu không cho phép, đồng thời chưa trải nghiệm nên có nhiều bở ngỡ dẫn đến đề tài chưa sâu sắc, chưa chặt chẽ Rất mong giúp đỡ thầy, cô bạn để đề tài em hoàn thiện
(36)