מבוא לתכנות ב ,java -סמסטר א תשע"ו עבודה מס' :1לולאות ומערכים מתרגל אחראי :אבי יצחקוב תאריך פרסום העבודה16/11/15 : מועד אחרון להגשה03/12/15 : הקדמה בעבודה זו עליכם לממש תוכנית המציגה למשתמש תפריט .על המשתמש יהיה לבחור באחת מן האפשרויות בתפריט ,ולאחר שהמשתמש יזין את בחירתו על התוכנית לבצע את המטלה הנדרשת ובסיומה להציג את התפריט שוב להמשך אינטראקציה עם המשתמש .התוכנית תסתיים רק כאשר תיבחר האפשרות לסיום התוכנית. כמו כן עליכם לבדוק שהאפשרות שנבחרה היא חוקית ולהציג הודעת שגיאה במקרה הצורך. התפריט בהפעלת התוכנית התפריט שיודפס למסך הוא כדלקמן: 0יציאה מהתוכנית בהיבחר אפשרות 0התוכנית תסתיים ותדפיס למסך ”“Program terminated. מבוא לתכנות ב ,java -סמסטר א תשע"ו 1הרצף הארוך ביותר של מספרים ראשוניים עוקבים בהיבחר אפשרות 1בתפריט ,על התוכנית לקלוט מהמשתמש רשימה של מספרים שלמים אי שליליים עד אשר ייקלט המספר -1המסמן את סיום הקלט .לאחר מכן על התוכנית להדפיס למסך את הסדרה הארוכה ביותר של מספרים ראשוניים עוקבים שנקלטו ברצף( .שני מספרים ראשוניים הם עוקבים אם לא קיים אף מספר ראשוני ביניהם). דוגמא :נניח כי המספרים שנקלטו לפי סדר משמאל לימין הם .4,8,2,3,5,6,9,11,17,19,23,29,31 :בקלט זה ישנם שני רצפים של מספרים ראשוניים עוקבים 2,3,5 :וכן . 17,19,23,29,31הרצף האחרון הינו הארוך יותר ולכן יהיה זה שיודפס למסך. דוגמת הרצה: מבוא לתכנות ב ,java -סמסטר א תשע"ו 2פלינדרום בהיבחר אפשרות 2בתפריט ,על התוכנית לקלוט מהמשתמש מספר ולבדוק האם הוא פלינדרום .אם המספר הוא פלינדרום התוכנית תדפיס ! . Palindromeאחרת התוכנית תדפיס את המספר עצמו נאמר על מספר שהוא פלינדרום אם רצף הספרות שמופיע משמאל לימין זהה לרצף הספרות מימין לשמאל. לדוגמא :המספרים 121ו 1331-הם פלינדרומים. דוגמאות: מבוא לתכנות ב ,java -סמסטר א תשע"ו 3המחלק המשותף השני הכי גדול בהיבחר אפשרות 3בתפריט ,על התוכנית לקלוט מהמשתמש זוג מספרים ולאחר מכן להדפיס את המחלק המשותף השני הכי גדול שלהם .במידה ולצמד המספרים שנקלטו יש פחות משני מחלקים משותפים על התוכנית להחזיר 1 4פולינום בהיבחר אפשרות 4בתפריט הראשי על התוכנית להציג את התפריט הבא לפעולות על פולינום: בסיום כל פעולה על התפריט של הפעולות על פולינום להיות מודפס להמשך אינטראקציה עם המשתמש .רק כאשר תיבחר אפשרות 0התוכנית תחזור לתפריט הראשי ותדפיס אותו. מבוא לתכנות ב ,java -סמסטר א תשע"ו בחלק זה עליכם לייצג פולינום (עד דרגה )10בעזרת מערך בגודל 11אשר יכיל את מקדמי הפולינום (כאשר האיבר במקום ה i-הוא המקדם של 𝑖 𝑥 ). הערה :מקדמי הפולינום הינם מספרים שלמים בלבד ( הבדיקה תתייחס למספרים שלמים בלבד). לדוגמא הפולינום 4𝑥 8 + 3𝑥 5 + 2𝑥 2 + 7מיוצג ע"י המערך: 0 0 4 0 0 3 0 0 2 0 7 4.1שינוי מקדם בפולינום בהיבחר אפשרות 1בתפריט עבור פעולות על פולינום ,עליכם להציג למשתמש הודעה להכניס את הדרגה של המקדם אותו הוא מעוניין לשנות ולאחר מכן לבקש ולקלוט את המקדם ולעדכן בהתאם את המערך. 4.2הדפסה בהיבחר אפשרות זו על התוכנית להדפיס את הפולינום .שימו לב אם המקדם של 𝑖 𝑥 הוא אפס אין להדפיס אותו דוגמת הרצה משולבת: מבוא לתכנות ב ,java -סמסטר א תשע"ו 4.3ערך הפולינום בנקודה בהיבחר אפשרות ,3עליכם לקלוט ערך xמהמשתמש להציב אותו בפולינום ולהדפיס את ערך הפולינום עבור x 4.4נגזרת הפולינום בהיבחר אפשרות זו על התוכנית לשנות את הפולינום לנגזרת שלו ולהדפיס את הפולינום לאחר השינוי. דוגמת הרצה :נניח שלאחר מספר פעולות הפולינום הוא 6𝑥 7 + 4𝑥 2 מבוא לתכנות ב ,java -סמסטר א תשע"ו 4.5העלאת פולינום בריבוע בהיבחר אפשרות זו על התוכנית להעלות את הפולינום בריבוע ולהדפיס את הפולינום לאחר השינוי .שימו לב במידה והפולינום המתקבל הוא מדרגה גבוהה מ 10-רק המקדמים הקטנים מ 10ישמרו והשאר "יאבדו". מבוא לתכנות ב ,java -סמסטר א תשע"ו הוראות הגשה: יש להגיש קובץ zipששמו הוא ת.ז שלכם ,לדוגמא 123456789.zipובתוך קובץ זה יהיה קובץ בודד בשם Assignment1.javaשבו כתבתם את הקוד של העבודה .ההגשה היא דרך מערכת הsubmission system- הערות: .1על פלט התוכנית שלכם להיות זהה לחלוטין לקובץ פלט הריצה המפורסם לכל קלט .יש להשוות את הפלטים ע"י התוכנה .textDiff .2בעבודה זו ניתן להשתמש אך ורק בלולאות if else ,ומערכים חד מימדיים( .אין להשתמש בפונקציות) .3באחריות כל סטודנט להתעדכן בשינויים/עדכונים באתר הקורס. .4אפשר להניח שהקלט יהיה תמיד מטיפוס int .5יש לתת שמות משמעותיים למשתנים ויש לתעד את הקוד ע"י הערות ברורות ובהירות. .6על ההערות להיות כתובות באנגלית בלבד. .7יש להקפיד שהעבודה תהיה קריאה .אין לכתוב שורות קוד ארוכות מאוד ויש להקפיד על הזחה (אינדנטציה) :על קטעי הקוד הנמצאים בתוך לולאה או ifלהיות מוזזים ימינה ב .tab -למידע נוסף על אינדנטציה ראו https://en.wikipedia.org/wiki/Indent_style .8אין להשתמש בספריות ,פונקציות או כל קטע קוד שמשתמש בדברים שלא הועברו בשיעור. .9מומלץ לא לכתוב את כל הקוד בבת אחת ורק אז לדבג אותו ,אלא לכתוב חלק אחד (לדוגמא אחת מן האפשרויות בתפריט) ורק לאחר שחלק זה נבדק היטב להמשיך הלאה. .01מומלץ לא לחכות לרגע האחרון ולהתחיל את העבודה בהקדם האפשרי. .11שאלות בנוגע לעבודה יש לפרסם בפורום עבור עבודה 1הנמצא באתר הקורס .לפני פרסום שאלה ,יש לעבור על השאלות שכבר נענו בפורום ולוודא שהשאלה לא נשאלה כבר וקיבלה מענה .שאלות שיישלחו למיילים של צוות הקורס או שאלות חוזרות לא יקבלו מענה. .21נא לשמור על הגינות אקדמית. בהצלחה!
© Copyright 2024