תרגול 1

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

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

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

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

שיעור 1

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

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

PRESENTATION NAME

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

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

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

מקביליות

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

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

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

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

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

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

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

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

PowerPoint Presentation

Microsoft Word B

מקביליות

Slide 1

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

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

Microsoft PowerPoint - YL-05.ppt

מקביליות

Microsoft Word - Ass1Bgu2019b_java docx

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

Tutorial 11

Slide 1

שעור 6

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

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft Word - Questions Booklet Spring 2009

PowerPoint Presentation

Programming

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

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

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

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

תרגול 1

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

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

Microsoft Word - c_SimA_MoedA2006.doc

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

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

Microsoft Word - pitaron222Java_2007.doc

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

מתמטיקה של מערכות

Microsoft Word - SDAROT 806 PITRONOT.doc

סדרה חשבונית והנדסית

Microsoft Word - בעיות הסתברות 1.doc

ex1-bash

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

Microsoft Word - c_SimA_MoedB2005.doc

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

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

PowerPoint Presentation

בחן במערכות הפעלה

Slide 1

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

מתכונת עיצוב 3013

PowerPoint Presentation

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

PowerPoint Presentation

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

תרגול 1

PowerPoint Presentation

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

Microsoft PowerPoint - rec3.ppt

Microsoft Word - solutions.doc

Slide 1

מס' ת"ז מס' מחברת מבחן בקורס מבוא מורחב למדעי המחשב CS1001.py ביה"ס למדעי המחשב, אונ' תל אביב סמסטר א' , מועד ב, 23/3/2018 מרצים: דניאל דויטש,

Slide 1

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

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

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

תרגול 1

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

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

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

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

Microsoft Word - ExamA_Final_Solution.docx

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

Slide 1

עב 001 ינואר 12 מועד חורף פתרונות עפר

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

תאריך הבחינה 30

תמליל:

מבני נתונים תרגול 1 מבוא

