Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO KRÔNG ANA TRƢỜNG THCS BUÔN TRẤP ---0O0---
KINH NGHIỆM BỒI DƯỠNG HỌC SINH GIỎI MÔN TIN HỌC 9
Giáo viên: Nguyễn Thị Thu Thủy
Đơn vị công tác: Trƣờng THCS Buôn Trấp
Trình độ: ĐHSP Chuyên ngành: Tin học
Tổ: Tiếng Anh – Tin Học
NĂM HỌC: 2014-2015
Trang 1
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
Trang 2
MỤC LỤC: I. PHẦN MỞ ĐẦU………………………………………...…………..................………..3 I.1. Lý do chọn đề tài.................................................................................................3 I.2. Mục tiêu, nhiệm vụ của đề tài.............................................................................3 I.3. Đối tượng nghiên cứu..........................................................................................3 I.4. Giới hạn phạm vi nghiên cứu..............................................................................3 I.5. Phương pháp nghiên cứu.....................................................................................3 II. PHẦN NỘI DUNG..........................................................................................................4 I.1. Cơ sở lý luận...................................................................................................... 4 II.2. Th c trạng..........................................................................................................4 a. Thuận lợi-khó khăn...................................................................................5 b. Thành công-hạn chế..................................................................................5 c. Mặt mạnh-mặt yếu....................................................................................5 d. Các nghiên nhân, các yếu tố tác động.......................................................5 e. Phân tích đánh giá các vấn đề, th c trạng mà đề tài đặt ra.......................5 II.3. Giải pháp, biện pháp……………………………………………................…..5 a. Mục tiêu của giải pháp, biện pháp…………………...…….............…....6 b. Nội dung và cách thức th c hiện giải pháp……………............………...6 Chuyên đề 1: Làm quen với chương trình Pascal...................................10 Chuyên đề 2: Câu lệnh điều kiện............................................................10 Chuyên đề 3: Câu lệnh lặp......................................................................14 Chuyên đề 4: Mảng.................................................................................20 Chuyên đề 5: Xâu...................................................................................27 c. Điều kiện th c hiện, giải pháp, biện pháp………………............………30 d. Mối quan hệ giữa các giải pháp, biện pháp…………………............…..31 e. Kết quả khảo nghiệm, giá trị khoa học của vấn đề nghiên cứu............…31 II.4. Kết quả thu được qua khảo nghiệm, giá trị khoa học của vấn đề nghiên cứu.31 III. PHẦN KẾT LUẬN, KIẾN NGHỊ...... ……………………………….………........….31 III.1. Kết luận………………………………………………….……...............…..31 III.2. Kiến nghị…………………………………………….............……………...31
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
I. PHẦN MỞ ĐẦU 1) Lí do chọn đề tài: - Đảng và Nhà nước đã vạch ra đường lối rất đúng đắn về “chiến lược con người” là “nâng cao dân trí, đào tạo nhân l c, bồi dưỡng nhân tài”. Ngành giáo dục và đào tạo cũng đang hướng tới phát triển tối đa những năng l c còn tiềm ẩn trong mỗi học sinh. Trong các trường học hiện nay, việc phát triển bồi dưỡng học sinh giỏi góp phần đào tạo nhân tài cho đất nước được xem là nhiệm vụ cần thiết và quan trọng. Nhiều năm qua tôi được s tín nhiệm của trường đã tham gia bồi dưỡng học sinh giỏi môn tin học 9. Qua quá trình bồi dưỡng, tôi luôn cố gắng tìm hiểu nội dung cơ bản và nâng cao, tìm ra phương pháp tối ưu để cho công tác bồi dưỡng có hiệu quả nhất. Công tác bồi dưỡng học sinh giỏi là nhiệm vụ nặng nề nhưng cũng rất vinh d cho giáo viên khi tham gia bồi dưỡng. Những câu hỏi mà bất cứ ai khi tham gia bồi dưỡng học sinh giỏi cũng luôn đặt ra là: Làm thế nào để các em lĩnh hội tốt các kiến thức khi tham gia ôn luyện? Làm thế nào để kết quả đạt được tốt nhất? Làm thế nào để mang lại thành tích cho các em và mang lại vinh d cho nhà trường? Từ những băn khoăn đó, bằng tất cả nỗ l c của bản thân, qua tìm tòi, trao đổi và thảo luận với các đồng nghiệp, tôi xin chia sẻ kinh nghiệm với các đồng nghiệp về để tài mà tôi đã nghiên cứu trong thời gian qua: "Kinh nghiệm bồi dƣỡng học sinh giỏi môn tin học lớp 9". Mong cùng góp một phần nhỏ vào công tác bồi dưỡng học sinh giỏi chung của trường, của huyện, để đội ngũ học sinh giỏi của trường, của huyện ta ngày càng đạt kết quả cao hơn. 2) Mục tiêu, nhiệm vụ của đề tài: - Nhằm nâng cao chất lượng dạy và học nói chung, chất lượng dạy học bộ môn tin học nói riêng. - Là động l c thúc đẩy phong trào thi đua học tập ở học sinh. - Tạo điều kiện thuận lợi cho những học sinh có năng l c, có niềm đam mê, có sáng tạo trong học tập bộ môn. - L a chọn được đội tuyển d thi học sinh giỏi các cấp có kết quả cao. - Làm cơ sở cho các em định hướng và chọn l a ngành nghề thích hợp cho tương lai. - Tạo được niềm tin ở các cấp lãnh đạo, ở phụ huynh và ở học sinh. 3) Đối tƣợng nghiên cứu: - Học sinh học giỏi môn tin học 9. - Giáo viên tham gia bồi dưỡng học sinh giỏi tin học 9 của huyện. 4) Giới hạn phạm vi nghiêm cứu: - Chương trình cơ bản và nâng cao dành cho học sinh giỏi môn tin học trung học cơ sở. - Học sinh giỏi môn tin học trường: THCS Lê Đình Chinh, THCS Buôn Trấp. 5) Phƣơng pháp nghiên cứu:
Trang 3
- Phương pháp quan sát sư phạm - Phương pháp thống kê, tổng hợp, so sánh - Phương pháp trải nghiệm th c tế
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
Trang 4
II. PHẦN NỘI DUNG 1) Cơ sở lí luận: - Giáo dục thế hệ trẻ là nhiệm vụ mà tất cả các quốc gia đều coi là chiến lược của dân tộc mình. Mục đích nhằm nâng cao chất lượng dạy và học, đồng thời để đào tạo, bỗi dưỡng nhân tài cho địa phương, cho đất nước. Việc nâng cao chất lượng dạy và học là mục tiêu trọng tâm của ngành giáo dục và đào tạo, trong đó việc bồi dưỡng học sinh giỏi là nhiệm vụ mũi nhọn. Bản thân tôi được s tín nhiệm, tin tưởng của nhà trường đã phân công bồi dưỡng học sinh giỏi, nên tôi đã dành nhiều tâm huyết, thời gian nghiên cứu, tìm tòi để công việc bỗi dưỡng đạt kết quả tốt nhất. 2) Thực trạng: a/ Thuận lợi – khó khăn: * Thuận lợi: - Xã hội ngày càng phát triển, công nghệ thông tin ngày càng được ứng dụng rộng rãi trong nhiều ngành then chốt, đặc biệt là ngành Giáo dục và Đào tạo. Chính nhờ điều đó thầy cô giáo và các em học sinh có rất nhiều thuận lợi trong việc thu thập tài liệu học tập và tham khảo nói chung, môn tin học nói riêng. - Tin học là môn khoa học t nhiên, nó là cơ sở, là nền tảng của nhiều lĩnh v c khoa học. Nhu cầu học tập, nâng cao kiến thức và say mê khám phá khoa học của học sinh ngày càng nâng cao. Vì vậy, môn tin học ngày càng được nhiều em học sinh quan tâm, l a chọn là môn học ưa thích và cần thiết cho mình. - Được s quan tâm của các cấp lãnh đạo huyện, cũng như s quan tâm của từng địa phương nên đời sống của nhân dân trong huyện, thị trấn ngày càng nâng cao. Đa số các gia đình đã có điều kiện để đầu tư cho con em mình học tập tốt hơn. - Phần lớn phụ huynh đã quan tâm đến việc học tập của con em mình. - Lãnh đạo Phòng Giáo dục và Đào tạo, lãnh đạo các trường luôn quan tâm, chú trọng đến chất lượng giáo dục và đặc biệt chú trọng đến đội ngũ học sinh giỏi . - Giáo viên tham gia bồi dưỡng cũng đã có nhiều kinh nghiệm, nhiều năm tham gia bồi dưỡng học sinh giỏi, có nhiều học sinh đạt kết quả cao trong các kỳ thi. * Khó khăn: - Đời sống của người dân trong nhiều thôn, buôn còn nhiều khó khăn, nên việc đầu tư cho con em mình trong học tập còn hạn chế. - Việc hỗ trợ kinh phí để bồ dưỡng cho giáo viên dạy học sinh giỏi ở một số trường chưa được thỏa đáng.. - Phương tiện dạy và học, đặc biệt là phòng máy ở một số trường còn thiếu, bị hư hỏng nhiều. - Nhiều trường chưa có phòng bộ môn tin học. - Đa số giáo viên tin học đều là giáo viên trẻ nên kinh nghiệm bồi dưỡng học sinh giỏi còn hạn chế. - Môn Tin học là môn học t chọn nên vẫn còn có học sinh chưa thật s đam mê môn học, một số em còn thụ động trong quá trình tiếp thu kiến thức.
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
Trang 5
- Một số giáo viên chưa thật s đầu tư về công tác bồi dưỡng học sinh giỏi. b/ Thành công – Hạn chế: - Khơi dậy niềm say mê khám phá – phát huy tính độc lập – sáng tạo ở học sinh. - Học sinh tham gia vào đội tuyển học sinh giỏi bộ môn ngày càng nhiều . - Kết quả đạt được trong các kì thi học sinh giỏi cấp trường, cấp huyện, cấp tỉnh ngày một thành công hơn. + Năm học 2012-2013 trường THCS Buôn Trấp có 05 em đạt giải kì thi cấp huyện môn tin học 9 và 01 em tham gia d thi cấp tỉnh đạt 01 giải khuyến khích. + Năm học 2013-2014 trường THCS Buôn Trấp có 04 em đạt cấp huyện và 01 em đạt giải 3 cấp tỉnh. Trường Lê Đình Chinh có 1 em đạt giải cấp huyện và 01 em đạt giải khuyến khích cấp tỉnh. - Mặc dù đã có kế hoạch cụ thể, có s chuẩn bị chu đáo, có s quan tâm chỉ đạo của các cấp lãnh đạo, song trong quá trình tổ th c hiện và căn cứ vào kết quả đạt được, chúng ta cần rút những kinh nghiệm: + Việc bồi dưỡng học sinh giỏi bộ môn tin học cần được các trường quan tâm th c hiện ngay từ lớp 8. + Một số trường cần chú trọng hơn nữa công tác bồi dưỡng học sinh giỏi bộ môn. Cần quan tâm, động viên kịp thời kết quả mà học sinh và giáo viên đạt được. c/ Mặt mạnh - mặt yếu. - Học sinh t giác cao trong việc nghiên cứu tài liệu học tập, t tìm kiếm những kiến thức để các em có thể bồi dưỡng thêm cho bản thân mình. - Học sinh tham gia trong các kỳ thi học sinh giỏi với số lượng lớn, qua đó giáo viên có điều kiện tuyển chọn số lượng học sinh tham gia đội tuyển d thi cấp cao hơn đạt chất lượng tốt hơn. - Do học sinh và một số giáo viên chưa được qua tâm kịp thời, khích lệ tinh thần cũng như vật chất nên đôi khi chưa thật s hết sức hết lòng với công viêc. d/ Các nguyên nhân và các yếu tố tác động. - Một số các em học sinh chưa thật s đam mê với môn Tin Học. Nên các em học sinh khá, giỏi cũng không thật s thích thú với môn học này. - Các em học sinh có năng l c với bộ môn Tin Học thì thường kèm theo là giỏi bộ môn Toán hoặc Hóa học do đó các em có thể chọn những môn học này để học chuyên sâu. e/ Phân tích, đánh giá các vấn đề về thực trạng mà đề tài đã đặt ra. - Ngày nay cùng với s phát triển của công nghệ thông tin, việc ứng dụng khai thác các nguồn học liệu mở trên mạng có vai trò rất lớn trong công tác bồi dưỡng học sinh giỏi. Vì vậy chúng tôi đã tận dụng tối đa để thu thập tài liệu liên quan, cần thiết theo nhu cầu cần tìm hiểu của học sinh. - Trong thời kỳ hội nhập hiện nay, vốn kiến thức của mỗi con người phải phù hợp với điều kiện sống, phù hợp với s phát triển nhanh chóng của khoa học. Muốn thích nghi và tiếp tục phát triển và khẳng định mình thì chính bản thân các em học sinh phải là người phát triển toàn diện. Các kiến thức mà các em học được giúp các em t tìm hiểu được một
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
số chương trình trên mạng nhằm phục vụ cho bản thân mình cũng như những người xung quanh. Với lý do đó mà chính các em đã khám phá một cách say mê từ đó các em thật s ưa thích bộ môn học mà các em đã l a chọn. - Cuốn theo s đam mê của các em học sinh, trên con đường l a chọn bộ môn học thích nhất của riêng mình bắt buộc giáo viên thuộc bộ môn ấy phải đáp ứng được nhu cầu chính đáng cho các em từ đó người giáo viên phải làm được những nhiệm vụ cụ thể như: + Tham mưu tr c tiếp với nhà trường, tham mưu với các cấp lãnh đạo quan tâm đặc biệt về tinh thần cũng như vật chất đến đội ngũ học sinh giỏi mà mình l a chọn. + Giáo viên tr c tiếp làm công tác bồi dưỡng không ngừng nâng cao về chuyên môn để đáp ứng kịp thời về nhu cầu cần học tập ho các em học sinh. Có như vậy thì đội ngũ học sinh giỏi mới phát triển mạnh và bền chắc. 3) Giải pháp – Biện pháp: a/ Mục tiêu của giải pháp, biện pháp: - Nhằm nâng cao chất lượng dạy và học nói chung, chất lượng dạy học bộ môn Tin Học nói riêng. - Là động l c thúc đẩy phong trào thi đua học tập ở học sinh. - Tạo điều kiện thuận lợi cho những học sinh có năng l c, có niềm đam mê, có sáng tạo trong học tập bộ môn. - L a chọn được đội tuyển d thi học sinh giỏi các cấp có kết quả cao. - Làm cơ sở cho các em định hướng và chọn l a ngành nghề thích hợp cho tương lai. - Tạo được niềm tin ở các cấp lãnh đạo, ở phụ huynh và ở học sinh.
b/ Nội dung và cách thực hiện các giải pháp, biện pháp:
Trang 6
- Như chúng ta đã biết việc phát hiện ra học sinh yêu thích bộ môn và bồi dưỡng học sinh ấy trở thành học sinh giỏi bộ môn là một quá trình lâu dài, cần nhiều thời gian. Vì vậy khi được phân công giảng dạy tại lớp nào đó, ngoài việc truyền thụ kiến thức cơ bản cho toàn lớp, mỗi giáo viên chúng ta nên chú trọng vào việc tìm kiếm “ hạt nhân” cho bộ môn mình. Chúng ta có thể lồng ghép những kiến thức mở rộng, nâng cao hoặc những bài toán trí tuệ nhanh vào tiết dạy hoặc bài kiểm tra. Dần dần, chúng ta sẽ chọn được “nguồn” cho bộ môn của mình phụ trách. - Muốn “hạt giống” cho quả lành, trái ngọt thì “người làm vườn” phải biết chăm sóc từng cây non từ khi bắt đầu nảy mầm đến khi phát triển, trưởng thành và cho hoa kết quả. Đó là điều mà ai cũng biết. Nhưng chăm sóc như thế nào thì đó lại là “cái riêng” của mỗi người. Cũng như bộ môn Tin Học của chúng ta, muốn đạt được kết quả mỹ mãn, trước hết mỗi giáo viên phải th c s đam mê với công việc, phải luôn trau dồi và nâng cao kiến thức cho bản thân. Mỗi giáo viên phải: + Cần chọn lọc những phương pháp giải dễ hiểu nhất để hướng dẫn cho học sinh không nên máy móc theo hướng dẫn. + Đưa ra cách phát hiện vấn đề cũng như phương pháp giải các dạng bài tập để học sinh t lãnh hội tri thức. Phát huy tính tích c c t giác của học sinh; tôn trọng và kích lệ những sáng tạo của học sinh.
Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
Trang 7
+ Đúc kết được những kiến thức trọng tâm, nổi bật ở mỗi phần, mỗi chương để đưa vào
sổ tay kiến thức của học sinh. Từ đó, các em hình thành một hệ thống kiến thức cơ bản,
trọng tâm.
+ Giúp học sinh dần hoàn thiện về mặt tri thức và tích luỹ thành “vốn riêng” của bản thân
qua việc t giải các bài tập cụ thể.
+ Giúp học sinh định hướng và nhận ra các dạng bài tập cơ bản.
+ Hướng dẫn học sinh vận dụng được các thao tác tư duy, so sánh, phân tích, tổng hợp,
khái quát hoá. Điều này giúp các em nhận biết các dạng bài tập và chọn hướng giải cho
phù hợp.
+ Chuẩn bị cho học sinh các dạng bài tập theo từng phần kiến thức trong khoảng thời gian
nhất định. Sau đó, ta chuẩn bị các bài đa dạng có lồng ghép kiến thức của nhiều phần vào
với nhau cho học sinh t học hỏi.
+ Định hướng cho học sinh t giải các bài tập. Nếu thấy học sinh đã định hướng được
cách giải, thì ta chuyển sang dạng khác. Còn nếu học sinh chưa định hướng được cách
giải, thì giáo viên chỉ hướng dẫn, gợi ý, để từ đó các em t tìm cách giải cho bài tập theo
yêu cầu.
+ Hướng dẫn học sinh cách trình bày, cũng như cách lập luận bài làm, để khi các em d
thi các cấp có được kết quả tốt nhất.
- Trong quá trình giảng dạy, mỗi giáo viên phải tổng hợp được những kiến thức cơ bản,
trọng tâm, dễ nhớ để đưa vào kiến thức của các em. Chẳng hạn như khi cho các em làm
bài tập về các vòng lặp giáo viên cần lưu ý học sinh các trường hợp sau:
1. FOR..TO..DO:
- Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết
trước. Phát biểu FOR có 2 dạng:
FOR .. TO .. DO đếm lên
FOR .. DOWNTO ..DO đếm xuống
* Cú pháp tổng quát là:
FOR Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. - Nếu điều kiện logic là Sai (False) thì lặp lại lệnh cho đến khi điều kiện Ðúng thì mới
thoát ra khỏi cấu trúc REPEAT .. UNTIL.
- Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;) Công việc
của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở
lên thành công việc.
- Có rất nhiều dạng câu lệnh lặp vì vậy giáo viên cần lưu ý học sinh sử dụng các câu lệnh
lặp sao cho đúng để chương trình cho ra kết quả tốt ngoài ra còn tiết kiệm được dung
lượng cấp phát bộ nhớ cho mỗi bài tập. Cũng như điều kiện phù hợp để thoát khỏi vòng
lặp một cách hợp lý trách đưa bài tập vào vòng lặp không xác định.
- Đối với giáo viên tham gia bồi dưỡng học sinh giỏi môn Tin Học, ngoài việc nắm vững
các kiến thức Tin Học, chúng ta còn phải nắm được các kiến thức Toán học. Toán học
giúp chúng ta thể hiện được các bài toán và là công cụ quan trọng giúp ta giải được các
bài Tin Học.
- Ngoài việc hướng dẫn các em ôn tập tập trung, giáo viên có thể yêu cầu các em tìm mua
thêm tài liệu tham khảo có liên quan. Giáo viên cho thêm bài về nhà để các em t giải,
sau đó ta xem cách giải của các em. Từ đó hỗ trợ cho các em những kiến thức cần và chỉ
ra những chỗ không cần thiết trong bài làm của học sinh nhằm giúp các em đạt được kết
quả tốt nhất.
- Trong quá trình bồi dưỡng học sinh giỏi, kiến thức mà mỗi giáo viên bồi dưỡng cho các
em học sinh là rất rộng và sâu. Kiến thức ấy phải được liên kết với nhau tạo thành chuỗi
thuộc chương trình Tin Học. Giáo viên phải hướng dẫn cho học sinh nắm được kiến thức
rất cơ bản và nâng cao theo từng chuyên đề: + Chuyên đề 1: Làm quen với chương trình pascal
+ Chuyên đề 2: Câu lệnh điều kiện
+ Chuyên đề 3: Câu lệnh lặp
+ Chuyên đề 4: Mảng
+ Chuyên đề 5: Xâu kí t
+ Chuyên đề 6: File. - Ngoài các dạng bài tập rất cơ bản mà quý thầy cô đã truyền đạt cho học sinh. Trong đề
tài này tôi đã đưa ra thêm một số dạng bài tập đặc trưng khác, cụ thể như sau: CHUYÊN ĐỀ I: LÀM QUEN VỚI CHƢƠNG TRÌNH PASCAL Viết chương trình tính chu vi và diện tích của hình chữ nhật có chiều dài hai cạnh Bài tập 1:
là a, b (được nhập từ bàn phím).
- Xác định bài toán:
+ Input: a, b
+ Output: S,p
- Cách giải: - Nhập hai cạnh vào hai biến a, b.
- Chu vi hình chữ nhật bằng 2*(a+b); Diện tích hình chữ nhật bằng a*b. Trang 8 - Chƣơng trình minh họa: Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Program Chu_nhat;
uses crt;
Var a, b, S, CV: real;
Begin
Write('Nhap chieu dai:'); readln(a);
Write('Nhap chieu rong:'); readln(b);
S := a*b;
CV := (a+b)*2;
Writeln('Dien tich hinh chu nhat la:',S);
Writeln('Chu vi hinh chu nhat la:',CV:10:2);
readln
end. Bài tập 2: Viết chương trình tính chu vi, diện tích hình vuông có cạnh a (được nhập từ bàn phím).
- Xác định bài toán:
+ Input: a
+ Output: p,s
- Cách giải: - Nhập cạnh vào biến canh.
- Chu vi hình vuông bằng 4*canh; Diện tích hình vuông bằng canh*canh. - Chương trình minh họa:: Program HINH_VUONG;
uses crt;
Var canh: real;
Begin
clrscr;
Write('Nhap do dai canh:');readln(canh);
Writeln('Chu vi hinh vuong la:',4*canh:10:2);
Writeln('Dien tich hinh vuong la:',canh*canh:10:2);
readln
end. Viết chương trình tính chu vi và diện tích hình tròn có bán kính r (được nhập từ Bài tập 3:
bàn phím).
- Cách giải: - Nhập bán kính vào biến r.
- Chu vi đường tròn bằng 2**r.
- Diện tích hình tròn bằng *r*r. - Chƣơng trình minh họa: Trang 9 Program HINH_TRON;
uses crt;
Var r: real; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Begin
clrscr;
Write('Nhap ban kinh:'); readln(r);
Writeln('Chu vi duong tron la:',2*pi*r:10:2);
Writeln('Dien tich hinh tron la:',pi*r*r:10:2);
readln
end. Viết chương trình tính diện tích của tam giác có ba cạnh là a,b,c (được nhập từ bàn Bài tập 4:
phím)
- Cách giải : - Nhập ba cạnh của tam giác vào ba biến a,b,c.
- Nửa chu vi của tam giác p = (a+b+c)/2.
- Diện tích của tam giác: s = . - Chƣơng trình minh họa: Program TAM_GIAC;
uses crt;
Var a,b,c,p,S: real;
Begin
clrscr;
Write('Nhap canh a:');readln(a);
Write('Nhap canh b:');readln(b);
Write('Nhap canh c:');readln(c);
p:=(a+b+c)/2;
S:= sqrt(p*(p-a)*(p-b)*(p-c));
Write('Dien tich tam giac la:',s:10:2);
readln
end. Viết chương trình cho phép tính trung bình cộng của bốn số. Bài tập 5:
- Cách giải: - Nhập bốn số vào bốn biến a, b, c, d
- Trung bình cộng của a, b, c, d bằng (a + b + c + d)/4. - Chƣơng trình minh họa: Trang 10 Program TB_Cong_4_So;
uses crt;
Var a, b, c, d: real;
Begin
Clrscr;
Write('Nhap so thu nhat:');readln(a);
Write('Nhap so thu hai:');readln(b);
Write('Nhap so thu ba:');readln(c);
Write('Nhap so thu tu:');readln(d); Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Writeln('Trung binh cong: ',(a+b+c+d)/4):10:2;
Readln
end. Viết chương trình cho phép tính trung bình cộng của bốn số với điều kiện chỉ được Bài tập 6:
sử dụng hai biến. (Học sinh t giải) * CHUYÊN ĐỀ 2: CÂU LỆNH ĐIỀU KIỆN: + Dạng thiếu:
If <điều kiện> then Clrscr;
Writeln(„BAI TOAN TAM GIAC:‟);
Writeln('---------------------------------');
Write('nhap a =');readln(a);
Write ('nhap b =');readln(b);
Write('nhap c =');readln(c);
If ((a+b)>c)and((b+c)>a)and((a+c)>b) then Begin p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Chu vi tam giac:',2*p:4:2) ;
Writeln('Dien tich tam giac:',s:4:2); End Else Trang 11 Writeln(a,‟, „, b,‟, „, c, „ khong phai la ba canh cua tam giac') ; Readln; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. End.
Bài 2: Tìm giá trị lớn nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím).
- Xác định bài toán:
+ Input: a, b, c, d
+ Output: Max
- Cách giải: Gán giá trị lớn nhất cho a. Lấy lớn nhất lần lượt đi so sánh với
các số còn lại. Nếu lớn nhất nhỏ hơn số nào thì lấy số đó gán cho lớn nhất.
Đưa lớn nhất ra màn hình.
- Chƣơng trình minh họa:
Program TIM_SO_LON_NHAT;
Uses crt;
Var a,b,c,d,max:real;
Begin
Clrscr;
Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D');
Writeln('---------------------------------------------------------------');
Write('Nhap a='); Readln(a);
Write('Nhap b='); Readln(b);
Write('Nhap c='); Readln(c);
Write('Nhap d='); Readln(d);
max:=a;
If b>max then max:=b;
If d>max then max:=d;
Writeln('So lon nhat la:',max:4:2); Readln;
End.
Bài 3: Giải hệ phương trình tuyến tính:
Ax+by=m
Cx+dy=n
- Xác định bài toán:
+ Input: a, c, b, d, m, n
+ Output: x, y
- Chƣơng trình minh họa:
Program GIAI_HE_HAI_AN;
Uses crt;
Var a,b,c,d,m,n:real;
dx,dy,dd:real; Trang 12 Begin
Clrscr;
Writeln(' GIAI HE HAI AN:');
Writeln('----------------------------------');
Write('Nhap a='); readln(a);
Write('Nhap b='); readln(b);
Write('Nhap c=');readln(c);
Write('Nhap m=');readln(m); Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Write('Nhap n='); readln(n);
dd:=a*d-b*c;
dx:=m*d-b*n;
dy:=a*n-c*m;
If dd=0 then If (dx=0) and (dy=0) then Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo nghiem')
Else
Begin Write('He co nghiem :');
Writeln('x=',dx/dd:4:2,' va y=',dy/dd:4:2); End; Readln;
End.
Bài 4: Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra
màn hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu
giây.
- Xác định bài toán:
+ Input: x
+ Output: Giờ, phút, giây
- Chương trình minh họa:
Program DOI_GIO_PHUT_GIAY;
Uses crt;
Var gio, phut,giay, x: longint;
Begin Clrscr;
Writeln('DOI SANG GIO PHUT GIAY'); Writeln('--------------------------------------');
Write('Nhap vao so giay: ');readln(x); gio:= x div
3600;
x:=x mod 3600; phut:=x
div 60; x:=x mod 60;
Writeln('Ket qua = ', gio,'gio : ', phut, 'phut : ', x, 'giay');
Readln;
End.
Bài 5 : Trang 13 Viết chương trình nhập hai số th c . Sau đó hỏi phép tính cần th c hiện và in kết quả
của phép tính đó .
Nếu là “+” , in kết quả của tổng lên màn hình .
Nếu là “-” , in kết quả của hiệu lên màn hình .
Nếu là “/” , in kết quả của thương lên màn hình .
Nếu là “*” , in kết quả của tích lên màn hình . Nếu là “+” , in kết quả của tổng lên
màn hình . Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Nếu là “+” , in kết quả của tổng lên màn hình . - Xác định bài toán:
+ Input: a, b, phép tính
+ Output: Kết quả phép tính
- Chương trình minh họa:
Program pheptinh;
Uses Crt ;
Var
a , b , T : Real ;
Pt : Char ;
BEGIN
Clrscr ;
Write (' a = ') ; Readln( a ) ;
Write (' b = ') ; Readln( b ) ;
Write (' Phep tinh thuc hien la (+ - * /) : ') ;
Readln( Pt ) ;
If Pt = '+‟ Then T := a + b ;
If Pt = '-‟ Then T := a - b ;
If Pt = '*‟ Then T := a * b ;
If Pt = '/‟ Then T := a / b ;
Write ( a , pt , b , ' = ', T ) ;
Readln ;
END . * CHUYÊN ĐỀ 3: CÁC VÒNG LẶP 1. FOR..TO..DO:
Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết
trước. Phát biểu FOR có 2 dạng:
FOR .. TO .. DO đếm lên
FOR .. DOWNTO ..DO đếm xuống
* Cú pháp tổng quát là:
FOR · Nếu điều kiện Ðúng thì chương trình sẽ chạy trong cấu trúc WHILE .. DO.
· Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện. Tùy theo biểu thức logic của điều kiện là Ðúng hay Sai thì chương trình sẽ th c hiện Công việc tương ứng. Trang 14 · Nếu Sai thì chuyển xuống dưới cấu trúc WHILE .. DO
3. REAPET..UNTILL
Câu lệnh REPEAT .. UNTIL dùng trong các trường hợp khi biến điều khiển không có
kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước. Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. - Nếu điều kiện logic là Sai (False) thì lặp lại lệnh cho đến khi điều kiện Ðúng thì mới
thoát ra khỏi cấu trúc REPEAT .. UNTIL.
- Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;) Công việc
của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở
lên thành công việc.
Bài 1: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n ( Với n được nhập). Sao cho
15 số lẻ được in trên một dòng.
- Xác định bài toán:
+ Input: n
+ Output: Các số lẻ nhỏ hơn n
- Cách giải: - Cho j =0.
- Cho biến I chạy từ 1 đến n.
- Nếu I chẵn ( I chia 2 dư 0) thì in ra số n và tăng j lên 1
- Nếu j chia hết cho 15 thì th c hiện xuống dòng (Dùng Writeln). - Chương trình minh họa: Program In_So_Le;
Uses crt;
var Dem,i,n: integer;
Begin
Clrscr;
Write('Nhap so n ='); readln(n);
Dem:= 0;
For i:=1 to n do if i mod 2 =1 then
Begin Write(i:3,',');
Dem:= Dem + 1;
if Dem mod 15 = 0 then Writeln;
end;
readln
end. Bài 2: Viết chương trình in ra tất cả các ước của một số n (Với n được nhập từ bàn phím)
- Xác định bài toán:
+ Input: n
+ Output: Các ước của n
- Cách giải: - Cho biến i chạy từ 1 đến n.Nếu n chia hết cho i thì in ra i. - Chương trình minh họa: Trang 15 Program Tim_uoc;
uses crt;
Var n, i: integer;
Begin
clrscr;
Write('Nhap so n ='); readln(n);
For i:=1 to n do if n mod i = 0 then write(i:3,',');
readln Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. end. Bài 3: Một số có tổng các ước nhỏ hơn nó bằng chính nó được gọi là số hoàn chỉnh.
Ví dụ: 6 có các ước nhỏ hơn nó là 1, 2, 3. Tổng là 1 + 2 + 3 = 6. Viết chương trình xét
xem một số n được nhập từ bàn phím có phải là số hoàn chỉnh không.
- Xác định bài toán:
+ Input: n
+ Output: Các ước của n sao cho tổng các ước bằng chính nó.
- Cách giải: - Dùng biến n lưu số cần xét.
- Biến S có giá trị ban đầu bằng 0.
- Cho i chạy từ 1 đến n-1. nếu i là ước của n thì cộng thêm i vào S.
- Nếu S = n thì S là số hoàn chỉnh. - Chương trình minh họa: Program So_Hoan_Chinh;
uses crt;
var n, i, s: integer;
begin
write('nhap so n: ');readln(n);
s:=0;
for i:= 1 to n -1 do if n mod i = 0 then s:=s+i;
if s = n then write(n, ' la so hoan chinh')
else writeln(n, ' khong phai la so hoan chinh');
readln
end. Bài 4: Viết chương trình xét xem một số n có phải là số nguyên tố không?
- Xác định bài toán:
+ Input: n
+ Output: Kiểm tra xem n có phải là số nguyên tố không?
- Cách giải:
+ Cho biến i chạy từ 2 đến n – 1 nếu n không chia hết mọi số i thì thì n là số nguyên tố.
+ Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. Cứ mỗi lần xét phép chia
n cho i
- Chương trình minh họa: Trang 16 Program Nguyen_to_1;
uses crt;
var n, i: integer;
ok: boolean;
begin
ok:=true;
write('Nhap n: ');readln(n);
for i:= 2 to n - 1 do if n mod i = 0 then ok :=ok and false;
if ok then write(n,' la so nguyen to')
else write(n, ' khong la so nguyen to');
readln
end. Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Bài 5: Viết chương trình in ra tất cả các số nguyên tố bé hơn hoặc bằng n?
- Xác định bài toán:
+ Input: n
+ Output: Các số nguyên tố nhỏ hơn n
- Cách giải:
+ Kiểm tra các số nhỏ hơn n có phải là số nguyên tố: - Cho biến i chạy từ 2 đến n – 1 nếu n không chia hết mọi số i thì thì n là số nguyên tố. - Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. Cứ mỗi lần xét phép chia n cho i
- Chương trình minh họa: Program Nguyen_to_1;
uses crt;
var n, i, j: integer;
ok: boolean;
begin
clrscr;
write('Nhap n: '); readln(n);
for i := 2 to n do
begin
ok:=true;
for j:= 2 to i - 1 do if i mod j = 0 then ok :=ok and false;
if ok then write(i,';')
end;
readln
end. Bài 6: Viết chương trình cho phép nhập nhập một dãy gồm n số nguyên. Nhập thêm một
số và chèn thêm vào dãy sau phần tử k.
- Xác định bài toán:
+ Input: n, k
+ Output: in day mới chèn
- Cách giải:
+ Dời các phần tử từ vị trí k về sau một bước.
+ Nhập giá trị cần chèn vào vị trí k.
- Chương trình minh họa: Trang 17 Program Mang_chen;
uses crt;
var M: array[1..100] of integer;
i,n,k:integer;
begin
clrscr;
write('Nhap : ');readln(n);
for i:=1 to n do
begin
write('M[',i,']='); readln(M[i]); Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. end;
write('Vi tri chen: ');readln(k);
for i:=n+1 downto k+1 do M[i]:=M[i-1];
write('Nhap so can chen: '); readln(M[k]);
for i:=1 to n+1 do write(M[i],', ');
readln
end. Bài 7: Lập trình tính tích các số t nhiên từ 1 tới 10 .
- Xác định bài toán:
+ Input: 1, 2, 3, 4.., 10
+ Output: 1*2*3*4* ..*10
- Chương trình minh họa:
Var i : Byte ;
p : word ;
BEGIN
p := 1;
For i := 1 to 10 Do
p := p * i ;
Write (' 1 * 2 * ... * 10 = ', p ) ;
Readln ;
END .
Bài 8: Cho số t nhiên n, hãy lập trình để tính các tổng sau : a. 1 + 1/22 + 1/32 + … + 1/n2
b. 1 + 1/2! + 1/3! + … + 1/n! Trang 18 a. Var n , i : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln (n) ;
S := 0 ;
For i := 1 To n Do
S := S + 1 / sqr(i) ;
Writeln (' S = ', S:0:2) ;
Readln ;
END .
b. Var n , i , j , p : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln(n) ;
p := 1 ;
s := 0 ;
For i :=1 To n Do
Begin
p := p * i ; (* tính i *)
S := S + 1 / p ;
End ; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Trang 19 Writeln (' S = ', S:0:2) ;
Readln ;
END .
Bài 9: Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số
khác nhau .
Uses Crt;
Var A : Array [1..100] Of Integer;
i , j , n : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
For I := 1 To N Do
Begin
Write ('A[', i , ']= ') ; Readln ( A[i] ) ;
End ;
Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;
i := 2 ;
While i <= N Do
Begin
j := 1 ;
While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;
If j = i Then Writeln( A[i] ) ;
i :=i + 1 ;
End ;
Readln ;
END .
Bài 10 : Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ t
tăng dần .
Program sapxep;
Uses Crt;
Var A : Array [1..100] Of Integer ;
i , j , n , T : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ;
For i := 1 To N Do
Begin
Write('A[', i ,'] = ') ; Readln ( A[i] ) ;
End ;
i := 1 ;
While (i <= n-1) Do
Begin
j := i+1;
While j<=n do Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Begin
If A[j] < A[i] then
Begin
T := A[j];
A[j ] := A[i];
A[i] := T ;
End ;
j := j + 1;
End ;
i := i + 1;
End ;
Writeln(' Day sau khi sap xep : ') ;
For i := 1 To N Do Write(A[i] : 4) ;
Readln
Bài 11: Viết chương trình tìm ƯSCLN của N số được nhập từ bàn phím .
Program UCLN;
Uses crt ;
Var a : Array [1..100] Of Integer ;
n , i : Byte ;
d : integer ;
BEGIN
Clrscr ;
Writeln (' Tim USCLN cua N so :') ;
Write (' Nhap so N : ') ; Readln(n) ;
Writeln ('Nhap ', N ,' so : ') ;
For i := 1 To n Do
Begin
Write(' So thu ', i ,' = ') ; Readln( a[i] ) ;
End ;
For i := 1 To n-1 Do
Repeat
d := a[i] ;
a[i] := a[ i+1 ] mod a[i] ;
a[i+1] := d ;
Until a[i] = 0 ;
Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ;
Readln ;
END . CHUYÊN ĐỀ 4: DỮ LIỆU KIỂU MẢNG: Trang 20 Đối với mảng, do chương trình lớp 8 của chúng ta chỉ nghiên cứu mảng một chiều
nên trong bài này tôi cũng chỉ giới thiệu một số bài tập tiêu biểu về mảng một chiều mà
vẫn chưa đề cập đến mảng 2 chiều.
Mảng (Array) là một tập hợp các phần tử cố định có cùng kiểu gọi là kiểu phần tử. Kiểu
phần tử có thể là kiểu vô hướng, kiểu String, kiểu tập hợp, kiểu Record. Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. vì số nó chỉ với gần khái toán niệm trong giống a. Khai báo
Cách 1:
TYPE Lập phương trình tạo ra một mảng chứa bảng cửu chương . Trang 21 - Xác định bài toán:
- Cách giải:
Cho 2 vòng for chạy lồng nhau. Lấy các giá trị nhân với nhau.
- Chương trình minh họa:
Program BCC;
Uses Crt ;
Var a : Array[1..10, 2..9] Of Byte ;
i, j : Byte ;
BEGIN
Clrscr ;
For i := 1 To 10 Do
For j := 2 To 9 Do a[i, j] := i*j ;
Writeln(' Bang cuu chuong : ') ; Writeln ;
For i := 1 To 10 Do
For j := 2 to 9 do Write ( j:4 , 'x' , i:2 , '=' , a[i , j]:2) ;
Readln ;
END. Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Bài 2: Nhập vào mảng 1 chiều gồm 1 dãy số nguyên N phần tử. Hãy xóa các phần tử
trùng nhau trong mảng và in kết quả ra màn hình. Ý tưởng: Duyệt mảng 1 chiều bằng 2 biến, nếu phát phát hiện phần tử nào trùng thì xóa phần tử ấy ra khỏi mảng. Trang 22 Program xoamang;
Const
Max=100;
Var
a:Array[1..Max] Of Integer;
i,j,k,n:Integer;
Begin
Writeln('XOA BO CAC SO TRUNG NHAU');
Writeln('------------------------');
Writeln;
Write('-Nhap so phan tu mang: ');
Readln(n);
For i:=1 To N Do
Begin
Write('-Phan tu A[',i,']= ');
Readln(a[i]);
End;
i:=2;
While i <= N Do
Begin
j:=1;
While a[j] <> a[i] Do
j:=j+1;
If j < i Then
Begin
For k:=i to n-1 Do
a[k]:= a[k+1];
n:=n-1;
End
Else
i:=i+1;
End;
Writeln;
Write('-Mang con lai: ');
For i:=1 to n Do
Write(a[i]:8);
Writeln;
Writeln(' Bam phim Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Trang 23 Bài 3: Viết CT nhập từ bàn phím mảng 1 chiều và xóa 1 phần tử của mảng có n phần tử.
var
n,i,q,k,p:integer;
a,b:array [1..1000] of integer;
begin
write('n= ');readln(n);
for i:=1 to n do
begin
write('a[',i,']= ');
readln(a[i]);
end;
write('Xoa pt co vi tri la: ');readln(p);
q:=0;
for i:=1 to n do
if q<>p then
begin
inc(q);
b[q]:=a[i];
end;
writeln('Mang sau khi xoa la: ');
for i:=1 to q do
write(b[i],' ');
readln
end.
Bài 4: Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm vào một
số nguyên X.
var
n,i,q,k,p,:integer;
a,b:array [1..1000] of integer;
begin
write('n= ');readln(n);
for i:=1 to n do
begin
write('a[',i,']= ');
readln(a[i]);
end;
write('-Chen pt va vi tri cua pt do: ');readln(k,p);
q:=0;
for i:=1 to n do
begin
inc(q);
if q=p then begin
b[q]:=k;
inc(q);
end; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. b[q]:=a[i];
end;
writeln('-Mang sau khi chen la: ');
for i:=1 to q do
write(b[i],' ');
readln
end.
Bài 5: Chương trình nhập mảng một chiều gồm n phần tử n<=100 kiểu nguyên rồi th c
hiện a. Đếm số lượng phần tử dương cho kết quả ra màn hình b. Tính tổng các phần tử dương trong mảng. c. Tính trung bình các phần tử trong mảng. d. Tính trung bình các phần tử dương trong mảng e. Tìm vị trí đầu tiên của phần tử =k với k nhập từ bàn phím. f. Tìm vị trí phần tử =k với k nhập từ bàn phím, nếu có nhiều phần tử =k thì hiển thị ra màn hình tất cả vị trí phần tử=k đó. g. Đếm số lượng phần tử là nguyên tố trong mảng. h. Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không? i. Sắp xếp mảng theo thứ t tăng dần các phần tử và hiển thị ra màn hình mảng tăng đó : integer; Prgram BAI_5;
Uses crt;
Var A : array[1..100] of integr;
i, k,demd, s, demnt, tg,n, d, dd,j
tb, tbm : real;
Begin Writeln(„nhap so hang thu‟, I, „A[„,I,‟]= „);
Readln(A[i]); Begin
End; Trang 24 Clrscr; Writeln(„nhap so luong phan tu cua mang‟); readln(n);
Writeln(„-------nhap mang-----------„);
For i :=1 to n do
demd :=0;
For i :=1 to n do if A[i]>0 then demd :=demd+1;
Writeln(„ so luong phan tu duong cua mang la‟, demd);
s :=0;
For i :=1 to n do if A[i]>0 then s :=s+ A[i]; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. if A[i]>0 then s :=s+ A[i];
demd :=d+1; If A[j]=k then write(j : 5);
j :=j+1; Writeln(„ tong cac phan tu duong cua mang la‟, s);
s :=0;
For i :=1 to n do s :=s+A[i];
tbm :=s/n;
Writeln(„ trung binh cac phan tu cua mang la ‟, tbm : 6 : 2);
s :=0; demd :=0;
For i :=1 to n do
Begin
End;
tb :=s/demd;
Writeln(„ trung binh cac phan tu duong cua mang la ‟, tb : 6 : 2);
Writeln(„ nhap gia tri can tim vi tri ‟); readln(k);
J :=1;
While (j<=n) And (A[j]<>k) do j :=j+1;
If j> n then Writeln(„khong co gia tri ‟, k, ‟ trong mang‟)
Else Writeln(k, „ nam o vi tri thu ‟, j,‟ trong mang‟);
Writeln(„ nhap gia tri can tim vi tri ‟); readln(k);
J :=1; writeln(„cac vi tri xuat hien cua ‟,k,‟ trong mang la‟);
While (j<=n) do
Begin
end;
Demnt :=0;
For i:=1 to n do Begin
j:=2;
While( j<=A[i] - 1 ) And (A[i] mod j<>0) do
Begin J:=j+1;
If j> A[i] - 1 then demnt :=demnt+1; End; j:=3; Writeln(„ so luong phan tu la nguyen to la‟, demnt);
d :=A[2]-A[1];
While (j<=n) And (A[j]-A[j-1]=d) do j:=j+1; if j>n then Writeln(„ mang vua nhap la cap so cong‟)
else Writeln(„ mang vua nhap khong phai la cap so cong‟); For i :=1 to n do
For j :=i+1 to n-1 do If A[j]>A[j+1] then
Begin {doi vi tri hai phan tu A[j] va A[j+1]} Trang 25 tg :=A[j];
A[j] :=A[j+1]; Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. A[j+1] :=tg; End; Writeln(„mang sau khi duoc sap xep la‟); For i :=1 to n do write(A[i] : 5); Readln END.
Bài 6: Viết chương trình nhập vào một mảng 1 chiều A có N phần tử các số nguyên
(N<=100). Nhập 1 số nguyên X, kiểm tra X có trong mảng hay không? Nếu có cho biết vị
trí của phần tử đó.
Bài 7: Viết chương trình nhập vào một mảng 1 chiều A có N phần tử các số nguyên
(N<=100). In ra màn hình
Dòng 1 : Các số nguyên tố
Dòng 2 : Các số không nguyên tố.
Bài 8: Viết chương trình nhập vào một mảng một chiều A có N phần tử các số
nguyên(N<=100). Kiểm tra các phần tử khác nhau trong mảng.
Ví dụ : Nhập vào : 5 3 7 9 5 7 11 5 7 -2 5 8 -2
In ra : 5 3 7 9 11 -2 4 8 Trang 26 CHUYÊN ĐỀ 5: XÂU KÍ TỰ
- Xâu kí t là một chuyên đề nâng cao trong bài viết này nhưng do quá trình bồi dưỡng
củng như quá trình nghiên cứu tôi t nhận thấy chương trình này không quá khó hiểu với
đối tượng học sinh của mình vì vậy tôi đã mạnh dạn đưa nội dung này vào bồi dưỡng và
một số bài ra cũng đã có nội dung này.
- Xâu ký t là dữ liệu bao gồm một dãy các ký t trong bảng mã ASSCII.
a. Cách khai báo:
Var: STRING[độ dài của xâu];
- Xâu ký t trong bộ nhớ nó chiếm số byte bằng số ký t c c đại được khai báo cộng với
byte đầu tiên chứa số ký t hiện có của xâu. Độ dài tối đa của xâu ký t là 255.
- Cách nhập/xuất: Cách đọc hay viết kiểu STRING cũng tương t như các kiểu dữ liệu
khác, ta sử dụng các thủ tục READ, hoặc WRITE.
Ví dụ:
Readln(st);
Writeln(st);
- Truy cập từng phần tử của xâu ký t : tương t mảng 1 chiều: thông qua tên biến kiểu
STRING và chỉ số của nó
Ví dụ:
St := 'Le Thanh Lam';
write(st[4]);
-> Kết quả: cho ra chữ T.
b. Các thao tác trên xâu ký t :
1/ Phép cộng xâu:
Ví dụ:
st1:=‟Le‟; st2:=‟Thanh‟; St=st1 + st2;
-> KQ: „Le Thanh‟
2/ Phép so sánh:
- Hai xâu ký t có thể so sánh với nhau bằng các phép so sánh =, >, <… Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Trang 27 Nguyên tắc so sánh th c hiện như sau, chúng sẽ đem từng ký t tương ứng với nhau để so
sánh, xâu nào có ký t có số thứ t trong bảng mã ASCII lớn hơn thì xâu đó lớn hơn.
Hai xâu ký t được gọi là bằng nhau khi chúng hoàn toàn giống nhau (có độ dài như
nhau).
Ví dụ: „FILENAME‟ = ‟FILENAME „
3/ Các thủ tục và hàm chuẩn xử lý xâu ký t
* Hàm length(st): cho độ dài th c của xâu ký t
ví dụ: st:=‟le thanh‟ thì LENGTH(st) cho bằng 8.
* Thủ tục DELETE(st, pos, num): xóa num ký t trong xâu st kể từ vị trí pos
Ví dụ: st= „FILENAME‟
Delete(st,5,4) lúc đó st cho ra là „FILE‟
* Thủ tục INSERT(obj, st, pos): Thủ tục cho kết quả bằng cách chèn xâu ký t có tên là
Obj vàoxâu st tại vị trí pos, những ký t đứng sau pos sẽ được dời vềphía sau của xâu ký
t obj.
Ví dụ: obj:= „Thanh „
st:=‟Le Lam‟;
INSERT(obj,st,4) lúc đó st=‟Le Thanh Lam‟;
* Thủ tục STR(value, st): Thủ tục này th c hiện việc chuyển đối giá trị kiểu số(value)
sang dạng xâu ký t và gán cho biến st.
Ví dụ: n là một só nguyên có giá trị: n:=150;
STR(n:5,st) sẽ cho kết quả xâu st là: st=‟ 150‟;
* Thủ tục VAL(st, value,code) đối một xâu ký t st sang dạng số và gán cho biến value,
nếu biến đối thành công thì code sẽ nhận giá trị bằng 0. ngược lại thì cho giá trị khác
không
Ví dụ: VAL(„123‟,value,code) lúc này code sẽ nhận giá trị bằng 0 và value=123
* Hàm COPY(st, pos, num): sao chép trong xâu st, num ký t tại vị trí pos,
Ví dụ: st=‟Le Thanh Lam‟
COPY(st,4,5) = „Thanh‟;
* Hàm CONCAT(s1,s2,…,sn): hàm cho ra 1 xâu mới bằng cách nối đuôi các xâu
s1,s2,…,sn lại với nhau.
Ví dụ: CONCAT(„Le ‟,‟Thanh „, „Lam‟) = „Le Thanh Lam‟;
* Hàm POS(st1,st2): hàm cho tavị trí tìm thấy đầu tiên của xâu s1 trong xâu s2.
Ví dụ: POS(„Lam‟,„Le Thanh Lam‟) = 10;
Bài 1: Viết chương trình nhập vào từ bàn phím một xâu kí t S và thông báo ra màn hình
số lần xuất hiện của mổi chứ cái tiếng Anh trong S ( không phân biệt chữ hoa và chữ
thường).
Uses Crt;
Var St:String;
dem: Array[„A‟..‟Z‟] Of Byte;
i:Byte;
ch:Char;
Begin
Write(„Nhap xau St: „); Readln(St);
For ch:=‟A‟ To „Z‟ Do dem[ch]:=0;
For i:=1 To Length(St) Do Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Trang 28 If Upcase(St[i]) IN [„A‟..‟Z‟] Then Inc(dem[Upcase(St[i])]);
For ch:=‟A‟ To „Z‟ Do
If dem[ch]>0 Then Writeln(ch,‟ : ‟,dem[ch]);
Readln;
End.
Bài 2: Viết chương trình nhập vào xâu, đưa ra xâu đảo theo từ. Ví dụ: đi xe đạp -> đạp xe
đi.
uses crt;
var s:string;
x,y,z,t:byte;
begin
write('Nhap vao mot xau: ');
readln(s);
z:=length(s);
for y:=length(s) downto 1 do
begin
if ((s[y]=' ')or(y=1)) then begin for t:=y to z do write(s[t]);z:=y end;
write(' ');
end;
readln;
end.
Bài 3: Viết ct nhập vào xâu có cả chữ và số, rồi cho xuất ra có bao nhiêu kí t chữ và bao
nhiêu kí t số.
var s: string;cs,cc,i: integer;
begin
write('Nhap mot xau ky tu: ');
readln(s);
cs:=0;
cc:=0;
for i:=1 to length(s) do
begin
if (s[i] in ['0'..'9']) then cs:=cs+1;
if s[i] in ['A'..'Z'] + ['a'..'z'] then cc:=cc+1;
end;
write('So cac ki tu la chu so:',cs:2,' So cac ki tu la chu cai:',cc:4);
readln
end.
Bài 4: Viết chương trình nhập một xâu ký t St từ bàn phím và một ký t ch. In ra màn
hình xâu St sau khi xóa hết các ký t ch trong xâu đó.
var St:string; n:char; i:byte;
begin
writel(' Nhap chuoi : '); readln(st);
write(' Nhap ki tu : '); readln(n);
for i:=1 to length(st) do
if st[i] = n then delete(st,i,1); Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. Trang 29 writeln('Chuoi sau khi xoa: ',st);
readln
end.
c) Điều kiện để thực hiện giải pháp – biện pháp:
* Đối với giáo viên đƣợc phân công bồi dƣỡng học sinh giỏi:
- Phải có tinh thần trách nhiệm cao, nhiệt tình với công việc. Tạo được niềm tin cho học
sinh và cần phải gần gũi với học sinh.
- Chọn đúng đối tượng học sinh giỏi cho bộ môn Tin học
- Lập được kế hoạch bồi dưỡng.
- Ngoài nghiên cứu những bộ đề, những sách nâng cao, mỗi giáo viên chúng ta cần lên
mạng để tìm hiểu thêm thông tin liên quan đến bộ môn tin học, để có kế hoạch bồi dưỡng
đạt kết quả tốt nhất.
- Giáo viên chỉ định hướng cho học sinh giải và kiểm tra lại cách giải của học sinh. Giúp
học sinh thấy được những sai sót của bản thân và t tìm cách khắc phục.
- Mỗi giáo viên phải t xây d ng bộ đề bồi dưỡng học sinh giỏi bộ môn tin học.
* Đối với học sinh:
- Yêu thích bộ môn mình l a chọn.
- Say mê tìm tòi, sáng tạo, có tư duy lôgíc.
- Biết xây d ng cho bản thân kế hoạch ôn tập.
- Không thụ động trong quá trình tiếp thu kiến thức.
- T mình tìm ra cách giải trên s gợi ý của giáo viên
d/ Kết quả khảo nghiệm, giá trị khoa học của vấn đề nghiêm cứu:
- Với việc ứng dụng đề tài này vào việc bồi dưỡng học sinh giỏi, tôi cùng các trường đã
khảo nghiệm ở học sinh, tôi thấy các em ngày càng yêu thích bộ môn tin học hơn tham
gia vào đội tuyển học sinh giỏi ngày càng nhiều hơn và kết quả đội tuyển d thi đạt kết
quả ngày càng cao hơn. Kết quả đội tuyển bộ môn Tin học của huyện d thi cấp tỉnh đạt
như sau:
+ Năm học 2012 – 2013 trường THCS Buôn Trấp có 05 em đạt giải cấp huyện, 03 em d
thi cấp tỉnh và đạt 1 giải khuyến khích cấp tỉnh.
+ Năm học 2013 – 2014 trường THCS Buôn Trấp có 05 em đạt giải cấp huyện, 02 em đạt
giải khuyến khích cấp tỉnh.
+ Năm học 2014-2015 trường THCS Buôn Trấp có 04 em đạt giải cấp huyện.
4) Kết quả:
- Qua so sánh kết quả học sinh giỏi của trường cũng như của Phòng giáo dục huyện trong
những năm gần đây và những năm trước, tôi thấy đội tuyển học sinh giỏi đã tăng cả số
lượng và chất lượng.
III. KẾT LUẬN, KIẾN NGHỊ:
1) Kết luận: Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. - Nhằm nâng cao hiệu quả và chất lượng trong công tác bồi dưỡng học sinh giỏi bộ môn
tin học, giáo viên phải th c hiện chiến lược lâu dài, phải tìm kiếm được đối tượng học
sinh có năng khiếu đặc biệt đối với bộ môn thông qua bài giảng với những câu hỏi và tình
huống nhanh để phát hiện đối tượng có năng khiếu đặc biệt đó.
- Người giáo viên phải có phương pháp giảng dạy sao cho lôi cuốn học sinh và tạo được
s đam mê để chính các em yêu thích và khám phá môn học do các em l a chọn.
- Qua nhiều năm áp dụng nội dung nghiên cứu này, chúng tôi nhận thấy số lượng học sinh
tham gia trong các kỳ thi học sinh giỏi bộ môn tin học ngày càng nhiều, chất lượng của
các em học sinh cũng được nâng lên rõ rệt.
2) Những kiến nghị đề xuất:
* Đối với Phòng Giáo dục và Đào tạo:
- Lãnh đạo phòng, lãnh đạo các trường nên tiếp tục duy trì công tác tổ chức thi học sinh
giỏi môn tin học từ lớp 8, để giáo viên có cơ sở bồi dưỡng, học sinh xác định được hướng
l a chọn cho bản thân.
- Các đề thi học sinh giỏi huyện không nên tập trung vào một phần mà cần mở rộng kiến
thức hơn.
* Đối với các trƣờng:
- Nên tổ chức chuyên đề bồi dưỡng học sinh giỏi ở các cụm trường với nhau, để trao đổi,
học hỏi kinh nghiệm lẫn nhau.
- Cần chú trọng hơn nữa công tác bồi dưỡng học sinh giỏi nói chung môn Tin học nói
riêng.
- Có chế độ động viên kịp thời những giáo viên có học sinh đạt kết quả cao trong các kì
thi.
* Đối với giáo viên:
- Giáo viên cần đầu tư hơn về công tác chuyên môn, cũng như công tác bồi dưỡng học
sinh giỏi bộ môn.
- Mỗi giáo viên được phân công bồi dưỡng, nên có bộ đề cũng như kế hoạch bồi dưỡng cụ
thể, để tránh thụ động trong quá trình bồi dưỡng.
- Chỉ tạo ra khung để học sinh t hoàn thiện bài giải.
* Tài liệu tham khảo:
+ SGK tin học quyển 3, SGK tin học lớp 11
+ Các bài tập Pascal nâng cao
+ Sách hướng dẫn học tốt môn Pascal
+ ... Krông Ana, ngày 12 tháng 03 năm 2015
Ngƣời viết đề tài: Trang 30 Nguyễn Thị Thu Thủy Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9. NHẬN XÉT CỦA HỘI ĐỒNG SÁNG KIẾN:
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
CHỦ TỊCH HỘI ĐỒNG SÁNG KIẾN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
……………………………………………………………………………………………… Trang 31 ( Ký tên, đóng dấu) TO/DOWNTO DO TO/DOWNTO DO Tài liệu liên quan
Tài liêu mới