11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול 7 22.11.2010.

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

תכנות בשפת C תרגול 14 תרגול חזרה תרגילים ממבחנים
מבוא למדעי המחשב לתעשייה וניהול דוגמאות ותרגול נוסף במערך חד ממדי הרצאה 12.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב תרגול. הבית האדום כתובת : רחוב קוקוריקו 2 הבית הירוק כתובת : רחוב קוקוריקו 4 הבית הצהוב כתובת : רחוב קוקוריקו 1 הבית הורוד כתובת.
תכנות תרגול 9 שבוע : מערכים int a; a=5; int a[10]; a[2] = 5; 5 a a[0] a[1] a[2] a[9]  5 משתנה בודד מערך גישה למשתנה השלישי במערך.
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
הוראת המדעים האוניברסיטה העברית1 רקורסיה. הוראת המדעים האוניברסיטה העברית2 חלק א: רקורסיה עם מספרים.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
תכנות תרגול 2 שבוע : צור קשר מתרגל – שי גוטנר, ביה " ס למדעי המחשב. מתרגל – שי גוטנר, ביה " ס למדעי המחשב. דואר אלקטרוני : דואר.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 3 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 5 שבוע : לולאות for לולאות for for (counter=1 ;counter
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבוא כללי למדעי המחשב תרגול 5. חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
מבוא למדעי המחשב תרגול 6 - מערכים שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא ידעו.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תכנות בשפת C תרגול 15 תרגול חזרה 2 תרגילים ממבחנים
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 9 – מערכים ומחרוזות, תרגילי חזרה שעת קבלה : יום שני 11:00-12:00 דוא " ל :
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 8 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
11 Introduction to Programming in C תרגול
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
Dynamic Allocation. Malloc - Reminder void* malloc(unsigned int nBytes); Used to dynamically allocate nBytes in memory Returns a pointer to the allocated.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
Programming Pointers. נדגים היום בעזרת מצביעים העברת משתנים לפונקציה שמשנה אותם  פונקציה שמקבלת מצביעים לסמן תא בזיכרון  פונקציה שמחזירה מצביע מערך.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
הרצאה 10 פונקציות עם מספר משתנה של פרמטרים
מבוא למדעי המחשב סיבוכיות.
מיונים וחיפושים קרן כליף.
Introduction to Programming in C
רקורסיות קרן כליף.
תירגול 14: מבני נתונים דינאמיים
תרגול מס' 7: Memoization Quicksort תרגילים מתקדמים ברקורסיה
Computer Programming Summer 2017
מבוא כללי למדעי המחשב תרגול 4
תרגול 8 תחומי הכרה פונקציות
מבוא כללי למדעי המחשב תרגול 6
שאלות מבחינות קודמות יואב ציבין.
Introduction to Programming in C
Introduction to Programming in C
תרגול Introduction to C - Fall Amir Menczel.
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Introduction to Programming in C
Presentation transcript:

11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול

2 מטרת התרגול רקורסיה 2 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

דוגמא כתבו פונקציה רקורסיבית המקבל מספר שלם n ומחשבת את n!. דוגמא: בהינתן n=5 הפונקציה תחזיר Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

דוגמא - פתרון 4 int recFactorial(int n) { if(n <= 1) return 1; return n * recFactorial(n-1); } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

5 תרגיל 1 כתבו פונקציה רקורסיבית המקבלת מספר שלם ומדפיסה אותו הפוך. דוגמא: בהינתן המספר 123 הפונקציה הרקורסיבית תדפיס 321. Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

6 דוגמא 1 - פתרון void foo(int n) { printf("%d", n % 10); if (n > 10) foo(n / 10); } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel מה יקרה נבצע את ההדפסה לאחר הבדיקה ?

7 תרגיל 2 כתבו תוכנית הקולטת עד 20 ערכים שלמים (1- מציין סוף קלט) למערך ומוצאת את הערך המקסימאלי. לשם כך, ניתן לפרק את הבעיה לשתי בעיות קטנות יותר 1)כתבו פונקציה רקורסיבית שקולטת את המערך 2)כתבו פונקציה רקורסיבית שמחזירה את הערך המקסימאלי 7 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

88 תרגיל 2 - פתרון void GetArray(int arr[], int i) { if (i > MAX_LEN - 1) { arr[i] = -1; return; } scanf("%d", &a[i]); if (arr[i] != -1) GetArray(arr, i + 1); } int Max(int a[], int i) { int max; if (a[i] == -1) return a[0]; max = Max(a, i + 1); return (a[i] > max ? a[i] : max); }

9 תרגיל 3 9 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel כתוב פונקציה רקורסיבית אשר מקבלת מחרוזת s, תו ch, ומספר שלם n. הפונקציה תחפש את המופע ה- n-י של ch במחרוזת s ותחזיר את האינדקס שלו. דוגמא: בהינתן המחרוזת “abbc”, התו b, והשלם 2 (עבור n) הפונקציה תחזיר 2. התו ‘b’ מופיע בפעם השנייה במחרוזת s באינדקס 2 במחרוזת.

10 תרגיל 3 - פתרון Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel int FindNOccurence(char s[], char ch, int n, int index) { if (n == 0) return index -1; if (s[index] == '\0') return -1; if (s[index] == ch) return FindNOccurence (s, ch, n – 1, index + 1); return FindNOccurence(s, ch, n, index + 1); {

תרגיל 4 כתבו פונקציה רקורסיבית המקבלת מערך של מספרים שלמים ןמחזירה 1 אם ניתן לחלק את הערכים הנתונים במערך לשני שקים כך שבכל שק סכום הערכים שווה ו- 0 אחרת. –ניתן להוסיף לפונקציה פרמטרים במידת הצורך 11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

תרגיל 4 - פתרון int divideWeights(int values[], int index, int iBag1, int iBag2) { if ( (index == SIZE) && (iBag1 == iBag2) ) return 1; else if ( index == SIZE ) return 0; return ( divideWeights(values, index+1, iBag1+values[index], iBag2) || divideWeights(values, index+1, iBag1, iBag2+values[index]) ); } 12 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

תרגיל בית כתוב פונקציה רקורסיבית המקבלת מערך של מספרים שלמים, אינדקס למערך זה (יקבל את הערך 0 בקריאה הראשונית) ושני מספרים שלמים המכילים אפסים בקריאה הראשונית. אם ניתן לחלק את הערכים לשני שקים כך שבכל שק סכום הערכים זהה, הפונקציה תדפיס את הערכים בכל שק. 13 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel