Tải bản đầy đủ (.doc) (31 trang)

SKKN kinh nghiệm bồi dưỡng học sinh giỏi môn tin học 9

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (584.52 KB, 31 trang )

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.
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

Trang 2


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:
- 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ế
Trang 3


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
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.
Trang 4


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
- 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
Trang 5


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:
- 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.
Trang 6


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
+ Đú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 <biến đếm> := <trị đầu> TO/DOWNTO <trị cuối> DO <Công việc>;
2. WHILE..DO :
- Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra
điều kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi
tới thực hiện lệnh tiếp theo
* Cú pháp : WHILE <điều kiện> DO <Công việc>
+ Ðiều kiện trong cấu trúc lặp WHILE .. DO là một biểu thức logic kiểu Boolean chỉ có
2 giá trị là Ðúng (True) hoặc Sai (False). 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.

+ 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.
Trang 7


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
Bài tập 1:
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
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.
- Chương trình minh họa:
Trang 8


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.
Bài tập 3:
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à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:
Program HINH_TRON;
uses crt;
Var r: real;
Trang 9


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.
Bài tập 4:
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
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 = p ( p − a )( p − b)( p − c) .
- 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.
Bài tập 5:
Viết chương trình cho phép tính trung bình cộng của bốn số.
- 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:
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);
Trang 10


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.

Bài tập 6:
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
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 <câu lệnh>;
vd: if (x mod 2)=0 then writeln(x,' la so chan');
+ Dạng đầy đủ:
If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
vd: if (x mod 2) =0 then writeln(x,' la so chan')
else writeln(x,' la so le');
Bài 1: Nhập vào ba số a, b, c bất kì. Kiểm tra xem nó có thể là độ dài ba cạnh hay
không, nếu không thì in ra màn hình 'Khong la ba canh cua mot tam giac'. Ngược
lại, thì in diện tích, chu vi của tam giác ra màn hình.
- Xác định bài toán:
+ Input:a, b, c
+ Kiểm tra xem có phải 3 cạnh tam giác không? Nếu đúng tính chu vi diện tích
- Cách giải:
Để thỏa mãn điều kiện 3 canh của tam giác thì: Tổng 2 cạnh lớn hơn một cạnh và a, b,
c>0; p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
- Chương trình minh họa:
Program TAMGIAC;
Uses crt;
Var a,b,c,s,p : real;
Begin
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
Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac') ; Readln;
Trang 11


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;
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);
Trang 12



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 :
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 .
Trang 13


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 <biến đếm> := <trị đầu> TO/DOWNTO <trị cuối> DO <Công việc>;
2. WHILE..DO :
Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra điều
kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới
thực hiện lệnh tiếp theo
* Cú pháp : WHILE <điều kiện> DO <Công việc>
· Ðiều kiện trong cấu trúc lặp WHILE .. DO là một biểu thức logic kiểu Boolean chỉ có 2
giá trị là Ðúng (True) hoặc Sai (False)

· 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.
· 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.
Trang 14


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:
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
Trang 15


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:
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.
Trang 16


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:
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]);
Trang 17


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!
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 ;
Trang 18


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
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
Trang 19


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:
Đố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.

Trang 20


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
a. Khai báo
Cách 1:
TYPE <tên kiêu mảng>=ARRAY[chỉ số] OF <kiểu phàn tử>;
VAR <tên biến mảng>:<tên kiểu mảng>;
Cách 2:
VAR <tên biến mảng>:ARRAY[chỉ số] OF <kiểu phần tử>;
Trong đó chỉ số phải là một kiểu miền con, kiểu vô hướng liệt kê, kiểu char hoặc kiểu
boolean. {Tuy nhiên. người ta thường dùng kiểu miền con các số nguyên là dễ hình dung
nhất vì nó gần giống với khái niệm chỉ số trong toán học.}
Ví dụ:
TYPE Mangnguyen = Array[1..5] of Integer;
MangKytu = Array[Byte] of Char;
VAR A: Mangnguyen;
C: MangKytu;
Hoặc
VAR A: Array[1..5] of Integer;
C: Array[Byte] of Char;
b. Cách truy xuất
{việc truy xuất đến từng phần tử của mảng đế xử lý dữ liệu cũng như việc ta gọi đến tên
các lớp học của ta}
Mỗi phần tử của mảng được truy xuất thông qua tên biến mảng cùng với chỉ số của mảng
trong cặp dấu [].
Ví dụ: A[1], A[2],…
Chú ý: Hai mảng A và B có cùng số phần tử và cùng kiểu phần tử, ta có thể thay toàn bộ
phần tử A bởi các phần tử tương ứng của B bằng một phép gán A := B.
Bài 1 :

Lập phương trình tạo ra một mảng chứa bảng cửu chương .
- 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.
Trang 21


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.
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 <Enter> de ket thuc ');
Readln
End.
Trang 22


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
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;
Trang 23


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 đó
Prgram BAI_5;
Uses crt;
Var A : array[1..100] of integr;
i, k,demd, s, demnt, tg,n, d, dd,j
: integer;
tb, tbm : real;
Begin
Clrscr;
Writeln(‘nhap so luong phan tu cua mang’); readln(n);
Writeln(‘-------nhap mang-----------‘);
For i :=1 to n do

Begin
Writeln(‘nhap so hang thu’, I, ‘A[‘,I,’]= ‘);
Readln(A[i]);
End;
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];
Trang 24


Kinh nghiệm bồi dưỡng học sinh giỏi môn tin học lớp 9.
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
if A[i]>0 then s :=s+ A[i];
demd :=d+1;
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
If A[j]=k then write(j : 5);
j :=j+1;
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;
Writeln(‘ so luong phan tu la nguyen to la’, demnt);
d :=A[2]-A[1];
j:=3;
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]}
tg :=A[j];
A[j] :=A[j+1];

Trang 25


×