עבור לתוכן

משוואה ריבועית ב-C#

Featured Replies

פורסם

 mishvaa1 = -b + Math.Sqrt((b*2) - 4 * a * c); 

אני צריך להביא את B בריבוע מינוס 4AC את כל זה בשורש וזה אומר שיש שתי פעולות MATH זאת הבעיה שלי

תודה למי שיעזור

פורסם

שתי אופציות:

1. להשתמש ב-b*b.

2. להשתמש ב-Math.Pow(b, 2).

מה רע?

פורסם
  • מחבר

זה לא מאפשר לי לעשות את אף אחת מהאפשרויות, וניסיתי אותן כבר מקודם.

פורסם

פשוט תחלק את הפקודה למספר פקודות וכן כל מהביטוי שלך לא תקין. הקוד צריך להיראות כך:


shursh=((b*b) - 4 * a * c
s=Math.Sqrt(shursh)
num1=(-b+s)/2
num2=-b-s)/2
return("x1="+num1+","+"x2="+num2)

פורסם

הנה קוד לנוסחאת השורשים שמצאתי בגוגל ושיניתי אותו שיתאים ל-C#:

           double a, b, c, y1, y2, dis;
a = double.Parse(textBox1.Text);
b = double.Parse(textBox2.Text);
c = double.Parse(textBox3.Text);
dis = ((b * b) - (4 * a * c));
if (((b * b) - (4 * a * c)) < 0)
{
dis = -1 * dis;
y1 = ((-1 * b) + (Math.Sqrt(dis))) / (2 * a);
y2 = ((-1 * b) - (Math.Sqrt(dis))) / (2 * a);
textBox4.Text = y1.ToString();
textBox5.Text = y2.ToString();
}
else
{
y1 = ((-1 * b) + (Math.Sqrt(dis))) / (2 * a);
y2 = ((-1 * b) - (Math.Sqrt(dis))) / (2 * a);
textBox4.Text = y1.ToString();
textBox5.Text = y2.ToString();
}

פורסם
  • מחבר

יש כמה מושגים שלא בנתי כמו text box וכו' ואני אמור להשתמש באפשרות אחרת

זה מה שעשיתי בינתיים


using System;

