עזרה בתרגיל בשפת c לסטודנט - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בתרגיל בשפת c לסטודנט


רגל קרושה במשגל

Recommended Posts

לכפול ב - 0 אכן לא היה חכם כל כך

אני כופל ב i+1 כמובן ולא במינוס

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

אגב - הקטע עם העצרת גאוני לא הייתי חושב על זה בחיים

קישור לתוכן
שתף באתרים אחרים

כן , לזה התכוונתי. רק קיצרתי[br]פורסם בתאריך: 16.11.2009 בשעה 21:22:38



cin>>x;

power = x;
atzeret = 1;
value = 1;
i=0;
do
{
i=i+1;
atzeret = atzeret*2*i*(i+1);
power = power*x*x;
counter = counter+1;

if (counter % 2 == 0)

value = value+(power/atzeret);

else
value = value - (power/atzeret);
}
while(value>=0.001 || value<=-0.001);


cout<<" sin function of "<<x<<" is "<<value<<"\n\n";

cout<<"please enter a value to be calculated\n";

הוא מדפיס לי -1.#ind . בדקתי בגוגל וזה אומר שיש משתנה לא מוגדר או משהו כזה. אבל אני עוקב אחרי התוכנית ולא מבין מה לא עשיתי נכון.

הכל נראה לי כשורה.

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

קישור לתוכן
שתף באתרים אחרים

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

תנאי העצירה הוא לפי התרגיל. הכל נראה כשורה. מתי שה value יהיה קטן מ0.001 בערך מוחלט , הלולאה תיעצר

קישור לתוכן
שתף באתרים אחרים

וואי אני לא מצליח להבין מה לא בסדר אני משתגע

א) העצרת מתוקנת ועובדת - נבדק.

ב) ניסיתי לשנות את הערך ההתחלתי של value ל x אך גם זה לא עבד

(לא משנה איזה ערך אני נותן ל x הוא פולט אותה תשובה )

קישור לתוכן
שתף באתרים אחרים

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

אז ככה , התוכנית עובדת מצויין ומחזירה ערכים מדוייקים עכשיו. ניסיתי שברים עשרוניים , 1 , 2 , 3, -1 , -2

כשאני מנסה לקלוט את הערך 4 התוכנית לא פועלת. אני לוחץ אנטר והיא כאילו בstand by לא מגיבה.

אני כמעט בטוח שהוא עדיין צריך לבצע את הפעולות שבלולאת ה - while מכיוון ש סינוס של 4 במחשבון הוא -0.7568.....

גם את הערך 3.1 הוא לא מקבל.

עריכה : כדי לתקן את התוכנית באמת שיניתי את תנאי העצירה ל power חלקי atzeret .

קישור לתוכן
שתף באתרים אחרים

סבבה.

דרך אגב, במקום ה-counter אתה יכול להחזיק משתנה בשם sign שכל פעם יהיה 1 או 1- לסירוגין (בכל איטרציה תכפיל אותו ב1-), ואז במקום לעשות if אתה יכול פשוט להוסיף ל-value את sign*power/azeret.

לגבי ה-4: מוזר לי קצת, תנסה להוסיף הדפסות ביניים של value ושל power/atzeret כדי לראות למה זה קורה (הניחוש שלי הוא שיש לולאה אינסופית, אני פשוט לא בטוח למה).

קישור לתוכן
שתף באתרים אחרים

יישמתי את רעיון ה sign . באמת חסך כמה שורות . תודה :)

לגבי הבדיקה בשלבים, אעשה זאת מחר לאחר הלימודים כבר כי חסרות לי כמה שעות שינה טובות. ( כמו לכולנו ) .

בכל מקרה תודה רבה רבה לך, היית לי כמו מורה ממש . אתה ממש אחלה של בנאדם.

ואני אעדכן אותך לגבי הבדיקה מחר אם זה יעניין אותך.

שיהיה לילה טוב!

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...