11-05-2009, 13:27
|
|
|
|
חבר מתאריך: 21.12.04
הודעות: 30,021
|
|
לא אחזור על דברי חכמים (אלו שמעלי ), אבל אציין כי אתה יכול להשתמש בפונקציה של חזקה הבנויה כבר בספריה math.h, או שאתה יכול לממש אותה בעצמך, משהו בסגנון:
קוד PHP:
double power (double x) { return x*x; }
אם כי בתאכלס, אתה יכול גם להשתמש ב int במידה ואתה יודע שהקלט שלך הוא מספרים שלמים בלבד... אין עם זה בעיה מבחינת התרגיל.
בנוגע ל sqrt, היא אמורה לעבוד, אבל שים לב שאין פתרון ממשי לשורש שלילי, ולכן אתה יכול לקבל שגיאות זמן ריצה והתוכנית שלך תעוף במידה והדטרמיננטה שלך שלילית.
לכן, הייתי מציע לבדוק לפני ביצוע שורש האם התוצאה חיובית או שלילית... במידה וחיובית, תמשיך הלאה...
במידה ושלילית, תדפיס "שגיאה, אין פתרונות" או משהו בסגנון.
במידה ואפס, אתה יכול או להדפיס פעם אחת פתרון או להדפיס את שני הפתרונות (אשר מתלכדים לאותה תוצאה).
קוד PHP:
if ((power(b)-4*a*c) > 0) { x1=((0-b)+sqrt(power(b)-4*a*c))/(2*a); x2=((0-b)+sqrt(power(b)-4*a*c))/(2*a); } else if ((power(b)-4*a*c) == 0) x1=((0-b)+sqrt(power(b)-4*a*c))/(2*a); else cout << "Error! B^2 - 4*A*C is smaller than 0...\n";
|