ABA


"מה הבעייה בתוכנית ב- C..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14608 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14608
sharkk
חבר מתאריך 2.9.02
1306 הודעות, דרג אמינות חבר זה
   19:56   24.02.08   
אל הפורום  
  מה הבעייה בתוכנית ב- C...  
 
   ערכתי לאחרונה בתאריך 24.02.08 בשעה 20:00 בברכה, sharkk
 
תוכנית שעושה משוואה ריבועית ומחזירה תוצאות...

הוא אומר לי שהוא לא מכיר את
sqrt
למה??

#include <stdio.h>
#include <math.h>
void
main()
{
int n1,n2,n3;
int RB,RM;
printf("please enter 3 numbers\n"); //מדפיס, קלוט שלושה מספרים
scanf("%d%d%d\n",&n1,&n2,&n3); //קולט 3 מספרים ושם אותם במשתנים
RB=(((-n2)+(sqrt((n2*n2)-4*n1*n3))/2*n1));
RM=((((-n2)-(sqrt((n2*n2)-4*n1*n3))/2*n1)));
printf("the resukt is: %f %f\m",RB,RM);
}



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה לא שהוא לא מכיר , Net_Boy  24.02.08 20:04 1
     אתה מתכון (float).... sharkk 24.02.08 21:09 2
         לא , לא צריך לשנות את RB ו RM לדאבל Net_Boy  24.02.08 21:20 3
             זה טיפל בבעיה חלקית הוא מחזיר לי מספרים ארוכים.. sharkk 24.02.08 21:42 4
                 אני מייד ארשום לך תוכנית מסודרת Net_Boy  24.02.08 21:47 5
                     הנה תוכנית מסודרת Net_Boy  24.02.08 22:03 6
                         תודה אחי, אכן שמתי את ה''דאבל'' אחרי הפונקציה sqrt... sharkk 24.02.08 22:11 7

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   20:04   24.02.08   
אל הפורום  
  1. זה לא שהוא לא מכיר ,  
בתגובה להודעה מספר 0
 
   הפרמטרים שאתה שולח לפונקציה לא טובים
צריך לעשות קאסטינג ל double בפרמטרים של הפונקציה ובערך החזרה של הפונקציה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sharkk
חבר מתאריך 2.9.02
1306 הודעות, דרג אמינות חבר זה
   21:09   24.02.08   
אל הפורום  
  2. אתה מתכון (float)....  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 24.02.08 בשעה 21:12 בברכה, sharkk
 
ולשנות את הפרמטרים RM ו- RB ל- double?

אם תוכל לרשום איך שזה אמור להיות אני יודה לך מאוד


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   21:20   24.02.08   
אל הפורום  
  3. לא , לא צריך לשנות את RB ו RM לדאבל  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 24.02.08 בשעה 21:21 בברכה, Net_Boy
 
הפונקציה מקבלת משתנה מסוג double ומחזירה double , לכן אתה עושה בערך שנשלח לפונקציה קאסט ל double ולערך התוצאה קאסט ל int

הנה קוד לדוגמא

RB= (int)(((-n2)+(sqrt((double)((n2*n2)-4*n1*n3)))/2*n1));
RM= (int)((((-n2)-(sqrt((double)(n2*n2)-4*n1*n3))/2*n1)));

אגב יש המון סוגריים אז אני מקווה שלא הרסתי משהו תבדוק שזה עובד באמת..

ונ.ב
ככלל אצבע , אל תשתמש ב float , המשתנה הזה עושה המון בעיות בדיוק. אם אתה מעוניין אני אשלח לך מאמר שמפרט מה הבעיות שלו...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sharkk
חבר מתאריך 2.9.02
1306 הודעות, דרג אמינות חבר זה
   21:42   24.02.08   
אל הפורום  
  4. זה טיפל בבעיה חלקית הוא מחזיר לי מספרים ארוכים..  
בתגובה להודעה מספר 3
 
   ולפעמים 0 ו- 0 ...

בכללי התוכנית עצמה טובה חוץ מבעיות הקאסטינג הזה...

כל הקטע הוא רק להבין את הרעיון של השורש...

תודה רבה על העזרה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   21:47   24.02.08   
אל הפורום  
  5. אני מייד ארשום לך תוכנית מסודרת  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 24.02.08 בשעה 21:47 בברכה, Net_Boy
 
אני מניח שזו בעייה בסוגריים (יש בלאגן שלם שם - בגלל זה לפעמים עדיף להשתמש במשתני עזר)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   22:03   24.02.08   
אל הפורום  
  6. הנה תוכנית מסודרת  
בתגובה להודעה מספר 5
 
   ערכתי לאחרונה בתאריך 24.02.08 בשעה 22:04 בברכה, Net_Boy
 
בכוונה השתמשתי במשתנה עזר , שתראה איפה הקאסטינג נכנס פה ...

#include <stdio.h>
#include <math.h>


int main()
{
int num1,num2,num3;
double root;
printf("Enter 3 numbers : \n");
scanf("%d%d%d",&num1,&num2,&num3);

root = sqrt((double)(num2*num2)-(4*num1*num3));

printf("The answers for the quadratic equation are : \n\n {%.3f , %.3f}\n\n",
(-num2 + root) / (2.0*num1), (-num2 - root) / (2.0*num1));


return 0;

}

מקווה שזה עזר לך...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sharkk
חבר מתאריך 2.9.02
1306 הודעות, דרג אמינות חבר זה
   22:11   24.02.08   
אל הפורום  
  7. תודה אחי, אכן שמתי את ה''דאבל'' אחרי הפונקציה sqrt...  
בתגובה להודעה מספר 6
 
   כה זה עזר מאוד. תודה רבה...

ד"א בקשר למילונים שביקשת יש בבילון פרוץ עם זה יעזור לך, לא חסר פה לינקים פרוצים, אם אתה רוצה אני ישלח לך למרות שלא נראה לי שתיהיה לך בעייה למצוא פה...
יש גם את wordart, מילון די ישן...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net