תכנות
—
שיעור 125
25/October/2010
פיצול תכנית לפונקציות בעזרת struct
ראינו דוגמת פתרון
addmult-v3.c
לתרגיל
משעור קודם
.
דברנו בשבח פִצול לפונקציות כדי להקל על הקריאה וההבנה של התכנית.
במקום להעביר הרבה פרמטרים מפונקציה לפונקציה, אפשר לארוז אותם למשתנה אחד מטיפוס
struct
שמוגדר לפי הצורך.
תרגילים
-
הורד, בנה, הרץ והבן היטב את התכנית
addmult-v3.c
-
בתכנית
addmult-v3.c
המקרה שהפרמטר המספרי הראשון שניתן הוא שלילי מטופל בצורה שגויה.
תקן את התכנית לגירסא
addmult-v4.c
כך שהמקרה יטופל כיאות.
-
כתוב תכנית
eq2.c
שמקבלת מקדמים "ממשיים" (לאו דוקא שלמים) של משְוָאה רבועית.
התכנית תבדוק את חוקיות תרגום המחרוזות משורת הפקודה למספרים, אפשר להשתמש בפונקציה התקנית strtod.
בכדי למצוא שֹרש רבועי, ניתן להשתמש בפונקציה התקנית sqrt.
-
אם המספרים אינן תקינים התכנית תצא עם שגיאה והודעה מחכימה.
-
אם המקדם הראשי הוא אפס, התכנית תודיע שהמשְוָאה אינה רבועית.
-
אם הדיסקרימיננט (ה"מַפְלֶה"?) שלילי, התכנית תודיע שאין פתרונות ממשיים (רשות: למצא פתרונות מרוכבים).
-
אחרת: יש להדפיס את הפתרונות הממשיים.
-
כל החישובים צריכים להעשות בפונקציות נפרדות מְהַ main.
חזרה לעמוד האם