1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.

Slides:



Advertisements
Similar presentations
ממיבחניםC שאלות ++.
Advertisements

תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
1 מבוא למדעי המחשב הקצאה דינאמית. 2 הקצאת זיכרון דינאמית  כאשר אנו משתמשים במערכים, אנו מקצים אוטומטית את הזיכרון המקסימלי שנצטרך.  בפועל, אנו משתמשים.
כתיבת עבודת גמר מבנה העבודה  מבחינה צורנית - יש להקפיד על אחידות בכתיבה  כותרות אחידות  רווחים זהים, פונט בגודל אחיד (12, רווח וחצי)  הצגת.
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
1 מבוא למדעי המחשב משתנים. 2  סוגי משתנים בשפת C  ההבדלים בין סוגי המשתנים השונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
תכנות תרגול 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 תרגול
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תרגול 10: הכרות עם ++C ++C כ- C משופר
1 מבוא למדעי המחשב ארגומנטים לתוכנית בזמן ריצה קבצים הקדם מעבד Preprocessor טיפוסים סדורים Enumerated Types Typedef.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב שפת c
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
1 תרגול 3 - מערכים מבוא למדעי המחשב – סמסטר א' תשע"א.
מבוא למדעי המחשב תרגול 5 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Sscanf example #include int main () { char sentence []="Rudolph is 12 years old"; char str [20]; int i; sscanf (sentence,"%s %*s %d",str,&i); printf ("%s.
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
הגדרת משתנים יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר 2015 יום שישי 18 ספטמבר.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 מבוא למדעי המחשב הרצאה 5: פונקציות. 2 מבוא לפונקציות חלוקה של אלגוריתם לתת משימות: משימה - פונקציה: דוגמאות מציאת המקסימלי מבין שני איברים האינדקס של.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Overview of C#. Agenda Structure of a C# Program Basic Input/Output Operations Compiling, Running, and Debugging Namespaces.
פס על כל העיר נורית זרחי.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Programming Arrays.
Formal Specifications for Complex Systems (236368) Tutorial #1
מחלקות classes.
מבוא למדעי המחשב סיבוכיות.
מ- JAVA ל- C קרן כליף.
Computer Programming Fall 2012 תרגול
פונקציות קרן כליף.
פונקציות קרן כליף.
פונקציות קרן כליף.
סוגי משתנים קרן כליף.
תוכנה 1 תרגול 13 – סיכום.
תכנות מכוון עצמים ו- C++ יחידה 02 העמסת פונקציות, ערכי ברירת מחדל, enum, קימפול מותנה קרן כליף.
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Main() { int fact; fact = Factorial(4); } main fact.
Presentation transcript:

1 מבוא למדעי המחשב מבנה של תכנית

2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית אחת על פני מספר קבצים.  כל פונקציה חייבת להיות מוגדרת בשלמותה בקובץ אחד.  יתרונות: פיתוח מודולרי של תוכנה. ניתן לקמפל כל קובץ בנפרד.

3 חלוקה לקבצים - קומפילציה  נניח שתכנית כלשהיא מורכבת מן הקבצים, f2.c, f3.c f1.c.  ניתן לקמפל את כל הקבצים בפקודה אחת. למשל ב- unix: gcc f1.c f2.c f3.c ביצוע פקודה זאת יגרום ליצירת הקבצים:, f2.o, f3.o f1.o וכן לאיחודם בתכנית אחת a.out.  אם יש טעות קומפילציה, למשל ב- f2.c, ניתן לתקנה ואזי: gcc f1.o f2.c f3.o שימו לב שרק הקובץ f2.c יעבור קומפילציה מחדש ← חיסכון בזמן הקומפילציה!

