Sáng kiến kinh nghiệm Những kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal

Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổ thông tin và mạng máy tính. Công nghệ thông tin là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sử dụng có hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trong mọi lĩnh vực hoạt động của con người và xã hội.
Bộ GD&ĐT đã chỉ rõ: Nâng cao nhận thức về vai trò của CNTT; ứng dụng và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước chuyển cơ bản trong quá trình đổi mới nội dung, chương trình, phương pháp giảng dạy, học tập và quản lí giáo dục.
Đặc trưng của môn Tin học là môn khoa học gắn liền với công nghệ hiện đại, do vậy dạy học Tin học trong nhà trường nhằm trang bị cho học sinh kiến thức khoa học về Tin học, phát triển tư duy thuật toán, kỹ năng lập trình và tiếp cận những công nghệ mới của Tin học phục vụ học tập và đời sống. Nội dung chương trình của môn Tin học hiện hành ở các trường THCS đã đáp ứng được những yêu cầu trên.
Trong nhà trường hiện đang phấn đấu các mục tiêu cụ thể của ngành là: Tổ chức tốt việc hướng dẫn học sinh biết cách lập trình để tham gia các kỳ thi như Tin học trẻ, học sinh giỏi lớp 9,…
A.MỞ ĐẦU: I. ĐẶT VẤN ĐỀ : 1. Thực trạng của vấn đề đòi hỏi phải có giải pháp mới để giải quyết: - Nhu cầu của xã hội ngày càng lớn cùng với sự phát triển của khoa học kỹ thuật đã kéo theo sự phát triển như vũ bão của tin học. Sự phát triển của tin học đã đem lại hiệu quả to lớn cho hầu hết các lĩnh vực của xã hội, hơn thế nữa nó còn đi sâu vào đời sống của con người. - Nền tin học của một quốc gia được xem là sự phát triển nếu nó đóng góp được phần đáng kể vào nền kinh tế quốc dân và vào kho tàng tri thức chung của thế giới. - Lịch sử nhân loại đã chứng kiến những cuộc cách mạng về công nghệ thông tin với sự trợ giúp của máy tính và hệ thống máy tính, con người đã nâng cao năng suất và tự động hóa ngày một hiệu quả hơn và một trong những ứng dụng không thể không nhắc đến đó là những ứng dụng phần mềm của máy tính với nền công nghệ thông tin hiện nay. Phần mềm máy tính ngày một đi lên và phát triển với những ngôn ngữ lập trình khác nhau và cụ thể là ngôn ngữ lập trình Pascal. Pascal là một ngôn ngữ lập trình có cú pháp chặt chẽ, đơn giản và dễ hiểu. - Do vậy, Việt Nam nói chung và ngành giáo dục đào tạo nói riêng phải đầu tư phát triển về mọi mặt. Đặc biệt là nguồn nhân lực tri thức tức là phải đào tạo ra một thế hệ trẻ năng động, thông minh, độc lập, sáng tạo, nắm vững tri thức khoa học công nghệ để làm chủ trong mọi hoàn cảnh công tác và hoạt động xã hội nhằm đáp ứng được nhu cầu trong thời kì công nghiệp hoá, hiện đại hoá đất nước. - Để đáp ứng được các yêu cầu trên, môn Tin học đã được đưa vào giảng dạy ở các trường phổ thông với vai trò là môn học chính khóa với thời lượng 2 tiết/tuần cho tất cả các lớp ở cấp học. - Đặc trưng của môn Tin học lớp 8 là kiến thức về lập trình. Ngôn ngữ lập trình dường như rất xa lạ vì đây là kiến thức đầu tiên trong lập trình mà các em được học. - Qua giảng dạy môn Tin học ở trường THCS Hải Cảng, bản thân tôi nhận thấy rằng nhiều học sinh lớp 8 thấy môn lập trình Pascal khó, khô khan và cực kỳ loằng ngoằng. Mới đầu các em cũng rất sợ vì khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra kết quả còn ở trong lập trình cũng viết chương trình. Nhất là những năm gần đây Ngành giáo dục luôn thành lập đội tuyển tham dự kì thi Tin học trẻ, học sinh giỏi môn Tin học lớp 9,. Điều đó đã thúc đẩy tôi trong quá trình giảng dạy phải nghiên cứu tìm tòi biện pháp, kinh nghiệm để giúp cho các em có sự đam mê học tập về lập trình, giúp các em biết được quy trình lập trình như thế nào và định hướng cho học sinh cách để trở thành một nhà lập trình thì cần phải biết những kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal. Giúp các em yêu thích lập trình và học lập trình trong sự hứng thú. 2. Ý nghĩa và tác dụng của giải pháp mới: Việc thực hiện nội dung này đã góp thêm một phương pháp mới trong việc giảng dạy học sinh lớp 8 có được kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal. Tạo cho học sinh sự thích thú nhằm nâng cao tính tích cực, độc lập, sáng tạo và kỹ năng chuyên nghiệp của học sinh trong quá trình sử dụng máy vi tính. Bên cạnh đó các học sinh sẽ cùng hỗ trợ lẫn nhau và thúc đẩy nhau cùng học tập, cùng tiến bộ. Những đối tượng khác có niềm đam mê lập trình, đam mê nghiên cứu viết phần mềm tin học sẽ ngày càng hứng thú khám phá trong quá trình thực hành trên máy tính. Hạt nhân của chương trình máy tính là sự lưu trữ và xử lý thông tin. Việc tổ chức dữ liệu như thế nào có ảnh hưởng rất lớn đến cách thức xử lý dữ liệu đó, cũng như tốc độ thực thi và sự chiếm dụng bộ nhớ của chương trình. Do đó mục đích của bài viết này là cung cấp những hiểu biết nền tảng trong việc thiết kế một chương trình máy tính để thấy rõ sự cần thiết của việc phân tích, lựa chọn cấu trúc dữ liệu phù hợp cho từng bài toán cụ thể. 3. Phạm vi nghiên cứu của đề tài: Học sinh khối 8, 9 trong nhà trường trung học cơ sở Hải Cảng. II. PHƯƠNG PHÁP TIẾN HÀNH: 1. Cơ sở lý luận và thực tiễn có tính định hướng cho việc nghiên cứu, tìm giải pháp của đề tài: Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổ thông tin và mạng máy tính. Công nghệ thông tin là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sử dụng có - Vẫn còn một số em học sinh tiếp thu kiến thức còn chậm, đặc biệt là kĩ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal bởi đây là một môn học mới (một môn ngoại ngữ mới). - Trường THCS Hải Cảng nằm trên phường Hải Cảng, là địa phương còn nghèo nàn, đa số con em gia đình làm nghề biển, trình độ học vấn có nhiều hạn chế nên sự quan tâm của phụ huynh đến việc học tập của con em còn hạn chế. Ít có điều kiện chăm sóc, giáo dục và định hướng cho con em trong việc học tập. - Một số học sinh chưa coi trọng môn học, xem đây là một môn phụ nên chưa có sự đầu tư thời gian cho việc học. Ngoài ra, ở chương trình Tin học 8, các em phải làm quen, tiếp cận với ngôn ngữ lập trình Pascal là một phần mềm có cấu trúc phức tạp, ngôn ngữ lập trình bằng tiếng anh. Mặc khác để thực hiện được một chương trình thì các em phải có một kiến thức toán học nhất định. 2. Các biện pháp tiến hành, thời gian tạo ra giải pháp: Qua quá trình học tập, nghiên cứu và hướng dẫn, cộng với thực tiễn trong công tác giảng dạy. Các phương pháp giúp cho tôi tập trung vào nghiên cứu chính, đó là: - Phương pháp điều tra - Phương pháp quan sát. - Phương pháp phân tích tổng hợp - Phương pháp thống kê. 1.2 Giải quyết vấn đề: Pascal là ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được Niklaus Wirth phát triển vào năm 1970, là ngôn ngữ đặc biệt thích hợp cho nhiều thế hệ học sinh, là ngôn ngữ vỡ lòng trong chương trình học. Ở môi trường này, học sinh sở hữu một lượng tài nguyên là các kiểu dữ liệu đơn giản, cùng với các câu lệnh rõ ràng, trong sáng, nhất quán và rất dễ thuộc. Tuy nhiên, nó đòi hỏi người lập trình tài bố cục, thiết kế một thuật toán sao cho đúng đắn, hiệu quả và tối ưu, rồi vận dụng các quy tắc cú pháp để viết ra được những câu lệnh phù hợp. Vì thế kỹ năng cơ bản để giải bài toán trên máy tính bằng ngôn ngữ lập trình Pascal thì cần các bước sau : - Xác định bài toán - Tìm cấu trúc dữ liệu biểu diễn thuật toán - Xây dựng thuật toán - Viết chương trình - Kiểm thử chương trình - Tối ưu chương trình. 1.2.1 Xác định bài toán: a. Khái niệm bài toán: Đã là học sinh thì thường xuyên gặp các bài toán ở nhiều dạng khác nhau trong mọi cấp học. Tuy nhiên không phải bài toán nào cũng dễ dàng để thực hiện được và cho kết quả tốt. Nhưng đối với bất kỳ một bài toán nào thì học sinh cũng được giáo viên hướng dẫn là phải đọc kỹ đề rồi xác định nó : A B Trong đó: A là giả thiết : Điều kiện ban đầu hay cái đã cho khi bắt đầu giải bài toán. B là kết luận : Mục tiêu cần đạt được hay cái phải tìm, phải làm ra khi kết thúc bài toán. là suy luận : Giải pháp cần xác định hay một chuỗi các bước cần thực hiện từ A đến B. b. Bài toán trên máy vi tính : Bài toán trên máy cũng mang đầy đủ các tính chất của bài toán tổng quát trên, nhưng nó lại được diễn đạt theo một các khác. Ví dụ 3: Giải phương trình bậc nhất dạng tổng quát bx + c =0 Các bước xác định cho bài toán: + Input : Các số b, c + Output : Nghiệm của phương trình bậc nhất + Các dữ liệu cần xử lý để chế biến thông tin như: Lần lượt đưa giá trị b, c vào ( b = 3 ; c= - 6) Áp dụng công thức : - Nếu b = 0 và c = 0 thì phương trình có vô số nghiệm - Nếu b = 0 và c ≠ 0 thì phương trình vô nghiệm - Nếu b ≠ 0 thì phương trình có nghiệm x = -c/b; Kết quả in ra là x = 2 Ví dụ 4: Tìm giá trị lớn nhất của một dãy số nguyên Các bước xác định cho bài toán: + Input : số nguyên dương N và dãy N số nguyên a1, ., aN N = 5 ; (7, 5, 9, 4, 10) + Output : Giá trị lớn nhất Max của dãy số. + Các dữ liệu cần xử lý để chế biến thông tin như: Khởi tạo giá trị Max = a1 Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai. Kết quả in ra là Max = 10. 1.2.2 Tìm cấu trúc dữ liệu biểu diễn thuật toán: * Cấu trúc dữ liệu (data structure) : Là kiểu dữ liệu mà bên trong nó có chứa nhiều thành phần dữ liệu và các thành phần dữ liệu đấy được tổ chức theo một cấu trúc nào đó. Nó dùng để biểu diễn cho các thông tin có cấu trúc của bài toán. Cấu trúc dữ liệu thể hiện khía cạnh logic của dữ liệu. Ví dụ cấu trúc dữ liệu đơn giản nhất trong chương trình tin học lớp 8 là mảng. Còn các dữ liệu không có cấu trúc được gọi là các dữ liệu vô hướng hay các dữ liệu đơn giản. VD: các kiểu dữ liệu số nguyên (integer), số thực (real), logic (boolean) là các kiểu dữ liệu đơn giản. với người lập trình, nếu người lập trình mô tả thuật toán sai hoặc dài dòng thì dẫn đến khi viết chương trình sẽ khó khăn hoặc sẽ cho kết quả sai. Ở bước này đòi hỏi người lập trình cần có những hiểu biết cơ bản về toán học thì khả năng biểu diễn thuật toán sẽ trở nên đơn giản hơn và sẽ thấy bài toán trở nên gần gủi. Vì vậy trong phần này tôi sẽ đã đưa ra hai phương pháp mô tả thuật toán một cách rõ ràng và khoa học nhất để các em dễ dàng mô tả thuật toán đúng theo ý tưởng của mình. b.1 : Phương pháp biểu diễn từng bước: * Phương pháp: - Các thao tác của giải thuật được liệt kê từng bước - Tại mỗi bước, sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải làm. - Bước đứng trước (có số thứ tự nhỏ hơn) được thực hiện trước, thực hiện xong bước này mới chuyển sang bước khác, không nhập nhằng. * Ưu - nhược điểm: - Dễ hiểu, dễ làm - Phụ thuộc vào “cách hành văn” của người diễn đạt - Với những giải thuật phức tạp, cách diễn đạt này trở nên rườm rà,.. * Ví dụ: Thuật toán “Tìm vị trí xuất hiện đầu tiên của một số nguyên trong dãy số nguyên đã cho”: - Bước 1: Nhập dãy số nguyên - Bước 2: Nhập số nguyên a - Bước 3: Gán cho phần tử so sánh (s) giá trị của số đầu tiên trong dãy - Bước 4: So sánh a với s + Nếu a = s thì ghi nhận vị trí của phần tử s (p) + Nếu a ≠ s và s chưa phải phần tử cuối cùng trong dãy thì gán s bằng phần tử tiếp theo và lặp lại bước 4 + Nếu a ≠ s và s là phần tử cuối cùng của dãy thì gán p = 0 - Bước 5: Nếu p ≠ 0 thì đưa ra vị trí cần tìm là p, ngược lại thông báo không tìm thấy. Kết thúc
Tài liệu đính kèm:
sang_kien_kinh_nghiem_nhung_ky_nang_co_ban_de_giai_bai_toan.doc