תרגיל בית 4 (שפת ++C) הנחיות חשובות לכלל התרגילים מעתה והלאה בקורס: התרגילים הם לעבודה ביחידים. מותר להתייעץ אך ורק בעל פה, אסור בתכלית האיסור שחומר כ

מסמכים קשורים
תכנות מונחה עצמים א' – תש"ע

סדנת תכנות ב C/C++

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

שאלהIgal : מערכים דו מימדיים רקורסיה:

Slide 1

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

PowerPoint Presentation

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

פייתון

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה:

Microsoft PowerPoint - rec3.ppt

תוכן העניינים

מבוא למדעי המחשב - חובלים

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

Microsoft Word - Ass1Bgu2019b_java docx

PowerPoint Presentation

Slide 1

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

תוכן העניינים

Slide 1

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מבוא למדעי המחשב - חובלים

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 11

תרגיל 1 בקורס תוכנה 1

PowerPoint Presentation

PRESENTATION NAME

Microsoft Word B

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מהוא לתכנות ב- JAVA מעבדה 3

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft PowerPoint - rec1.ppt

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

מבוא למדעי המחשב

234114

Microsoft Word - דוגמאות ב

Microsoft Word - c_SimA_MoedA2006.doc

PowerPoint Presentation

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן

מבוא למדעי המחשב

Slide 1

Slide 1

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

Tutorial 11

מכללת הדסה, הפקולטה למדעי המחשב מבוא לתכנות מונחה עצמים והנדסת תוכנה סמסטר א', תשע"ו תרגיל 2 תאריך אחרון להגשה: קמפוס הנביאים יום א', 29/11/2015 בשעה

1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle ב

PowerPoint Presentation

Slide 1

Microsoft PowerPoint - lec2.ppt

Microsoft Word - ExamA_Final_Solution.docx

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

DCA & A/B Testing

PowerPoint Presentation

מבוא למדעי המחשב

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

Slide 1

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

הנחיות הורדה ותפעול לספרים דיגיטלים. הוצאת כנרת, זמורה ביתן שמחה להגיש לכם, התלמידים, ספר דיגיטלי. הספרים עצמם הינם בקבצי PDF הניתנים להורדה ללא עלות

מבוא למדעי המחשב

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

מצגת של PowerPoint

הגשה תוך שבוע בשעת התרגול

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

תרגיל בית מספר 1#

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

ex1-bash

תרגיל בית מספר 1#

Microsoft PowerPoint - lec10.ppt

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

מדריך למרצים ומתרגלים 1

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ

תרגול 1

PowerPoint Presentation

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

1

אוניברסיטת בן-גוריון המחלקה למדעי המחשב בוחן במבנים בדידים וקומבינטוריקה פרופ' מתיא כ"ץ, ד"ר עופר נימן, ד"ר סטוארט סמית, ד"ר נתן רובין, גב'

Slide 1

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

שיעור 1

איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl

יום עיון עורכי בקשות להיתרים

הגשה תוך שבוע בשעת התרגול

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

תמליל:

