נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: בעייה בספריית math ועוד שני שאלות

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 April 2007 בשעה 09:55 | IP רשוּם
ציטוט Hades

1)בניתי תוכנית שמשתמשת בפונקציות pow וsqrt
שבאתי לקמפל את התוכנית הוא מצא לי שגיאות בקובץ של הספרייה math
איך אני בידיוק מסדר את זה צריך לערוך את הקוד הזה או משהו כזה?
2)
ניתן לעשות את הביטוי
קוד:
pow(a,2)+pow(b,2)=sqrt(c,2);
או שאני צריך לעשות בדרך הארוכה
קוד:
pow(a,2)=a
pow(b,2)=b
a+b=c
sqrt(c,2)
3) אם אני רוצה לכתוב תו מסויים ע"י הערך האסקיי שלו
צריכים איזו פונקצייה ספריה משהו מיוחד כדי לבצע זאת ?
 
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
אורחת
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 April 2007 בשעה 12:17 | IP רשוּם
ציטוט אורחת

1- תעתיק לכאן את השגיאה.. אולי הוא עושה בעיות כי אתה משתמש בפונקציה לא נכון?
2- כשאתה רוצה לשים ערך במשתנה הוא צריך להיות מצד שמאל של ה"=". והפונקציות האלה לא יכולות להיות פקודה בפני עצמן, זה כמו שתכתוב מספר כשלהו בתור פקודה.. הן חייבות להיקרא כחלק ממשהו אחר. הקוד שלך כמעט בסדר רק טיפה שינויים
קוד:
a=pow(a,2);
b=pow(b,2);
c=a+b;
c=sqrt(c,2);

ואם אתה רוצה בשורה אחת:
קוד:
c=sqrt(pow(a,2)+pow(b,2),2);

3-באיזה שפה אתה כותב?
בC עושים ככה
קוד:
printf("%d",a);

ה %d אומר להדפיס int, לא משנה סוג המשתנה שהוא מדפיס.
בג'אווה **נדמה לי** שככה
קוד:
System.out.print((int)a);
הקוד!-- window.open = SymRealWinOpen; //-->
חזרה לתחילת העמוד הצג את כרטיס החבר של אורחת חפש הודעות אחרות של אורחת בקר בדף הבית של אורחת
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 11 April 2007 בשעה 12:21 | IP רשוּם
ציטוט צחי@

אני לא יודע באיזה שפה כתבת את זה אבל זה לא ב-C (או C++).

גם הביטוי העליון וגם הביטויים התחתונים לא תקינים.

1. השמה ב-C עם אופרטור = מבוצעת מצד ימין לצד שמאל, ככה:

קוד:

int c = a + b;

2. לביטוי כמו:

קוד:

sqrt(c,2);

אין שום משמעות - sqrt מקבל רק פרמטר אחד - המספר שממנו רוצים להוציע שורש ריבועי, וחוץ מזה הביטוי מחזיר ערך של שורש ריבועי - אם אתה לא עושה משהו עם הערך הזה - מכניס למשתנה או מדפיס למסך, אז אים משמעות לביטוי. דוגמה לאיך זה צריך להיות:

קוד:

double a = sqrt(c);

 

 

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 April 2007 בשעה 18:44 | IP רשוּם
ציטוט Hades

תודה לשניכם
בקשר לשגיאות שנותנת לי הספרייה הם
 
קוד:
השגיאה הראשונה
150 C:\Dev-Cpp\include\math.h too many arguments to function `double  sqrt(double)'
השורה בספרייה
_CRTIMP double __cdecl sqrt (double);
לפי מה שנראה לי עשיתי שימוש לא נכון בקוד שלי
השורה שלפיה הטעות שלי היא
קוד:
pow(a,2)+pow(b,2)=sqrt(c,2);
אני אמור לשים את C כמשתנה double?
צחי אם אני רוצה נגיד לדוגמא להוציא שורש שלישי איך אני בידיוק עושה זאת?
והאם זה גם נכון לגביי חזקה אני כותב רק את המספר שאני מעלה בחזקה מבלי לשים את מספר החזקה ?
 
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 April 2007 בשעה 18:49 | IP רשוּם
ציטוט Hades

אורחת לא נראה לי שהבנת אותי ..
אם לדוגמא אני רוצה להציג בריבוע ע"י הערך האסקיי שלה שהוא 253
אני עושה ככה ?
קוד:
char c=253
printf("%c",c);
ועוד שאלה בקשר לטבלת אסקיי..
אם לדוגמא אני עושה נגיד משתנה
a=*
עכשיו נגיד סתם לדוגמא אני עושה
a*5=d
איזה תו אני יקבל? הרי המספר שאני מקבל אין לו ערך בטבלת האסקיי זה נע במחזוריות כלומר ברגע שהוא יסיים את הטבלה הוא יתחיל מחדש עד שהוא יגיע למספר הרצוי?
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 11 April 2007 בשעה 19:03 | IP רשוּם
ציטוט צחי@

שורש אחר מריבועי אפשר לחשב באמצעות pow :

קוד:

float c = pow(x, 1.0f/3.0f);
printf("The 3rd root of x is: %f", &c);

 

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 12 April 2007 בשעה 04:10 | IP רשוּם
ציטוט Hades

לא ממש הבנתי בידיוק את הקוד האחרון
מישהו יכול לענות על שאר השאלות שלי?
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
אורחת
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 12 April 2007 בשעה 06:56 | IP רשוּם
ציטוט אורחת

תקרא את השגיאה ותפעל לפיה, בשביל זה הן שם :)
בכל מקרה אומרים לך ששלחת יותר מדי פרמטרים לפונקציה sqrt היא צריכה לקבל רק מספר אחד....כנראה כמו שצחי אמר, פשוט עניתי מקודם על סמך מה שכתבת. ובשביל להדפיס מספר כאות אתה עושה עם %c כמו שכתבת..
בקשר לטבלת אסקי לא ניסיתי אבל אני חושבת שזה יעשה בעיה....זה בטוח לא יחזור להתחלה אבל לא יודעת איך הוא יגיב. הדרך הכי טובה זה לנסות במקום לשאול....
להעלות בחזקת X זה כמו לעשות שורש ההופכי של X (שזה 1 חלקי X) ואותו דבר להעלות בחזקת שליש זה כמו לעשות שורש ההופכי של שליש..שזה 3
ו!-- window.open = SymRealWinOpen; //-->
חזרה לתחילת העמוד הצג את כרטיס החבר של אורחת חפש הודעות אחרות של אורחת בקר בדף הבית של אורחת
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה