Sáng kiến “Kinh nghiệm dạy lập trình Pascal trong bồi dưỡng học sinh giỏi môn tin học cấp trung học cơ sở” giúp học sinh nắm vững các dạng toán, cấu trúc, các thuật toán trong lập trình để từ đó các em vận dụng vào giải quyết các bài toán trong cuộc sống thực tiễn.
MỤC LỤC Nội dung I Đặt vấn đề II Giải vấn đề Phần 1: Thực trạng vấn đề Phần 2: Các biện pháp để giải vấn đề Phần 3: Hiệu SKKN III Kết luận Kết luận Kiến nghị, đề xuất Danh mục tài liệu tham khảo Trang 3 15 16 16 16 18 I ĐẶT VẤN ĐỀ: Như chúng ta đã biết: “Mục tiêu bồi dưỡng học sinh môn lập trình Pascal không phải để tạo các nhà lập trình chuyên nghiệp, mà mục tiêu chính của công tác này là bồi dưỡng khả tư duy, sáng tạo và lập luận, phân tích, thiết kế của học sinh” Để học sinh đạt kết cao kì thi chọn học sinh giỏi nhiều yếu tố: Tố chất học sinh, quan tâm gia đình, ý thức học tập học sinh, việc bồi dưỡng và không ngoại trừ yếu tố may mắn Tuy nhiên chúng ta không chờ đợi và cầu mong may mắn bởi vì yếu tố may mắn chỉ là một phần nhỏ Theo quan điểm tôi, điều quan trọng là chúng ta trang bị cho em kiến thức vững vàng, phương pháp tư duy, thuật toán trước thi Do việc bồi dưỡng vẫn là yếu tố quan trọng Nhưng chúng ta cần bồi dưỡng cho học sinh giỏi những gì, bồi dưỡng nào và bằng cách nào cho thật hiệu quả? Thực được điều đó, nhà trường chúng ta cố gắng hướng đến phát triển tối đa những lực tiềm tàng mỗi học sinh Ở trường trung học sở nay, việc nâng cao chất lượng đại trà và bồi dưỡng học sinh giỏi được nhiều cấp bộ chính quyền và nhân dân địa phương quan tâm nguyên nhân sâu xa đó chính là thực mục tiêu giáo dục mà Đảng và Nhà nước đã đề Căn cứ vào nhiệm vụ, mục tiêu chương trình Tin học trung học sở là: Bộ môn Tin học phải với bộ môn khác tham gia thực mục tiêu nhà trường phổ thông là đào tạo hệ trẻ thành những người lao động có học vấn vững chắc, có nhân cách hoàn thiện và có lực bảo vệ, xây dựng đất nước phồn vinh Là một những môn thuộc lĩnh vực khoa học tự nhiên, bộ môn Tin học phải cung cấp những tri thức bản, làm tảng để học sinh có thể tiếp tục sâu vào tìm hiểu và xây dựng khoa học Tin học tiếp thu những tri thức lĩnh vực kĩ thuật công nghệ tiên tiến, là lĩnh vực công nghệ thông tin Vì việc xác định mục tiêu dạy học môn Tin học phải xuất phát từ mục tiêu giáo dục Việt Nam, từ đặc điểm và vị trí môn Tin học nhà trường Mỗi học sinh đến với bộ môn tin học ở cấp trung học sở thường cảm thấy khó khăn đặc biệt là kiến thức lập trình ở khối lớp Quả vì với em, ngôn ngữ lập trình dường xa lạ vì là kiến thức lập trình mà em được học Trong trình giảng dạy nhận thấy việc tiếp cận với môn học khó khăn, phải làm nhiều lần và thực hành nhiều tiết em mới hiểu việc nhập và xuất dữ liệu, khai báo và sử dụng câu lệnh: Câu lệnh điều kiện, vòng lặp xác định, vòng lặp không xác định, cấu trúc dữ liệu kiểu mảng Điều đó đã thúc đẩy nhiều việc dạy học là làm đưa được cho em đam mê và phát triển tài học sinh việc đào tạo nhân tài cho đất nước Là một giáo viên giảng dạy và bồi dưỡng học sinh giỏi bộ môn Tin học lớp 9, mục tiêu chính là giúp học sinh không chỉ biết thao tác soạn thảo với văn bản, bảng biểu mà còn phải có khả phân tích, tổng hợp, trừu tượng hoá, khái quát hoá vấn đề và đặc biệt là phát triển tư duy, sáng tạo Những năm qua môn tin học ở trung học sở chưa có sách giáo viên cụ thể hướng dẫn cho học sinh cách phân tích lập trình nên việc học học sinh phụ thuộc lớn ở mỗi giáo viên đứng lớp Đặc biệt từ năm học 2016-2017, Sở GD&ĐT Phú Thọ thay đổi cấu trúc thi học sinh giỏi cấp tỉnh môn tin học lớp thì việc rèn kỹ lập trình, kỹ soạn thảo, xử lí bảng tính cho em học sinh lớp 8, lớp nói chung và học sinh đội tuyển nói riêng lại cần thiết bao giờ hết Với sáng kiến “Kinh nghiệm dạy lập trình Pascal bồi dưỡng học sinh giỏi môn tin học cấp trung học sơ” giúp học sinh nắm vững dạng toán, cấu trúc, thuật toán lập trình để từ đó em vận dụng vào giải bài tốn c̣c sớng thực tiễn II GIẢI QUYẾT VẤN ĐỀ Phần 1: Thực trạng vấn đề Từ năm học 2016-2017 Sở GD&ĐT Phú Thọ đã xây dựng cấu trúc đề thi học sinh giỏi tin học cấp tỉnh mới sau đó có chỉnh sửa, bổ xung năm học 2017-2018 Đối với cấu trúc mới có thêm phần tin học ứng dụng gồm: Microsoft Word, Microsoft Excel, Microsoft PowerPoint Trong trình giảng dạy và bồi dưỡng học sinh học sinh giỏi môn Tin học, đối với phần tin học ứng dụng lượng kiến thức không nhiều, có nhiều tài liệu giúp cho học sinh nắm vững được định dạng, công thức tính Trong phần tin học lập trình thân gặp không ít khó khăn việc lựa chọn tài liệu giảng dạy, tài liệu tham khảo dạng bài tập Chính vì tìm tòi nghiên cứu tài liệu, tham khảo ý kiến đồng nghiệp phân dạng bài tốn để học sinh dễ dàng nhận dạng mợt bài toán từ đó có hướng giải vấn đề nhanh nhất, nâng cao chất lượng và hiệu giảng dạy, bồi dưỡng học sinh giỏi Trên sở trình bồi dưỡng nhận thấy: Mục tiêu bồi dưỡng học sinh môn lập trình Pascal để tạo nhà lập trình chuyên nghiệp, mà mục tiêu chính công tác này là: Bồi dưỡng khả tư duy, sáng tạo và lập luận phân tích, thiết kế học sinh Giáo viên bồi dưỡng học sinh giỏi nắm chắc chắn nội dung chương trình và kiến thức ngôn ngữ lập trình, biết vận dụng đổi mới phương pháp dạy học lấy học sinh làm trung tâm, biết tôn trọng sáng tạo học sinh học lập trình Trong trình bồi dưỡng biết sử dụng phương pháp, câu hỏi gợi mở để học sinh tìm tòi, phân tích tìm được thuật toán, sở tìm thuật toán em dần từng bước tới ưu hóa thuật tốn đó * Những thuận lợi và khó khăn công tác bồi dưỡng học sinh giỏi: a) Thuận lợi: - Công tác bồi dưỡng học sinh giỏi được nhà trường quan tâm chỉ đạo sát đặc biệt đã có những phần thưởng có tính khích lệ để động viên giáo viên và học sinh cụ thể: + Thành lập đội tuyển học sinh giỏi tin học đó nòng cớt là học sinh đợi tuyển Tốn + Hằng năm nhà trường đã tổ chức trao thưởng cho em học sinh đạt giải và giáo viên bồi dưỡng + Bên cạnh đó nhà trường tạo mọi điều kiện cần thiết đảm bảo cho công tác bồi dưỡng đạt hiệu như: phòng học, máy tính, máy chiếu… + Đời sống kinh tế nhân dân được nâng cao, trình độ dân trí được phát triển nên công tác bồi dưỡng học sinh giỏi được phụ huynh quan tâm Vì việc cho em tham gia lớp bồi dưỡng được phụ huynh hết sức ủng hộ và tạo mọi điều kiện vật chất để em mình tham gia b) Khó khăn: + Về học sinh: Tất em học sinh tham gia đội tuyển Tin học là học sinh lớp Ngoài tham gia đội tuyển tin học, em còn ở đội tuyển khác như: Đội tuyển Toán, Vật lí, Hóa học + Về phía phụ huynh học sinh thì một số ít phụ huynh chỉ thích cho em mình tham gia đội tuyển học sinh giỏi mơn như: Tốn, Vật lí, Hóa học + Đặc trưng môn học: Nhìn chung môn học lập trình Pascal là môn học trừu tượng, đòi hỏi học sinh phải có khả phân tích, tư tốt và chỉ có những học sinh giỏi mơn Tốn, Vật lí cộng thêm niềm đam mê, cần cù, chịu khó mới học tốt được + Thời gian dành cho chương trình bồi dưỡng không nhiều c) Kết thi học sinh giỏi Tin học năm học 2016-2017; 2017-2018 Cấp huyện Cấp tỉnh TS TS tham đạt gia giải 2016-2017 10 2017-2018 10 Năm học TS Nhất Nhi Ba KK tham TS đạt gia giải Nhất Nhi Ba KK 3 Từ kết thi học sinh giỏi Tin học năm học 2016-2017; 2017-2018 nhận thấy: - Một số học sinh chưa tìm tòi được lời giải bài toán chưa thực hiểu chất bài toán (Ví dụ: Đối với câu phần lập trình đề thi học sinh giỏi Tin học cấp tỉnh năm học 2016-2017, sau phân tích đề bài chỉ cần tìm giá trị nhỏ và giá trị lớn hai mảng học sinh lại hiểu sai bài toán là tìm diện tích miền phủ mặt phẳng tọa độ) - Một số học sinh viết được chương trình chương trình không chạy (do lỗi khai báo dữ liệu, lỗi vào dữ liệu, lỗi vào chương trình) - Chương trình còn chạy thời gian quy định (01 giây) thuật tốn chưa tớt, chưa tối ưu - Thao tác ra, vào dữ liệu còn nhầm lẫn Xuất phát từ những sai lầm học sinh, việc hình thành kỹ xác định bài toán ban đầu và xác định dạng toán là quan trọng, sau đó học sinh phải tư được thuật tốn dựa kiến thức tốn, tới ưu hóa được thuật tốn đó và ći là lập chương trình (Sử dụng ngôn ngữ lập trình Pascal) Tôi đã áp dụng một số biện pháp sau nhằm nâng cao kết thi học sinh giỏi môn tin học cấp, giúp em nắm vững cách giải mợt bài tốn Tin học, dạng tốn Tin học và vận dụng kiến thức vào cuộc sống thực tiễn Phần 2: Các biện pháp để giải vấn đề Xuất phát từ bài toán đề thi học sinh giỏi cấp tỉnh năm học 20152016: Cho một dãy số nguyên ai, hãy tìm điểm chia để chia dãy đã cho thành hai phần cho nối hai dãy đó lại ta được một dãy tăng + Đối với học sinh đội tuyển: Các em sử dụng thuật toán: - Bước 1: Xét từng điểm chia - Bước 2: Sắp xếp hai dãy tương ứng - Bước 3: Ghép lại xem được một dãy tăng không + Về chất học sinh sử dụng thuật tốn này thì chỉ đạt 50% sớ điểm câu vi phạm thời gian chạy Nếu học sinh sử dụng thuật toán: - Bước 1: Xét điểm chia - Bước 2: Tìm Max dãy 1, Min dãy - Bước 3: Nếu Max dãy nhỏ Min dãy thì điểm chia này hợp lí + Đối với thuật toán này thì chạy chương trình đảm bảo thời gian và đạt 100% sớ điểm Bài tốn thứ hai muốn đề cập tới là câu đề thi học sinh giỏi tin học cấp tỉnh năm học 2016-2017: Dịch sốt xuất huyết (Dengue) ở người muỗi vằn gây Để phòng chống bệnh này người ta tìm cách diệt muỗi và lăng quăng (ấu trùng muỗi) Diệt lăng quăng cần phải khơi thông cống, rãnh và nước đọng để không còn môi trường phát triển cho muỗi Để diệt muỗi người ta sử dụng một loại “bẫy muỗi” Bẫy muỗi là một mảnh bìachữ nhật mặt mảnh bìa có bôi keo dính để dính muỗi, muỗi đậu xuống mảnh bìa bị dính chặt vào bẫy Nếu may mắn bẫy dính được nhiều muỗi Nhà Bờm nhiều muỗi, vốn lười nên Bờm nghĩ cách làm một bẫy để dính hết muỗi.Giả sử hệ trục tọa độ , bạn biết được tọa độcủa muỗi đậu, bạn hãygiúp Bờm làm bẫynhỏ có cạnh song song với trục tọa độ để dính được Yêu cầu: Cho tọa độ muỗi muỗi đậu xuống chỗ tối.Hãy tìm:tọa độ góc bên trái;tọa độ góc dưới bên phải bẫy nhỏ có cạnh song song với trục tọa độ để dính được muỗi (nếu cạnh bẫy qua tọa độ muỗi nào thì có nghĩa là muỗi đó đậu xuống và dính vào bẫy) Đối với bài tập này một số học sinh đội tuyển lúng túng đưa thuật giải, một số em sắp xếp hai mảng sau đó viết phần tử đầu và cuối mảng vừa sắp xếp Do phải sắp xếp mảng nên số điểm em đạt được là 30% số điểm câu hỏi Chỉ có hai em hiểu được chất thuật toán và đưa lời giải tốt (thuật giải:Ta gọi lần lượt là tọa độ góc bên trái, tọa độ góc dưới bên phải bẫy cần tìm, ta có: với là tọa độ muỗi thứ đậu x́ng) Thơng qua hai bài tốn trên, tơi thấy: việc rèn luyện cho học sinh dạng toán và phân tích thuật toán trước lập chương trình là qua trọng, em có thuật tốn tới ưu thì lập chương trình đạt điểm tuyệt đối câu đó Thiết nghĩ, việc phát và bồi dưỡng học sinh giỏi được đầu tư một cách thích đáng và và tiến hành bài bản, kết khả quan và kéo theo đó là hứng thú học sinh phần nào được cải thiện Việc phát bồi dưỡng là việc cần phải ý thức thường xuyên, trước hết là đối với những giáo viên trực tiếp giảng dạy Năng khiếu càng được phát và bồi dưỡng sớm càng tốt nhiêu Nhưng phát và bồi dưỡng nào cho có hiệu là một vấn đề cần được trao đổi kỹ lưỡng a) Phát học sinh giỏi môn tin học: - Thế nào là học sinh giỏi môn tin học? Học sinh giỏi môn tin học trước hết phải là những học sinh có niềm say mê, yêu thích môn học Sự say mê phải được biểu thường xuyên, liên tục và bằng ý thức tự giác học tập, soạn bài cẩn thận chu đáo, chủ động tiếp thu kiến thức giờ học, đặc biệt phải thể rõ ý thức trách nhiệm tiết học, thực hành rèn luyện kỹ mà giáo viên hướng dẫn Sự say mê giúp em chịu khó tìm tài liệu để mở mang kiến thức Quan trọng là nó giúp học sinh phát huy được trí tưởng tượng, tư trừu tượng và khả sáng tạo môn học - Phát học sinh giỏi môn Tin học Từ quan niệm học sinh giỏi nói trên, việc phát và bồi dưỡng học sinh giỏi cần được tiến hành từ đầu lớp 8, sở việc tuyển chọn là: Thứ nhất, tìm hiểu kết kì thi học sinh khiếu môn tốn đợi tuyển lớp 7, tham khảo thêm ý kiến giáo viên đã trực tiếp giảng dạy học sinh ở lớp đó là giáo viên chủ nhiệm và giáo viên toán để nắm bắt những mặt mạnh, mặt yếu học sinh Thứ hai, lựa chọn đúng đối tượng học sinh: Nòng cốt đội tuyển Tin học phải là học sinh đợi tuyển Tốn; tổ chức khảo sát để lựa chọn chính xác đối tượng học sinh vào bồi dưỡng Thứ ba, giáo viên cần đánh giá học sinh một cách khách quan, chính xác, không chỉ qua bài thi mà qua việc học tập bồi dưỡng hằng ngày Việc lựa chọn đúng không chỉ nâng cao hiệu bồi dưỡng, mà còn tránh bỏ sót học sinh giỏi và không bị sức đối với những em không có tố chất b) Xây dựng chương trinh bồi dưỡng Cần soạn thảo chương trình từ tới nâng cao, từ đơn giản tới phức tạp đồng thời phải có ôn tập củng cố Không nên xây dựng chương trình một số sách tham khảo lập trình vì học sinh khó nắm chắc, dễ nhầm lẫn Mặt khác tài liệu tham khảo có một số dạng bài khó đối với học sinh trung học sở Một số giờ ôn tập, giáo viên cần giúp em tổng hợp dạng bài, phương pháp giải theo hệ thống Vì hầu hết em chưa tự mình hệ thống đựơc mà đòi hỏi phải có giúp đỡ giáo viên Điều cần thiết, giáo viên đầu tư nhiều thời gian, tham khảo nhiều tài liệu để đúc rút, soạn thảo cô đọng nội dung chương trình bồi dưỡng Giáo viên cần hướng cho học sinh làm quen cách giải mợt bài tốn cụ thể: Phân tích kĩ bài toán để tìm dữ liệu vào và dữ liệu mợt bài tốn, xây dựng thuật tốn tới ưu để từ đó viết chương trình Giáo viên viết mẫu chương trình đối với một bài cụ thể và chỉ rõ cho học sinh nên viết nào cho đúng, đủ để người đọc nhìn vào hiểu đoạn chương trình đó mình làm gì Và theo nên phân tích nhiều thuật toán, còn chương trình thì học sinh tự cài đặt Cần lưu ý rằng: Tuỳ thuộc vào thời gian bồi dưỡng, khả tiếp thu học sinh mà lựa chọn mức độ bài khó và từng dạng luyện tập nhiều hay ít c) Dạy cho đạt hiệu quả? Trước hết cần chọn lọc những phương pháp giải dễ hiểu để hướng dẫn học sinh, không nên máy móc theo lời giải tài liệu Cần vận dụng đổi mới phương pháp giảng dạy phù hợp với nội dung từng bài; phát huy tính tích cực, độc lập, tự giác học sinh; tôn trọng và khích lệ những sáng tạo học sinh Khuyến khích học sinh học theo hướng tích cực: Tự nghiên cứu, trao đổi, thảo luận để tìm mới Những bài hướng dẫn kiến thức mới, giáo viên cần lấy ví dụ và bài tập mang tính chất vui chơi để gây hứng thú học tập cho học sinh đồng thời giúp em ghi nhớ được tốt Ví dụ: + Làm và cho chạy một số ví dụ phần vòng lặp While…do + Lập trình giải bài toán cổ: Vừa gà, vừa chó Bó lại cho tròn Ba mươi sáu Một trăm chân chẵn Ra bài tốn vui, bài tốn là mợt bài thơ, bài toán lấy tên học sinh, hay đáp số là ngày tháng có ý nghĩa, đáng ghi nhớ (như ngày lễ lớn, ngày thi, ) Tuy nhiên, những bài toán thế, giáo viên cần phải tìm hiểu kỹ, thử và kiểm tra kết nhiều lần Hầu hết bài toán giáo viên chỉ nên gợi mở để học sinh tìm tòi cách giải; không nên giải cho học sinh hoàn toàn để em bó tay rồi chữa Khi chữa bài giáo viên lại phải giải một cách chi tiết (không nên giải tắt) để giúp học sinh hiểu sâu sắc bài toán; đặc biệt là những bài toán khó và những bài học sinh còn sai sót nhiều Đồng thời uốn nắn những sai sót và chấn chỉnh cách trình bày học sinh một cách kịp thời 10 d) Các bước rèn luyện cho học sinh: - Rèn luyện kĩ xác định bài tốn: Để viết được mợt chương trình chính xác thì bước phân tích đề là quan trọng, bước này bỏ qua và bước này làm không kĩ thì có thể sai bài tốn Ví dụ : Kiểm tra phân sớ tới giản * Xác định bài tốn: - Input: tử sớ (x); mẫu số (y) - Output: phân số a/b tối giản phân số a/b không tối giản * Ý tưởng: Phân số tối giản là phân số không còn chia hết cho số nào được hết, nghĩa là ƯCLN tử số và mẫu số bằng Tìm ƯCLN(x,y) Kiểm tra: +Nếu ƯCLN(x,y)=1 thì x/y là phân số tối giản +Nếu ƯCLN(x,y)1 thì x/y không là phân số tối giản - Rèn luyện kĩ viết thuật toán: Ví dụ 1: Có n hộp có khối lượng khác và một cân đĩa Hãy chỉ cách cân để tìm được hợp nặng nhất.Với bài tốn thực tế ta có thể phát biểu lại dưới dạng bài toán toán học sau: Cho tập hợp A có số phần tử hữu hạn Tìm phần tử lớn tập A nói Khi đó ta có thể trình bày thuật toán sau: Nếu chỉ có hộp thì đó chính là hộp nặng và kết thúc Nếu số hộp n>1 thì Chọn hộp bất kì và đặt lên bàn cân Giữ lại hộp nặng và cất hộp nhẹ chỗ khác Nếu không còn hộp chưa được cân thì chuyển sangbước 5, ngoài ra: Chọn một hộp bất kì và để lên dĩa cân còn trống Giữ lại hộp nặng hơn, cất hộp nhẹ sang chỗ khác Trở lại bước 11 Hộp còn lại cân là hộp nặng và kết thúc Ví dụ 2: Kiểm tra tính nguyên tố một số nguyên Thuật tốn: Bước 1: Nhập sớ ngun dương N; Bước 2: Nếu N=1 thì thông báo N không là nguyên tố rồi kết thúc Bước 3: Nếu N [ N ] thì thông báo N là nguyên tố, kết thúc Bước 6: Nếu N chia hết cho i thì thông báo N không nguyên tố, kết thúc Bước 7: i := i+1, rồi quay lại bước Hoặc chúng ta hướng dẫn cho học sinh thuật toán tìm kiếm phần tử có mặt dãy tăng cho trước thì có nhiều cách như: Tìm kiếm tìm kiếm nhị phân, và hướng cho học sinh đối với dãy tăng nên sử dụng thuật toán tìm kiếm nhị phân là tớt * Ý tưởng thuật tốn tìm kiếm nhị phân Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với số hạng ở giữa dãy (agiữa), đó chỉ xảy một ba trường hợp: Nếu agiữa= k => tìm được chỉ số, kết thúc; Nếu agiữa > k => dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ a1 agiữa -1; Nếu agiữa < k => dãy A đã được sắp xếp tăng nên việc tìm kiếm thu hẹp chỉ xét từ agiữa +1 an - Rèn kĩ đọc hiểu chương trình: Loại bài tập này giúp phát triển tư duy, giúp học sinh hiểu bài, là dạy cấu trúc lệnh Đối với dạng bài tập này, giáo viên nên hướng dẫn em thực từng lệnh theo từng câu lệnh cụ thể Ví dụ: Cho biết kết thực chương trình sau: Program vd2; 12 Uses crt; Var i:integer; Begin Clrscr; I:=7; While i>1 Begin If (i mod 2)0 then i:=i*3+1 Else i:=i div 2; Writeln(i);End; Readln; End - Rèn luyện kĩ viết chương trình: Nếu việc phân tích và đưa thuật toán khó thì việc viết chương trình lại càng phải chính xác và khó khăn Phải viết đúng câu lệnh, cú pháp và có khả tư tốt thì chương trình mới thi hành được Chính vì vậy, với tư cách là giáo viên bồi dưỡng học sinh giỏi đã rèn cho học sinh cách viết từng câu lệnh một, từ cách khai báo đến câu lệnh nhập, câu lệnh khai báo,… + Rèn luyện cho học sinh viết chương trình dựa những thuật toán đã làm Ví dụ: Cho một dãy số nguyên ai, hãy tìm điểm chia để chia dãy đã cho thành hai phần cho nối hai dãy đó lại ta được một dãy tăng (Câu đề thi học sinh giỏi cấp tỉnh Phú Thọ năm học 2015-2016 môn Tin học) Chương trình (Viết bằng ngôn ngữ lập trình Pascal) Uses crt; Const fi='sapxep.inp'; fo='psapxep.out'; Type ma=array[1 1000000] of LongInt; Var a,b:ma; dem,cs,dau,m,cuoi,i,j,n, min, max,p:LongInt ; e,f:text; Begin Assign(f,fi); Reset(f); 13 Assign(e,fo); Rewrite(e); Readln(f,n); For i:=1 to n Read(f,a[i]); cs:=0; dem:=0; For j:=1 to n-1 Begin cuoi:=j; dau:=j+1; max:=a[1]; min:=a[j+1]; For m:=1 to cuoi If maxa[p] then min:=a[p]; If max < then Begin Inc(dem); inc(cs); b[cs]:=j; End; End; If dem then Begin Writeln(e,dem); For i:=1 to cs Write(e,b[i],' '); End; Close(e); Close(f); End - Rèn cho học sinh sửa lỗi chương trình: Để tìm số lớn số a,b,c được nhập vào từ bàn phím, có người đã viết chương trình sau: Program vd3; Uses crt; Var a,b,c:integer; Begin Clrscr; 14 Write(‘nhap vao so:’); Readln(a,b,c); If a