Đề xuất một số giải thuật sử dụng phím calc trong lập trình giải toán máy tính cầm tay

pdf 10 trang Gia Huy 17/05/2022 2820
Bạn đang xem tài liệu "Đề xuất một số giải thuật sử dụng phím calc trong lập trình giải toán máy tính cầm tay", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfde_xuat_mot_so_giai_thuat_su_dung_phim_calc_trong_lap_trinh.pdf

Nội dung text: Đề xuất một số giải thuật sử dụng phím calc trong lập trình giải toán máy tính cầm tay

  1. 191 ĐỀ XUẤT MỘT SỐ GIẢI THUẬT SỬ DỤNG PHÍM CALC TRONG LẬP TRÌNH GIẢI TOÁN MÁY TÍNH CẦM TAY SV. Lê Văn Huy TS. Lê Trung Hiếu Tóm tắt. Trong bài báo này, chúng tôi đề xuất một số giải thuật mới có sử dụng chức năng của phím CALC vào quy trình giải một số dạng toán dành cho máy tính cầm tay (MTCT) cấp trung học phổ thông. Việc giải toán theo các quy trình mới này sẽ rút ngắn thời gian tính toán, hạn chế sai số và góp phần đơn giản hóa các quy trình tính toán theo cách thông thường trước đây. Đối với mỗi dạng toán được đề cập, chúng tôi đưa ra ví dụ được tính toán chi tiết nhằm minh họa cho tính hiệu quả của kết quả đạt được.Các kết quả chính của bài báo này đã được công bố tại Tạp chí khoa học Trường ĐHSP TP Hồ Chí Minh, Số 12(78), tr. 126-137, 2015. 1. Mở đầu Năm 2004, dòng máy tính Casio fx 570MS ra đời với nhiều cải tiến quan trọng về tính toán và khả năng lập trình mà học sinh phổ thông được phép mang vào phòng thi. Trong đó, một thiết kế đặc biệt quan trọng là phím chức năng CALC và các phím lập trình (=, :), điều này đã mở ra nhiều hướng khai thác mới trong lập trình giải toán MTCT. Đến nay, nhiều dòng MTCT tiếp tục được cải tiến nhằm phục vụ tốt hơn cho nhu cầu tính toán của học sinh, sinh viên trong học tập và nghiên cứu (xem [1]). Các nghiên cứu của Pomerantz (1997), Lê Thái Bảo Thiên Trung (2011) và Mohd Yusuf Yasin (2012) đã chỉ ra nhiều hiệu quả thiết thực của việc sử dụng MTCT trong dạy học Toán và khẳng định rằng hướng nghiên cứu ứng dụng MTCT trong dạy học cần được đẩy mạnh nhằm phát huy các lợi ích sư phạm của chúng mang lại (xem [6], [7], [9]). Vì vậy, việc nghiên cứu và am hiểu chuyên sâu về các thuật toán trên MTCT góp phần sử dụng hiệu quả máy tính vào việc tính toán nhanh, tiết kiệm thời gian, nâng cao tư duy giải thuật và hiệu quả học tập, nghiên cứu mà không làm giảm kĩ năng tính toán của người sử dụng. Trong giải toán MTCT, các dạng toán giải bằng cách dùng giải thuật lập trình là dạng khó, nó đòi hỏi người giải phải tìm ra giải thuật lập trình thì mới giải được đúng kết quả. Ngoài ra, đối với một số dạng toán đơn giản hơn có thể giải được bằng tính toán và ghi chép thông thường qua nhiều bước thì việc nghiên cứu giải thuật lập trình cũng là rất cần thiết nhằm tránh được sai số lớn khi tính toán và ghi chép ở các bước trung gian, đồng thời tiết kiệm được khá lớn lượng thời gian giải toán. Kể từ khi dòng máy Casio fx 570MS ra đời, phím CALC được thiết kế với mục đích ban đầu là dùng để tính giá trị các biểu thức chứa biến mà chúng ta khỏi mất nhiều thời gian nhập lại biểu thức khi thay giá trị các biến nhiều lần trong đó. Sau đó, người ta đã ứng dụng phím chức năng CALC vào một số giải thuật cơ bản như dự đoán giới hạn của hàm số, dãy số; dự đoán giá trị tích phân suy rộng; dự đoán quy luật của lũy thừa; các bài toán về dãy số truy hồi, (xem [2], [4], [8]). Trong bài báo này, chúng tôi đề xuất một số giải thuật mới có sử dụng chức năng phím CALC kết hợp với các biến nhớ để giải một số dạng toán về phép chia đa thức bậc lớn; tính giá trị liên phân số và căn thức có quy x luật; tính giá trị tích hàm số tại 0 ; giải phương trình nghiệm nguyên loại Pell. Việc áp dụng các giải thuật này trong giải toán sẽ rút ngắn lượng thời gian tính toán, hạn chế
  2. 192 sai số khi ghi chép ở các bước trung gian theo cách thủ công và góp phần đơn giản hóa các quy trình tính toán theo cách thông thường trước đây. Đặc biệt, giải thuật có hiệu quả rõ rệt đối với các dạng toán nêu trên có đa thức bậc lớn hoặc biểu thức có chứa nhiều số hạng. Xa hơn, lợi ích sư phạm của việc sử dụng các giải thuật lập trình mới này trong giải toán MTCT là góp phần tích cực vào việc rèn luyện cho người học, đặc biệt là học sinh, sinh viên chuyên Toán - Tin, về tư duy thuật toán và giúp họ khai thác sâu hơn một số yếu tố về lập trình máy tính như gán biến tin học, chạy vòng lặp. Qua đó, giáo viên có thể khai thác để dạy tích hợp Tin học trong môn Toán. Để thuận tiện cho việc trình bày, chúng tôi minh họa việc tính toán trên dòng máy Casio fx 570ES. Đối với tất cả các dòng máy có chức năng CALC được quy định trong [1] như Casio fx 570MS, Casio fx 570ES (PLUS), Casio fx 570 VN PLUS, VinaCal 570MS, VinaCal 570ES (PLUS), VN-570RS, VN-570ES (PLUS) giải thuật lập trình được nêu hoàn toàn có thể áp dụng được. Sau đây là một số quy ước trình bày trong bài báo nhằm đơn giản cách viết các giải thuật lập trình: (1) Nhập biến nhớ Avào màn hình, ta chỉ cần viết A, thay vì phải viết đầy đủ tổ hợp phím ALPHAA (tương tự cho các biến B, C, D, E, F, X, Y, M); (2) Viết dấu “=” và “:” trong giải thuật được hiểu là dấu bằng và dấu hai chấmmàu đỏ trong lập trình (các phím này được gọi ra thông qua phím ALPHA); (3) phím gọi trực tiếp kết quả của phép toán trên màn hình, khác với dấu “=” (màu đỏ) được nêu trong (2). (4) Tất cả các giải thuật đều được hiểu là thực hiện ở chế độ MODE COMP (tính toán thông thường). 2. Giải thuật lập trình với phím chức năng CALC 2.1. Bài toán tìm thương và dư trong phép chia đa thức 2.1.1. Tìm thương và dư trong phép chia đa thức cho đa thức bậc nhất Để tìm dư của phép chia cho ta chỉ cần tìm Tuy nhiên, để tìm đồng thời thương và dư thì ta có thể sắp phép chia thủ công hoặc sử dụng lược đồ Hoocne. Chúng ta biết rằng, việc dùng hai cách tính trên bằng thao tác thủ công là tính toán và ghi chép thông thường đối với các đa thức có bậc lớn không những mất khá nhiều thời gian mà còn dễ bị sai số ở các bước ghi chép trung gian. Trong mục này, chúng tôi đưa ra giải thuật máy tính để tính nhanh lược đồ Hoocne bằng cách sử dụng phím chức năng CALC. Sau đây là lược đồ Hoocne quen thuộc. Lược đồ Hoocne a
  3. 193 với Khi đó, ta có thương và dư lần lượt là và . Nhận xét. Trong lược đồ minh họa ở bảng trên, ta nhận thấy rằng để tính giá trị bitại ô thứ i (i =n-1, n-2, , 1, 0)ta lấy giá trị a chung nhân với giá trị bi+1vừa tính được ở bước liền trước đó, rồi cộng với hệ số ai ở ô tương ứng phía trên, tức là ta cần tính a.bi+1+ ai . Để khai thác yếu tố lập trình trên máy tính cầm tay, ta lợi dụng đặc điểm của biến Ans là biến lưu lại tự động kết quả vừa tính ở bước liền trước, do đó thay vì phải ghi ra giấy (có thể bị sai số) và nhập đầy đủ giá trị của bi+1(vừa tính được ở bước liền trước)vào a.bi+1+ ai, ta chỉ cần tính a.Ans+ ai. Cuối cùng, thay vì ở mỗi bước tính, ta cần nhập lại đầy đủ biểu thức a.Ans+ ai (mất thời gian), ta cần nghĩ đến một phím chức năng cho phép tính toán giá trị biểu thức chứa biến mà không cần thay đổi biểu thức đó, đó là phím . Khi đó ta thay a.Ans+ aibởi một biểu thức chứa biến đơn giản hơn đó là a.Ans+ X. Từ nhận xét này ta có quy trình bấm phím như sau: Giải thuật. Nhập giá trị vào màn hình, bấm . Nhập vào màn hình biểu thức a.Ans+X. Bấm , máy hỏi X? Nhập , ghi kết quả . Bấm , X? Nhập , ghi kết quả . Bấm , X? Nhập , ghi kết quả Khi đó, ta được và . Ví dụ. Tìm thương và dư của phép chia đa thức cho . Giải. Nhập 3 , nhập vào màn hình 2Ans+X. , X? Nhập -6 , ghi kết quả b7 = 0. , X? Nhập 2 , ghi kết quả b6 = 2. , X? Nhập 2 , ghi kết quả 200. Vậy thương và dư lần lượt là và r = 200. Như vậy, mặc dù không cần lập ra bảng tính của lược đồ Hoocne nhưng giải thuật trên vẫn giúp chúng ta tìm rất nhanh kết quả. Tiếp tục phát triển giải thuật trên đối với trường hợp là đa thức bậc 2, ta có kết quả sau đây.
  4. 194 2.2.1. Tìm thương và dư của phép chia đa thức cho đa thức g(x) bậc hai có hai nghiệm Giả sử chia cho được thương là và dư là , chia cho được thương là và dư là . Khi đó, . Vậy phép chia cho có thương là và dư là . Để tìm và , ta có thể dùng lược đồ Hoocne 2 cấp. Lược đồ Hoocne 2 cấp: a b với và Sau đây chúng tôi đề xuất một giải thuật tính lược đồ Hoocne 2 cấp bằng máy tính cầm tay. Điều đặc biệt là giải thuật này có thể tính được đồng thời 2 cấp trong cùng một vòng lặp. Giải thuật. Nhập vào màn hình D=aX+Y : E=bA+D : X=D : A=E, bấm Máy hỏi X? Nhập Máy hỏi Y? Nhập Máy hỏi A? Nhập bấm để tìm giá trị các biến D, E được máy tính tự động và hiển thị trên màn hình. Ở vòng lặp thứ nhất ta tìm được và , ghi kết quả này ra giấy. Ở vòng lặp thứ hai, máy tiếp tục hỏi X?, Y? và A? Tuy nhiên, ta chỉ cần thay đổi giá trị mới của biến Y là . Tức là, khi máy hỏi X?, A? thì ta chỉ cần bấm , nhưng khi Y? thì ta nhập giá trị mới của Y là (thao tác ). Qua vòng lặp này ta sẽ tìm được và . Ghi kết quả ra giấy. Tiếp tục quá trình này, mỗi khi máy hỏi Y?, ta lần lượt thay các giá trị Y bởi . Từ đó, ta tìm được các giá trị và một cách rất nhanh chóng. Khi đó, thương và dư của phép chia lần lượt là và .
  5. 195 Ví dụ. Tìm thương và dư của phép chia cho . Giải. Ta có Nhập vào màn hình D= -3X+Y : E=2A+D : X=D: A=E. Bấm , máy hỏi X? Nhập , máy hỏi Y? Nhập , máy hỏi A? Nhập . Bấm để tìm và Ghi ra giấy kết quả của và Tiếp tục bấm , khi máy hỏi Y? thì ta nhập 7 . Qua vòng lặp này ta sẽ tìm được và Ghi kết quả của và . Tiếp tục chạy vòng lặp và lần lượt thay các giá trị của Y bởi ta tìm được và . Thực hiện quy trình trên ta tìm được thương và dư rất nhanh, đó là và . Để dễ theo dõi, kết quả tính toán ở trên được ghi lại ở bảng sau 2 4 7 -6 -4 2 1 5 -3 2 -2 13 -45 131 -391 1174 -3517 2 2 2 17 -11 109 -173 828 Nhận xét. Giải thuật nêu trên có thể phát triển để áp dụng cho các bài toán tìm thương và dư của phép chia đa thức có bậc lớn hơn 2 và bài toán phân tích đa thức thành nhân tử với đa thức có bậc lớn, điều mà chúng ta thường gặp khó khăn khi thực hiện phép chia một cách thủ công, mất nhiều thời gian. 2.2. Tính toán liên phân số và căn thức có quy luật 2.2.1. Tính giá trị của liên phân số Bài toán. Tính giá trị của liên phân số sau đây Giải thuật. Nhập giá trị , bấm (lưu giá trị vào biến Ans) Nhập vào màn hình X Bấm , X? Nhập . Bấm , X? Nhập .
  6. 196 Bấm , X? Nhập Ta được kết quả cần tìm. Ví dụ. Tính giá trị của liên phân số Giải. Nhập 3 bấm . Nhập vào màn hình . Bấm , X? Nhập . Bấm , X? Nhập . Bấm , X? Nhập . Ta được kết quả A Sau đây chúng ta xét một dạng toán có giải thuật tương tự như giải thuật tính giá trị liên phân số, đó là tính giá trị căn thức có quy luật. 2.2.2. Tính giá trị biểu thức chứa căn thức có quy luật Bài toán. Tính giá trị căn thức với cho trước. Khi n lớn, việc tính căn thức trên bằng phương pháp thủ công là không được vì màn hình hiển thị của máy có giới hạn về phép toán và ký tự. Chúng tôi đề xuất giải thuật sau: Giải thuật. Nhập , bấm (lưu giá trị vào biến Ans) Nhập vào màn hình Bấm , X? Nhập . Bấm , X? Nhập . Bấm , X? Nhập . Ta được kết quả. Ví dụ. Tính biểu thức sau Giải. Nhập bấm . Nhập vào màn hình . Bấm , X? Nhập . Bấm , X? Nhập . Bấm , X? Nhập . Bấm , X? Nhập . Ta được kết quả A .
  7. 197 Nhận xét. (1) Đối với bài toán chứa căn thức dạng tổng quát hơn là , chúng ta có thể sử dụng giải thuật tương tự như trên nhưng cần dùng thêm một biến mới cho bậc của căn thức. (2) Trong trường hợp đặc biệt, khi và có quy luật hàm số thì ta còn có thêm một cách giải khác là dùng lập trình với biến đếm chạy một cách tự động và chỉ cần nhập giá trị CALC ở vòng lặp đầu tiên. (3) Vì bậc của các căn thức là tùy ý và khác 0 nên bài toán dạng căn thức cũng có thể được hiểu là bài toán dạng lũy thừa. Bài toán đề xuất 1. Tính giá trị của các biểu thức sau (tính A ở chế độ radian): B= Bạn đọc tự giải. Đáp số: , B . 2.3. Tính giá trị tích hàm số tại Bài toán. Tính với , với và cho trước. Đối với dạng toán này, ta không thể giải theo cách tính toán thủ công qua từng bước vì không những bị mất rất nhiều thời gian mà kết quả còn bị sai số lớn khi ghi chép gần đúng qua nhiều bước. Để tránh điều này, ta có thể giải bằng cách sử dụng biến Ans, tuy nhiên quá trình giải sẽ phải tập trung chú ý để đếm thủ công số bước, do đó kết quả dễ bị sai nếu đếm dư hoặc thiếu bước. Ở đây, chúng tôi giới thiệu một giải thuật đơn giản khác là dùng phím CALC có kết hợp biến đếm, khi đó ta biết được khi nào thì dừng giải thuật mà không cần thao tác đếm thủ công. Giải thuật. Nhập vào màn hình X = X+1 : A= (A). Bấm , X? nhập 0 , A? Nhập Bấm liên tục cho đến khi thì dừng giải thuật và ghi kết quả A = . Trong giải thuật trên, đoạn lệnh chỉ có vai trò đếm và ta có thể bỏ. Do tính giá trị từ nên biến đếm X được nhập từ 0.
  8. 198 Ví dụ. Cho hàm số . Tính ở chế độ radian. Giải. Cài đặt chế độ Mode Rad. Nhập vào màn hình X=X+1: Bấm , X? nhập 0 , A? Nhập Bấm cho đến khi X=30 thì dừng giải thuật và ghi kết quả A = ) . Bài toán đề xuất. Cho hàm số . Tính ở chế độ radian. Bạn đọc tự giải. Đáp số: . 2.4. Giải phương trình nghiệm nguyên loại Pell (Phương trình Pell) Năm 2013, dòng máy tính cầm tay Casio fx-570VN PLUS được sản xuất với một số tính năng mới trong đó có phím chức năng Int (gọi ra thông qua tổ hợp phím ALPHA +) dùng để lấy phần nguyên của số thực x. Trong mục này chúng tôi đề xuất giải thuật sử dụng phím CALC kết hợp với phím Int để giải nhanh phương trình Pell loại 1. Bài toán. Tìm tất cả các nghiệm nguyên dương của phương trình Pell (loại 1) với d là số nguyên và không là số chính phương. Định lí ([5], Định lí 1.5, trang 13). Nếu là nghiệm nhỏ nhất của phương trình , thì tất cả các nghiệm nguyên dương của được xác định bởi với Từ tính chất trên ta thấy rằng để giải phương trình Pell ta chỉ cần tìm nghiệm nguyên dương nhỏ nhất của nó (nhỏ nhất được hiểu theo nghĩa khi so sánh các nghiệm thì ), sau đó xác định tất cả các nghiệm của theo công thức . Để tìm nghiệm nhỏ nhất ta lần lượt cho y nhận các giá trị y = 1, 2, (để tìm x) thì chính là số nguyên dương đầu tiên mà là số chính phương và do đó . Theo cách giải một phương trình nghiệm nguyên thông thường bằng máy tính cầm tay, đối với loại phương trình nghiệm nguyên hai biến x, y, nếu rút được y biểu thị qua x (hoặc ngược lại) thì ta có thể sử dụng lập trình tự động cho một biến chạy từ 1, 2, và tìm ra nghiệm nguyên còn lại, khi đó ta tìm được giá trị nhỏ nhất của biến chạy. Tuy nhiên, trong nhiều trường hợp, việc thử trực tiếp để tìm nghiệm nhỏ nhất của phương trình đòi hỏi một khối lượng tính toán khá lớn. Chẳng hạn, để tìm nghiệm nhỏ nhất của phương trình , ta phải tính giá trị của biểu thức lần lượt với y = 1, 2, ,180
  9. 199 mới được kết quả 1+13.1802=421201=6492(xem [5]). Giải thuật máy tính dưới đây sẽ giúp tìm nghiệm nguyên nhỏ nhất của phương trình một cách nhanh gọn và tự động mà không cần ghi chép qua nhiều bước trung gian. Giải thuật. Nếu thì và Nếu thì ta thực hiện: Nhập vào màn hình vòng lặp Bấm , máy hỏi X? Nhập , C? Nhập Int( ) , D? Nhập 1 , F? Nhập 1 , Y? Nhập 0 , Bấm liên tục đến khi thì dừng. Bấm ta được tiếp tục bấm ta được Ta lập được công thức nghiệm Ví dụ. Tìm tất cả các nghiệm nguyên dương của phương trình Pell . Giải. Ta có . Ta tìm nghiệm nhỏ nhất bằng giải thuật sau: Nhập vào màn hình Bấm máy hỏi X? Nhập , C? Nhập Int( ) , D? Nhập 1 , F? Nhập 1 , Y? Nhập 0 . Bấm qua 9 vòng lặp thì màn hình xuất hiện Dừng vòng lặp. Bấm ta được bấm ta được . Do vậy, tất cả các nghiệm nguyên dương của phương trình đã cho được xác định bởi với Nhận xét. Giải thuật máy tính nêu trên được đề xuất trên cơ sở kết hợp đồng thời khai triển thành liên phân số và áp dụng thuật toán giải phương trình Pell bằng liên phân số (xem [5], trang 17). So với việc tính toán, ghi chép thủ công qua khá nhiều bước trung gian theo cách giải thông thường thì việc sử dụng giải thuật máy tính nêu trên đảm bảo nhanh và độ chính xác vì máy đã làm công đoạn tính toán khép kín qua các vòng lặp.
  10. 200 Đối với phương trình Pell loại 2 giảithuật máy tính để giảilà tương tự như phương trình loại 1 , nhưng cần một số cải biến cho phù hợp, bạn đọc tự nghiên cứu thêm. Trên cơ sở này, chúng tôi tiếp tục khai thác các giải thuật máy tính để giải một số dạng phương trình nghiệm nguyên khác trong thời gian tới. 3. Kết luận và kiến nghị Bài báo đề xuất một số giải thuật mới chuyên sâu về khai thác sử dụng phím chức năng CALC trong lập trình giải toán máy tính cầm tay. Việc nghiên cứu sử dụng các giải thuật này không những nâng cao hiệu quả trong giải toán mà còn góp phần rèn tư duy thuật toán cho học sinh, sinh viên và hướng đến việc dạy học tích hợp một số yếu tố Tin học trong môn Toán. Do đó, khi giảng dạy các giải thuật cho người học, giáo viên cần giải thích rõ cơ sở toán học của giải thuật, cách gán biến, kiểm tra giải thuật nhằm giúp các em rèn luyện tư duy thuật toán và tránh việc áp dụng một cách máy móc. Ngoài ra, kết quả của bài báo còn là một hướng khai thác mới cho các cuộc thi học sinh giỏi máy tính cầm tay các cấp hàng năm. Cuối cùng, việc sử dụng máy tính cầm tay chỉ thật sự hiệu quả khi dùng chúng hỗ trợ cho tính toán khoa học và nghiên cứu phát triển tư duy, đặc biệt là tư duy thuật toán. Học sinh, sinh viên cần tránh việc lạm dụng máy tính cầm tay trong những bài tập với phép tính toán đơn giản vì sẽ gây ra những tác động tiêu cực. Tài liệu tham khảo [1]. Bộ Giáo dục & Đào tạo (17-06-2015), “Danh sách máy tính cầm tay được đem vào phòng thi”, Số 3013/BGDĐT-CNTT, Hà Nội. [2]. Lê Trung Hiếu, Võ Minh Tâm, Nguyễn Thị Bích Thuận (2014), “Kĩ thuật sử dụng hàm điều kiện trong lập trình giải toán máy tính cầm tay”, Tạp chí khoa học Trường Đại học Sư phạm TPHCM, 64(98), tr.18-23. [3]. Lê Trung Hiếu, Lê Văn Huy (2015), “Đề xuất một số giải thuật sử dụng phím CALC trong lập trình giải toán máy tính cầm tay”, Tạp chí khoa học Trường Đại học Sư phạm TPHCM, 12 (78), tr.126-137. [4]. Tạ Duy Phượng (2012), Một số dạng toán thi học sinh giỏi giải toán trên máy tính điện tử khoa học (Tập 2, dành cho khối THPT), Tài liệu tập huấn giáo viên THPT. [5]. Nguyễn Tiến Tài (2007), Giáo trình phương trình nghiệm nguyên, Nxb Đại học Sư phạm. [6]. Lê Thái Bảo Thiên Trung (2011), “Vấn đề ứng dụng công nghệ thông tin trong dạy học toán và lợi ích của máy tính cầm tay”, Tạp chí khoa học Trường Đại học Sư phạm TPHCM, 30(64), tr.51-58. [7]. Pomerantz, H. (1997), The role of calculators in math education, Texas Instruments. [8]. Tay, K. G. (2006), How to use calculator casio fx-570MS in numerical methods, Penerbit UTHM. [9]. Yasin, M. Y. (2012), “Scientific Calculators and the Skill of Efficient Computation”, BIBECHANA: A Multidisciplinary Journal of Science, Technology and Mathematics, Vol. 8, pp. 31-36. [10]. phim-calc-lap-trinh-giai-toan-may-tinh-cam-tay.html.