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

Slides:



Advertisements
Similar presentations
Files 1 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015 יום חמישי 16 אפריל 2015.
Advertisements

תכנות בשפת C תרגול 14 תרגול חזרה תרגילים ממבחנים
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 11 שבוע : מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
תכנות תרגול 7 שבוע : מערכים עד היום התוכניות שלנו לא ידעו לשמור כמות גדולה של מידע ללא הגדרת כמות גדולה של משתנים. עד היום התוכניות שלנו לא.
תכנות תרגול 9 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
11 Introduction to Programming in C תרגול
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
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, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 14 שבוע:
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
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
תכנות תרגול 14 שבוע : רשימות מקושרות ישנו מבנה נתונים אשר מאפשר ישנו מבנה נתונים אשר מאפשר לנו לבצע את הוספת האיברים בצורה נוחה יותר. מבנה זה.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 12 שבוע : הקצאת זיכרון דינאמית הזיכרון המקסימאלי ששימש את התוכנית שלנו עד היום היה קבוע מראש. לפני הרצת התוכנית, לאחר שהתוכנית עברה.
מבוא כללי למדעי המחשב תרגול 5. חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
1 מבוא למדעי המחשב ארגומנטים לתוכנית בזמן ריצה קבצים הקדם מעבד Preprocessor טיפוסים סדורים Enumerated Types Typedef.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 11 Statecharts תכונות מתקדמות.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
עקרון ההכלה וההדחה.
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא מורחב למדעי המחשב בשפת 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)
מבוא כללי למדעי המחשב תרגול 7. מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
תכנות תרגול 12 שבוע : מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
11 Introduction to Programming in C תרגול
הגדרת משתנים יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר.
Contents Building Web Services כתב אקת'ם חאג' יחיא BuildingWeb Services Building Web Services
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
Tirgul 12 Trees 1.
הרצאה 10 פונקציות עם מספר משתנה של פרמטרים
מבוא למדעי המחשב סיבוכיות.
מצביעים, הקצאה דינאמית ומבנים
Recursion.
תירגול 14: מבני נתונים דינאמיים
הרצאה 06 רשימות מקושרות קרן כליף.
שאלות ממבחנים - ADT שאלות ממבחנים - C-Shell
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
Tree A tree is a data structure in which each node is comprised of some data as well as node pointers to child nodes
Computer Programming תרגול 9 Summer 2016
Engineering Programming A
שאלה 1.
מבוא כללי למדעי המחשב תרגול 4
Computer Programming תירגול 13 חזרה למבחן.
שאלות מבחינות קודמות יואב ציבין.
תכנות בשפת C תרגול 12 עצים בינאריים
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Introduction to Programming in C
Presentation transcript:

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

מטרת התרגול קבצים עצים בינאריים - המשך 2 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

טעינת קובץ לרשימה מקושרת נתון קובץ בשם customer.txt כך שכל שורה מכילה פרטים של לקוח באופן הבא : – תעודת זהות - 9 תווים – שם פרטי – עד 26 תווים – שם משפחה - עד 26 תווים – כל הפרטים מופרדים ע " י רווח – לדוגמא : Rami Golan Alex Carmel כתבו תוכנית אשר טוענת את הקובץ לרשימה מקושרת 3 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

טעינת קובץ לרשימה מקושרת הגדירו מבנה אשר מייצג לקוח הגדירו איבר של רשימת מקושרת אשר מכיל לקוח 4 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

טעינת קובץ לרשימה מקושרת 5 #define IDSIZE 10 #define NSIZE 26 typedef struct { char Id[IDSIZE]; char forename[NSIZE]; char surname[NSIZE]; } Customer; typedef struct _node { Customer customer; struct _node * next; } Node; Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

טעינת קובץ לרשימה מקושרת 6 int main() } Node * head = NULL; Customer customer; FILE* customersFile; // Open file for read customersFile = fopen(“customers.txt”, “r”); if ( customersFile == NULL) return 0; // Load file to list while (EOF != fscanf(customersFile, “%s%s%s”, customer.Id, customer.forename, customer.surname)) { if (!AddNode(&head, &customer)) { fclose ( customersFile ); FreeList (head ); return 0; } fclose ( customersFile ); FreeList (head ); return 1; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

העתקת קובץ נתון קובץ customer.txt בפורמט אשר הוגדר מקודם. יש לכתוב תוכנית אשר יוצרת עותק של הקובץ ללא הלקוח שתעודת הזהות שלו היא : Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

העתקת קובץ 8 int main() } Customer customer; FILE* customersFile; FILE* newCustomersFile; // Open file for read customersFile = fopen(“customers.txt”, “r”); newCustomersFile = fopen(“newCustomers.txt”, “r”); if (customersFile == NULL || new customersFile == NULL) return 0; // Load file to list while (EOF != fscanf(customersFile, “%s%s%s”, customer.Id, customer.forename, customer.surname)) { if (strcmp(customer.Id, “ ”) != 0) { fprintf(newCustomersFile, “%s %s %s\n”, customer.Id, customer.forename, customer.surname) } fclose (customersFile); fclose (newCustomersFile); return 1; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

שאלת מבחן: מה מבצעת הפונקציה הבאה? (פתרון בעמוד הבא) 9 struct node{ int key; node *next; }node; node* what( int num, node* head){ node* temp; if(!head) return NULL; temp = what( num, head -> next); if(temp) return temp; if(head -> key == num) return head; return NULL; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

פתרון הפונקציה מחזירה את הכתובת של ההופעה האחרונה של num ברשימה, אחרת NULL. 10 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

שאלת מבחן 11 נתון עץ בינארי שקדקודיו מהטיפוס הבא : struct node{ int value; node *left; node *right; }node; כתוב פונקציה countNodes אשר מקבלת שורש של עץ בינארי ורמה בעץ וסופרת כמה קדקודים יש מרמה זו ומטה. ( השורש נמצא ברמה 0) Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel

פתרון 12 int countNodesFrom(node *root, int level) { int count; if (!root) return 0; count = level <= 0 ? 1 : 0; count += countNodeFrom( root->left, level – 1) count += countNodeFrom( root->right, level – 1); return count; } Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel