الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود للقانون العام للجذر التربيعي بلغة الجافا

مغلق
بدأه نور الوجود في 2 أغسطس 2007 · 11 رد · 9,810 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
import java.util.*;
 class math{
	 public static void main(String args[]){
	 double a,b,c;
	 double r1,r2;
	 Scanner input=new scanner(System.in);
	 System.out.print("entera");
	 a=input.nextDouble();
	 System.out.print("enter b");
	 b=input.nextDouble();
	 System.out.print("enter c");
	 c=input.nextDouble();
	 r1=(-1*b+Math.sqrt(b*b-4*a*c))/(2*a);
	 r2=(-1*b+Math.sqrt(b*b-4*a*c))/(2*a);
		 System.out.print("the first rooot is %f and the secong root is %f",r1,r2);
		 }

السلام عليكم

هادا كود للقانون العام للجذر التربيعي ، المشكلة فيه انهعم يحكيلي

cannt find symbol method print(java.lang.string,double)

فهل لازم نكتب البكج ونستدعيها في بداية البرنامجj

ولا لاءjava .lang

يا ريت تفودني

#2

وعليكم السلام

انا لاحظت إستخدام print محل printf

الكود ب printf

System.out.printf("the first rooot is %f ,and the secong root is %f", r1, r2);

وال كود ب print

  System.out.print("the first root is "+r1+", and the second root is "+r2);

تم تعديل هذه المشاركة بواسطة StrikerX في 2 أغسطس 2007 في 10:30

#3

شكرا اخي ع التنبيه بيجوز من هيك راح اشوف

#4

هناك أخطاء في الكود:

1- اسم صنفك هو math ونحن نعلم أن اسم الصنف يكتب حرف كبير أي Math

2- Scanner تكتب حرف كبير وليس صغير

3- بالنسبة للطباعة باستخدام System.out.println فاننا نستخدم + لطباعة أكثر من قيمة وليس , أي

 System.out.println("the first rooot is %f and the secong root is %f" + r1 + r2);

ولاداعي لاستخدام الرمز %f، حقيقة لم أجد له معنى.

وللتحكم بشكل الخرج أكثر، استخدم println بدلاً من print وبذلك يصبح كل خرج على سطر .

4- بالنسبة لقوانين r1, r2 هل هناك فرق؟ فانت كتبت ما يلي:

	r1=(-1*b+Math.sqrt(b*b-4*a*c))/(2*a);
	 r2=(-1*b+Math.sqrt(b*b-4*a*c))/(2*a);

r2 يجب أن تكون r2=(+1*b+Math.sqrt(b*b-4*a*c))/(2*a);

وهاهو الكود الصحيح:

  import java.util.*;

class Math1 {

  public static void main(String args[]) {

	double a, b, c;
	double r1, r2;
	Scanner input = new Scanner(System.in);
	System.out.println("enter a");
	a = input.nextDouble();
	System.out.println("enter b");
	b = input.nextDouble();
	System.out.println("enter c");
	c = input.nextDouble();
	r1 = ( -1 * b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);
	r2 = ( +1 * b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);
	System.out.println("the first rooot is " + r1 + " and the second root is " +
					   r2);

  }
}
#5
اقتباس
ولاداعي لاستخدام الرمز %f، حقيقة لم أجد له معنى.

عندما تستخدم :

System.out.printf("the result is : %f",var);

يجب ان تستخدمها ،

فا printf تعمل كprint في لغه السي (اذا كنت برمجت بها) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

كيندا

رومانسي

يسلمو ع التوضيح

ولكن في الجافا ع حسب علمي انه في فرء بين استخادم print,printf

انه printfيعني formatting of printوهادا بحتاج انه نكتب %f

لكن برينت لوحدها ما بنكتب%f

هل هادا صحيح ولا لاء

#7

السلام عليكم :

ممكن أحد يشرح لي كل سطر في هذا الكود.

مع جزيل الشكر مقدماً......................................

#8

هل يمكنني الوثوق بنتائج هذه الطريقة ؟

فما اذكره ان القانون العام للجذر التربيعي له 3 مسالك في الحل ...

وهي عندما يكون العائد من الضرب b2-4ac

1- موجب

2- سالب

3- صفر

ولم ارى ما يشير الى هذه المساله

ارجوا منكم التوضيح

#9

بعد البحث واسترجاع المعلومات الرياضيه توصلت الى هذه النتيجة

import java.util.*;
class Math1 {
	public static void main(String args[]) {
		double delta, a, b, c;
		Scanner input = new Scanner(System.in);

		System.out.print("enter a :  ");
		a = input.nextDouble();
		System.out.print("enter b :  ");
		b = input.nextDouble();
		System.out.print("enter c :  ");
		c = input.nextDouble();

		delta = (Math.pow(b,2))-(4*a*c);
		System.out.println("delta = "+delta);

		if(delta<0){
			System.out.println("complex number solution !");
		}else if(delta>0){
			double x=(-b+Math.sqrt(delta))/(2*a);
			double z=(-b-Math.sqrt(delta))/(2*a);
			System.out.println("the first rooot is " + x + "\n and the second root is " + z);
		}else if(delta==0){
			double x=(-b)/(2*a);
			System.out.println("solution = " + x );
		}

	}
}
#10

السلام عليكم:

جزاك الله خير

a = input.nextDouble();

next عبارة عن objectأم ماذا؟

#11

Thanks alot

#12
a = input.nextDouble();

nextDouble بتشير إلى ان العدد اللى هيتم إسناده ل a من النوع Double.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…