מבנה נתונים דרך לאחסן נתונים )מידע( במחשב מספרים ממוינים, המטרה: למצוא מינימום ומקסימום. מערך או רשימה מקושרת? מערך! כי אפשר לגשת למינימום ומקסימום באופן מיידי. }100,19,17,2,7,3,36,25,1{ ניתן לאחסן אותם ב : עץ בינארי 1 בהנתן נתונים )ללא מיון( 2 3 7 17 דוגמא: מערך )ממוין( מספרים לא ממוינים, המטרה: למצוא מינימום ומקסימום. מערך או רשימה מקושרת? שני מבני נתונים יעבדו באותה מהירות, אבל מערך יתפוס פחות מקום בזכרון. 19 25 36 100 רשימה מקושרת )ממוינת( מספרים ממוינים, המטרה: למצוא מספר כשלהו באוסף. מערך או רשימה מקושרת? 1 2 3 7 17 19 25 36 10 0 מערך! אפשר לבצע חיפוש בינארי.

אלגוריתם תהליך חישובי מוגדר היטב, שמקבל קלט הקלט(. ומחזיר פלט )כ- "פונקציה" של }100,19,17,2,7,3,36,25,1{ דוגמא: קלט אוסף של מספרים פלט אוסף ממוין אלגוריתם תהליך של מיון מספרים פלט קלט הפעלה של }100,19,17,2,7,3,36,25,1 } אלגוריתם מיון }1,2,3,7,17,19,25,36,100{

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

יעילות של אלגוריתם - דוגמא שני אנשים S ו Y,S,Y בהינתן תיק חדש, קיבלו עבודה של ארגון תיקים אישיים. זורק את התיק לתוך המגירה. בהינתן תיק חדש, מכניס למקומו לפי סדר אלף-בית מי עובד מהיר יותר? מי עובד יעיל יותר? מה אם יבקשו תיק מתוך האוסף? ומה אם היו מבקשים תיק לפי מספר ת.ז.? איזו צורת ארגון דורשת יותר מקום?

יעילות של אלגוריתם - דוגמא שני אנשים S ו Y קיבלו עבודה של ארגון תיקים אישיים. S, בהינתן תיק חדש, זורק את התיק לתוך המגירה. Y, בהינתן תיק חדש, מכניס למקומו לפי סדר אלף-בית כמה זמן עבד כל אחד מהם? ל S העבודה היתה מאוד פשוטה, למעשה הוא לא עבד בכלל! לעומתו, Y היה צריך למצוא את מיקומו של התיק החדש ורק אז להכניסו למקום האם העבודה של S יעילה יותר? אם בזה סיימנו את העבודה, אז עבודת S יעילה יותר. אבל מה אם יבקשו תיק מתוך האוסף?? אז ברור ש Y יוכל לשלוף את התיק מהר יותר! ומה היה קורה אם היו מבקשים תיק לפי מספר ת.ז.? במקרה זה לא יהיה הבדל )כי Y מסדר תיקים לפי האלף-בית ולא לפי ת.ז.( איזו צורת ארגון דורשת יותר מקום? S לא מבזבז מקום. אם Y משתמש בתיקיה קשיחה נפרדת עבור כל אות, אז התיקיות יכולות להיות מלאות חלקית =< בזבוז מקום.

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

שאלה 1 נדרשות על מנת למצוא FindMax(A) n size(a) max A[0] for i 1 to n-1 if A[i] > max then max A[i] return max נתון מערך של n איברים. כמה השוואות בין איברים במערך את האיבר המקסימלי? פסאודו קוד comparison לולאת ה- for מבוצעת 1-n פעמים בכל פעם מתבצעת השוואה של max לכן מספר ההשוואות הוא 1-n לאיבר הבא במערך

FindMax&Index(A) n size(a) max A[0] index = 0 // index of maximum for i 1 to n-1 then if A[i] > max1 then max A[i] index I return max, index comparison Main max1, index1 FindMax&Index(A) A' A - A[index1] max2 FindMax&Index(A ) שאלה 2 נתון מערך של n איברים. כמה השוואות בין שני איברים במערך נדרשות על מנת למצוא את שני המספרים הגדולים ביותר? אפשר יעיל יותר? מה יהיה זמן הריצה במידה ונרצה למצוא את k האיברים הגדולים ביותר? פתרון 1: בצע את האלגוריתם המתואר בשאלה 1 פעמיים. בהרצה הראשונה יש 1-n השוואות על מנת למצוא את המספר הגדול ביותר. בהרצה השניה יש 2-n השוואות על מנת למצוא את המספר השני בגודלו. סה"כ 3 2n השוואות

שאלה 2 נתון מערך של n איברים. כמה השוואות בין שני איברים במערך נדרשות על מנת למצוא את שני המספרים הגדולים ביותר? פתרון 2: נבנה עץ תחרות- tournament tree נכניס את כל האיברים לעלים. בכל סיבוב, זוג איברים "ישחקו" אחד מול השני והמנצח )הגדול מביניהם( יעלה לסיבוב הבא.

שאלה 2 נתון מערך של n איברים. כמה השוואות בין שני איברים במערך נדרשות על מנת למצוא את שני המספרים הגדולים ביותר? פתרון 2: האיבר הגדול ביותר הוא max האיבר השני הגדול ביותר הוא המקסימום מבין x 1, x 2, x 3

שאלה 2 n = 2 logn 1 = מספר ההשוואות בזמן בניית העץ: בתחילה יש n עלים. בכל צעד משווים בין כל זוג איברים שמתחרים ביניהם. n 2 נקבל כי בסיבוב הראשון יש בסיבוב השני יש השוואות. השוואות וכך הלאה. n + n + n + + 1 = n + n + n + + n = n 2 2 2 2 3 2 2 2 2 3 2 logn 2 n 2 logn סדרה הנדסית a 1 = n/2, q= 1/2, number of elements = logn n 4 ( 1 1) 2 logn 1 = ( 2 1 n n) 2 logn 1 = n 1 סה"כ 1 n השוואות לבניית העץ

שאלה 2 מספר ההשוואות במציאת האיבר השני בגודלו: ניתן להשתמש באלגוריתם משאלה 1 על log 2 n האיברים המועמדים. סה"כ לפי הניתוח השוואות משאלה 1 נצטרך 1 n log 2 השוואות. מחיבור שני הניתוחים נקבל כי סה"כ מספר ההשוואות הנדרש הוא : )2n 3 )במקום n 1 + log 2 n 1 = n + log 2 n 2 חישבו מה יהיה זמן הריצה למציאת k האיברים הגדולים ביותר

