Professional Documents
Culture Documents
Segaviv@cs Technion Ac Il
Segaviv@cs Technion Ac Il
הנחיות:
• הגשה בבודדים .עליכם לכתוב את הפתרונות לבד ולהגיש ביחידים.
• קראו את השאלות בעיון לפני שתתחילו בפתרונן.
• מלבד מילואים ,לא יתקבלו תרגילים אחרי מועד הגשה .הגשה באיחור לאחר מועד הגשה
נחשבת כאי הגשה.
• כל יום מילואים = יום דחייה .על מנת לקבל את הדחייה ,עליכם לשלוח באי מייל או להשאיר
בתא הדואר של המתרגל האחראי לתרגיל זה )בקומה 5בבניין טאוב( ,עותק של האישור
המראה שהייתם במילואים )טופס .(3010אם האישור יגיע אליכם בתאריך מאוחר ,יש להודיע
על כך למתרגל אחראי על התרגיל.
• ערעורים ניתן להגיש עד שבוע לאחר קבלת הציון.
• לא ניתן לערער על תוצאות הבדיקה האוטומטית.
• שימו לב! הבדיקה הינה אוטומטית ,ולכן הקפידו להדפיס בדיוק בפורמט שהתבקשתם
ובידקו עם DiffMergeאת הפלט שלכם מול הפלט של הדוגמאות שקיבלתם.
oהשתמשו ב redirectionכדי להפנות את הפלט לקובץ טקסט.
oוודאו את האותיות הגדולות והקטנות לפי הדוגמאות וההסברים בתרגיל.
oהורדת שורה אחת בסוף כל שורה שהודפסה ,אפילו אם היא האחרונה בתוכנית.
oאין להדפיס רווחים שלא התבקשתם להדפיס )בתחילת שורה או בסופה(.
• בתרגיל זה מותר להשתמש בפונקציות מהספרייה stdio.hבלבד ,שנלמדו בהרצאות ובתרגולים.
ההגשה הינה אלקטרונית ובבודדים דרך אתר הקורס .קובץ הההגשה יהיה מסוג ) zipולא אף פורמט •
אחר( ויכיל בתוכו את הקבצים הבאים בלבד ,ללא כל תיקיות:
oקובץ students.txtעם שמך באנגלית ,מספר תעודת הזהות וכתובת האי מייל שלך.
oקובץ פתרון hw1q1.cעבור שאלה .1
oקובץ פתרון hw1q2.cעבור שאלה .2
oקובץ פתרון hw1q3.cעבור שאלה .3
חובה לשמור את קוד אישור ההגשה שמקבלים מהמערכת לאחר שמגישים ,עד לסיום הקורס. •
יש להקפיד להגיש את כל הקבצים בדיוק עם השמות שמופיעים לעיל .הגשה שלא תעמוד בתנאי זה •
לא תתקבל ע"י המערכת! אם המערכת לא מקבלת את התרגיל שלכם ,חפשו את הפתרון לבעיה
באתר הקורס תחת הכפתור .FAQ
תרגיל זה עשוי להבדק גם ידנית .יושם דגש מיוחד על אינדנטציה נכונה ושמות משתנים •
משמעותיים.
שאלה 1
בשאלה הזו עליכם לכתוב תוכנית שמזהה ביצוע פעולה חשודה בחשבון בנק.
התוכנית תקבל רשימה של פעולות שנעשו בחשבון הבנק )הפקדות ומשיכות( ואם לפחות בפעולה אחת
הועבר סכום כסף הגדול פי xמהממוצע החשבון יסווג כחשוד.
התוכנית תקלוט תחילה את המספר ) xשבר( ותוודא שהוא חיובי .במידה והוא לא חיובי תודפס הודעת
שגיאה והתוכנית תאפשר למשתמש להכניס ערך אחר.
לאחר מכן ,התוכנית תקבל את רשימת הפעולות שהתבצעו בחשבון כסדרה של מספרים שלמים
המציינים את ההפקדות והמשיכות שנעשו לאחרונה בחשבון .מספר חיובי מציין הפקדת כסף בחשבון
ומספר שלילי מציין משיכת כסף מהחשבון .המספר אפס יתקבל בסוף הרשימה ויציין את סופה.
ניתן להניח שכל המספרים ברשימה הם מספרים שלמים בלבד.
לבסוף על התוכנית להדפיס את המאזן בחשבון )בהנחה שלפני תחילת הפעולות המאזן היה אפס( ,את
ממוצע סכומי הפעולות )הערכים המוחלטים( שהתבצעו בחשבון ולהדפיס האם התבצעה פעולה חשודה
בחשבון אם לפחות באחת מהפעולות הסכום היה יותר מפי xמהממוצע .במידה ולא התבצעה פעולה
חשודה תודפס הודעה מתאימה )כמו בדוגמא(.
במידה ולא התבצעו פעולות בחשבון החשבון לא ייחשב כחשוד.
יש להדפיס את הממוצע עם שתי ספרות אחרי הנקודה העשרונית.
יש להקפיד שהפלט של התוכנית שלכם ייראה בדיוק כמו דוגמת ההרצה )שימו לב לרווחים וירידות
שורה(.
ממוצע הסכומים )האבסולוטיים( של הפעולות שבוצעו הוא 459.00ולכן הסכום המקסימלי שניתן למשוך
או להפקיד בלי לעורר חשד הוא .459.0
*
1.707
=
783.513מאחר ויש פעולות עם סכום אבסולוטי גבוה
יותר ) (-‐800 ,1000החשבון ייחשב כחשוד.
;)printf("%.2f", 2.87473
לדוגמא ,אם המספר האחרון בקלט מתחלק ב 3ונקלטת האות aתודפס האות Dואם נקלטת האות Y
תודפס האות .b
אם המספר האחרון בקלט לא מתחלק ב 3ונקלטת האות aתודפס האות X
ואם נקלטת האות Yתודפס
האות .v
כל תו אחר שאינו אות ואינו ספרה יודפס כפי שהוא .ספרות לא יודפסו.
ניתן להניח שכל המספרים בקלט חיוביים )לא יופיעו מספרים שליליים או אפס בקלט(.
התוכנית מסיימת את קליטת הקלט עם קבלת התו ) EOFמתקבל ב Windowsע"י הקשת Ctrl+Zוב
Macע"י הקשת Ctrl+Dואח"כ .(Enter
דוגמת הרצה:
הפלט יהיה:
שאלה 3
בתרגיל הזה עליכם לכתוב תוכנית המדפיסה סמיילי.
הסמיילי שיודפס יהיה מורכב מריבוע )הראש( ובתוכו שתי עיניים ופה.
התוכנית תקלוט תחילה את גודל הצלע של הריבוע ותוודא שהוא גדול או שווה ל .6יש לאפשר למשתמש
להמשיך להכניס מספרים עד שמתקבל גודל תקין.
לאחר מכן ,התוכנית תקלוט את העמודה שבה תצויר העין השמאלית .העין הימנית תצויר באופן סימטרי
מימין לעין השמאלית .לכן ,יש לוודא שהעמודה שנקלטה אכן נמצאת בחצי השמאלי וגדולה ממש מאפס.
שימו לב :במידה והתקבל אורך אי זוגי עבור הריבוע העמודה האמצעית אינה חוקית )ראו דוגמא(.
יש לאפשר להמשיך להכניס מספרים עד לקבלת עמודה חוקית.
לאחר מכן התוכנית תקלוט 3תווים )הראשון עבור הראש ,השני עבור העיניים והשלישי עבור הפה(.
יש להתעלם מכל סוגי הרווחים בקליטת התווים.
התוכנית תדפיס ריבוע בגודל שנקלט ,בשורה השלישית מלמעלה יודפסו העיניים לפי העמודה שנקלטה
ובשורה השלישית מלמטה יודפס הפה בין העמודות של העיניים )לא כולל ,כמו בדוגמא(.
בתרגיל זה אין לרדת שורה לאחר הדפסת השורה האחרונה.