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

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

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

תרגול 1

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

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

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

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

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

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

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

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

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

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

PowerPoint Presentation

PowerPoint Presentation

Slide 1

Slide 1

Slide 1

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

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

Microsoft Word B

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

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

Microsoft Word - c_SimA_MoedB2005.doc

Slide 1

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

PowerPoint Presentation

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

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

PowerPoint Presentation

Slide 1

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

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

PowerPoint Presentation

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

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

PowerPoint Presentation

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

תרגול 1

תרגול 1

Slide 1

Tutorial 11

Slide 1

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

תרגול מס' 7: תרגילים מתקדמים ברקורסיה

תרגול 3 - מערכים

PowerPoint Presentation

תרגול 1

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

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

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

Slide 1

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

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

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

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word - pitaron222Java_2007.doc

PRESENTATION NAME

ex1-bash

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

PowerPoint Presentation

שקופית 1

Microsoft PowerPoint - rec3.ppt

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

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

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

Microsoft Word - c_SimA_MoedA2006.doc

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

234114

Slide 1

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

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

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

מס' סידורי: ת.ז.: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך ה

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

לנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי

Microsoft PowerPoint - 10_threads.ppt

Slide 1

שעור 6

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1

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

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

מקביליות

מקביליות

Slide 1

Slide 1

תורת הקומפילציה

HTML - Hipper Text Makeup Language

PowerPoint Presentation

1

Slide 1

מצגת של PowerPoint

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

Microsoft Word - Ass1Bgu2019b_java docx

תמליל:

מבוא למדעי המחשב 202-1-1011 תאריך הבחינה: שמות המרצים: 16.3.2011 מר שי זקוב ד"ר פז כרמי פרופ' מייק קודיש ד"ר חן קיסר ד"ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס: שנה: 202-1-1011 2011 משך הבחינה: חומר עזר: סמסטר: א' מועד: ג' 3 שעות אסור אנא קראו את ההוראות שלהלן בעיון: במבחן זה 6 שאלות. ענו על כולן. בשאלות שבהן לא מצוין אחרת, הנכם יכולים לבחור בפתרון רקורסיבי או בפתרון לא רקורסיבי. רשמו את תשובותיכם על גבי טופס הבחינה בלבד. המחברת שקיבלתם היא מחברת טיוטה, והיא לא תימסר כלל לבדיקה. החשוב ביותר הוא נכונות הקוד. עם זאת, יעילות, סגנון, וכתיבה ברורה חשובים גם הם, ולכן תשובה לא יעילה או לא ברורה עלולה לגרום להפחתת נקודות. בשאלות התכנות המקום המוקצה בשאלון לתשובה מספיק עבור תשובה המנוסחת כראוי. הקפידו על כתב יד ברור. תשובות מסורבלות או ארוכות מדי לא יזכו בניקוד מלא. כתבו פתרון לשאלה קודם כול במחברת הטיוטה, ורק לאחר מכן העתיקו פתרון נקי לדף התשובות. אין להוסיף פונקציות עזר אלא אם כן הדבר נתבקש באופן מפורש בשאלה. אין לרשום הערות אך יש לדאוג שהקוד יהיה ברור לחלוטין ללא הערות )ריווח, שמות משתנים, וכד'(. אנא קראו שאלה עד תומה בטרם תענו עליה. אם אינכם יודעים את התשובה לשאלה כלשהי, רשמו "לא יודע/ת" )במקום תשובה( ותזכו ב- 20% מניקוד השאלה. בהצלחה! עמוד 1 מתוך 11

שאלה )15 1 נקודות( תהי נתונה מחרוזת תווים s. נגדיר: החלפת ראי של s היא מחרוזת המתקבלת מ- s ע"י החלפה של שני תוים שנמצאים במרחק שווה מהאמצע של s. למשל ba היא החלפת ראי של ab ו- cba היא החלפת ראי של. abc נגדיר: שתי מחרוזות שוות עד כדי החלפת ראי אם ניתן להשוות אותן באמצעות 0 או יותר החלפות ראי. השלימו בצורה לא רקורסיבית את הפונקציה eq הבאה המקבלת כפרמטרים שתי מחרוזות s1 ו- s2 ומחזירה true אם"ם s1 ו- s2 שוות עד כדי החלפות ראי. 0) החלפות ( true eq("", "") 0) החלפות ( true eq("a", "a") (החלפה אחת) eq("ab", "ba") true 0) החלפות ( true eq("abc", "abc") (החלפה אחת) eq("cba", "abc") true 2) החלפות ( true eq("cbefda", "adefbc") eq("cab", "abc") false eq("cbad", "abc") false למשל: הניחו ש- s1 ו- s2 שונים מ-.null ראו תזכורות למספר שיטות של המחלקה String בדף הבא. static boolean eq(string s1, String s2) { עמוד 1 מתוך 11

תזכורות לשיטות של המחלקה :String public int length() Returns the length of this string. Returns: the length of the sequence of characters represented by this object. public char charat(int index) Returns the char value at the specified index. An index ranges from 0 to length() - 1. The first char value of the sequence is at index 0, the next at index 1, and so on, as for array indexing. Parameters: index - the index of the char value. Returns: the char value at the specified index of this string. The first char value is at index 0. Throws: IndexOutOfBoundsException - if the index argument is negative or not less than the length of this string. public String substring(int beginindex, int endindex) Returns a new string that is a substring of this string. The substring begins at the specified beginindex and extends to the character at index endindex - 1. Thus the length of the substring is endindexbeginindex. Examples: "hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile" Parameters: beginindex - the beginning index, inclusive. endindex - the ending index, exclusive. Returns: the specified substring. Throws: IndexOutOfBoundsException - if the beginindex is negative, or endindex is larger than the length of this String object, or beginindex is larger than endindex. עמוד 3 מתוך 11

)10 נקודות( שאלה 2 נתון הקוד הבא: static void sort(int[] arr) { if (arr!= null) { int hi = arr.length - 1; int i = hi; while (i > 0) { bubble(arr, i); i = i - 1; בבחינה יש להוסיף הערה שיש להניח ש- arr שונה מ- null ושכל המספרים שונים זה מזה ושהטענה הנשמרת צריכה להיות נכונה לכל קלט אפשרי. static void bubble(int[] arr, int to) { for (int i = 0; i < to; i = i + 1) if (arr[i] > arr[i + 1]) swap(arr, i, i + 1); static void swap(int[] arr, int u, int v) { int t = arr[u]; arr[u] = arr[v]; arr[v] = t; ציינו לגבי כל אחת מהטענות הבאות האם היא נשמרת בלולאת ה- while שבפונקציה sort )לפני הפעם הראשונה, ואחרי כל איטרציה(. שימו לב: תשובה נכונה מזכה בנקודה ותשובה לא נכונה מפחיתה ½ נקודה. תשובה לא מסומנת אינה מוסיפה ואינה גורעת. ס"כ הנקודות בשאלה כולה אינו יכול להיות שלילי. שימו לב: בשאלה זו אין לרשום "לא יודע" על סעיף בודד - רק על השאלה כולה. hi > 0 i < hi arr.length > i arr[0] arr[1] arr[hi] arr[0] < arr[1] < < arr[hi] arr[0] arr[hi] arr[0] arr[1] arr[i] arr[0] arr[1] arr[i] arr[i] arr[i+1] arr[hi] arr[i+1] < arr[i+2] < < arr[hi] א. ב. ג. ד. ה. ו. ז. ח. ט. י. עמוד 4 מתוך 11

שאלה )20 3 נקודות( תהי נתונה קבוצה S של מספרים טבעיים )שלמים גדולים מ- 0(, ויהי n מספר טבעי כלשהו. נאמר ש- n סכום מתוך S אם ניתן לבטא את n כסכום של מספרים )עם או בלי חזרות( מתוך S. דוגמה: תהי 5 {4, =,S אזי למשל 13 הוא סכום מתוך,S שכן = 13 5,4 + 4 + אבל 6 אינו סכום מתוך S, שכן לא ניתן לבטא את 6 כסכום של מספרים מתוך S. שימו לב: 0 הוא סכום מתוך כל קבוצה S, שכן ניתן לבטא את 0 כסכום של קבוצה ריקה של מספרים. כמו כן לכל טבעי n n, S סכום מתוך S, שכן ניתן לבטא את n כסכום של עצמו בלבד. הפונקציה (S issumof(int,n int [] שלהלן מקבלת כפרמטרים מספר טבעי n וקבוצה S של טבעיים ומחזירה true אם"ם n הוא סכום מתוך S. השלימו בצורה רקורסיבית את הקוד החסר. static boolean f(int n, int[] S) { הניחו שהפרמטרים תקינים: n טבעי, S null ומכיל רק מספרים טבעיים. return issumof(,, ); static boolean issumof(int n, int[] S, int i) { עמוד 5 מתוך 11

שאלה )25 4 נקודות( אנא קראו את השאלה עד תומה בטרם תענו עליה. interface Task { יהי נתון הממשק Task שלהלן: הממשק מתאר משימה: title() מחזיר את כותרת המשימה, למשל "הכנת כוס תה". String title(); double cost(); String report(); cost() מחזיר את עלות המשימה, למשל 20 אגורות. report() מדווח על נתוני המשימה. הדיווח כולל טקסט מוקף בסוגריים עם הנתונים הבאים בסדר הנתון: o כותרת המשימה. o עלות המשימה. o פירוט נוסף בהתאם לסוג האובייקט באמצעות השיטה description )ראו בהמשך(. השלימו את שלושת המחלקות הבאות כמפורט. מחלקה.Mission מחלקה מופשטת שעומדת בראש ההיררכיה של שלושת המחלקות. המחלקה מממשת את הממשק.Task המחלקה מגדירה בונה ציבורי שמקבל את כותרת המשימה.)title( המחלקה מגדירה שיטה אבסטרקטית מוגנת בשם description המאפשרת למחלקות היורשות להוסיף תיאור לדיווח באמצעות.report מחלקה.SimpleMission מחלקה קונקרטית המגדירה משימה פשוטה, כלומר משימה שאינה מורכבת ממשימות משנה. המחלקה מרחיבה את המחלקה.Mission המחלקה מגדירה בונה ציבורי המקבל את כותרת המשימה.)title( המחלקה מגדירה שיטה ציבורית cost) void setcost(double המקבלת את עלות המשימה.cost.report() המחלקה אינה מוסיפה פירוט נוסף לדיווח באמצעות הפונקציה מחלקה.CompoundMission מחלקה קונקרטית המגדירה משימה מורכבת, כלומר משימה שמורכבת מסדרה של משימות משנה. המחלקה מרחיבה את המחלקה.Mission המחלקה מגדירה בונה ציבורי המקבל את כותרת המשימה )title( ומערך מסוג Task המכיל את סדרת משימות המשנה )subtasks( שמרכיבים את המשימה. העלות )cost( של המשימה היא סכום העלויות של משימות המשנה שלה. המחלקה מוסיפה פירוט נוסף לדיווח באמצעות הפונקציה report() המורכב משרשור )concatenation( של הדיווחים של כל משימות המשנה כסדרן..1.2.3 שימו לב: בתשובתכם עליכם להשתמש בהורשה ובעיקרון ה- polymorphism בצורה מתאימה כדי למחזר קוד בצורה מקסימאלית. שימו לב: אין להוסיף לממשק הציבורי של המחלקות שתשלימו דבר מעבר לנדרש במפורש, ועל כל השדות שתגדירו בכל המחלקות להיות שדות פרטיים. עמוד 6 מתוך 11

להלן תכנית דוגמה והפלט שלה )ניתן כהערה אחרי כל פקודת הדפסה(. שימו לב: הפלט שלכם אינו צריך להכיל שורות חדשות או הזחות )indentations( כדוגמת הפלט שבדוגמה, אך כנאמר עליו כן להכיל סוגריים. public static void main(string[] args) { Task sm1 = new SimpleMission("Boil water"); ((SimpleMission) sm1).setcost(10); System.out.println(sm1.report()); // (Boil water, 10.0,) Task sm2 = new SimpleMission("Get a cup"); ((SimpleMission) sm2).setcost(1); Task sm3 = new SimpleMission("Measure a tea spoon"); ((SimpleMission) sm3).setcost(1); Task sm4 = new SimpleMission("Pour boiled water"); ((SimpleMission) sm4).setcost(10); Task[] tasks1 = { sm1, sm2, sm3, sm4 ; Task cm1 = new CompoundMission("Prepare a cup of tea", tasks1); System.out.println(cm1.report()); // (Prepare a cup of tea, 22.0, // (Boil water, 10.0,) // (Get a cup, 1.0,) // (Measure a tea spoon, 1.0,) // (Pour boiled water, 10.0,)) Task sm5 = new SimpleMission("Bake a cake"); ((SimpleMission) sm5).setcost(30); Task sm6 = new SimpleMission("Serve"); ((SimpleMission) sm6).setcost(5); Task[] tasks2 = { sm5, cm1, sm6 ; Task cm2 = new CompoundMission("Serve A cup of tea with a cake", tasks2); System.out.println(cm2.report()); // (Serve A cup of tea with a cake, 57.0, // (Bake a cake, 30.0,) // (Prepare a cup of tea, 22.0, // (Boil water, 10.0,) // (Get a cup, 1.0,) // (Measure a tea spoon, 1.0,) // (Pour boiled water, 10.0,)) // (Serve, 5.0,)) ((SimpleMission) sm6).setcost(15); System.out.println(cm2.report()); // (Serve A cup of tea with a cake, 67.0, // (Bake a cake, 30.0,) // (Prepare a cup of tea, 22.0, // (Boil water, 10.0,) // (Get a cup, 1.0,) // (Measure a tea spoon, 1.0,) // (Pour boiled water, 10.0,)) // (Serve, 15.0,)) עמוד 7 מתוך 11

interface Task { String title(); double cost(); String report(); abstract class Mission implements Task { private String title; public Mission(String title) { public String title() { return title; public String report() { protected abstract String description(); class SimpleMission extends Mission { private double cost; public SimpleMission(String title) { public void setcost(double cost) { this.cost = cost; עמוד 8 מתוך 11

class CompoundMission extends Mission { private Task[] subtasks; public CompoundMission(String title, Task[] subtasks) { עמוד 9 מתוך 11

שאלה )15 5 נקודות( תהי נתונה המחלקה.LinkedList השלימו במקומות החסרים את השיטה maxseqlen המחזירה את האורך של תת-הסדרה הלא יורדת הארוכה ביותר המוכלת ברשימה מסוג.LinkedList למשל אם הרשימת היא 14355622 על השיטה להחזיר 4, שכן תת-הסדרה הלא יורדת הארוכה ביותר שמוכלת ברשימה היא,3,,5,5 6 ואורכה הוא 4. public class LinkedList { private Link first; private static class Link { int data; Link next; public int maxseqlen() { אם הרשימת ריקה, על השיטה להחזיר 0.. עמוד 11 מתוך 11

שאלה )15 6 נקודות( עץ חיפוש בינארי של מספרים טבעיים )שלמים גדולים מ- 0( יכול להיות מיוצג ע"י מערך של שלמים מאותחל באפסים )ראו את השיטה isempty ו- insert שבהמשך(. להלן מחלקה בשם BST המשתמשת במערך כדי לייצג עץ חיפוש בינארי. הבנאי מקבל את גודל )קיבולת( המערך. השיטה isempty מחזירה תשובה לשאלה האם העץ ריק. השיטה הציבורית insert מקבלת כפרמטר מפתח k ומוסיפה את k לעץ. השיטה הפרטית insert מקבלת מפתח k ואינדקס i במערך arr ומכניסה את k לתת-העץ המושרש ב-.arr[i] השיטה isaleaf מקבלת כפרמטר אינדקס i במערך arr ומחזירה true אם"ם arr[i] הוא עלה בעץ. השיטה הציבורית search מקבלת מפתח k ומחזירה true אם"ם k מופיע בעץ. השיטה הפרטית search מקבלת מפתח k ואינדקס i במערך arr ומחפשת בצורה היעילה ביותר את k בתת-העץ המושרש ב-.arr[i] ענו על הסעיפים הבאים: )5 נקודות( השלימו את השיטה.isaLeaf הניחו שהפרמטר i אינו חורג מתחום המערך. )10 נקודות( השלימו את השיטה הפרטית.search הניחו שהפרמטר i אינו חורג מתחום המערך וש- arr[i] הוא אכן קדקוד בעץ. שימו לב: נקודות יינתנו רק על חיפוש יעיל ביותר! סריקה סדרתית של תאי המערך לא תזכה בנקודות. א. ב. public class BST { private int[] arr; public BST(int capacity) { arr = new int[capacity]; public boolean isempty() { return arr[0] == 0; public void insert(int k) { insert(k, 0); private void insert(int k, int i) { if (i < tab.length) if (arr[i] == 0) arr[i] = k; else if (arr[i]!= k) if (k < arr[i]) insert(k, i * 2 + 1); else insert(k, i * 2 + 2); עמוד 11 מתוך 11

public boolean isaleaf(int i) { boolean ans; return ans; public boolean search(int k) { return search(k, 0); public boolean search(int k, int i) { boolean ans; return ans; עמוד 11 מתוך 11