תכנות
—
שיעור 109
11/Februray/2010
דיוק מוגבל
במחשבים יצוג מספרים עם נקודה צפה (עם שברים), הוא בעל דיוק סופי.
זאת מכיון שבדרך כלל המספר מיוצג על ידי מספר סופי (32 או 64) של ביטים.
אם נקח מספר, למשל 1, ונשוב ונחלק אותו ב-2, בשלב מסוים הוא יפסיק לקטון.
דוגמא
התכנית
halves.c
מדגימה את העובדות הללו. תוצאת הרצה:
שימו לב:
פתרון נומרי
כשפותרים משואה בצורה נומרית, אפשר לנצל את תכונת הדיוק הסופי לתנאי עצירה.
במתמטיקה
אבל במחשב זה לא תמיד כך. ראינו כיצד תכונה זו מנוצלת
בפתרון
poly3.c
לתרגיל
.
מחרוזות
ראינו בדיקה יעילה של שויון בין מחרוזות, ראו תרגיל.
קִצורים בשפת C
ראינו שני קיצורים בשפת C בהקשר לשִמוש ב- struct.
-
הצהרת typedef ( שמושית גם במקרים שטרם ראינו).
-
פעולת חץ, במקום הַסִרְבּוּל של כוכבית ונקודה. כלומר
pv—>n
במקום
(*pv).n
דוגמאות בתרגיל האחרון.
תרגילים
-
השלם ותקן תרגילים קודמים.
-
הורד, הרץ והבן את התכנית:
halves.c.
-
הורד, הרץ והבן את התכנית:
eq3.c.
-
הורד, הרץ והבן את התכנית:
streq.c.
-
הורד, הרץ והשלם את התכנית
fraction-v2.c
לפי ההערות (Homework) שבתוכה.
שים לב:
-
השתמש רק ב typedef אחד, ומחק typedef מיותר.
-
דאג לכך שהשימוש ב
struct fraction
יהיה בסגנון אחיד (חץ במקום כוכבית+נקודה).
חזרה לעמוד האם