תרגיל בית 4 (שפת ++C) הנחיות חשובות לכלל התרגילים מעתה והלאה בקורס: התרגילים הם לעבודה ביחידים. מותר להתייעץ אך ורק בעל פה, אסור בתכלית האיסור שחומר כתוב/מודפס/אלקטרוני יעבור בין אנשים. בנוסף, על חלק מהתרגילים תיבחנו פרונטלית ועליכם להבין כל דבר בקוד! הימנעו ממספרי קסם: מספרים שמופיעים באמצע הקוד בלי משמעות מיוחדת (לדוגמה נניח שמספר הרשומות בתרגיל אחר הוא מקסימום 50 ואז בכל מקום בקוד כתוב 50. לעומת זאת, 0 לתחילת מערך לא נחשב מספר קסם הפעילו הגיון בריא) והשתמשו במקום זאת בפקודות מאקרו #define) או אם כבר למדתם על כך ב.(const אין להשתמש ב arrays, variable length וכן במשתנים סטטיים ו / או גלובליים. כל התרגילים בקורס צריכים להתקמפל ולרוץ באתר c9.io (האתר מריץ מערכת הפעלה אובונטו) עם שורת הקמפול: gcc Wall Wvla Werror g... ושורת הקמפול: g++ Wall Wvla Werror g D_GLIBCXX_DEBUG std=c++11... עבור תרגילי ++C או במידה ומצורף Makefile עם ה Makefile המצורף יש להקפיד על סגנון תכנות טוב כמו שלמדתם. לדוגמה, להימנע מחזרות קוד (לכתוב פונקציות שצריך), שמות משתנים עם משמעות, בהירות הקוד, תיעוד הקוד, להקפיד להשתמש בקבועים שצריך ולא במספרי קסם וכו'. אופן כתיבת ההערות : בכל תחילת קובץ הצהרות (h. או (.hpp יש לכתוב את תפקיד הקוד שבקובץ. כמו כן לפני כל פונקציה ומתודה ומשתנה מחלקה/מבנה יש לכתוב הערה על תפקידם. יש להוסיף הערות במימוש לפי הצורך. בקורס זה במידה וניתנו לכם הוראות מפורטות לגבי פונקציה בתרגיל מותר לכתוב ראה בהגדרת התרגיל במקום לעשות.copy&paste עליכם להגיש קובץ ששמו מספר ת.ז. שלכם כמו שהיא מופיעה באתר המודל נקודה.zip לדוגמה, אם מספר ת.ז. שלי הוא 12345678 אז שם הקובץ יהיה: 12345678.zip חובה להשתמש ב make zipfile ע"מ לייצר קובץ תקין ו make checkzipfile ע"מ לבדוק אותו חשוב: חלק מהבדיקה אוטומטית ואי עמידה בקמפול/בדיקה ע"י ה Makefile הניתן יגרור אפס מיידית. הקפידו להשתמש בפונקציות של ++C (למשל (new, delete, cout על פני פונקציות של C (למשל.(malloc, free, printf בפרט השתמשו במחלקה string ולא במחרוזת של C (כלומר, *.(char יש להשתמש בספריות סטנדרטיות של ++C ולא של C אלא אם כן זה הכרחי. הקפידו על עקרונות.Information hiding לדוגמה, הקפידו להגדיר משתני מחלקות כ.private הקפידו לא להעביר אובייקטים גדולים by value אלא by reference או.by const reference הקפידו מאד על.const correctness כלומר, על שימוש במילה השמורה const בצורה נכונה.

אם אתם מקצים זיכרון דינמי, הקפידו לשחרר אותו (מומלץ להשתמש ב valgrind על מנת לוודא שאין דליפות זיכרון). שאלות על התרגיל יש לשאול בפורום המתאים במודל בלבד!

