מת"מ מעבדה 7-8 רשימות.

Slides:



Advertisements
מצגות קשורות
תכנות בשפת C תרגול 11 - קבצים.
Advertisements

© Keren Kalif JPA קרן כליף.
הרצאה 02 סוגי משתנים קרן כליף.
ייצוגים שונים של פונקציה
Computer Programming Fall 2012 תרגול 6 פונקציות
מבוא לתכנות ב-JAVA מעבדה 1
טיפים מנצחים: לחפש ולמצוא במהירות ובדיוק
תוכנה 1 תרגול 13 – סיכום.
HTML שפת Hyper Text Markup Language
תרגול 11: רקורסיה ופיתוח טלסקופי
תרגול 1: סביבת העבודה ומבוא ל-Java
לולאות Department of Computer Science-BGU 19 יולי 19.
השראה מגנטית קובץ זה נועד אך ורק לשימושם האישי של מורי הפיזיקה ולהוראה בכיתותיהם. אין לעשות שימוש כלשהו בקובץ זה לכל מטרה אחרת ובכלל זה שימוש מסחרי; פרסום.
נערך ע"י אריק הוד, הגימנסיה העברית הרצליה
תרגול 5: לולאות ומערכים.
תרגול מס' 8 משתנים מיוחסים מבוא ל-C++ קלט/פלט ב-C++
מבוא למדעי המחשב מ' - תירגול 9
תירגול 10: מבנים (structs) וקבצים
Marina Kogan Sadetsky –
עבודה ב-T2 מבוא לתכנות מערכות.
Jump tables, review questions
פריסת כותרת כותרת משנה.
פעולות בסביבת רובוטיקה
פריסת כותרת כותרת משנה.
מבוא למדעי המחשב הרצאה מספר 12: רקורסיה
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
תרגול Introduction to C - Fall Amir Menczel.
פעולות אריתמטיות קרן כליף.
Computer Programming תרגול 1 Summer 2016
פוטנציאל חשמלי קובץ זה נועד אך ורק לשימושם האישי של מורי הפיזיקה ולהוראה בכיתותיהם. אין לעשות שימוש כלשהו בקובץ זה לכל מטרה אחרת ובכלל זה שימוש מסחרי;
תירגול 11: מיונים וחיפוש בינארי
Entity Relationship Diagram – ERD
תירגול 3: לולאות, קלט, וטיפוסים
תכנות בשפת C תרגול 8 רקורסיה
חשבון זה הוא חלק ממוצרי 365 ומקושר לתיבת המייל
Engineering Programming A
תירגול 8:מצביעים והקצאה דינאמית
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
תרגול 6: פונקציות, סוגי משתנים, top-down design
תהליך ההרשמה לבעלי אימייל של המכללה, ניתן להכנס לכתובת הבאה וליצור חשבון:
S. Even, "Graph Algorithms", Computer Science Press, 1979
פינוק מסביב לעולם הסבר הזמנה ומימוש.
מוטיבציה והשוואה בין מבני נתונים שלמדנו
מקורות שדה מגנטי קובץ זה נועד אך ורק לשימושם האישי של מורי הפיזיקה ולהוראה בכיתותיהם. אין לעשות שימוש כלשהו בקובץ זה לכל מטרה אחרת ובכלל זה שימוש מסחרי;
כל הזכויות שמורות לגבריאל אנקרי © 2017
Web Services Delegates and Events ליווי מקצועי : ארז קלר
מבוא לתכנות למערכות מידע
כל הזכויות שמורות לגבריאל אנקרי © 2017
תרגול 13 : חזרה נכתב על-ידי לימור ליבוביץ נערך ע"י ישראל גוטר
Marina Kogan Sadetsky –
CLI vs GUI.
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
Search&Buy There are 70 items in a 7 km radios
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
מבוא לתכנות ב- JAVA מעבדה 4
מבוא לתכנות בWINDOWS ד"ר אבי רוזנפלד.
מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
Introduction to Programming in C
עקרונות תכנות מונחה עצמים תרגול 8: OOP in C++
מצביעים Pointers – המשך...
הקלד את פרטי האירוע כאן.
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
תכניות סטנדרטיות ב- UNIX שאלות ממבחנים
Java Programming רשימות מקושרות - המשך
Engineering Programming A
רשימות מקושרות עבודה עם קבצים דוגמה
תמליל מצגת:

מת"מ מעבדה 7-8 רשימות

תרגיל 1 מצורפת תכנית לקריאת מידע מקובץ לצמתים של רשימה מקושרת. 1. כתוב פונקציה Write_Student_To_File אשר מקבלת מצביע לצומת בודד ומצביע לקובץ ומדפיסה את נתוני הצומת לקובץ. 2. כתוב פונקציה FromListToFile אשר מקבלת מצביע לראש רשימה מקושרת, מצביע לקובץ ומספר שלם N ומדפיסה לקובץ את הצמתים בהם ממוצע הציונים גדול מ-N. הפונקציה נעזרת בפונקציית Write_Student_To_File. אסור להשתמש בקובץ עזר או מערך לשמירת מבנים. למשל, עבור קובץ List.txt וקריאה FromListToFile(Head,t,85); ישתנה תוכן קובץ List.txt כמו בדוגמא הקבצים List.txt ו-lab7_8_1.c מצורפים

תרגיל 2 בקובץ input_price.txt שמורים נתונים של מוצרים: לכל מוצר מספר שלם ומספר ממשי. התכנית קולטת ממקלדת נתונים של מוצר חדש: מספר שלם ומספר ממשי וגם מספר סידורי של המוצר החדש, ובעזרת פונקציית AddNewItem מוסיפה את נתונים המוצר החדש לקובץ המקורי במקום המצוין. typedef struct Item{ int num; float price; }*PItem; void Get_Lost(char*); void AddNewItem(char* fname, int n, PItem a); void main(){ PItem a=(PItem)malloc(sizeof(struct Item)); if(!a)Get_Lost(“Erro of memmory"); printf("Enter a number and the price\n"); scanf("%d%f",&(a->num),&(a->price)); AddNewItem("input_price.txt",3,a); _getch(); { הפונקציה מקבלת מחרוזת של שם הקובץ, מספר סידורי של הנתון החדש ופרטים של המוצר החדש. למשל, עבור קובץ input_price.txt הנתון, הקלט וה-main הנתונים, ישתנה הקובץ כמו בדוגמא הקלט: התוצאה הקבצים input_price.txt ו-lab7_8_2.c מצורפים

תרגיל 3 בקובץ input_price1.txt שמורים נתונים של מוצרים )כמו בתרגיל הקודם). התכנית קולטת ממקלדת נתונים של מוצר חדש: מספר שלם ומספר ממשי וגם מספר סידורי של המוצר החדש, ובעזרת פונקציית AddNewItem מוסיפה את נתוני המוצר החדש לקובץ המקורי במקום המצוין. התכנית קוראת את הטקסט לתוך רשימה מקושרת. (התכנית מצורפת – lab7_8_3.c). כתוב פונקציית AddNewItem להוספת צומת חדש לרשימה מקושרת. הפונקציה מקבלת מספר סידורי של הצומת החדש ושני מספרים לשדות שלו. ה-prototype של הפונקציה: void AddNewItem(PItem *head,PItem *tail,int n,int a,float b); כתוב פונקציית WriteListToFile להעתקת רשימה מקושרת לקובץ. כתוב פונקציה למחיקת רשימה מקושרת והפעל אותה בתכנית. דוגמאות ההרצה והתכנית הראשית מופיעות בשקופיות הבאות הקבצים input_price1.txt ו-lab7_8_3.c מצורפים

תרגיל 3 – הסבר ודוגמאות התכנית קוראת את הטקסט לתוך רשימה מקושרת. התכנית קולטת ממקלדת נתונים של מוצר חדש: מספר שלם ומספר ממשי וגם מספר סידורי של המוצר החדש פונקציית AddNewItem מוסיפה צומת חדש לרשימה מקושרת. פונקציית WriteListToFile מעתיקה רשימה מקושרת לקובץ בסוף התכנית קובץ המקור משתנה:

תרגיל 3 – דוגמאות הרצה void main(){ int a, n; float b; PItem head=NULL, tail=NULL; FILE *in=fopen("input_price1.txt","r"); if(!in)Get_Lost("input file is wrong"); CreateList(&head, &tail, in); PrintList(head,"\nThe Old List:\n"); printf("\n\nEnter a number and the price\n"); scanf("%d%f", &a, &b); printf("\nEnter a place for the new item:"); scanf("%d", &n); AddNewItem(&head, &tail, n, a, b); PrintList(head,"\nThe New List:\n"); …. WriteListToFile(head, in); { תרגיל 3 – דוגמאות הרצה

תרגיל 4 התכנית הנתונה קוראת נתונים מקובץ ThreeLists.txt לרשימה. typedef struct Item{ int num; struct Item* next; }Item; typedef struct List{ ….. }List; void AddAsFirst(Item* ptr, List* L); void AddAsLast(Item* ptr, List* L); void main(){ List L, Posit, Negat; FILE *in=fopen("ThreeLists.txt", "r"); if(!in)Get_Lost("input file is wrong"); L.head=L.tail=NULL; L.count=0; CreateList(&L, in); PrintList(L, "\nMy List:\n"); התכנית הנתונה קוראת נתונים מקובץ ThreeLists.txt לרשימה. הגדר סוג של מבנה הרשימה (מבנה המנהל) לפי התכנית הנתונה. כתוב פונקציית AddAsFirst להוספת צומת בתחילת הרשימה. הפונקציה מקבלת צומת להוספה ומצביע למבנה הרשימה כתוב פונקציית AddAsLast להוספת צומת בסוף הרשימה. הפונקציה מקבלת צומת להוספה ומצביע למבנה הרשימה כתוב פונקציה למחיקת רשימה מקושרת והפעל אותה בתכנית. הקבצים ThreeLists.txt ו-lab7_8_4.c מצורפים

תרגיל 4 - המשך void AddAsFirst(Item* ptr, List* L); typedef struct List{ ….. }List; typedef struct Item{ int num; struct Item* next; }Item; void AddAsFirst(Item* ptr, List* L); void AddAsLast(Item* ptr, List* L); void MoveToAnotherList(List* orig, List* one, List* two); void main(){ List L, Posit, Negat; FILE *in=fopen("ThreeLists.txt", "r"); if(!in)Get_Lost("input file is wrong"); L.head=L.tail=NULL; L.count=0; ….. CreateList(&L, in); PrintList(L, "\nMy List:\n"); MoveToAnotherList(&L, &Posit, &Negat); PrintList(Posit, "\n\nThe Positive List:\n"); PrintList(Negat, "\n\nThe Negative List:\n\n"); fclose(in); } כתוב פונקציית MoveToAnotherList אשר כל צומת עם ערך חיובי מעבירה מרשימה מקורית לרשימה אחת ואת כל צומת עם ערך שלילי מעבירה לרשימה אחרת. הפונקציה משתמשת בפונקציות מהסעיפים הקודמים. שים לב: בתהליך העברת צמתים אף צומת לא נמחק – הוא "עוזב" את הרשימה המקורית ומצטרף לרשימה אחרת. הריצו את התכנית עבור שתי דוגמאות: