Giải phương trình bậc 2 bằng Ruby

5/5 - (1 vote)

1. Thuật toán giải phương trình bậc 2

Đầu tiên cho họ nhập 3 tham số a, b, c xem đó kiểm tra xem a khác 0 không? Nếu có thì mới tiếp tục.

Sau khi kiểm tra a khác 0 thì đi tính delta, tiếp theo kiểm tra xem delta có lớn hơn 0 không? Nếu lớn hơn thì hiện ra 2 biến x1 – x2, còn không kiểm tra delta bằng 0 không? nếu bằng thì in ra nghiệm kép x1 = x2 cuối cùng không bằng thì hiện ra vô nghiệm.

Sau đây là thuật toán mô tả bằng ảnh mà mình đã “mượn” được trên mạng, cám ơn tác giả bức ảnh nhiều:

Giải phương trình bậc 2 bằng Ruby

2. Giải bằng ruby

Đầu tiên gọi thư viện cmath của ruby, thư viện này cung cấp các hàm cho ta tính toán

require 'cmath'

Sau đó bắt người dùng nhập vào 3 tham số (hay hệ số), hàm gets là hàm lấy dữ liệu từ bàn phím người dùng nhập, vì số mà người dùng nhập vào là string nên ta phải convert sang kiểu int thì mới có thể thực hiện được các phép tính (+/-/*/%)

puts "Nhap tham so A:"
a = gets()
a = a.to_i
puts "Nhap tham so B:"
b = gets()
b= b.to_i
puts "Nhap tham so C:"
c = gets()
c = c.to_i

Còn dưới đây là đoạn kiểm tra và hiện nghiệm.

a2 = a*2

if a != 0 then
  delta = (b*b) - (4*a*c)
  sqrt_delta = CMath.sqrt(delta)
  if delta > 0 then
    x1 = (-b + sqrt_delta)/a2
    x2 = (-b - sqrt_delta)/a2
    puts "x1: #{x1} - x2: #{x2}"
  else
    if delta == 0 then
      x = -b/a2
      puts "PT nghiệm kép x1 = x2 = : #{x}"
    else
      puts "Vô nghiệm"
    end
  end
else
  puts "Ko phải ptb2"
end

Mọi ý kiến đóng góp hãy để lại comment 🙂

Các bài viết không xem thì tiếc:

1 Comment

Thảo luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Xem thêm
Nếu mà bạn gặp lỗi này thì không có gì…
 
 
 
 
Facetime iPhone

Main Menu