מפה - Map חומרי עזר שהוכנו ע"י משתתפי קורס מורים מובילים תשע"א ניתן להשתמש בחומרים לצורך הוראה בלבד. אסור לפרסם את החומרים או לעשות בהם שימוש מסחרי כלשהו.

Slides:



Advertisements
Similar presentations
Object Oriented 33 MCSD DORON AMIR
Advertisements

ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
האוניברסיטה העברית בירושלים
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
מכונת מצבים תרגול מס' 4 Moshe Malka.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
שאילת שאלות שאלת חקר המפתח למנעול 1. שאילת שאלות – שאלת חקר מה ניתן לשנות ? :  בתנאים : טמפ ' או לחץ או הכלים, או הציוד  בחומרים : איכות או כמות או.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות:  המשתמש בוחר קובץ שעליו הוא רוצה לבצע את האנליזה, ולוחץ עליו עם כפתור ימני בעכבר.  נפתח תפריט.
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
רישום חומרי למידה והסטנדרט הישראלי: ISRACORE יהודית בר אילן, אוניברסיטת בר-אילן אלי שמואלי, מיט"ל.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
עקרון ההכלה וההדחה.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
תכנות בשפת C תרגול 15 תרגול חזרה 2 תרגילים ממבחנים
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
1 מבוא למדעי המחשב הרצאה 21: Queue, Iterator & Iterable.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
Practice session 6 Sequence Operations Partial Evaluation Lazy Lists.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבנה נתונים או טיפוס נתונים מופשט חלק ב – פעולות על רשימה הוכן ע " י ולרי פקר דצמבר 2015.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
Java Reflection הוכן על-ידי אחמד ג'בארה
מחרוזות – הטיפוס String
האוניברסיטה העברית בירושלים
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
Tirgul 12 Trees 1.
מבוא למדעי המחשב סיבוכיות.
Exams questions examples
תירגול 14: מבני נתונים דינאמיים
ממשקים - interfaces איך לאפשר "הורשה מרובה".
בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
ניתוח מערכות מידע תכנות ב C#
מודל חישוב בסיסי שיעור 1.
תכנות מכוון עצמים ושפת JAVA
שאלות מבחינות קודמות יואב ציבין.
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Presentation transcript:

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

מה בפרוייקט ? אוסף שאלות שמימושן יהיה בעזרת הטיפוס המופשט מפה. ניתוח ומידול בעייה. הדגמת היתרון של מימוש בעזרת מפה מבחינת קלות הפתרון ויעילות הפעולות. פתרונות לשאלות בשפות java ו - #C. מטרות : להרחיב את מגוון הדוגמאות לשימוש בטיפוסים מופשטים מעבר למחסנית, תור והמבנים : רשימה ועץ בינרי. להציג בעיה ולהראות את ההבדלים ביעילות מימוש הפעולות כאשר משתמשים בטיפוס מפה לעומת שימוש בטיפוסים אחרים, כגון : רשימה או עץ בינרי. Evi גרינוולד, מיכל עמירה, דורית כהן

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

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

ממשק המחלקה מפה Map בשפת java תיאור הפעולה הפעולה הפעולה בונה מפה ריקה Map() הפעולה מחזירה את הערך הקשור למפתח key. הפעולה מחזירה null אם המפתח לא קיים במפה V getValue (String key) הפעולה מוסיפה למפה הנוכחית את המפתח key ואת הערך value הקשור אליו. אם key קיים במפה, הפעולה מעדכנת את הערך הקשור אליו ב -value שהתקבל void insert (String key, V value) הפעולה מוציאה מהמפה הנוכחית את המפתח key ואת הערך הקשור אליו. הפעולה מחזירה את הערך הקשור למפתח שהוצא מהמפה. אם המפתח אינו קיים במפה – יוחזר null V remove (String key) הפעולה מחזירה את אוסף המפתחות שקיימים במפה הנוכחית, ממויין בסדר אלפיבתי עולה. אם המפה ריקה – יוחזר מערך בגודל 0. String[] getAllKeys() הפעולה מחזירה מחרוזת המתארת את המפה כך : [key1:value1, key2, value2, ….] String toString() Evi גרינוולד, מיכל עמירה, דורית כהן

נתון קטע קוד אשר מטפל בתלמידים וציוניהם : Scanner in = new Scanner(System.in); Map grades = new Map (); Integer grdValue; String name; int grade; System.out.println("Enter name"); name = in.next(); while ( !name.equals("end")) { System.out.println("Enter grade"); grade = in.nextInt(); grdValue = grades.getValue(name); שאלה ראשונה : שאלת מעקב על מפה Evi גרינוולד, מיכל עמירה, דורית כהן

if (grdValue!=null) { if ( grade > grdValue) grades.insert(name, grade); // update grade } else // (grdValue==null) grades.insert(name, grade); System.out.println("Enter name"); name = in.next(); } System.out.println(grades); א ) עקוב אחר קטע הקוד בעזרת תרשים או טבלת מעקב ורשום את הפלט עבור הקלט משמאל לימין : dani, 80, reut, 70, dani, 68, avi, 90, reut, 72, end Evi גרינוולד, מיכל עמירה, דורית כהן

ב ) הוסף לכל היותר שתי שורות לקוד, כדי להציג את מספר התלמידים באוסף. חובה להשתמש בפעולות הממשק של מפה. ג ) הוסף את שורות הקוד : String[] arr = grades.getAllKeys(); String sName = arr[0]; Integer g = grades.remove(sName); System.out.println("grade is: " + g); System.out.println(grades); צייר את תוכן המערך arr. רשום את הפלט. ד ) לפניך כותרת פעולה אשר מקבלת מפה של שלמים ומחזירה את הערך הגבוה ביותר public static int getMaxGrade(Map m) השלם את גוף הפעולה. חזרה ל - סוגי השאלות Evi גרינוולד, מיכל עמירה, דורית כהן

שאלה 2: שכיחות תווי המקלדת בטקסט לבניית סידור התווים על מקשי המקלדת, יש לבדוק את שכיחות השימוש בכל אחד מהם. כדי לסייע במציאת שכיחות תווי המקלדת, נגדיר טיפוס SignCounter אשר מכיל תכונה אחת בלבד :Map counter המפתחות יהיו התווים שהוקלדו והערכים יהיו מספר הפעמים שהופיע כל תו. הערה : מאחר והמפתח הוא מטיפוס מחרוזת, נמיר את התו למחרוזת. Evi גרינוולד, מיכל עמירה, דורית כהן

ממשק המחלקה SignCounter תיאור הפעולה הפעולה הפעולה בונה SignCounter ריק SignCounter () הפעולה מקבלת תו שהוקלד ומוסיפה אותו ל SignCountervoid addSign(String sign) הפעולה מחזירה את אוסף התווים והשכיחות שלהם Map getCounter() הפעולה מחזירה רשימה של התווים ששכיחותם היא fList signXtimes(int f) הפעולה מחזירה את השכיחות הגבוהה ביותר int maxFreq() הפעולה מחזירה מחרוזת המתארת את SignCounter כך : Sign 1  frequency1 Sign2  frequency2. התווים יופיעו בסדר עולה על פי הקוד ה asci String toString() Evi גרינוולד, מיכל עמירה, דורית כהן

א ) ממש את המחלקה SignCounter על פי הממשק. ב ) כתוב פעולה ראשית אשר מבצעת את הפעולות הבאות : - קולטת תווים מהמקלדת ומציגה את השכיחות של כל תו שהוקלד. - מציגה את השכיחות המקסימלית. - מציגה את כל התווים ששכיחותם היא המקסימלית. ג ) כתוב פעולה חיצונית אשר מקבלת משתנה מטיפוס SignCounter ומציגה כפלט את כל האותיות שלא הופיעו מבין האותיות 'a' עד 'z' כולל. חזרה ל - סוגי השאלות Evi גרינוולד, מיכל עמירה, דורית כהן

שאלה 3: מספרי שורות של מילה בטקסט לשם חיפוש מידע בטקסט, מעוניינים לשמור עבור כל מילה את מספרי השורות בהן היא מופיעה. שאלות אשר עשויות לעניין אותנו : 1) מהן מספרי השורות בהן מופיעה מילה מסוימת ? 2) איזה מילים מופיעות בשורה מסוימת ? 3) בכמה שורות מופיעה מילה מסוימת ? 4) מה מספר השורות בטקסט ? 5) עבור כל מילה : מה השורה הראשונה בה היא מופיעה ? 6) איזה מילה מופיעה במספר שורות מקסימלי ? 7) בהינתן שתי מילים, מהם מספרי השורות בהן מופיעות שתי המילים גם יחד ? 8) האם כל המילים מופיעות במספר זהה של שורות ? לסיוע במתן תשובות לשאלות הנ " ל נבנה מחלקה שורות - מילים, WordLines Evi גרינוולד, מיכל עמירה, דורית כהן

לפניך ממשק חלקי של המחלקה שורות - מילים WordLines תיאור הפעולה הפעולה יצירת שורות - מילים ריק WordLines() הפעולה מוסיפה מילה ומספר השורה בה היא מופיעה. אם המילה כבר קיימת : יתווסף מספר השורה לרשימת מספרי השורות בהם מופיעה המילה. אם המילה כבר הופיעה באותה שורה, לא יתבצע שינוי. מספרי השורות ממוינים בסדר עולה. הנחה : מספר שורה חוקי ( מספר טבעי ) void addWord(String word, int lineNo) הפעולה מחזירה אוסף כל המילים שהופיעו ב שורות - מילים ממוינות בסדר אלפא - ביתי עולה. String[] getAllWords() הפעולה מחזירה את מספרי השורות עבור מילה word. אם המילה לא קיימת הפעולה תחזיר null List getLines(String word) Evi גרינוולד, מיכל עמירה, דורית כהן

תיאור הפעולה הפעולה הפעולה מחזירה את כל המילים בשורה line. אם אין אף מילה הפעולה תחזיר null. List getWordsInLine(int line) הפעולה מחזירה את מספר השורות ב שורות - מילים. int getNumOfLines() הפעולה מחזירה את מספר השורה הראשונה בה מופיעה המילה word, 0 – אם לא מופיעה. int getFirstLine(String word) הפעולה מחזירה את מספר השורות בהן מופיעה המילה word int getNumOfLines(String word) הפעולה מחזירה רשימת מילים אשר הופיעו במספר שורות הרב ביותר List wordsInMaximumLines() הפעולה מחזירה מחרוזת המתארת את מילים - בשורות כך : [ מספרי השורות ] → מילה String toString() Evi גרינוולד, מיכל עמירה, דורית כהן

1) הצע ייצוג למחלקה WordLines 2) נתון עצם מטיפוס WordLines בשם wl לא ריק. כתוב קטע קוד אשר יבצע את המשימות : א - יציג כפלט את מספר המילים באוסף wl. ב - יציג את כל המילים באוסף, ממוינות בסדר אלפא - ביתי עולה. ג - לכל מילה באוסף wl יציג את מספרי השורות בהן היא הופיעה. ד - יבדוק אם המילה "ball" קיימת, אם כן יציג בכמה שורות היא מופיעה, אם לא : יוסיף אותה בשורה האחרונה. Evi גרינוולד, מיכל עמירה, דורית כהן

3) ממש את הפעולה wordsInMaximumLines 4) נתח את יעילות הפעולה שמימשת בשאלה (3). הנח שיעילות הפעולה הבונה של המחלקה מפה היא O(1) וכל שאר הפעולות שלה הן O(n). 5) כתוב פעולה חיצונית אשר מקבלת שתי מילים ומחזירה רשימה של מספרים שלמים שמהווים מספרי השורות בהן מופיעות שתי המילים גם יחד. מספרי השורות ממוינים בסדר עולה. הערות : במימוש הפעולות ניתן : - להוסיף פעולות עזר פרטיות. - ניתן להשתמש בכל אחת מהפעולות של מפה, רשימה, חוליה או כל פעולה שמופיעה בממשק המחלקה WordLines מבלי לממשן. - חזרה ל - סוגי השאלות ( המשך ) חזרה ל - סוגי השאלות ( המשך ) Evi גרינוולד, מיכל עמירה, דורית כהן

שאלה מספר 4: ייצוג שפת תגיות HTML שפת HTML היא שפת תגיות. לכל תגית יש אוסף תכונות אפשריות ולכל תכונה יש אוסף ערכים אפשריים. לדוגמא : כדי להקל על הכותב בשפת HTML נרצה לבנות אוסף שיכיל את כל התגיות האפשריות עם התכונות והערכים שהן יכולות לקבל. שם התגית התכונותהערכים dirrtl, ltr alignleft, center, right Evi גרינוולד, מיכל עמירה, דורית כהן

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