ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
امروز داشتم روی نوشتن یک برنامه برای حل معادلات درجه دو در جاوا کار میکردم، به نظرم در نگاه اول خیلی ساده و ابتدایی آمد چون اعداد رو میندازی تو فرمول و جواب رو میگیری اما بعدا که رفتم راجع به حل معادلات درجه دو تو گوگل بیشتر خوندم فهمیدم که برای حل این معادلات اول باید به رقم دلتا نگاه کنید و اگر بزرگتر و یا مساوی صفر بود که ما شروع میکنیم به محاسبه ریشه یا ریشه ها. اگر مساوی با صفر بود که تنها یک ریشه داریم و اگر بزرگتر از صفر بود که ما دو ریشه داریم. پس اینقدرها هم ساده به نظر نمیومد ولی باز هم راه حلی داشت و اونقدرها هم سخت نیست.
در قدم اول از یوزر میخواهیم که ضریب های متغیرها را وارد کند (ای و بی و سی) و بعد از اون با استفاده از ضریبها عدد دلتا را بدست می آوریم و اونوقت هست که از استیتمنت (if) استفاده میکنیم.
import java.util.Scanner;
public class SolveQuadratic {
public static void main (String [] args) {
Scanner sc = new Scanner (System.in);
System.out.println("Please enter a: ");
double a = sc.nextDouble();
System.out.println("Please enter b: ");
double b = sc.nextDouble();
System.out.println("Please enter c: ");
double c = sc.nextDouble();
double delta = ((b*b)-4*a*c);
System.out.println("the delta is: "+delta);
if (delta == 0) {
double ans= ((-b)+(Math.sqrt(delta)))/(2*a);
System.out.println("There is only one answer:" +ans);
}
if (delta >0) {
double ans1= ((-b)+(Math.sqrt(delta)))/(2*a);
double ans2= ((-b)-(Math.sqrt(delta)))/(2*a);
System.out.println("There are two answers:" +ans1+ " and " +ans2);
}
if (delta <0) {
System.out.println("UNDEFINED!!!");
}
}
}
میبینید اونقدرها هم سخت نیست