4 חלוקה לקבצים הבעיה:  מה אם פונקציה מוגדרת בקובץ אחד אך משתמשים בה בקובץ אחר?  איך הקומפיילר ידע שאכן יש התאמה בין הטיפוס המוגדר של הפונקציה ובין הטיפוס שהסביבה הקוראת מניחה?  ניתן לקמפל כל קובץ בנפרד ללא בעיה, אך רק בזמן ריצה תתרחש הטעות!  למשל: ב- f1.c תוגדר הפונקציה double func (double x) { : } אך ב- f2.c תיקרא הפונקציה ע"י הפקודה int num=func(2);

5 חלוקה לקבצים  הבעיה: מה אם פונקציה מוגדרת בקובץ אחד אך משתמשים בה בקובץ אחר?  הפתרון: הצהרה על הפונקציה בסביבה בה משתמשים בה.  שימו לב: ראינו כי הצהרות על פונקציות אינן חובה, אך כאשר פונקציה מוגדרת בקובץ אחד ונקראת בקובץ אחר, כדאי מאד לקובץ בו הפונקציה נקראת להצהיר על כל פונקציה שהקובץ משתמש בה. הרעיון: לגלות כמה שיותר טעויות בזמן קומפילציה ולא בזמן ריצה!  בדר"כ מקובל לפרט הצהרות על פונקציות בקובץ כותרים (header file).

6 קובצי כותרים (header files)  קובץ כותרים הינו קובץ המכיל הצהרות על משתנים חיצוניים ועל פונקציות בהם משתמשת תכנית.  באופן מסורתי, שמו מסתיים ב-.h  דוגמא:  תכנית הבנויה משלושה קבצים f1.c, f2.c, f3.c  פונקציה בשם func מוגדרת בקובץ f1.c.  יש פונקציות בקבצים f2.c ו- f3.c המשמשות בפונקציה func.  ההצהרה על הפונקציה func תישמר בקובץ נפרד (למשל, f.h).  הקבצים f2.c ו- f3.c יטענו את הקובץ f.h (ובכך את ההצהרות בו) ע"י הפקודה: #include “f.h”

7 דוגמא  נרצה לבנות ספריה של פונקציות מתמטיות (כגון power ו- factorial).  נאגד את הפונקציות הללו בקובץ mathf.c.  בנוסף, נבנה קובץ בשם mathf.h שיכיל את ההצהרות ל הפונקציות והמשתנים החיצוניים המוגדרים ב- mathf.c : extern int max_faxtorial; extern double factorial (int n); extern int power (int base, int n);  בקובץ שבו נרצה להשתמש באחת מן הפונקציות המתמטיות הללו, נוסיף טעינה של קובץ הכותרים: #include “mathf.h”

8 קובצי כותרים (header files) משמעות ההנחיה #include “file_name.h”:  בזמן קומפילציה יתייחס הקומפיילר לקובץ בו מופיעה ההנחיה כאילו במקום בו הופיעה המילה include – מופיעות בו למעשה ההצהרות שהן תוכן קובץ הכותרים.  המרכאות הכפולות מציינות לקומפיילר שהקובץ אינו אחד מקבצי הכותרים הסטנדרטיים.  כאשר טוענים קובץ כותרים סטנדרטי יש להשתמש בסוגריים משולשים. למשל: #include

חלוקה לקבצים – דוגמא /* mathf-main.c */ /* This program uses the mathf library functions */ #include #include "mathf.h" /* test the power function */ int main() { int i; for (i=0; i<max_factorial; i++) { printf("i=%d, 2^i=%d, i!=%ld\n", i, power(2,i), factorial(i)); } return 0; } /* mathf.h */ extern int max_factorial; extern int power(int base, int n); extern long factorial(int n); /* mathf.c */ /* A small mathematical library */ /* containing power and factorial */ /* external variable defined here: */ int max_factorial=10; /* power: raise base to n-th power; n>=0 */ int power(int base, int n) { int i, p=1; for (i=1; i<=n; i++) p = p*base; return p; } /* factorial: compute n! */ long factorial(int n) { long result=1; if (n max_factorial) return -1; else { while (n>0) result *= n--; } return result; }