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:
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:
- Cách dump data trong Ruby
- 30 tuổi học lập trình có muộn không?
- Công ty SI là gì trong lĩnh vực công nghệ thông tin?
- Tạo icon cho app trong android
- HỌC AJAX CƠ BẢN | ĐÔ TRỊNH
- Lưu ý khi porting C/C++ sang Java
- Chuyển một đối tượng sang Json trong Android
- Thiết kế website số 1 Việt Nam và thiết kế web top 1 Google
- Đơn vị báo giá cho thị trường Nhật – 人月, 人日, 人時
- CÔNG CỤ HAY DÙNG CHO LẬP TRÌNH NHÚNG
- Khảo sát mức lương lập trình viên trên thế giới
- Select where like trong Ruby On Rails
- Rails: undefined method `+’ for nil:NilClass
- 7 lời khuyên của Sam Altman để thành công
- Little Endian Unsinged trong Java
1 Comment