viết phương trình tìm nghiệm của phương trình bậc 2 bằng phần mềm scratch
Hôm nay, thầy rất vui được hướng dẫn các em giải một bài toán rất quen thuộc trong môn Toán lớp 8, đó là Giải phương trình bậc hai một ẩn, nhưng bằng một công cụ vô cùng thú vị và trực quan: phần mềm Scratch! Chúng ta sẽ cùng nhau tạo ra một chương trình nhỏ giúp tìm nghiệm của phương trình bậc hai.
I. Nhắc lại kiến thức về Phương trình bậc hai
Trước khi bắt tay vào lập trình, các em hãy cùng thầy ôn lại kiến thức về phương trình bậc hai nhé.
Phương trình bậc hai một ẩn có dạng tổng quát là:
\[ax^2 + bx + c = 0\]
Trong đó:
- \(x\) là ẩn số.
- \(a, b, c\) là các hệ số đã biết (với điều kiện \(a \neq 0\)).
Để giải phương trình này, chúng ta cần xét giá trị của biệt thức Delta (\(\Delta\)):
\[\Delta = b^2 – 4ac\]
Dựa vào giá trị của \(\Delta\), ta có các trường hợp sau:
1. Trường hợp 1: Nếu \(\Delta > 0\)
Phương trình có hai nghiệm phân biệt:
\[x_1 = \frac{-b + \sqrt{\Delta}}{2a}\]
\[x_2 = \frac{-b – \sqrt{\Delta}}{2a}\]
2. Trường hợp 2: Nếu \(\Delta = 0\)
Phương trình có nghiệm kép (hai nghiệm bằng nhau):
\[x_1 = x_2 = \frac{-b}{2a}\]
3. Trường hợp 3: Nếu \(\Delta < 0\)
Phương trình vô nghiệm thực.
4. Trường hợp đặc biệt: Nếu \(a = 0\)
Khi \(a = 0\), phương trình trở thành phương trình bậc nhất một ẩn: \(bx + c = 0\).
- Nếu \(b \neq 0\), phương trình có nghiệm duy nhất \(x = -c/b\).
- Nếu \(b = 0\) và \(c = 0\), phương trình có vô số nghiệm.
- Nếu \(b = 0\) và \(c \neq 0\), phương trình vô nghiệm.
Hiểu rõ các trường hợp này là chìa khóa để chúng ta lập trình trong Scratch một cách chính xác đó các em.
II. Hướng dẫn các bước lập trình trên Scratch
Chúng ta sẽ tạo một chương trình tương tác, yêu cầu người dùng nhập các hệ số \(a, b, c\), sau đó chương trình sẽ tính toán và đưa ra kết quả.
Bước 1: Khởi tạo Project và tạo các biến số cần thiết
Mở phần mềm Scratch. Chúng ta sẽ bắt đầu bằng việc tạo các biến để lưu trữ các hệ số và kết quả.
1. Tạo biến:
Các em vào mục “Các biến số” (Variables) và bấm nút “Tạo một biến” (Make a Variable) để tạo các biến sau:
a(lưu hệ số a)b(lưu hệ số b)c(lưu hệ số c)delta(lưu giá trị của \(\Delta\))x1(lưu nghiệm thứ nhất)x2(lưu nghiệm thứ hai)

(Hình ảnh minh họa các biến đã được tạo)
Bước 2: Xây dựng kịch bản (Script)
Chúng ta sẽ xây dựng kịch bản cho nhân vật (Sprite) mặc định (chú mèo Scratch) hoặc một nhân vật bất kỳ mà các em thích.
1. Bắt đầu chương trình:
Kéo khối lệnh “khi bấm vào lá cờ xanh” (when green flag clicked) từ nhóm “Sự kiện” (Events) vào khu vực kịch bản. Đây là điểm bắt đầu của chương trình.
2. Nhập các hệ số \(a, b, c\):
Chúng ta sẽ sử dụng khối lệnh “hỏi … và đợi” (ask … and wait) từ nhóm “Cảm biến” (Sensing) để hỏi người dùng nhập giá trị cho \(a, b, c\). Sau đó, dùng khối “đặt [biến] thành [giá trị]” (set [variable] to [value]) từ nhóm “Các biến số” để gán giá trị vừa nhập (lưu trong khối “trả lời” – answer) vào các biến tương ứng.
(khi bấm vào lá cờ xanh) (hỏi "Nhập hệ số a:" và đợi) (đặt a thành (trả lời)) (hỏi "Nhập hệ số b:" và đợi) (đặt b thành (trả lời)) (hỏi "Nhập hệ số c:" và đợi) (đặt c thành (trả lời))

(Hình ảnh minh họa khối lệnh nhập hệ số)
3. Xử lý trường hợp đặc biệt \(a = 0\): Phương trình bậc nhất
Đây là bước rất quan trọng để đảm bảo chương trình của chúng ta xử lý được mọi trường hợp một cách chính xác. Chúng ta sử dụng khối “Nếu … thì … nếu không thì …” (if … then … else) từ nhóm “Điều khiển” (Control).
(Nếu (a = 0) thì)
(Nếu (b = 0) thì)
(Nếu (c = 0) thì)
(nói "Phương trình có vô số nghiệm." trong 2 giây)
(nếu không thì)
(nói "Phương trình vô nghiệm." trong 2 giây)
(nếu không thì)
(đặt x1 thành (- (c) / (b)))
(nói (kết hợp "Phương trình có nghiệm duy nhất x = " (x1)) trong 5 giây)
(nếu không thì)
(tiếp tục xử lý phương trình bậc hai)

