הצילו!!

the YOOK

New member
הצילו!!

עשיתי תוכנית בפסקל שפותרת משוואות ממעלה ראשונה בשני נעלמים ויש לי בעיה: בשלב הסופי שמחלקים את המקדם C במקדם A - אם אני משתמש ב- DIV אז התשובה לא מדוייקת ואם ב- / אז זה יוצא מדוייק אבל משהו כזה: (לדוגמא) 2.34450000-1e.23 התשובה יוצאת מדוייקת אם מסתכלים רק על הספרות הראשונות שאחרי ה נקודה העשרונית, מישהו יודע איך אני יכול לגרום למחשב לחשב רק 3 ספרות אחרי הנקודה העשרונית??
 

miki26

New member
אולי..

אני מכיר בשפת C יש אפשרות לקלוט\לפלוט רק 3 ספרות אחר הנקודה ומשתמשים ב- f.3 % אם זה יעזור לך אז בבקשה.
 

zagzagzag

New member
אתה לא יכול לשלוט על החישוב,

אבל אתה יכול לשלוט על קלט/פלט כדי להציג 3 ספרות אחרי הנקודה, אתה צריך להשתמש באחת מהפקודות -
num: real; writeln(num:3); writeln(num:3:3);​
אני לא זוכר מה המשמעות של כל אחד מהטורים (וגם אין לי קומפיילר כרגע), אבל אתה יכול לבדוק בעצמך.
 

the YOOK

New member
תודה אבל

איפה אני צריך להוסיף את ה- writeln הזה? לפני ה- writeln הראשון?
 

zagzagzag

New member
לא הבנתי את השאלה...

אבל נזכרתי במשמעות של הפקודות מההודעה הקודמת שלי: הפקודה -
writeln(some_expression : 6);​
תדפיס את some_expression ותקצה לו 6 תווים על המסך. כלומר, אם הביטוי ארוך מ-6 תווים, יודפסו רק 6, ואם הוא קצר מ-6 תווים, יודפסו רווחים כדי להשלים ל-6 תווים. הפקודה -
writeln(real_number:6:4);​
תקצה ל-real_number שישה תווים על המסך, ותדפיס אותו עם 4 ספרות אחרי הנקודה. אז אם התוצאה שלך נמצאת במשתנה result, ההדפסה אמורה להיראות כך:
writeln("The result is: ", result:5:3);​
נא לא להרוג אותי על שגיאות תחביר
 

the YOOK

New member
תודה../images/Emo70.gif../images/Emo70.gif../images/Emo70.gif

פתרת לי את הבעיה
 
למעלה