מבוא למדעי המחשב – שפת ,)232112( Cקיץ 2016 תרגיל בית 1 מועד להגשה: יום ד' 10/8/2016בשעה 20:00 המתרגל האחראי על תרגיל זה :איתי פרי משרד :טאוב , 213טכניון [email protected] :E-mail שעות הקבלה מופיעות באתר חשוב לשמור את קוד אישור ההגשה שמקבלים מהמערכת כשמגישים!! הוראות הגשה: הגשה אלקטרונית בבודדים. תרגיל שיוגש בזמן יקבל אוטומטית בונוס של 5נקודות. תינתן הארכה אוטומטית של שלושה ימי עבודה (מלבד שישי ושבת) למאחרים ,ללא בונוס. ערעורים ניתן להגיש עד לתאריך המסומן בהודעה על מתן הציונים (כשבועיים לאחר קבלת הציון). במידה והערעור לא יתקבל תהיה הורדה אוטומטית של הבונוס (חמש נקודות) אם התקבל כזה. ערעורים על הדפסות שגויות בפלט שלכם לא יתקבלו .עליכם לבדוק את התוכניות שלכם עם DiffMergeלפני ההגשה. הנחיות: אנא קראו את השאלות בעיון לפני שתתחיל/י בפתרונן. ניתן להניח כי הקלט תקין ,אלא אם כן נאמר אחרת. שימו לב! הבדיקה של השאלות תהיה אוטומטית ,ולכן הקפידו מאוד להדפיס בדיוק בפורמט המבוקש ולבדוק את הפלט שלכם מול הפלט של הדוגמאות שקיבלתם בעזרת .DiffMerge oוודאו את נכונות האותיות הגדולות והקטנות בפלט לפי הדוגמאות וההסברים בתרגיל. oהורדת שורה אחת בסוף כל שורה שהודפסה ,אפילו אם היא האחרונה בתוכנית. oאין להדפיס רווחים בהתחלת שורה ובסופה. יש לבדוק את אתר ה FAQ -של התרגיל לעיתים תכופות על מנת לקבל עדכונים על התרגיל. בתרגיל זה מותר להשתמש בפונקציות מהספרייה stdio.hבלבד (בלי clrscrו.)delay- ההגשה האלקטרונית (בבודדים) היא דרך אתר הקורס .הגישו קובץ zip( hw1.zipולא פורמט אחר כגון .)rarהשם של הקובץ צריך להיות באנגלית ללא רווחים (אין דרישות נוספות על שם הקובץ). כלומר גם sharon.zipלמשל מקובל מבחינת המערכת . הקובץ יכיל בתוכו רק את הקבצים הבאים (לא לעשות zipעל התיקייה בה נמצאים הקבצים להגשה, אלא עם הקבצים עצמם ,במקרה כזה ההגשה לא תתקבל ע''י המערכת!): oקובץ students.txtעם שמך ,מספר תעודת הזהות שלך וכתובת האימייל שלך. oקובץ פתרון hw1q1.cעבור שאלה .1 oקובץ פתרון hw1q2.cעבור שאלה .2 השתמש ב redirection-כדי להפנות את הפלט לקובץ טקסט. יש להקפיד להגיש את כל הקבצים בדיוק עם השמות שמופיעים לעיל .הגשה שלא תעמוד בתנאי זה לא תתקבל ע"י המערכת! שימו לב לאתר ה FAQ -של התרגיל ,אשר מכיל עדכונים ותשובות לשאלות נפוצות ,ויעודכן מפעם לפעם .חשוב להתעדכן לעיתים תכופות – זה יכול לחסוך הרבה בעיות ,ונקודות שירדו בבדיקה שכשלה .בפרט ,לפני פנייה למתרגלת האחראית בדקו את הכתוב על מנת לחסוך לעצמכם זמן המתנה לתשובה ,שבדרך כלל תהיה הפניה ל FAQ -בכל מקרה .ניתן למצוא את ה FAQ-בכתובת: https://docs.google.com/document/d/1vuNWVcXsnbwyiqAcsfwGk_7iamldDXXSp5lIqL_ri7I/e dit?usp=sharing שאלה :1 בשאלה זו אסור להשתמש במבני תנאי ( ,)if, switchבאופרטור הטרנרי ( )? :או בלולאות. אסור להשתמש באופרטור מודולו ( .)%יש להניח שהקלט חוקי ותקין ,כלומר מתאים למבנה המפורט ובטווחים הנכונים .בפרט ,מובטח שכל המספרים אי-שליליים בשאלה הזו. לייצוג מספרים עשרוניים נשתמש בקורס בטיפוס ( doubleאתם יכולים לנסות גם להשתמש ב ,floatולהשוות את התוצאות עם תוצאות של שימוש ב .doubleיש מקרים שבהם מודפסים מספרים שונים ,כתוצאה משוני בדיוק של שני הטיפוסים .שימו לב שאתם מגישים בסוף עם הטיפוס .)double עליכם לכתוב תוכנית שמחשבת עבור המשתמש כמה נתונים על קנייה מסוימת שלו. התוכנית קולטת מהמשתמש 4זוגות של מספרים ,כל זוג מתייחס לסוג מוצר אחר .המספר הראשון בכל זוג מייצג את מספר היחידות שנקנו מהסוג הזה (מספר שלם) ,והמספר השני בכל זוג מייצג את העלות של יחידה אחת מהסוג הזה (מספר עשרוני). הקליטה מתבצעת ע"י הדפסת סוג המוצר בכל פעם ( C,B,Aאו )Dואחריו נקודתיים וירידת שורה. הפלט של התוכנית הוא 3מספרים (כל זוג עוקב מופרד ע"י רווח ,ויש ירידת שורה בסוף). המספר הראשון זה המחיר הכולל של הקנייה כולה (כלומר ,כמה ישלם המשתמש עבור קנייה כוללת כזו) ,מספר זה צריך להיות מודפס כמספר עשרוני עם 2ספרות דיוק אחרי הנקודה העשרונית .המספר השני זה מספר היחידות הכולל של הקנייה ,מספר זה צריך להיות מודפס כמספר שלם (כלומר ,בלי נקודה עשרונית) .המספר השלישי זה המחיר הממוצע של יחידה מסויימת בקנייה הזו ,מספר זה צריך להיות מודפס כמספר עשרוני עם 2ספרות דיוק אחרי הנקודה העשרונית. הקלט והפלט צריכים להיות בהתאם לדוגמה הבאה ולדוגמאות שמופיעות באתר (הקלט מהמשתמש צבוע באדום ,הפלט של התוכנית בשחור): A: 11 B: 11 C: 11 D: 11 Results: 4.00 4 1.00 דוגמאות קבצי קלט ופלט תורידו מהאתר. שאלה :2 בשאלה זו אסור להשתמש במבני תנאי ( ,)if, switchבאופרטור הטרנרי ( )? :או בלולאות. אסור להשתמש באופרטור מודולו ( .)%יש להניח שהקלט חוקי ותקין ,כלומר מתאים למבנה המפורט ובטווחים הנכונים. עליכם לכתוב תוכנית המקבלת 4אותיות אנגליות קטנות כתווים מהמקלדת (מובטח שהקלט תקין ,מוכנס ברצף ללא רווחים ועם "אנטר" בסוף). התוכנית מדפיסה כפלט 3שורות של מידע :בשורה הראשונה מודפס הסכום של מיקומי 4אותיות הקלט הנתונות ,הוא מודפס כמספר שלם .בשורה השנייה מודפסות 4אותיות אנגליות גדולות שמתאימות לאותיות הקלט הקטנות (ללא רווחים ביניהן) ,בשורה האחרונה מודפסת האות האנגלית הקטנה שמיקומה בא"ב האנגלי שווה לסכום מיקומי 4אותיות הקלט הנתונות. לצורך העניין ,המיקום של ' 'aהוא ,0של ' 'bהוא ,1וכך הלאה ,עד ' 'zשמיקומה הוא ( .25ובסוף יש ירידת שורה). מובטח שסכום המקומות (שמודפס בשורה הראשונה) הוא קטן ממש מ .26 הקלט והפלט צריכים להיות בהתאם לדוגמה הבאה ולדוגמאות שמופיעות באתר (הקלט מהמשתמש צבוע באדום ,הפלט של התוכנית בשחור): input: abcd Results: 6 ABCD g הסבר: 4אותיות הקלט הן: a )1שמיקומה בא"ב האנגלי הוא 0 b )2שמיקומה בא"ב האנגלי הוא 1 c )3שמיקומה בא"ב האנגלי הוא 2 d )4שמיקומה בא"ב האנגלי הוא 3 ולפי כך 3שורות הקלט הן: )1סכום המיקומים 6=0+1+2+3 )2האותיות האנגליות הגדולות המתאימותABCD : )3האות האנגלית הקטנה שנמצאת במיקום 6בא"ב האנגליg : דוגמאות קבצי קלט ופלט תורידו מהאתר. בהצלחה!
© Copyright 2024