Xem mẫu

Thuaät toaùn THUẬT TOÁN I. LÝ DO CHỌN SÁNG KIẾN. Ngày nay, công nghệ thông tin được ứng dụng rộng rãi trong thực tế ở nhiều lĩnh vực. Để đáp ứng nhu cầu đó của xã hội, môn Tin học đã được đưa vào trường trung học phổ thông nhằm bước đầu cung cấp cho các em học sinh những kiến thức cơ bản. Tuy nhiên, do đặc trưng của môn học có những khái niệm trừu tượng nên các em gặp nhiều khó khăn trong quá trình tiếp thu bài. Đặc biệt trong chương trình Tin học 11, khi học phần lập trình đòi hỏi phải tư duy thì khó khăn nhất đối với các em là bước “Lựa chọn và thiết kế thuật toán”. Việc lựa chọn và thiết kế thuật toán để giải bài toán trên máy tính là một bước rất quan trọng. Bởi vì nếu bỏ qua bước này thì đôi khi việc lập trình cho ra kết quả không tối ưu. Cũng giống như khi giải một bài tập toán, vật lý,... để tìm ra kết quả chính xác thì buộc học sinh phải xác định công thức cần áp dụng là công thức nào. Khi nắm vững cách lựa chọn và thiết kế thuật toán, các em học sinh có thể dễ dàng viết chương trình để giải bài toán trên máy tính bằng bất kỳ ngôn ngữ bậc cao nào. Làm được việc này sẽ kích thích sự hứng thú học môn Tin học hơn. Điều quan trọng hơn, việc lựa chọn và thiết kế thuật toán để giải bài toán trên máy tính giúp rèn luyện cho học sinh khả năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống. Đây là những kỹ năng rất cần thiết để sau này các em hoà nhập vào thực tế cuộc sống. Từ những lý do nêu trên, qua thực tế giảng dạy bản thân tôi thấy cần đưa ra một số kinh nghiệm để trao đổi với các đồng nghiệp nhằm giúp học sinh bước đầu hiểu rõ và tiếp cận với thuật toán giải bài toán để việc lập trình đạt kết quả tốt hơn. Vì thời gian có hạn, tôi chỉ trình bày cách xây dựng thuật toán để giải bài toán bằng cách lập sơ đồ khối. Trong phần trình bày của tôi không tránh khỏi những thiếu sót. Tôi rất mong sự trao đổi, góp ý của quý thầy cô đồng nghiệp. Tôi xin chân thành cảm ơn. GV: Huøynh Minh Taân Trang: 1 Thuaät toaùn II.THỰC TRẠNG TRƯỚC KHI THỰC HIỆN CÁC GIẢI PHÁP CỦA SÁNG KIẾN 1) Thuận lợi: − Toàn ngành, toàn xã hội đang đề cao việc ứng dụng công nghệ thông tin vào tất cả các lĩnh vực. − Môn Tin học là môn chính khoá trong trường phổ thông. − Các em học sinh thích được thực hành trên máy tính để nghiên cúu tìm tòi. − Ngôn ngữ bậc cao trong môn Tin học gần gũi với ngôn ngữ giao tiếp trong cuộc sống. 2) Khó khăn: − Máy vi tính và các thiết bị hổ trợ còn hạn chế − Phần lập trình hoàn toàn xa lạ với học sinh. 3) Số liệu thống kê Qua các lớp tôi đang dạy, khi học đến phần lập trình Pascal đa số các em học sinh còn lúng túng khi viết một chương trình. Đặc biệt là khái niệm về bài toán và thuật toán, các em chưa nắm vững và hay bỏ quên bước này. Do đó khi viết chương trình, sản phẩm thu được chưa đảm bảo tính tối ưu. III. NỘI DUNG ĐỀ TÀI 1) Cơ sở lý luận − Đa số các câu nói hàng ngày của con người như: “Các bước để vá một ruột xe bị lủng”, “Nếu….thì…”, “Nếu…thì…ngược lại…”, “Trong khi ….thì làm….” đều có thể diển đạt bằng ngôn ngữ Sơ đồ khối . − Điều quan trọng là khi đã xây dựng được thuật toán bằng sơ đồ khối thì ta có thể sử dụng bất kỳ một ngôn ngữ bậc cao nào cũng viết được chương trình một cách rất thuận tiện và đảm bảo tính tối ưu. 2). Noäi dung,biện pháp thực hiện các giải pháp cuûa saùng kieán. GV: Huøynh Minh Taân Trang: 2 Thuaät toaùn TÓM TẮT LÝ THUYẾT A) BAØI TOAÙN.  Trong phạm vi tin học, có thể quan niệm bài toán là một việc nào đó mà ta muốn máy tính thực hiện.  Khi dùng máy tính giải bài toán, ta cần quan tâm đến hai yếu tố: o Đưa vào máy thông tin gì (Input) o Cần lấy ra thông tin gì (Output). B) THUAÄT TOAÙN a). Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy , từ Input của bài toán , ta nhận được Output cần tìm. Những đặc trưng cơ bản của thuật toán: − Tính tổng quát: Thuật toán không đề cập chỉ một bài toán riêng lẽ mà bao hàm một lớp bài toán cùng một kiểu, − Có giới hạn: Quá trình biến đổi từ thông tin ban đầu đến kết quả cuối cùng qua một số giới hạn các biến đổi. − Tính duy nhất: Toàn bộ quá trình biến đổi, cũng như trình tự thực hiện phải được xác định và là duy nhất. Như vậy khi dùng thuật toán cùng một tin tức ban đầu phải có cùng một kết quả.Trong thuật toán ở mỗi giai đoạn phải nêu chính xác các bước tiếp theo, có nghĩa là thứ tự thực hiện, các thao tác và quyết định phải được quy định rõ ràng. − Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm. Thuật toán có thể phân loại như sau: − Thuật toán không phân nhánh − Thuật toán có phân nhánh − Thuật toán theo chu trình có bước lặp xác định và có bước lặp không xác định. Thuật toán không phân nhánh là thuật toán đơn giản nhất. Trong thực tế thường gặp thuật toán phân nhánh theo các điều kiện so sánh đúng GV: Huøynh Minh Taân Trang: 3 Thuaät toaùn hoặc sai. Phổ biến nhất trong các bài toán thực tế là thuật toán gồm nhiều chu trình , theo nhiều nhánh, đó là đặc trưng của thuật toán giaỉ các bài toán khoa học kỷ thuật b). Các kí hiệu để diễn tả thuật toán bằng sơ đồ khối. Thể hiện thao tác so sánh Thể hiện các phép tính toán Thể hiện các thao tác nhập, xuất dữ liệu Quy định trình tự thực hiện các phép toán Lưu ý: − Với hình ô van thì chỉ có một hướng mũi tên đi ra cho trường hợp thao tác nhập dữ liệu và chỉ có một hướng đi vào cho thao tác xuất dữ liệu − Với hình chữ nhật thì có một hướng mũi tên vào và một hướng mũi tên ra − Với hình thoi thì có một hướng mũi tên vào và hai hướng mũi tên ra GV: Huøynh Minh Taân Trang: 4 Thuaät toaùn MỘT SỐ VÍ DỤ VỀ LỰA CHỌN VÀ THIẾT KẾ THUẬT TOÁN . Thuật toán không phân nhánh VD1: Cho A=x2+y2; B=x+y+3A; C=xy+A-2B2; x,y ∈R. Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối để tính C * Xác định bài toán  Input: x,y  Output: C Lưu ý: Muốn tính được C thì đầu tiên ta phải tính A và B Sơ đồ khối Nhập x, y Ax*x+y*y Bx+y+3*A Cx*y+A-2*B*B Thông báo C rồi kết thúc VD2: GV: Huøynh Minh Taân Trang: 5 ... - tailieumienphi.vn
nguon tai.lieu . vn