ABA


"עזרה בבקשה בשפת C...."
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #11241 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11241
DanDun

   17:22   23.11.11   
אל הפורום  
  עזרה בבקשה בשפת C....  
 
   רוצה ללמוד איך לעשות את הדבר הבא בשפת סי.
http://i43.tinypic.com/t5g7lt.gif#

אסור להשתמש בפונקציות\ספריית math.h\מערכים.

איך לדעתכם הדרך הלוגית החכמה ביותר לפתור את המשוואה הזו?
התוצאות שנזין ב-COSX יהיו מעלות ברדיאן.

איך עושים חזקה? עצרת? אשמח לרעיונות ודוגמאות.
תודה רבה.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  help please.. DanDun 25.11.11 08:39 1
  בתיקיה math יש פונקציות שעושות את זה TYSON  25.11.11 12:22 2
     אסור להשתמש בספריית math. ציינתי זאת. DanDun 25.11.11 13:26 3
  רקורסיה ldan192  25.11.11 18:36 4
     עידן תודה על העזרה אך. DanDun 25.11.11 18:49 5
         אז... ldan192  26.11.11 18:36 6

       
DanDun

   08:39   25.11.11   
אל הפורום  
  1. help please..  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TYSON 
חבר מתאריך 17.9.08
8384 הודעות
   12:22   25.11.11   
אל הפורום  
  2. בתיקיה math יש פונקציות שעושות את זה  
בתגובה להודעה מספר 0
 
   http://www.cs.cf.ac.uk/Dave/C/node17.html


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

   13:26   25.11.11   
אל הפורום  
  3. אסור להשתמש בספריית math. ציינתי זאת.  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   18:36   25.11.11   
אל הפורום  
  4. רקורסיה  
בתגובה להודעה מספר 0
 

double cos(double x) {
return 1 + help_cos(x, 2, -1);
}

double factorial(int x);
double pow(int x, int y);

double help_cos(double x, long i, short side) {
const double bot = 1/1000000;
double sum = pow(x, i) / factorial(i);
if (sum < 1/bot) return side*sum;
return (side*sum + help_cos(x, i*2, -1*side));
}

את factorial ו-pow לא בעיה לממש.
אתה צריך לשים לב להדפיס 6 ספרות אחרי הנקודה.
יתכן שיש טעויות איפשהו בקוד כי לא בדקתי אותו, אבל מאמין שתסתדר.
יכול להיות שבתנאי העצירה תצטרך return 0 במקום return side*sum (כי הניסוח לא ברור ב-100%).


בברכה,
עידן


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

   18:49   25.11.11   
אל הפורום  
  5. עידן תודה על העזרה אך.  
בתגובה להודעה מספר 4
 
   אסור להשתמש ברקורסיה שאין לי מושג עדין מזה אומר כי לא הגענו בחומר לזה.
מותר לפתור את התרגיל הנ"ל רק ע"י לולאות.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   18:36   26.11.11   
אל הפורום  
  6. אז...  
בתגובה להודעה מספר 5
 

double cos(double x) {
long i = 2;
short side = -1;
double sum = 1, mid;
const double bot = 1/1000000;
while ((mid = pow(x, i) / factorial(i)) < bot) {
sum += side*mid;
mid *= -1;
i *= 2;
}
return sum+mid;
}

שוב, יתכן וצריך להחזיר רק sum, תלוי למה התכוונו.


בברכה,
עידן


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

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

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



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