(Hình ảnh minh họa khối lệnh xử lý khi a = 0)
4. Xử lý trường hợp \(a \neq 0\): Phương trình bậc hai
Phần này sẽ nằm trong nhánh “nếu không thì” của khối lệnh “Nếu (a = 0) thì …” ở trên.
a. Tính Delta:
Sử dụng khối “đặt [delta] thành [giá trị]” và các phép toán từ nhóm “Các phép toán” (Operators) để tính \(\Delta\).
\[\Delta = b^2 – 4ac\]
Trong Scratch, \(b^2\) có thể viết là \(b * b\).
(đặt delta thành ((b b) - ((4 a) * c)))

(Hình ảnh minh họa khối lệnh tính Delta)
b. Xét các trường hợp của Delta:
Tiếp tục dùng cấu trúc “Nếu … thì … nếu không thì …” lồng nhau để xử lý các trường hợp của \(\Delta\).
Trường hợp \(\Delta > 0\): Hai nghiệm phân biệt
(Nếu (delta > 0) thì)
(đặt x1 thành (((- (b)) + (căn bậc hai của (delta))) / ((2 * a))))
(đặt x2 thành (((- (b)) - (căn bậc hai của (delta))) / ((2 * a))))
(nói (kết hợp "Phương trình có 2 nghiệm phân biệt: x1 = " (x1)) trong 3 giây)
(nói (kết hợp " và x2 = " (x2)) trong 3 giây)
0″ width=”400″>
(Hình ảnh minh họa khối lệnh khi Delta > 0)
Lưu ý: Khối “căn bậc hai của” (sqrt of) nằm trong nhóm “Các phép toán” (Operators), các em chọn từ danh sách thả xuống.
Trường hợp \(\Delta = 0\): Nghiệm kép
Đây là nhánh “nếu không thì” tiếp theo. Chúng ta sẽ dùng “Nếu … thì … nếu không thì …” nữa.
(nếu không thì)
(Nếu (delta = 0) thì)
(đặt x1 thành ((- (b)) / ((2 * a))))
(nói (kết hợp "Phương trình có nghiệm kép: x1 = x2 = " (x1)) trong 5 giây)

(Hình ảnh minh họa khối lệnh khi Delta = 0)
Trường hợp \(\Delta < 0\): Vô nghiệm
Đây là nhánh “nếu không thì” cuối cùng.
(nếu không thì)
(nói "Phương trình vô nghiệm thực." trong 2 giây)

(Hình ảnh minh họa khối lệnh khi Delta < 0)
5. Toàn bộ kịch bản hoàn chỉnh:
Hãy ghép nối tất cả các khối lệnh lại với nhau theo trình tự như đã hướng dẫn.

(Hình ảnh tổng quan toàn bộ kịch bản)
III. Chạy thử chương trình
Sau khi đã hoàn thành các bước trên, các em hãy bấm vào lá cờ xanh để chạy thử chương trình của mình nhé!
- Thử với trường hợp \(\Delta > 0\):
Nhập \(a = 1, b = -3, c = 2\).
Kết quả: Phương trình có 2 nghiệm phân biệt: \(x1 = 2\) và \(x2 = 1\). (Kiểm tra: \(\Delta = (-3)^2 – 4(1)(2) = 9 – 8 = 1 > 0\)) - Thử với trường hợp \(\Delta = 0\):
Nhập \(a = 1, b = -2, c = 1\).
Kết quả: Phương trình có nghiệm kép: \(x1 = x2 = 1\). (Kiểm tra: \(\Delta = (-2)^2 – 4(1)(1) = 4 – 4 = 0\)) - Thử với trường hợp \(\Delta < 0\):
Nhập \(a = 1, b = 1, c = 1\).
Kết quả: Phương trình vô nghiệm thực. (Kiểm tra: \(\Delta = (1)^2 – 4(1)(1) = 1 – 4 = -3 < 0\)) - Thử với trường hợp \(a = 0\):
Nhập \(a = 0, b = 2, c = -4\).
Kết quả: Phương trình có nghiệm duy nhất \(x = 2\). (Kiểm tra: \(2x – 4 = 0 \Rightarrow x = 2\)) - Thử với trường hợp \(a = 0, b = 0, c = 5\):
Kết quả: Phương trình vô nghiệm. (Kiểm tra: \(0x + 5 = 0 \Rightarrow 5 = 0\), vô lý) - Thử với trường hợp \(a = 0, b = 0, c = 0\):
Kết quả: Phương trình có vô số nghiệm. (Kiểm tra: \(0x + 0 = 0 \Rightarrow 0 = 0\), luôn đúng)
Các em thấy đó, chỉ với các khối lệnh đơn giản trong Scratch, chúng ta đã có thể tạo ra một chương trình giải phương trình bậc hai một cách thông minh và đầy đủ các trường hợp. Đây là một ví dụ tuyệt vời về việc áp dụng tư duy lập trình để giải quyết các bài toán Toán học.
Chúc các em học tốt và luôn tìm thấy niềm vui trong môn Tin học nhé! Nếu có bất kỳ thắc mắc nào, đừng ngần ngại hỏi thầy!
Gửi bạn nha!
bạn xem ảnh nhé