در دوران دبیرستان و در درس ریاضیات بارها به این نیاز پیدا کرده اید که ریشه یک معادله درجه ۲ به شکل ax^2 + bx + c = 0 را محاسبه کنید. در این مقاله قصد داریم که برنامه ای بنویسیم که ریشه های یک معادله درجه ۲ را محاسبه می کن
برای پیاده سازی این برنامه ساده ابتدا باید روش بدست آوردن ریشه های معادله درجه ۲ را به زبان ریاضی یادآور شوم. به صورت ریاضی قبل از محاسبه ریشه های یک معادله درجه ۲ باید دلتا را بدست آورید. اگر به خاطر بیاورید برای بدست آوردن دلتا باید به روش زیر عمل کنید.
Delta = b^2 - 4ac
در واقع در معادله ax^2 + bx + c = 0 ضریب دوم (b) را به توان ۲ می رسانیم و سپس ۴ برابر ضریب اول (a) در ضریب سوم (c) را از آن کم می کنیم.
سپس از طریق روابط زیر آن را محاسبه می کنیم :
خوب بیاید نگاهی به کدهای برنامه بندازیم. بعد از نوشتن کد ها به توضیح برنامه خواهم پرداخت !
import java.util.Scanner; public class Delta { public static void main(String[] args) { Scanner input = new Scanner(System.in); int a,b,c , delta; double x1,x2; //دریافت ۳ رقم از ورودی توسط کاربر System.out.println("Please enter 3 number : "); a = input.nextInt(); b = input.nextInt(); c = input.nextInt(); //محاسبه دلتا delta = b * b - 4 * a * c; //اگر دلتا بزرگتر از صفر باشد دو ریشه حقیقی دارد if (delta > 0) { x1 = (-b + Math.sqrt(delta) / (2 * a)); x2 = (-b - Math.sqrt(delta) / (2*a)); System.out.printf("rishe aval : %f \n", x1); System.out.printf("rishe dovom : %f", x2); } //اگر دلتا برابر صفر باشد تنها یک ریشه مضاعف دارد if (delta == 0) { x1 = -b / (2 * a); System.out.printf("rishe : %.1f", x1); } //اگر دلتا کوچکتر از صفر باشد فاقد ریشه می باشد if (delta < 0 ) { System.out.println("rishe nadarad !!"); } } }
برای نوشتن این برنامه به زبان جاوا ابتدا مقادیر a , b ,c را از ورودی دریافت می کنیم. دلتا را از طریق فرمولی که در بالا شرح داده شد محاسبه می کنیم. در اینجا ۳ حالت به وجود می آید :
در حالتی که معادله دو ریشه حقیقی دارد از کلاس و متد ()Math.sqrt استفاده کرده ایم. متد sqrt جذر مقادیر ورودی را محاسبه کرده و آن را بر می گرداند. از فرمول مربوطه استفاده کردیم و مقادیر هر دو ریشه را بدست می آوریم.
برای حالتی که دلتا برابر صفر باشد از فرمول مربوط به آن بخش استفاده می کنیم و در حالتی که دلتا کوچکتر از صفر باشد تنها یک پیام چاپ می کنیم با این عنوان که معادله ریشه ندارد.