Slide 1

מסמכים קשורים
Slide 1

Slide 1

Slide 1

Slide 1

Microsoft Word B

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

Microsoft PowerPoint - YL-05.ppt

מבוא לתכנות ב- JAVA תרגול 7

Tutorial 11

מהוא לתכנות ב- JAVA מעבדה 3

PowerPoint Presentation

תכנות מונחה עצמים א' – תש"ע

Microsoft PowerPoint - rec3.ppt

הגשה תוך שבוע בשעת התרגול

מבוא למדעי המחשב

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

Microsoft PowerPoint - rec1.ppt

Slide 1

PowerPoint Presentation

סדנת תכנות ב C/C++

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

PRESENTATION NAME

מבוא למדעי המחשב

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

שאלהIgal : מערכים דו מימדיים רקורסיה:

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

תרגול 1

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

תוכן העניינים

תוכן העניינים

מבוא למדעי המחשב - חובלים

Slide 1

מבוא למדעי המחשב - חובלים

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

מקביליות

שאלהIgal : מערכים דו מימדיים רקורסיה:

PowerPoint Presentation

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

Slide 1

מבוא לתכנות ב- JAVA תרגול 11

Slide 1

Microsoft Word - c_SimA_MoedB2005.doc

שאלהIgal : מערכים דו מימדיים רקורסיה:

PowerPoint Presentation

מקביליות

Slide 1

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

ex1-bash

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

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

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

תרגול 1

מבוא למדעי המחשב

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

PowerPoint Presentation

מערכות הפעלה

עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ

מקביליות

Slide 1

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

מבוא למדעי המחשב

Slide 1

Python 2.7 in Hebrew

מבוא לאסמבלי

PowerPoint Presentation

PowerPoint Presentation

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

הגשה תוך שבוע בשעת התרגול

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec2.ppt

מתכונת עיצוב 3013

PowerPoint Presentation

PowerPoint Presentation

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

Homework Dry 3

Microsoft Word - 01 difernziali razionalit

תרגיל בית מספר 1#

מבוא למדעי המחשב

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן

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

סיכום הוראות Touch touchend יקרא לפונקציה כשיסתיים המגע עם הסמארטפון. - touchmove יקרא לפונקציה במהלך תזוזת המגע עם הסמארטפון. touchstart יקרא לפונקצי

Microsoft Word - pitaron222Java_2007.doc

מצגת של PowerPoint

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

מבוא למדעי המחשב

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

תמליל:

בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף לה שיפורים. מבוא למחשב בשפת : פונקציות מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור. כל הזכויות שמורות לטכניון מכון טכנולוגי לישראל בנוסף, תכנות באופן שהצגנו עד כה יסבול מ-שכפול קוד: גושים נפרדים של קוד המבצעים את אותה הפעולה )או פעולה דומה( החוזרים על עצמם במקומות שונים בתוכנית. דוגמה - GCD לשלושה מספרים חלוקה לפונקציות: יתרונות בעזרת שימוש בפונקציות, ניתן לפרק בעיות מורכבות לתת-בעיות קטנות ופשוטות )כמו ב-: הוכחה מתמטית, מתכון בישול וכדומה(. void pasta_bolognese() לדוגמה, הכנת ספגטי בולונז: prepare_spaghetti(); prepare_sauce_bolognese(); stir; serve; void prepare_spaghetti() boil_water; add_spaghetti; while ( not_ready ) stir; wait(); להזכירכם אנו יודעים לפתור בעיה זו ביעילות לצמדים. כיצד נכליל זאת לשלשות? דוגמה: מהו ה- GCD של המספרים 840, 96? 46, דרך הפתרון )להבנה מתמטית ולא ליישום אלגוריתמי בהכרח( הינה 1. פירוק כל אחד מהמספרים למכפלת ראשוניים a = 840 = * * * 3 * 5 * b = 46 = * 3 * * 11 c = 96 = * * 11 * 19. מציאת החיתוך בגורמים הראשוניים הללו ו- כלומר 14. חיתוך בין השלושה ניתן לביצוע בשני שלבים: 1. חישוב חיתוך בין שני הראשונים - למעשה gcd(a,b) - אשר ייתן את התוצאה * 3 * כלומר.4. חישוב חיתוך בין תוצאת הסעיף הקודם לאיבר השלישי, דהיינו,.gcd(gcd(a,b),c) 5 4 הגדרת פונקציה דוגמה: מציאת GCD של שלושה מספרים הכרזה )חתימה( int gcd(int n, int m); int a, b, c, gcd_ab, gcd_abc; scanf("%d%d%d", &a, &b, &c); gcd_ab = gcd(a, b); gcd_abc = gcd(gcd_ab, c); printf("gcd: %d",gcd_abc); הגדרה )פונקציה עצמה( int gcd(int n, int m) int t; while ( m!= 0 ) t = m; m = n % m; n = t; return n; קריאה קריאה 1 כותרת הפונקציה גוף הפונקציה מילת המפתח void משמשת לציון הדברים הבאים: פונקציה שאינה מחזירה ערך: הצהרה על פונקציה בעלת רשימת פרמטרים ריקה: return-type function-name(parameters-list) variable definitions statements return statement void int print_result(int); getchar(void); 6 1

קריאה לפונקציה: call by value מה מתבצע בעת הקריאה לפונקציה?.1..3.4 מוקצים תאי זיכרון עבור המשתנים הנמצאים ברשימת הארגומנטים בהגדרת הפונקציה. מחושבים הביטויים הנמצאים ברשימת הארגומנטים המופיעים בקריאה לפונקציה )שם אחר לארגומנטים: פרמטרים אקטואליים(. שים לב: function-name(arguments-list) סדר החישוב ערכי הארגומנטים איננו מוגדר. הערך כל ביטוי מוכנס למשתנה המתאים. אופן העברת פרמטרים כזה מכונה בשם:.call by value מוקצים )ומאותחלים( המשתנים לוקליים המוגדרים בגוף הפונקציה. 5. מתבצע קוד הפונקציה. תמונת זיכרון: קריאה לפונקציה וחזרה ממנה int gcd(int n, int m) return n; int foo() int d; d = gcd(9-1, 8 ); return gcd(5 1, d); n m? 8 51? 0 d? #include חתימות 8 9 הכרזה על פונקציה חזרה מפונקציה כיצד מתבצעת החזרה מפונקציה?.1 ניתן להחזיר ערך לסביבה הקוראת באמצעות פסוק.return. ישנם שני סוגי פסוק :return return value; return; לפונקציות שיש להן ערך מוחזר. לפונקציות שטיפוס החזרה שלהן הוא )ניתן להשמיט פסוק זה אם הוא האחרון בפונקציה(.void לפני קריאה לפונקציה חובה שתופיע בקובץ: הגדרה )definition( שלה או הכרזה )declaration( עליה. הכרזה מיידעת את המהדר לגבי מספר הפרמטרים, טיפוסיהם וטיפוס החזרה, ומאפשרת לבצע המרות טיפוסים אוטומטיות במידת הצורך. פסוק #include מאפשר לייבא הכרזות של פונקציות ספריה מקובץ הכרזות אשר שמו מכיל סיומת h. כך למשל, אנו מייבאים את ההכרזות של פונקציות הקלט/פלט הסטנדרטיות ובכללן printf ו- scanf מהקובץ.stdio.h int gcd(int n, int m) return n; void print_result(int) return; double sqrt(double); long power(int, int); long power(int base, int exponent); דוגמאות להכרזות: מה עדיף? 10 1 המשך דוגמה 1: הפונקציה כחלק מתוכנית דוגמה 1: ערך מוחלט הפונקציה הבאה תחזיר את הערך המוחלט של הפרמטר שלה: הפונקציה שאנו מגדירים מהווה למעשה חלק מתוכנית: double my_abs(double x); double abs(double x) if ( x < 0 ) return -x; return x; חובה return בכל אחד מנתיבי הבקרה double y; printf("y = "); scanf("%lf", &y); printf(" %f = %f\n", y, my_abs(y)); האם אין צורך ב- else? double my_abs(double x) if ( x < 0 ) return -x; return x; 14 15

ארגון קובץ המכיל מספר פונקציות: top-down design בראש הקובץ מופיעות הכרזות על הפונקציות השונות, ואח"כ הן מוגדרות: מסודרות למשל, לפי העקרונות של תכנון מלמעלה למטה ארגון קובץ המכיל מספר פונקציות: top-down design #include <> int max(int a, int b); int min(int a, int b);... max(x,y); min(x,y) int max(int a, int b) int min(int a, int b) #include <> int max(int a, int b) int min(int a, int b) max(x,y);. )top-down design( לעיתים ניתן לסדר את הפונקציות כך שכל פונקציה מוגדרת לפני השימוש בה, לפי תכנון מלמטה למעלה ( bottom-up.)design ניתן לחסוך הכרזות. פחות מומלץ. 1 0 דוגמה: איזה מין מספר? top-down design בדיקת ריבוע, עיגול וקטימה פונקציות: round trunc ceil floor #include <math.h> enum FALSE, TRUE; int is_square(unsigned int n); int is_prime(unsigned int n); double my_round(double frac); double my_trunc(double frac); נכתוב תוכנית המקבלת מספר n ובודקת אם הוא: 1( ראשוני? ( ריבוע שלם? 3( לא זה ולא זה 3 המשך הדוגמה: פונקציה לבדיקת ראשוניות המשך הדוגמה: הפונקציה הראשית int num; while (scanf("%d", &num) == 1) if (num < 0) printf("%d is negative\n", num); continue; if (is_square(num)) printf("%d is a square\n", num); else if ( is_prime(num) ) printf("%d is a prime\n", num); else printf("%d is neither a prime nor a square\n", num); int is_prime(unsigned int n) int ; if ( n == ) return TRUE; if ( n % == 0 n < ) return FALSE; sqrt_n = my_round(sqrt(n)); /* is (int)sqrt(n) good too? */ for ( i = 3; i <= sqrt_n; i += ) if ( n % i == 0 ) return FALSE; return TRUE; 4 5 3

המשך הדוגמה: בדיקת ריבוע, עיגול וקטימה המשך הדוגמה: בדיקת ריבוע, עיגול וקטימה 3 1 0 - double my_round(double frac) -3-3 - -1 0 1 3 return my_trunc(frac + frac < 0? -0.5 : 0.5); -1 int is_square(unsigned int n) int sq = my_round(sqrt(n)); return (sq * sq == n); double my_trunc(double frac) return frac > 0? floor(frac): ceil(frac); 6 מחסנית הקריאות stack call מחסנית הקריאות הגדרה 1: מחסנית )Stack( היא מבנה נתונים הפועל בצורה דומה לזו של מחסנית רובה: האיבר שנכנס אחרון למחסנית יוצא ממנה ראשון )תכונה זו מכונה.)LIFO - Last In First Out 8 9 התפתחות מחסנית הקריאות בדוגמה מחסנית הקריאות stack call הגדרה : מחסנית הקריאות הינה מחסנית מיוחדת השומרת מידע אודות הפונקציות שמתבצעות כרגע ומשתניהם. כאשר פונקציה נקראת, דוחפים למחסנית את: 1( כתובת החזרה ואת ( הפרמטרים שנשלחים לפונקציה. הקצאת הזיכרון 3( למשתנים המקומיים של הפונקציה הנקראת נעשית גם על המחסנית. ביציאה מהפונקציה, מוציאים את המידע הנ"ל מהמחסנית ומשתמשים בכתובת החזרה כדי לקפוץ לביצוע הפקודה הבאה בפונקציה הקוראת. תמיד מתקיים: הנתונים של הפונקציה הנוכחית בראש המחסנית.)LIFO( 1 my_trunc() frac = 3.3 frac =.8 6 floor() my_trunc() frac = 3.3 frac =.8 sqrt() 3 my_trunc() frac = 3.0 frac =.8 8 4 frac = 3.0 9 frac =.8 5, i sqrt_n = 3 10 31 30 4

תחומי הכרה של מזהים )Scope( 1) תוכנית בשפת C מורכבת מבלוקים: פונקציות ובהן פסוקים מורכבים. Scope מרחב הקיום ) בתחילת כל בלוק (3 )אך ורק!( ניתן להגדיר משתנים מקומיים. ניתן לפנות אל משתנה מקומי באמצעות המזהה שלו רק בבלוק בו הוא מוגדר, כולל בבלוקים המוכלים בו, החל ממקום ההגדרה ועד סוף הבלוק. 4) מזהה מבלוק חיצוני תקף בתוך בלוק פנימי, אלא אם הוגדר מחדש בבלוק הפנימי. במילים אחרות: מזהה המוגדר בבלוק פנימי "מסתיר" מזהה בעל שם זהה בבלוק חיצוני. 33 3 תחומי הכרה של מזהים )Scope( משתנים מקומיים ניתוח ע"י מחסנית int a = 1, b =, c = 3; printf( %3d %3d %3d \n,a,b,c); int b = 4; double c = 5.0; printf( %3d %3d %3f \n,a,b,c); a = b; int c; c = b; printf( %3d %3d %3d \n,a,b,c); printf( %3d %3d %3f \n,a,b,c); c 4 c 5.0 b 4 c 3 b a 14 printf( %3d %3d %3d \n,a,b,c); מחסנית המשתנים כאשר קוראים לפונקציה, משתני הפונקציה )=הבלוק( הקוראת אומנם שמורים במחסנית, אך המזהים שלהם אינם מוכרים בפונקציה הנקראת, ועל כן לא ניתן לפנות אליהם באמצעות המזהים שלהם מהפונקציה הנקראת. משתנה המוגדר מחוץ לכל בלוק נקרא משתנה חיצוני )גלובלי(. משתנה גלובלי מוכר בכל הקוד החל ממקום הגדרתו ועד סוף הקובץ, ומשתנה גלובלי עשוי להיות מוכר גם בקבצים אחרים של התוכנית. מלבד בבלוקים שבהם הוגדר מחדש, ועל כן הוסתר. 35 34 מחלקות זיכרון סוגי המשתנים סוגי הזיכרון (1 ( (3 (4 הזיכרון להקצאת המשתנים מקורו בארבעה סוגים: זיכרון סטטי קטע בזיכרון התוכנית המוקצה לאותם משתנים למשך כל חיי התוכנית. זיכרון אוטומטי קטע ברשומת הפעלה שבתוך מחסנית הקריאות המוקצה לאותם משתנים )או פרמטרים( למשך חיי הקריאה לפונקציה. אוגרים )Registers( יחידות זיכרון קטנות בתוך המעבד עצמו אשר לצורך הקצאת המשתנים ניתן לראותן כ"הרחבה" של רשומת ההפעלה של פונקציה. זיכרון דינאמי קטע בזיכרון התוכנית המוקצה ע"פ בקשה מפורשת )malloc( עד שהוא משוחרר ע"פ בקשה מפורשת )free( או עד לסיום התוכנית. 3 36 5

משתנים סטאטיים - STATIC דוגמה סוגי משתנים - סיכום הגדרה אורך חייו של המשתנה משתנה בלוק אוטומטי משתנה בלוק סטטי משתנה גלובלי int sum = 0; static int num = 1; int sum = 0; )בתוך בלוק( )בתוך בלוק( לאורך ריצת הבלוק לכל אורך ריצת התכנית בלבד מתבצע אתחול אוטומטי לאפס המשתנה אינו מאותחל אם אין אתחול מפורש, אזי מרחב הקיום )scope( בבלוק )ובבלוקים בבלוק )ובבלוקים המוכלים ) המוכלים) )מחוץ לבלוקים( לכל אורך ריצת התכנית מתבצע אתחול אוטומטי לאפס ממקום ההגדרה ובהמשך הקובץ void f(void); int cnt; for(cnt = 0; cnt < 5; ++cnt) f(); for(cnt = 0; cnt < 5; ++cnt) f(); void f(void) static int cnt = 1; printf("%d ",cnt++); פלט תוכנית זו יהיה 1 3 4 5 6 8 9 10 באופן זה, המשתנה סטאטי מאפשר ספירה של מספר הפעמים בהם פונקציה מסוימת נקראת במהלך הרצת התוכנית. 38 39 6