רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

Slides:



Advertisements
מצגות קשורות
הערכות מילוליות קורס מנב"ס בתוכניות להכשרת מנהלים ומורים במוסדות להשכלה גבוהה, תשס"ה. © כל הזכויות שמורות למשרד החינוך התרבות והספורט.
Advertisements

ניתוח שאלות וכתיבת תשובות
חוזרים ויודעים את סדר הפעולות עם סוגריים
מערכות סדרתיות (מערכות עקיבה)
הכרת תוכנת בקרים. כניסה לתוכנה תתבצע בשלבים הבאים: 1
אוגרים ומונים – Registers & Counters
אוגרים ומונים – Registers & Counters
תכנות בשפת C תרגול 11 - קבצים.
הרצאה 02 סוגי משתנים קרן כליף.
יצירת מקרו הפעלת מקרו יצירת לחצן / פקד דוגמה מסכמת
מבוא לתכנות ב-JAVA מעבדה 1
תרגול 1: סביבת העבודה ומבוא ל-Java
Mitug.com- אתר מיתוג של פטריק
נערך ע"י אריק הוד, הגימנסיה העברית הרצליה
תרגול 5: לולאות ומערכים.
תרגול מס' 8 משתנים מיוחסים מבוא ל-C++ קלט/פלט ב-C++
מבוא למדעי המחשב מ' - תירגול 9
תירגול 10: מבנים (structs) וקבצים
מצגת בנושא זיהוי נגדים בשיעור זה נלמד כיצד מזהים את התנגדותו של הנגד ואת מידת הדיוק שלו. שני הצבעים השמאליים( א, ב ) נקראות "הספרות המשמעותיות" והן מציינות.
הרצאה 3: משפטים, תנאים ולולאות
מבצעים: רועי מור טל מסרי
מבוא למדעי המחשב הרצאה מספר 12: רקורסיה
תכנות בשפת C תרגול 11 רשימות מקושרות מבנים
תרגול Introduction to C - Fall Amir Menczel.
פעולות אריתמטיות קרן כליף.
Computer Programming תרגול 1 Summer 2016
תירגול 11: מיונים וחיפוש בינארי
נערך ע"י אריק הוד הגימנסיה העברית הרצליה

תירגול 3: לולאות, קלט, וטיפוסים
תכנות בשפת C תרגול 8 רקורסיה
קשרי מקסוול (מתכון לתמרונים אלגבריים בבעיות תרמודינאמיות)
תירגול 8:מצביעים והקצאה דינאמית
מבוא למדעי המחשב הרצאה 9: רקורסיה
תרגול 6: פונקציות, סוגי משתנים, top-down design
תירגול 2: מבוא לתיכנות ב-C
פתרון של מערכת משוואות לינארית
כל הזכויות שמורות לגבריאל אנקרי © 2017
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
מבוסס על שקפים מאת יאן ציטרין
מבוא לתכנות מונחה עצמים Object Oriented Programming
הרצאה 10: אלגוריתמי מיון רקורסיביים Merge sort ו-Quick sort
תורת הקומפילציה תרגול 9: תרגום לקוד ביניים
מבוא לתכנות למערכות מידע
אלגוריתמי מיון רקורסיביים
אנליטית זוית בין שני ישרים הוכחה ~> דוגמא ~> סיכום!! ^_^
המשך תכנות מונחה עצמים תרגול מס' 9.
כל הזכויות שמורות לגבריאל אנקרי © 2017
תרגול 13 : חזרה נכתב על-ידי לימור ליבוביץ נערך ע"י ישראל גוטר
Marina Kogan Sadetsky –
Solving Simultaneous Linear Equations Using GPU
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
מי רוצה להיות צלם מיליונר ?
אוטומטים ושפות פורמליות
צמצום בעזרת מפת קרנו.
מבוא לתכנות ב- JAVA מעבדה 4
יסודות חומר טהור הבנוי מסוג אחד של אטומים.
מבוא למדעי המחשב סמסטר ב' – 2008 מרצה: יעל סיגל מתרגל: ענבל בודובסקי.
מצביעים Pointers – המשך...
אמנות שהיא לרגע ואמנות שמנציחה רגע מוגש על ידי: עמית לונדנר
Data Structures, CS, TAU, Perfect Hashing
הצג את עצמך, את עמותת תפוח ואת נושא הפעילות.
ניהול שינויים במחסן נתונים יש עומק היסטורי הארגון משתנה במשך הזמן
עקרונות תכנות מונחה עצמים תרגול 9:C++ - תרגילים
Java Programming רשימות מקושרות - המשך
רשימות מקושרות עבודה עם קבצים דוגמה
תמליל מצגת:

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © מבוא למדעי המחשב 234111 הרצאה מספר 4: משתנים, טיפוסים, ביטויים ואופרטורים מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © משתנים תא זיכרון שניתן לו שם (מזהה) נקרא משתנה כתיבה למשתנה מתבצעת ע”י סימן = (אופרטור השמה( למשל: base_grade=91; final_grade=base_grade+4; משתנה – כי ערכו יכול להשתנות במהלך ריצת התוכנית לצייר על הלוח מבנה זיכרון להראות שתוכן התא משתנה מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

טיפוסי משתנים וקבועים בשפת c יש להגדיר משתנים לפני שמשתמשים בהם ההגדרה הינה הוראה לקומפיילר: להקצות תא בזיכרון בגודל המתאים לקרוא לתא בשם הנתון לפרש ולהתייחס אל תוכן התא לפי הטיפוס הנתון ניתן לאתחל את התא int num, sum; double weight = 0.0; char digit = '4'; יש שפות שבהן לא צריך להגדיר משתנה לפני השימוש בשפת c הגדרת המשתנים נעשית בתחילת התוכנית להדגיש שבשפת c הקצאת תא משתנה אינה מאתחלת אותו. לתת דוגמא שניתן לבצע % רק על שלמים דגשים: ניתן להקצות (ולאתחל) כמה משתנים מאותו סוג במשפט אחד. האתחול יכול לכלול ביטויים אריתמטיים ומשתנים אחרים לא יודעים אם מותר? מנסים! מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © הטיפוסים השלמים הטיפוסים השלמים נבדלים זה מזה בגודל התא – כלומר כמות הביטים (הספרות בינאריות) הטיפוס הבסיסי הינו int גודל תא מסוג int תלוי במחשב ובמערכת ההפעלה. כיום בד”כ גודלו 4 בתים (32 סיביות) מה תחום המספרים שאפשר לייצג באמצעות תא מסוג int ? איך מייצגים מספרים שלמים? הטיפוס הבסיסי int – כלומר כל קבוע שלם הינו מטיפוס int אלא אם כן מצוין אחרת. להסביר על הלוח מהו תחום המספרים שאותו ניתן לייצג באמצעות int מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

הטיפוסים השלמים (המשך) טיפוסים שלמים נוספים: 1 byte =char ≤ short ≤ int ≤ long ≤ long long מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ייצוג תווים מכיוון שלא ניתן לשמור תווים בזיכרון אלא מספרים (למעשה מספרים בינאריים) נייצג כל תו באמצעות מספר שלם. למשל: התו ‘a’ ייוצג ע”י המספר 97, התו '1' ייוצג ע”י המספר 49, וכו' יישנן מספר טבלאות לייצוג תווים. בשפת C משתמשים בדרך כלל בטבלת ASCII שבה 128 ערכים כדי לייצג תווים אנו זקוקים לבית בודד (משתנה מסוג char) לציין שיש טבלה מורחבת שבה 255 ערכים הטבלה מייצגת את כל תווי המקלדת ועוד מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © טבלת ה-ASCII להראות אתחול משתנים ע”י שלמים כאשר הערך מייצג תן מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ייצוג תווים (המשך) כיצד מדפיסים תווים? הדגל %d מדפיס את הערך העשרוני בתא הדגל %c מדפיס את התו המיוצג בתוכן התא char c; c=97; printf(“%d\n”, c+2); printf(“%c\n”, c); printf(“%c\n”, c+3); מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ייצוג תווים (המשך( כיצד ניתן לאתחל תווים ללא צורך לזכור את טבלת ה- ASCII? הקומפיילר יודע לבצע את ההמרה באופן אוטומטי char c; int d; d='c' c='a'; printf(“%d\n”, c+d); printf(“%c\n”, c+5); c=c+3; printf(“%c\n”, c); להסביר שהקומפיילר יודע לבצע את ההמרה. כאשר תו מוקף בגרש בודד הקומפיילר ממיר את התו לערכו בטבלה ה-ASCII להסביר שלא צריך לזכור את הטבלה למעט: כל האותיות הקטנות רצופות כל הספרות רצופות מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ייצוג תווים (המשך) התו ‘\n’ - ערכו בטבלה הוא 10 - מייצג שורה חדשה char c; c='\n'; printf(“%d”, c); printf(“%c\n”, c); מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

הטיפוסים הממשיים מאפשרים לייצג מספרים ממשיים הטיפוס הבסיסי הינו double גודלו הוא בדר”כ 8 בתים טיפוסים ממשיים נוספים float ≤ double ≤ long double גם כאן הטיפוסים השונים נבדלים זה מזה בגודל ותחום הייצוג מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ייצוג מספרים ממשיים בשיטת הנקודה הצפה (floating point) מספר הערכים השונים אותם ניתן לייצג הוא סופי ותלוי בגודל המשתנה ייצוג שלמים: - כל ערך מייצג מספר שלם - המרחק בין שני מספרים עוקבים הוא קבוע ושווה ל-1 להראות דוגמא לייצוג שלמים דרך ראשונה: מרחקים שונים בין שני מספרים, למשל 0.1 יתרון: מאפשר ייצוג ממשיים בקלות. חסרון לא ניתן לייצג מספרים גדולים, או מאוד קטנים. ברגע שקבענו את הרזולוציה הגבלנו את הייצוג מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ייצוג מספרים ממשיים בשיטת הנקודה הצפה (המשך) כל מספר מיוצג ע”י שני מספרים שלמים: - גודל - אקספוננט למשל המספר 1.23 ייוצג ע"י שני שלמים 2-, 123 באופן הבא: הגודל של המספר מכונה mantissa ומסומן ע”י האות m האקספוננט (שנקרא exponent)מסומן ע”י האות e שיטה שנייה: הרזולוציה יכולה להשתנות באופן דינאמי. איך? חלק מהספרות ייקבעו את הרזולוציה. מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ייצוג מספרים ממשיים בשיטת הנקודה הצפה (המשך) במחשב מחולק תא הזיכרון לשני חלקים חלק אחד משמש לייצוג הגודל החלק השני משמש לייצוג האקספוננט החלוקה אינה ניתנת לשינוי דוגמא: 12 bits 4 bits mantissa exponent מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ייצוג מספרים ממשיים בשיטת הנקודה הצפה (המשך) יתרונות: ניתן לייצג טווח מספרים גדול (ע”י שינוי ערך האקספוננט) - טווח ייצוג של double תלוי בקומפיילר ב visual: ב gcc: חסרון: קשה לבצע פעולות חשבוניות - כיום מתבצעות פעולות במספרים ממשיים באמצעות יחידה ייעודית - floating point unit האם ניתן לייצג את כל המספרים הממשיים? להסביר שמעגלים ערכים ממשיים לערך הקרוב ביותר דוגמאות על הלוח לחוסר דיוק עבור: 1/3 100000.0000001 1/3+1/3+1/3 שני החסרונות האחרונים מסבירים למה לא כדאי תמיד להשתמש בטיפוס ממשי. בנוסף יש פעולות שמותרות רק על שלמים למשל % לתת דוגמא של לולאת for עם ממשיים קבועים שלמים וקבועים ממשיים מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ביטויים (expressions) צירוף בעל משמעות של קבועים משתנים ואופרטורים לדוגמא: כל ביטוי מחזיר ערך כל ביטוי הוא מטיפוס מסוים אופרטורים יכולים להיות אונאריים, בינאריים או טרינאריים 7 x x=3+y x>0 x++ מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ביטויים אריתמטיים רשימת אופרטורים חלקית: + - * / % דוגמאות: טיפוס ערך מוחזר ביטוי 1+2*3 (1+2)*3 1-(2+3) 1.0/2.0*3 1/2*3 12%5 12.0%5.0 1.0*2+3 הערך המוחזר הוא “התוצאה” של הביטוי הטיפוס הוא סוג הקבועים והמשתנים שמשתתפים בו להסביר איך ביטוי משוערך: כל ביטוי מורכב מהרבה ביטויים קטנים. מחשבים ביטוי אחרי ביטוי לפי כללי סדר: קודם כפל וחילוק לאחר מכן חיבור וחיסור, סוגריים קודמים לכל (יש ספק? שימו סוגריים). כל ביטוי מחזיר ערך שמשמש את הביטוי הבא. לכל ביטוי יש טיפוס שהוא סוג הטיפוסים שמרכיבים את הביטוי. להתמקד על חילוק בשלמים. מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

המרה אוטומטית בין טיפוסים ביטויים מחושבים תמיד על ערכים מאותו טיפוס אם בביטוי מעורבים ערכים (משתנים או קבועים) מטיפוסים שונים מתבצעת המרה אוטומטית של הערכים לטיפוס הכללי יותר: char → short → int → long → float → double ההמרה מתבצעת רק לצורך החישוב ואינה משנה את תוכן המשתנים בזיכרון דוגמאות: בד”כ נתמקד בהמרות משלמים לממשיים 7+2.5 1/2*3 1/2*3.0 1.0/2*3 מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © אופרטור השמה מעתיקה את הערך המוחזר מהביטוי הימני אל תא הזיכרון שבצד השמאלי כמו כל ביטוי גם ביטוי השמה מחזיר ערך (הערך שהוצב בתא) ויש לו טיפוס (הטיפוס של התא). סדר פעולות: קודם מחשבים את הביטוי שבצד ימין ולאחר מכן מבצעים השמות מימין לשמאל המרה אוטומטית בין טיפוסים: ממירים לתא אליו מבצעים השמה לכל סעיף לתת דוגמא: int x, y=3; x=2+y; 2+(x=4+5) int x; double y; y=x=1.0/2 x=y=1.0/2 מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

אופרטורים אריתמטים (חשבוניים) נוספים אופרטור השמה מקוצר האופרטור x++ x=x+3 x+=3 y=y*(2+3) y*=(2+3) אופרטור מקוצר משלב השמה ופעולה חשבונית. קיים לכל אופרטור בינארי ההבדל בין ++x x++ קיים גם x-- קיימים עוד אופרטורים (לא למדנו את כולם) x=x+1 x+=1 x++ y=y-1 y-=1 y-- מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © דוגמא מסכמת int x, z = 9; double y; 9 9 5 45 y = x = 4 + z++ * 5 / (2 + 7) מה הערך של z? 9 9 9 מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © טבלת קדימויות (חלקית) סדר אופרטור סוג משמאל לימין ( ) סוגריים מימין לשמאל ++ -- + - פעולות אונאריות * / % כפל חילוק מודולו + - חיבור חיסור = += *= /= %= השמה קדימות מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © דוגמא: המרת טמפרטורה לכתוב קוד שגוי: חלוקה בשלמים. לתקן במספר אופנים להשתמש ב-define מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ביטויים לוגיים לכל מחשב, בנוסף ליחידה אריתמטית (שמבצעת פעולות חשבוניות) יש גם יחידה לוגית שבודקת האם לביטוי יש ערך אמת או שקר (True או False) תזכורת ... ... מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © ביטויים וערכי אמת בשפת C: - ערך אמת הוא מספר שלם שונה מאפס - ערך שקר הוא המספר השלם אפס דוגמאות: מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

ביטויים לוגיים ביטויים לוגיים מחזירים : 0 (אם הביטוי הוא שקרי) או 1 (אם הביטוי הוא אמת) ניתן להתייחס אל הטיפוס של ביטוי לוגי כ int אופרטורי ההשוואה: == < <= > >= != מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © אופרטורי השוואה דוגמאות ערך לוגי ערך שלם ביטוי False a==b b==a True 1 b!=a 5 a=b b=a 0<b<8 0<a<8 אסוציאטיביות היא משמאל לימין. איך בונים ביטוי לוגי מורכב? מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © להסביר ולתת דוגמאות x=1; x=!!x 5 && 3 0 && x=3 אופרטורים לוגיים מאפשרים ליצור ביטויים לוגיים מורכבים למשל b<8 וגם b>0 האופרטורים הלוגיים: משמעות אופרטור and && or || not ! מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

אופרטורים לוגיים האסוציאטיביות היא משמאל לימין. אופרטורי השוואה קודמים לאופרטורים לוגיים חישוב ביטוי לוגי נעצר ברגע שערך הביטוי אינו ניתן לשינוי pass = (exam > 55) && (misses <= 3 || good_reason); X=4 Y=4 X<3 && y<7 X<3 && (y=y+1)<7 X<3 || (y=y+1)<7 אם הציון נמוך מ-56 לא ממשיכים בבדיקה אם הציון גבוה מ-55 ויש פחות מ-4 חיסורים, לא בודקים אם יש סיבה טובה מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © האופרטור sizeof מחזיר את גודלו (בבתים) של משתנה או טיפוס מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

המרת טיפוסים מפורשת (casting) ניתן (לצורך שיערוך של ביטוי) להמיר את הטיפוס של משתנה או קבוע ההמרה הינה רק לצורך החישוב ואינה משנה את תוכן התא בזיכרון int y=4, x=5; double z; z = (double)y/x; לתת דוגמאות Int X= 3/2; Int X = (double)3/2; Int X = (double)(3/2); להסביר שהמרה יכולה לשנות את הערך. למשל: (int)5.0 יכול להחזיר 4 ולא 5 מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות © statements משפט ביטוי - ביטוי שמסתיים ב- ; משפט ריק - מורכב רק מ-; משפט מורכב (נקרא גם בלוק) - רצף של משפטים (פשוטים או מורכבים) שמוקפים בסוגריים מסולסלים { } מבוא למדעי המחשב 234111 הרצאה מספר 2 רמי כהן, מדעי המחשב, הטכניוןכל הזכויות שמורות ©

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