שאלה 3 מה יהיה הערך של k אחרי כל הרצה של כל אחד מקטעי הקוד הבאים. ספקו הערכה גסה של זמן הריצה ניתן להתעלם מקבועים. k = 0 for (int i = 1 ; i n ; i++) k++ פעמים וכל פעם k גדל ב 1. הלולאה מתבצעת n k = n runtime n

שאלה 3 מה יהיה הערך של k אחרי כל הרצה של כל אחד מקטעי הקוד הבאים. ספקו הערכה גסה של זמן הריצה ניתן להתעלם מקבועים. k = 0 for (int i = 1 ; i n ; i++) for (int j = 1 ; j n ; j++) k++ k = n 2 runtime n 2 הלולאה החיצונית מתבצעת n פעמים. הלולאה הפנימית מתבצעת n פעמים בכל ריצה של הלולאה החיצונית. בכל ריצה של הלולאה הפנימית מגדילים את k ב 1.

שאלה 3 מה יהיה הערך של k אחרי כל הרצה של כל אחד מקטעי הקוד הבאים. ספקו הערכה גסה של זמן הריצה ניתן להתעלם מקבועים. הלולאה החיצונית מתבצעת n פעמים. הלולאה הפנימית מתבצעת i פעמים בכל ריצה של הלולאה החיצונית. בכל ריצה של הלולאה הפנימית מגדילים את k ב 1. k = 0 for (int i = 1 ; i n ; i++) for (int j = 1 ; j i ; j++) k++ k = 1 + 2 + + n = runtime n 2 n n + 1 2 סדרה חשבונית a 1 = 1, a n = n, d = 1, number of elements = n

שאלה 4 i נגדיר את להיות מספר הכניסות ללולאת ה- while. בכל פעם k מוכפל, לכן k גדל בצורה הבאה:.1,2,4,8, הכניסות ללולאה יפסקו כאשר.2 i n מה יהיה הערך של k אחרי כל הרצה של כל אחד מקטעי הקוד הבאים. ספקו הערכה גסה של זמן הריצה ניתן להתעלם מקבועים. נקבל כי k = 1; while (k < n) k = k * 2 runtime log 2 n i = log 2 n

for (int i = 1 ; i n ; i++) k = 1; while (k < i) k = k*2 runtime log 2 (n!) שאלה 5 יש מה יהיה הערך של k אחרי כל הרצה של כל אחד מקטעי הקוד הבאים. ספקו הערכה גסה של זמן הריצה ניתן להתעלם מקבועים. לולאת הwhile מתבצעת log 2 i לכל i n 1 log 2 1 + log 2 2 + log 2 3 + + log 2 n log 2 1 + log 2 2 + + log 2 n = log 2 (1 2 n) סה"כ (n!) log 2 הכפלות.

שאלה 6 הערך את מספר ההכפלות המתבצעות בקטע הקוד הבא: הנחה: n = 2 k my_power (x, n) if (n=0) return 1 if (n=1) return x return my_power (x, n/2) * my_power (x, n/2) : עץ הרקורסיה עבור 8=n מספר הצמתים הפנימים הוא מספר המכפלות: 1 + 2 + 4 + 8 + + n/2 = n 1 n 2 = 2log(n 2 ) = 2 logn log2 =2 logn 1 number of elements = logn 1 + 2 + 4 + 8 + + n 2 = 1 (2logn 1) (2 1) = n 1 סדרה הנדסית a 1 = 1, q= 2, number of elements = logn,

שאלה 6 הערך את מספר ההכפלות המתבצעות בקטע הקוד הבא: הנחה: n = 2 k my_power (x, n) if (n=0) return 1 if (n=1) return x temp = my_power (x, n/2) return temp * temp נביט רק על ענף אחד של העץ. log n גובה העץ )על כל ענף )אורך הענף( הוא לצעות(,. log n logn קדקדים ו logn+1 לכן מספר המכפלות הוא

שאלה 7 תאר אלגוריתם המקבל מערך ממויין A עם n מספרים שלמים ומספר שלם x ומחזיר האם קיימים שני איברים ב A שסכומם בדיוק x. על הפתרון לבצע לכל היותר 3n השוואות. Example: x=25 1 6 9 18 p 1+23=24 < 25 p++ 1 6 9 18 p 6+23=29 > 25 q -- 1 6 9 18 19 19 19 23 23 23 q q פתרון: נגדיר שני אינדקסים p,q המצביעים לתחילת וסוף המערך. אם A[p] + A[q] == x אז החזר "אמת" אחרת, אם A[p] + A[q] > x אז 1 q q = אם A[p] + A[q] < x אז + 1 p p = p q 6+19=25 == 25 return True כמה איטרציות מבצעים פה?

שאלה 7 תאר אלגוריתם המקבל מערך ממויין A עם n מספרים שלמים ומספר שלם x ומחזיר האם קיימים שני איברים ב A שסכומם בדיוק x. על הפתרון לבצע לכל היותר 3n השוואות של איברים. TwoSum(A,x) p 0 q n-1 while (p < q) if (A[p]+A[q] == x) return Yes else if (A[p]+A[q] < x) p++ else q-- return No המקרה הגרוע ביותר כאשר אין סכום כזה במערך. אז הלולאה הפנימית מתבצעת עד שנקבל p q בכל פעם או שמקדמים את p, או שמורידים את q. ז"א הלולאה מתבצעת n פעמים. בכל איטרציה של הלולאה, מבצעים לכל היותר 3 השוואות: תנאי הלולאה השוואה אחת פנים הלולאה 2 השואוות סה"כ 3n השוואות.

10 2 שאלה 8 נתון מערך A עם n מספרים שלמים. 3n מצא את המינימום והמקסימום ע"י שימוש בלא יותר מ 2 השואוות. 3 7 17 19 25 36 12.A 2. n 2 A 1,A 2 שניהם בגודל A 1 n 2 - פתרון: נגדיר שני מערכי עזר נחלק את המערך A זוגות. ל בכל זוג, המספר הקטן יכנס למערך ואילו המספר הגדול יכנס למערך נשים לב כי כעת A 1 מכיל את המינימום הגלובלי ו A 2 מכיל את המקסימום הגלובלי. כעת נמצא את המינימום ב A 1 ואת המקסימום ב A. 2 A 10 2 3 minimum 7 17 19 25 36 12 maximum A 1 A 2 10 2 7 3 19 17 36 25 12 12

3n 2 שאלה 8 נתון מערך A עם n מספרים שלמים. מצא את המינימום והמקסימום ע"י שימוש בלא יותר מ כמה השוואות יש? השואוות. Min_and_Max(A, n) Define A1[1..n/2], A2[1..n/2] for i=1 to n/2 do if A[i] < A[n/2 + i] then A1[i] A[i] A2[i] A[n/2 + i] else A1[i] A[n/2 + i] A2[i] A[i] end if end for n/2 comparisons אם n הוא אי-זוגי, אפשר להכניס את האיבר האחרון של,A גם ל 1 A וגם ל 2.A נקבל שמספר ההשוואות הוא: n 1 + n + 1 1 + n + 1 1 = 3n 1 2 2 2 2 3n כלומר עדיין פחות מ - השוואות. 2 min A1[1], max A2[1] for i=2 to n/2 do if A1[i] < min then min A1[i] if A2[i] > max then max A2[i] end for 2 ( n 2 1) comparisons