תרגול 1

מסמכים קשורים
תרגול 1

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

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

PowerPoint Presentation

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

Slide 1

Slide 1

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

תרגול 1

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

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

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

Slide 1

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

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

PowerPoint Presentation

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

Microsoft Word - c_SimA_MoedB2005.doc

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

PowerPoint Presentation

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

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

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

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

Tutorial 11

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

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

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

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

Microsoft Word - pitaron222Java_2007.doc

PowerPoint Presentation

Slide 1

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

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

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

PowerPoint Presentation

Slide 1

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

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

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

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

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

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

Microsoft Word B

Microsoft Word - c_SimA_MoedA2006.doc

PowerPoint Presentation

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

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

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

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

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

PRESENTATION NAME

Microsoft PowerPoint - rec3.ppt

ex1-bash

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

234114

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

Slide 1

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

PowerPoint Presentation

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

Slide 1

Slide 1

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

Slide 1

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

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

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

Slide 1

HTML - Hipper Text Makeup Language

שקופית 1

מצגת של PowerPoint

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

תרגול 1

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

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

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

Microsoft Word - Ass1Bgu2019b_java docx

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

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

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

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

Slide 1

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

Slide 1

PowerPoint Presentation

שיעור 1

Microsoft PowerPoint - 10_threads.ppt

תרגול מס' 1

PowerPoint Presentation

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

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

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

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

תמליל:

מבוא למדעי המחשב 2020 תרגול 6 רקורסיה

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

בתרגול היום רקורסיה חישוב חזקה פלינדרום הדפסת יצוג בינארי הדפסת כל תתי הקבוצות Subset Sum

רקורסיה קריאה של פונקציה לעצמה באופן ישיר או עקיף

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

חישוב חזקה b a נרצה לכתוב פונקציה ומחשבת את a b רקורסיבית המקבלת שני מספרים טבעיים ו public static int exp(int a, int b) { int result; if (b == 0) { result = 1; } else { result = a * exp(a, b - 1); } return result; }

מצאו את יוצא הדופן רק פושטק עלוב בולע קטשופ קר נטול גלוטן aibohphobia רבע הלילה עבר Was it a car or a cat I saw ארון קיר היה ריק נורא רקורסיה כי מי שמאמין לא מפחד מי אמר שיש רמאים.1.2.3.4.5.6.7.8

פלינדרום נרצה לכתוב פונקציה רקורסיבית אם המחרוזת היא פלינדרום ו הפרמטר אינו.null המקבלת,False - מחרוזת, ומחזירה True אחרת. ניתן להניח כי public static boolean ispalindrome(string s) { boolean ans = false; if (s.length() == 0 s.length() == 1) { ans = true; } else if (s.charat(0) == s.charat(s.length() - 1)) { ans = ispalindrome(s.substring(1, s.length() - 1)); } return ans; }

