I. MỤC TIÊU Trao đổi, thảo luận về các bước giúp học sinh tiếp cận và giải quyết các lớp bài toán trên máy tính nói chung và lớp bài toán về dãy số Fibonacci nói riêng. Đối tượng: học sinh giỏi môn Tin học ở khối lớp 8 và lớp 9; Phạm vi: Tìm hiểu các tính chất, đặc điểm của dãy số Fibonacci; một số giải thuật và cấu trúc điều khiển trong NNLT Pascal 3. Tiếp cận lớp bài toán a) Mỗi lớp bài toán, hoặc các giải thuật lập trình thường đều có những bài toán, ví dụ điển hình giúp minh họa cho người học. Do vậy, giáo viên khi bắt đầu hướng dẫn học sinh tiếp cận một lớp bài toán mới cần tìm hiểu kỹ các bài toán này nhằm mục đích: + Tạo tình huống có vấn đề, giúp đem lại tâm thế và hứng thú tìm hiểu đối với vấn đề mới đặt ra + Giúp học sinh hiểu rõ hơn về bài toán, tạo động lực tìm tòi, phát hiện và giải quyết vấn đề đối với lớp bài toán đặt ra. b) Giáo viên nên có những ví dụ liên hệ với các bài toán thực tiễn trên tiêu chí: rõ ràng, dễ hiểu, có tính thực tế.
Chuyên đề: Cách tiếp cận & giải lớp tốn máy tính Chuyên đề PHƯƠNG PHÁP TIẾP CẬN & GIẢI QUYẾT MỘT LỚP BÀI TOÁN TRÊN MÁY TÍNH Người thực : Nguyễn Trần Thanh Nhật Bộ môn : Tin học Tổ : Toán, Lý, Hóa, Sinh, CN, Tin Tháng / 2019 Chuyên đề: Cách tiếp cận & giải lớp toán máy tính MỤC LỤC I MỤC TIÊU II MƠ TẢ GIẢI PHÁP Xác định lớp toán Tìm hiểu, xây dựng ví dụ toán theo lớp 3 Tiếp cận lớp tốn Hướng dẫn học sinh tìm hiểu giải toán đặt Nhận xét, đánh giá hệ thống kiến thức III VẬN DỤNG VÀO VIỆC TIẾP CẬN LỚP BÀI TOÁN VỀ DÃY SỐ FIBONACCI Xác định lớp toán Tìm hiểu, phân loại, xây dựng ví dụ toán theo lớp Tiếp cận lớp tốn Hướng dẫn học sinh tìm hiểu giải toán đặt 4.1 Tìm số Fibonacci thứ n (* Cơ *) 4.2 In dãy n số fibonacci (* MR1*) 4.3 Kiểm tra số x có thuộc dãy Fibonacci (* MR2*) 4.4 Tìm thứ tự số hạng nhỏ dãy Fibonacci không bé số m cho trước (~ Tính thời gian để có đàn thỏ với số lượng tối thiểu 2m (m cặp thỏ) (* MR3 *) 4.5 Phân tích số thành tổng số Fibonacci (* MR4 *) 4.6 Nhập vào số nguyên dương, in dãy Fibonacci khoảng số vừa nhập (* MR5 *) 4.7 Tìm dãy mộtsố Fibonacci có giá trị lớn (* MR6 *) 4.8 Tìm số Fibonacci lớn số nguyên tố nhỏ M (* MR7 *) 4.9 Tìm dãy Fibonacci (* MR8 *) Nhận xét, đánh giá hệ thống kiến thức IV- KẾT LUẬN 10 Hiệu 10 Kết luận 10 Chuyên đề: Cách tiếp cận & giải lớp tốn máy tính I MỤC TIÊU - Trao đổi, thảo luận bước giúp học sinh tiếp cận giải lớp tốn máy tính nói chung lớp tốn dãy số Fibonacci nói riêng - Đối tượng: học sinh giỏi mơn Tin học khối lớp lớp 9; - Phạm vi: Tìm hiểu tính chất, đặc điểm dãy số Fibonacci; số giải thuật cấu trúc điều khiển NNLT Pascal II MÔ TẢ GIẢI PHÁP Xác định lớp toán Giáo viên xác định rõ lớp toán cần rèn luyện bồi dưỡng cho học sinh Tìm hiểu, xây dựng ví dụ tốn theo lớp Khi xây dựng ví dụ toán, giáo viên cần thực phân loại xếp cho học sinh tiếp cận từ toán đến toán mở rộng, nâng cao vớiđộ khó tăng dần từ đơn giản đến phức tạp Tiếp cận lớp toán a) Mỗi lớp tốn, giải thuật lập trình thường có tốn, ví dụ điển hình giúp minh họa cho người học Do vậy, giáo viên bắt đầu hướng dẫn học sinh tiếp cận lớp tốn cần tìm hiểu kỹ tốn nhằm mục đích: + Tạo tình có vấn đề, giúp đem lại tâm hứng thú tìm hiểu vấn đề đặt + Giúp học sinh hiểu rõ toán, tạo động lực tìm tịi, phát giải vấn đề lớp toán đặt b) Giáo viên nên có ví dụ liên hệ với tốn thực tiễn tiêu chí: rõ ràng, dễ hiểu, có tính thực tế Hướng dẫn học sinh tìm hiểu giải toán đặt a) Giúp học sinh tiếp cận lớp tốn theotrình tự từ toán bản, đến toán mở rộng nâng cao với độ khó tăng dần b) Cần khuyến khích học sinh tích cực việc tìm tịi, tự phát vấn đề từ ví dụ toán minh họa mà giáo viên hướng dẫn để rèn luyện tính tự lập, giúp em biết cách tự học tự bồi dưỡng c) Giải tập, ví dụ theo quy trình bước giải tốn máy tính sau: - Xác định tốn: xác định thơng tin tốn cho (Input) thơng tin cần tìm (Output) - Mơ tả thuật tốn: nêu ý tưởng, lựa chọn xây dựng thuật tốn - Viết chương trình - Kiểm tra, phát lỗi chỉnh sửa chương trình: + Lỗi cú pháp + Lỗi cài đặt: cài đặt chưa thuật toán chọn, xây dựng + Lỗi thuật toán: thuật toán xây dựng cho kết sai * Để kiểm tra tính đắn thuật toán, cần xây dựng Test với đặc điểm sau: + Nên xây dựng test dạng file văn + Test nhỏ, dễ tìm đáp số + Test có giá trị đặc biệt Chuyên đề: Cách tiếp cận & giải lớp tốn máy tính + Test lớn để kiểm tra tính chịu đựng chương trình (đây phần khó khăn khó kiểm chứng nhất) Nhận xét, đánh giá hệ thống kiến thức Phân tích ưu, nhược điểm để giúp học sinh rút kinh nghiệm, đồng thời tìm cách giải hiệu vấn đề đặt lớp toán III.VẬN DỤNG VÀO VIỆC TIẾP CẬN LỚP BÀI TOÁN VỀ DÃY SỐ FIBONACCI Xác định lớp toán Tập hợp tốn, ví dụ minh họa thuộc lớp tốn dãy số Fibonacci Tìm hiểu, phân loại, xây dựng ví dụ tốn theo lớp * Đối với lớp toán dãy số Fibonacci, xây dựng số ví dụ tập cho học sinh tiếp cận theo trình tự sau: 1) 2) 3) 4) 5) 6) 7) 8) TÌM SỐ FIBONACCI THỨ N (* Cơ *) IN RA DÃY N SỐ FIBONACCI ĐẦU TIÊN (* MR1*) KIỂM TRA SỐ X CÓ THUỘC DÃY FIBONACCI (* MR2 *) TÌM THỨ TỰ CỦA SỐ HẠNG NHỎ NHẤT TRONG DÃY FIBONACCI KHƠNG BÉ HƠN SỐ M (hay tính thời gian để có đàn thỏ với số lượng tối thiểu m cặp thỏ(* MR3 *) PHÂN TÍCH MỘT SỐ THÀNH TỔNG CÁC SỐ FIBONACCI(* MR4 *) NHẬP VÀO SỐ, IN RA DÃY FIBONACCI TRONG KHOẢNG SỐ VỪA NHẬP (*MR5*) TÌM TRONG DÃY MỘT SỐ FIBONACCI CĨ GIÁ TRỊ LỚN NHẤT (* MR6*) TÌM SỐ FIBONACI LỚN NHẤT LÀ SỐ NGUYÊN TỐ VÀ NHỎ HƠN M (M số nguyên dương, 2 For i:=3 to số tháng n begin fn:=fn_1+fn_2; fn_2:=fn_1; fn_1:=fn; end; Ngược lại fn:=1; Thông báo số cặp thỏ có sau n tháng fn; End Chuyên đề: Cách tiếp cận & giải lớp tốn máy tính Khẳng định lại định nghĩa dãy số Fibonacci Dãy Fibonacci dãy vô hạn số tự nhiên bắt đầu hai phần tử và 1, phần tử sau thiết lập theo quy tắc phần tử tổng hai phần tử trước Cơng thức truy hồi dãy Fibonacci là: F(n) = n =1 n=2 F(n)= F(n-1) + F(n-2) n >2 Nên lưu ý học sinh tránh nhầm lẫn định nghĩa saidưới dãy Fibonacci: • F(n) = n < • F(n) = F(n – 1) + F(n – 2) n >= theo định nghĩa wikipedia: • F(n) = n n < • F(n) = F(n – 1) + F(n – 2) n >= Hướng dẫn học sinh tìm hiểu giải tốn đặt 4.1 Tìm số Fibonacci thứ n (* Cơ *) a Xác định toán - Input: số nguyên dương N - Output: số Fibonacci thứ N b Mơ tả thuật tốn Sử dụng thuật tốn trên, ta có: *Khai báo: N, f, f1, f2: integer; // lưu số cặp thỏ tháng liền kề Begin Nhập N; f1:=1; f2:=1; Nếu n > For i:=3 to N begin f:=f1+f2; f2:=f1; f1:=fn; end; Ngược lại f:=1; Thông báo số Fibonacci thứ N tháng f; End 4.2 In dãy n số fibonacci (* MR1*) a Xác định toán - Input: số nguyên dương N; - Output: dãy N số Fibonacci b Mơ tả thuật tốn *Khai báo: f, f1, f2: integer; // f1, f2, f để lưu số liền kề dãy Fibonacci Begin Nhập n; f1:=1; f2:=1; Nếu n > begin In số đầu tiên; For i:=3 to n begin f:=f1+f2; f2:=f1; f1:=f; In(fn ); Chuyên đề: Cách tiếp cận & giải lớp toán máy tính end; end Ngược lại,for i:=1 to n In(f1); End 4.3 Kiểm tra số x có thuộc dãy Fibonacci (* MR2*) a Xác định toán - Input: số nguyên dương X; - Output: Kết luận X thuộc dãy Fibonacci X không thuộc dãy Fibonacci b Mô tả thuật toán *Khai báo: f, f1, f2: integer; // f1, f2, f để lưu số hạng liền kề dãy Fibonacci Begin Nhập x>1; f1:=1; f2:=1; While f < x begin f:=f1+f2; f2:=f1; f1:=f; end; (f = x), thông báo x số thuộc dãy Fibonacci ngược lại, thông báo x không thuộc dãy Fibonacci End 4.4 Tìm thứ tự số hạng nhỏ dãy Fibonaccikhơng bé số m cho trước (~ Tính thời gian để có đàn thỏ với số lượng tối thiểu 2m (m cặp thỏ) (* MR3 *) a Xác định toán - Input: số nguyên dương m; - Output: k >=m (Thứ tự số thuộc dãy Fibonacci không bé m) b Mô tả thuật toán *Khai báo: f, f1, f2,m,k: integer; // f1, f2, f để lưu số hạng liền kề dãy Fibonacci Begin Nhập m>1; f1:=1; f2:=1; k:=3; While f 1; While N>0 Begin Chuyên đề: Cách tiếp cận & giải lớp tốn máy tính f1:=1; f2:=0; f:=0; // Tìm số Fibo lớn N) In_ra (f2); N:= N – f2; Nếu (N0) In_ra(‘+ ‘); End; End 4.6 Nhập vào số nguyên dương, in dãy Fibonacci khoảng số vừa nhập (* MR5 *) a Xác định toán - Input: số nguyên dương M, N; - Output: A={ AM, AM+1, … AN} VỚI Ai số thuộc dãy Fibonacci khoảng từ M đến N b Mơ tả thuật tốn Tìm lưu dãy số Fibonacci theo thứ tự vào mảng số nguyên In dãy Fibonacci khoảng (M,N) vừa nhập * Nhược điểm: khoảng (m, n) lớn, nằm phạm vi (m,n) nhỏ, phải tốn cơng lưu mảng Fibonacci ban đầu 4.7 Tìm dãy số Fibonacci có giá trị lớn (* MR6 *) a Xác định toán - Input: dãy số gồm N số nguyên dương (N