תרגיל: בתרגיל זה נבנה רשימה מקושרת. את הרשימה עליכם לממש בקבצים MyLinkedList.hpp (הצהרות בלבד) ו MyLinkedList.cpp (מימוש). הרשימה תהיה רשימה מקושרת דו כיוונית של מחרוזות ומספרים ממשיים (כל צומת יחזיק מחרוזת,key) ייצגו ע"י (std::string ומספר ממשי.((data) יהי n מספר איברים ברשימה, n1,n2 מספרי איברים ברשימות כאשר יש 2 רשימות. אפשר להניח שאורך כל מחרוזת key הוא (1)O. עליכם לממש: בנאי חסר פרמטרים שיוצר רשימה ריקה. סיבוכיות נדרשת: (1)O בנאי המקבל 2 מערכים פרימיטיביים ואורכם (2 המערכים באורך שווה) ומייצר רשימה המכילה בזוגות את ה keys וה values (ראו גם שימוש בטסט שניתן). סיבוכיות נדרשת: O(n) בנאי מעתיק היוצר עותק עמוק copy).(deep סיבוכיות נדרשת: O(n) הורס (destructor) המנקה את כל הזיכרון בו השתמשתם. סיבוכיות נדרשת: O(n) אופרטור השמה (operator=) המנקה את צד שמאל ויוצר עותק עמוק של צד ימין בצד שמאל. סיבוכיות נדרשת: O(n1+n2) מתודה add המוסיפה איבר לסוף הרשימה. סיבוכיות נדרשת: (1)O מתודה remove שמקבלת מחרוזת ומוציאה את כל האיברים ברשימה המכילים את מחרוזת זאת. המתודה תחזיר את מספר האיברים שהוצאו. סיבוכיות נדרשת: O(n) המתודה isinlist מקבלת 2 פרמטרים: מפתח (מחרוזת) ומספר ממשי. המתודה מחזירה ערך בוליאני true אם הצירוף של המפתח והמספר מופיע ברשימה לפחות פעם אחת ו O(n) אחרת. סיבוכיות נדרשת: false המתודה sumlist מחזירה את סכום המספרים הממשיים ברשימה (סכום כל ה data של איברי הרשימה). סיבוכיות נדרשת: O(n) מתודה size המחזירה את גודל הרשימה. סיבוכיות נדרשת: (1)O אופרטור == ואופרטור =! המשווים לוגית בין הרשימה לרשימה אחרת. כלומר אופרטור == יחזיר true אך ורק במידה וכל הזוגות של המפתחות והמידע שווים זה לזה לחלוטין ובאותו הסדר ויחזיר false בכל מצב אחר. אופרטור =! יחזיר את ההפך (ממשו אותו בעזרת ==) הנחיות נוספות בתרגיל זה באופן ספציפי מותר להשתמש אך ורק במחלקת string מהספרייה הסטנדרטית. כלומר, ה include היחיד מהספרייה הסטנדרטית יהיה בקובץ.string והוא יהיה של MyLinkedList.hpp הקוד שלכם צריך להתקמפל בלינוקס אובונטו ע"י ה Makefile שניתן לכם. שימו לב שעליכם להשלים את ה google test שניתן בקובץ MyLinkedListTest.cpp מכיוון שהוא לא בודק את כל הפונקציות ולא בודק את כל סוגי השימוש האפשריים בפונקציות. בדיקת הקוד לפני ההגשה, גם על ידי קריאתו וגם על ידי כתיבת בדיקות אוטומטיות היא אחריותכם. חישבו על מקרי קצה, חלק מהציון ניתן על עמידה בבדיקות אוטומטיות.

ניתן לממש את הקוד ע"י מחלקה יחידה. ניתן (אך לא חובה) להשתמש במחלקה נוספת (MyLinkedListNode) שתייצג איבר ברשימה. שימו לב כי ניתן וצריך לממש את כל המחלקה Information hiding יותר נכון מבחינת (כך MyLinkedList.cpp בקובץ MyLinkedListNode ). בעיקרון רצוי שזאת תהיה מחלקה שרק מכילה מידע ללא לוגיקה מסובכת ואז אין צורך לבדוק אותה (ע"מ לבדוק אותה היינו צריכים שיהיה עוד.(header יתקבל גם מימוש של.MyLinkedList.hpp בקובץ MyLinkedListNode בתרגיל זה אתם יכולים להניח שאין שגיאות (הקצאות הזיכרון תמיד מצליחות, הקלט תמיד חוקי וכו'). חובה להשלים את הגוגל טסט בקובץ MyLinkedListTest.cpp ע"מ להחזיר מספרי איברים השתמשו בטיפוס size_t העדיפו קוד נקי ויפה על פני קוד "יעיל". לדוגמה, כמו שכתבנו ממשו את אופרטור =! ע"י שימוש באופרטור ==. הערת העשרה: לרוב אנשים חוזרים על קוד לשם "יעילות" אך מנגנונים כמו inline ואופטימיזציות של הקומפיילר גורמים לכך שהקוד לא באמת יותר יעיל מקוד נקי ומסודר. הנחיות הגשה כזכור עליכם להגיש קובץ ששמו מספר ת.ז. שלכם כמו שהיא מופיעה באתר המודל נקודה.zip לדוגמה, אם מספר ת.ז. שלי הוא 12345678 אז שם הקובץ יהיה: 12345678.zip הקובץ יכיל את הקבצים הבאים: MyLinkedList.hpp MyLinkedList.cpp MyLinkedListTest.cpp חובה להשתמש בקובץ Makefile המצורף לצורך קימפול והרצת התרגיל, יצירת ובדיקת קובץ.zip

שאלות תיאורטיות על שאלות כאלו וכדוגמתן תצטרכו לענות בבחינה הפרונטלית (בנוסף לשאלות על הקוד שהגשתם). שימו לב: אין צורך להגיש תשובות לשאלות הללו

.1

.2 בהצלחה!