Engineering Programming A

Slides:



Advertisements
מצגות קשורות
הכרת תוכנת בקרים. כניסה לתוכנה תתבצע בשלבים הבאים: 1
Advertisements

תכנות בשפת C תרגול 11 - קבצים.
SQL: שינוי מסד הנתונים- פעולותDDL , DML
הרצאה 02 סוגי משתנים קרן כליף.
יצירת מקרו הפעלת מקרו יצירת לחצן / פקד דוגמה מסכמת
מבוא לתכנות ב-JAVA מעבדה 1
תוכנה 1 תרגול 13 – סיכום.
HTML שפת Hyper Text Markup Language
Trends in Periodic Table Properties
תרגול 11: רקורסיה ופיתוח טלסקופי
תרגול 1: סביבת העבודה ומבוא ל-Java
לולאות Department of Computer Science-BGU 19 יולי 19.
נערך ע"י אריק הוד, הגימנסיה העברית הרצליה
תוכנה 1 תרגול 12 – סיכום.
מבוא למדעי המחשב מ' - תירגול 9
תירגול 10: מבנים (structs) וקבצים
Marina Kogan Sadetsky –
כל הזכויות שמורות לגבריאל אנקרי © 2017
עבודה ב-T2 מבוא לתכנות מערכות.
Jump tables, review questions
מודל דחיית זוגות אלקטרונים של קליפת הערכיות
מבוא למדעי המחשב הרצאה מספר 12: רקורסיה
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
תרגול Introduction to C - Fall Amir Menczel.
פעולות אריתמטיות קרן כליף.
Computer Programming תרגול 1 Summer 2016
תירגול 11: מיונים וחיפוש בינארי
יסודות מבני נתונים תרגול 13: עץ פורש מינימלי - Minimum Spanning Tree (MST)

Entity Relationship Diagram – ERD
תכנות בשפת C תרגול 8 רקורסיה
חשבון זה הוא חלק ממוצרי 365 ומקושר לתיבת המייל
Engineering Programming A
תירגול 8:מצביעים והקצאה דינאמית
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
כל הזכויות שמורות לגבריאל אנקרי © 2017
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
Direction of induced current
מבוסס על שקפים מאת יאן ציטרין
מבוא לתכנות מונחה עצמים Object Oriented Programming
תורת הקומפילציה תרגול 9: תרגום לקוד ביניים
מבוא לתכנות למערכות מידע
Computer Architecture and System Programming Laboratory
SQL - כתיבת שאילתות למתחילים
המשך תכנות מונחה עצמים תרגול מס' 9.
כל הזכויות שמורות לגבריאל אנקרי © 2017
תרגול 13 : חזרה נכתב על-ידי לימור ליבוביץ נערך ע"י ישראל גוטר
Elements and Symbols יסודות וסמלים מהם יסודות? gold carbon aluminum
Marina Kogan Sadetsky –
CLI vs GUI.
מת"מ מעבדה 7-8 רשימות.
Solving Simultaneous Linear Equations Using GPU
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
What is Chemistry? מהי כימיה? Chemistry is the study of matter and its
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
מבוא לתכנות ב- JAVA מעבדה 4
מבוא לתכנות בWINDOWS ד"ר אבי רוזנפלד.
מבנה כללי של היררכיית הקבצים עבור המסלול /A/B.txt
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
Introduction to Programming in C
מצביעים Pointers – המשך...
Tutorial #10 MIPS commands
מעבדה 2- עיצוב (עבור חלק ג)
ברוכים הבאים למת"ם מבוא לתכנות מערכות הוכן ע"י שרי דואק
מערכת הערעורים מסכי סטודנטים.
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
Java Programming רשימות מקושרות - המשך
הפונקציה מחזירה את מספר התווים במחרוזת נתונה.
רשימות מקושרות עבודה עם קבצים דוגמה
תמליל מצגת:

Engineering Programming A תרגול 12 קבצים 17.01.2012 Introduction to C - Fall 2010 - Amir Menczel

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

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

שאלה 1 כתוב תכנית אשר פותחת קובץ טקסט "1.txt" (הקובץ קיים), ומדפיסה אותו על המסך.

שאלה 2 שנה את התוכנית כך שתעתיק את קובץ הטקסט לתוך קובץ חדש

שאלה 3 שנה את התוכנית כך שתעתיק לקובץ החדש רק שורות שמכילות שנה את התוכנית כך שתעתיק לקובץ החדש רק שורות שמכילות יותר מ-5 תווים (זכרו שגם ירידת שורה נובעת מנוכחות התו ‘\n’).

שאלה 3

שאלה 3 char *fgets(char *str, int len, FILE *stream): הערות לגבי הפונקציה: char *fgets(char *str, int len, FILE *stream): 1. הפונק' קוראת מהקובץ מחרוזת של תווים באורך len-1 (כלומר ע"מ לקרא N תווים צריך ש- len=N+1). הסיבה: צריך לשמור מקום לתו ‘\0’ . הפונק' מסיימת לקרא תווים מהקובץ כאשר: (א) אחרי שהיא נתקלת בתו ‘\n’ ושמה ב-str (אחריו ולא במקומו כמו בפונק' gets) את התו \0’ . (ב) לאחר שקראה את מס' התווים המבוקש. (ג) לאחר שנתקלה ב-EOF . אם הפונק' הצליחה: היא מחזירה את str, אחרת הפונק' מחזירה NULL (במידה שארתה שגיאה או שהגיעה ל-(EOF . זהירות: הפונק' לא מוודאת שהיא לא דורסת מידע (כאשר היא חורגת מהמקום של str)

שאלה 4 כתוב תוכנית אשר מקבלת שני שמות של קבצים ומחזירה 1 אם כתוב תוכנית אשר מקבלת שני שמות של קבצים ומחזירה 1 אם הקבצים זהים, 0 אם שונים,-1 אם הייתה שגיאה בפתיחת קובץ.

שאלה 4

שאלה 4 – תוכנית ראשית

שאלה 5 כתוב שתי פונקציות: אחת מקבלת שם קובץ, מצביע למערך של int-ים ואת אורכו, ושומרת את תוכן המערך בקובץ. השנייה מקבלת שם של קובץ, מצביע למערך של int-ים ואת אורכו, וקוראת את תוכן הקובץ לתוך המערך. כל פונק' תחזיר: -1 אם הייתה שגיאה בפתיחת קובץ, אחרת תחזיר 1.

שאלה 5 – פו' כותבת

שאלה 5 – פו' קוראת

שאלה 5 – תוכנית ראשית

שאלה 5 – תוכנית ראשית

fscanf - format specification Fields A format specification has the following form: %[*] [width] type If the first character in the set is a caret (^), the effect is reversed: The input field is read up to the first character that does appear in the rest of the character set. For example: fscanf( ptr, "%20[^#] %*c %9d", name, &id); the function fscanf reads 20 characters, or till letter (‘#') , or till newline from the input stream and stores them in field name, then it reads the next 9 characters and converts them into integer id, then it reads one symbol which is not stored.

שאלה ממבחן 2006 כידוע מחלקת הביטחון של האוניברסיטה מעמידה שומרים במספר עמדות באוניברסיטה. בשאלה הזאת נגביל את מספר השומרים ל-9 ומספר העמדות ל-2. עבור כל עמדת שמירה מגדירים קובץ של רשימת השמירה החודשית של העמדה. כל שורה בקובץ כזה מכילה את הפרטים הבאים: קוד שומר – ספרה אחת בין 1 ל-9 שם השומר – 20 תווים מס. ת.ז. – 9 ספרות זמן תחילת השמירה – 6 ספרות (ddhhmm) מספר שעות שמירה – ספרה אחת הזמן מוגדר ע"י 6 ספרות בצורה ddhhmm ובו dd הוא היום בחודש, hh השעה, mm הדקה לדוגמה 172300 מגדיר את ה-17 לחודש שעה 23:00. קובצי רשימות השמירה ממוינים לפי זמן תחילת השמירה בסדר עולה..

שאלה ממבחן 2006 כתוב פונקציה void schedule(FILE* list1,FILE* list2, int code, char* filename) שמקבלת שני מצבעים לקובצי רשימות השמירה החודשיות של העמדות מס' 1 ו- מס' 2, code קוד של שומר מסוים (בין 1 ל-9) ומחרוזת filename. הפונקציה יוצרת קובץ חדש בשם filename של סידור עבודה חודשי של אותו שומר.   הקובץ החדש מכיל בשורה ראשונה: שם השומר – 20 תווים מס. ת.ז. – 9 ספרות בהמשך כל שורה מכילה את הפרטים הבאים: מספר עמדה – ספרה (1 או 2) זמן התחלה – 6 ספרות (לפי המבנה ddhhmm) מספר שעות – ספרה אחת הקובץ ממוין לפי זמן התחלה בסדר עולה. הגבלה: אין לסרוק קובץ יותר מפעם אחת. אין להעתיק קובץ למבנה נתונים אחר (מערך, רשימה משורשרת, קובץ עזר...)

פתרון: flag1 = fscanf(list1, "%d%29[^$]%d", &code1, details1, &time1); void schedule(FILE* list1,FILE* list2, int code, char* filename){ char details1[30], details2[30]; int code1, code2, time1, time2, first=1, flag1, flag2; FILE* fp; if(!(fp=fopen(filename,"w"))){ puts("Error, can't open file"); exit(1); } flag1 = fscanf(list1, "%d%29[^$]%d", &code1, details1, &time1); flag2 = fscanf(list2, "%d%29[^$]%d", &code2, details2, &time2);

פתרון flag2 = fscanf(list2, "%d%29[^$]%d", &code2, details2, &time2); while(flag1==3 || flag2==3){ if((flag1==3)&&(code1!=code)){ flag1 = fscanf(list1, "%d%29[^$]%d",&code1, details1, &time1); continue; } if((flag2==3)&&(code2!=code)){ flag2 = fscanf(list2, "%d%29[^$]%d", &code2, details2, &time2);

פתרון if((flag2!=3)|| ( flag1==3 && time1<time2 ) ){ if(first){ fprintf(fp, "%s\n", details1); first=0; } fprintf(fp,"1%d\n", time1); flag1 = fscanf(list1,"%d%29[^$]%d",&code1,details1,&time1); else{ fprintf(fp, "%s\n", details2); fprintf(fp,"2%d\n", time2); flag2 = fscanf(list2,"%d%29[^$]%d",&code2,details2,&time2); fclose(fp);