הדפסת יצוג בינארי של מספר שלם חיובי,n כתבו פונקציה רקורסיבית (n printbinary(int הבינארי שלו מבלי להשתמש במחרוזות. אשר בהינתן שלם חיובי, הייצוג את מדפיסה public static void printbinary(int n){ if(n >= 2) // print the first digits (most significant bits) printbinary(n/2); // print lsb (last digit) System.out.print(n%2); }

הדפסת תתי קבוצות בהינתן מחרוזת אשר תוויה )שונים זה מזה( מייצגים אברי קבוצה, נרצה להדפיס את כל תתי הקבוצות שלה. דוגמה: תתי הקבוצות של התווים במחרוזת abc הינן: c b bc a ac ab abc נפתור זאת באמצעות רקורסיה //print all subsets of s public static void printallsubsets(string s)

דוגמה: abc s = no abc, yes no bc, yes no bc, a yes no c, yes no c, b yes no c, a yes no c, ab yes, Output:, c Output: c, b Output: b, bc Output: bc, a Output: a, ac Output: ac, ab Output: ab, abc Output: abc

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

//print all subsets of s concatenated with acc public static void printallsubsets(string s, String acc){ } if (s.equals("")){ System.out.println(acc); { else{ } //print all subsets of s public static void printallsubsets(string s){ printallsubsets(s, ""); { האלגוריתם קריאות רקורסיביות תנאי עצירה printallsubsets(s.substring(1), acc + s.charat(0));//take first char printallsubsets(s.substring(1), acc); //skip the first char

דוגמאת ריצה: abc s = Output: abc ab abc, no yes bc, a no yes c, ab yes, ab, abc printallsubsets name type value printallsubsets s String name type value acc String s printallsubsets String acc name String type value s printallsubsets String acc name String type value printallsubsets s String name type acc value String s String acc String זכרון משותף abc bc a c ab ab abc

בהינתן מערך משקולות אי-שליליים weights ומשקל נוסף,Sum נרצה לבדוק האם קיימת תת-קבוצה של משקולות אשר סכומה הוא.Sum.15 Subset Sum דוגמא: קלט: = 12 Sum weights = {1,7,9,3}, פלט:,true כיוון שסכום המשקולות 9,3 הוא 12. דוגמא נוספת: קלט: = 15 Sum weights = {1,7,9,3}, פלט:,false כיוון שלא קיים סכום משקולות השווה //check if the sum can be taken from weights. public static boolean subsetsum(int[] weights, int sum)

הרעיון של הרקורסיה i=0 i=1 take 1 {1, 9,7}, 7 { 1,9,7}, 8 i=2 skip 9 i=2 {1,9, 7 }, -2 {1,9, 7 }, 7 return false skip 7 return true {1,9,7}, 0 {1,9,7}, 7 i=3 i=3 נחליט בכל שלב את האיבר ה- i. נחזיר ליעד i האם לסכום true כאשר הגענו נחזיר false כאשר עברנו את היעד או כשנגיע אל סוף המערך. דוגמא: weights = {1,9,7}, Sum = 8 return false

//check if the sum can be taken from weights, starting at index i. public static boolean subsetsum(int[] weights, int sum, int i){ boolean ans = false; { if(sum == 0) ans = true; return ans; האלגוריתם קריאות רקורסיביות תנאי עצירה else if (sum < 0 i >= weights.length) ans = false; else ans = subsetsum(weights, sum - weights[i], i+1) subsetsum(weights, sum, i+1); //check if the sum can be taken from weights. public static boolean subsetsum(int[] weights, int sum){ return subsetsum(weights, sum, 0); }

Subset Sum כמה פתרונות קיימים? כעת נרצה לדעת כמה פתרונות קיימים. כלומר, עבור בעיית ה- Sum Subset הנתונה נרצה לדעת כמה אפשרויות קיימות להרכבת הסכום.sum דוגמא: נתון 10 = Sum weights = {1,7,9,3}, = 10 7+3 וכן = 10.1+9 לכן הפונקציה תחזיר.2 //count the different options to add elements from weights that sums to sum. public static int subsetsumcount(int[] weights, int sum)

קוד //count the different options to add elements from weights starting at index i that sums to sum. public static int subsetsumcount(int[] weights, int sum, int i){ int ans = 0; { if(sum == 0) ans = 1; else if (sum < 0 i >= weights.length) ans = 0; else ans = subsetsumcount(weights, sum - weights[i], i+1) return ans; + subsetsumcount(weights, sum, i+1); קריאות רקורסיביות תנאי עצירה //count the different options to add elements from weights that sums to sum. public static int subsetsumcount(int[] weights, int sum){ return subsetsumcount(weights, sum, 0); }

שימוש באקליפס הכרות ושימוש בסביבת העבודה של אקליפס

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

באתר הקורס קיים מדריך להורדה והתקנה של,Eclipse תחת הלשונית.Useful links

על מנת ליצור פרוייקט נבחר בתפריט.New Java Project ובו נבחר,,File נבחר שם עבור הפרויקט ונלחץ על finish

כעת ניצור קובץ מחלקה, נלחץ על הכפתור הימני בעכבר על שם הפרויקט שיצרנו, בתפריט נבחר ב- new, ולאחר מכן נבחר ב- class.

בקובץ המחלקה שיצרנו, הדרוש. כדי להפעיל את התכנית יש צורך בפונקציה main נכתוב את הקוד public static void main(string[] args) להרצת התכנית שכתבנו, נשמור את השינויים שעשינו ונלחץ על כפתור ה-.run

סיכום ומשימות.6/12/19 תרגלנו: רקורסיה תגבור השבוע על רקורסיה. משימות: עבודת בית מס' 2 להגשה עד ה- תרגילון.6