class Mishvaa
{
static void Main(string[] args)
{
double a, b, c, mishvaa1, mishvaa2;
Console.WriteLine("enter the number {0}", a);
a = double.Parse(Console.ReadLine());
Console.WriteLine("enter the number {0}", b);
b = double.Parse(Console.ReadLine());
Console.WriteLine("enter the number {0}", c);
c = double.Parse(Console.ReadLine());
mishvaa1 = -b + ((b * b) - (4 * a * c));
Math.Sqrt(mishvaa1);
mishvaa2 = -b + ((b * b) - (4 * a * c));
Math.Sqrt(mishvaa2);
if (a < 0)
{
Console.WriteLine("the number is baham");
}
if (mishvaa1 < 0)
{



}
}
}
{

פורסם

זה לא מאפשר לי לעשות את אף אחת מהאפשרויות, וניסיתי אותן כבר מקודם.

מה זאת אומרת "לא מאפשר"? מה בדיוק ניסית לעשות, ומה הקומפיילר אומר לך?

פורסם

קח בניתי פעם תוכנה כזאת עם ממשק ויזואלי

פשוטה מאוד להבנה

using System;
using System.Windows.Forms;
using System.Drawing;



class MainForm : Form
{
public MainForm()
{
this.Size=new Size(250,250);
Label l1 = new Label();
l1.Left += 120;
l1.Top += 10;
Controls.Add(l1);
l1.Text += "A כתוב את";

Label l2 = new Label();
l2.Left += 120;
l2.Top += 40;
Controls.Add(l2);
l2.Text += "B כתוב את";

Label l3 = new Label();
l3.Left += 120;
l3.Top += 70;
Controls.Add(l3);
l3.Text += "C כתוב את";

TextBox a = new TextBox();
a.Left += 10;
a.Top += 10;
Controls.Add(a);

TextBox b = new TextBox();
b.Left += 10;
b.Top += 40;
Controls.Add(b);

TextBox c = new TextBox();
c.Left += 10;
c.Top += 70;
Controls.Add(c);

TextBox x1 = new TextBox();
x1.Left += 120;
x1.Top += 120;
Controls.Add(x1);

TextBox x2 = new TextBox();
x2.Left += 10;
x2.Top += 120;
Controls.Add(x2);

Button but = new Button();
but.Left += 10;
but.Top += 160;
but.Text += "פתור";
but.Click += new EventHandler(this.but_Click);
Controls.Add(but);
}

public static void Main(string[] args)
{
Application.Run(new MainForm());
}

private void but_Click (Object sender,
EventArgs e)
{
TextBox TB1 = (TextBox)this.Controls[0];
TextBox TB2 = (TextBox)this.Controls[1];
TextBox TB3 = (TextBox)this.Controls[2];
TextBox TB4 = (TextBox)this.Controls[3];
TextBox TB5 = (TextBox)this.Controls[4];
int a = Int32.Parse(TB1.Text);
int b = Int32.Parse(TB2.Text);
int c = Int32.Parse(TB3.Text);
TB4.Text = "";
TB5.Text = "";
double tmp1 = Math.Pow(((b*b)+((-4)*a*c)), 0.5) ;
int tmp = (int)Math.Ceiling(tmp1);
int x1 = (-b+tmp)/(2*a);
int x2 = (-b-tmp)/(2*a);
TB4.Text = Convert.ToString(x1);
TB5.Text = Convert.ToString(x2);
}
}

פורסם
  • מחבר

התוכנית הזאת לא עולה

ולא לזה התכוונתי

פורסם

מה זאת אומרת "לא עולה"? מה הקומפיילר אומר?

ולמה כן התכוונת?

אתה מוכן להיות קצת יותר ברור בתגובות שלך?

פורסם
  • מחבר

עוד לא למדתי להשתמש בהרבה ממה שרשום בתוכנית שלכם כמו TEXT BOX וכו'

בגלל זה העליתי את התוכנית שלי כדי שתבינו על האפשרות שלי איך לעשות את זה רק שיש לי טעויות ואני צריך לתקן אותן

הקומפיילר רושם לי עם התוכנית שלו שיש בעיה עם ה-WINDOWS.FORMS ו SYSTEM DRAWING הוא מסמן לי אותן בקו כחול מתחת למילים

פורסם

 double tmp1 = Math.Pow(((b*b)+((-4)*a*c)), 0.5) ;
int tmp = (int)Math.Ceiling(tmp1);
int x1 = (-b+tmp)/(2*a);
int x2 = (-b-tmp)/(2*a);

זה הקוד היחיד שאתה אמור להתייחס אליו

תראה ותלמד מה שרשום בו

תשתמש בראש ובאינטרנט

אני לא לומד ממדריכים

אני לומד את כל מה שאני יודע

מקודים של אחרים

ומהערות/אינטרנט[br]פורסם בתאריך: 7.11.2007 בשעה 22:12:11


אתה יודע מה?

בגלל שיש לי מצב רוח מאוד מאוד טוב כי סוף סוף סיימתי תוכנה שאני עובד עליה כמה ימים

אני אפרש לך ואסביר לך

קודם כל נפשט את המשוואה הריבועית ל3 פעולות

השורש - המספר לפני השוקש - קו השבר

להלן השורש

double tmp1 = Math.Pow(((b*b)+((-4)*a*c)), 0.5) ;

שורש זה בעצם מספר בחזקת 0.5

יש לנו את הפונקצייה math.pow(number, hezka)

number = המספר

hezka = המספר של המעריך של החזקה

לדוגמא math.pow(5, 2)

יתן לך 25

math.pow(25,0.5(

זה בעצם שורש של 25 משמע 5

זאת אומרת כל שעליך לעשות זה לעשות

Math.Pow(((b*b)+((-4)*a*c)), 0.5)

אח"כ אתה מחלק ל2 מקרים

-b + tmp1

+b + tmp1

מקרה 1 אתה מחלק ב 2*a

מקרה 2 אתה מחלק ב 2*a

מקרה 1 = x1

מקרה 2 = x2

בהצלחה

פורסם

אל תשכח לבדוק קודם אם הדלתא גדול או קטן מ- 0.

ואין צורך להמיר לint.

פורסם
  • מחבר

תודה רבה הבנתי הכל

ודרך אגב אלה ש"ב :-X

פורסם
  • מחבר

ניסיתי לפתור את המשוואה בצורה אחרת כמו לפי איך שהמורה הסבירה

 using System;

class mishvaa
{
static void Main(string[] args)
{
double a, b, c, x1, x2, delta;
Console.WriteLine("enter the first number");
a = double.Parse(Console.ReadLine());
Console.WriteLine("enter the second number");
b = double.Parse(Console.ReadLine());
Console.WriteLine("enter the third number");
c = double.Parse(Console.ReadLine());
if (a == 0)
{
Console.WriteLine("this is mishvaa");
}
else
{
delta = ((b * b) - (4 * a * c));
}

if (delta < 0)
{
Console.WriteLine("this is baham");
}
else
{
x1 = (-b) + Math.Sqrt(delta) / (2 * a);
x2 = (-b) - Math.Sqrt(delta) / (2 * a);
}

}


}

והקומפיילר רשם לי: Error 1 Use of unassigned local variable 'delta'

מה הבעיה? לא הבנתי

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים