מבוא למדעי המחשב: o (מדעי המחשב) o (הנדסת חשמל)

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
הגנה במערכות מתוכנתות תרגול 1 – המחשב האישי הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
מבוא לשפת 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,
תכנות מרצה : עדי אבידור. מטרת הקורס לימוד שפת תכנות שימוש בתכנות לפתרון בעיות תכנות מובנה.
מבוא למדעי המחשב © אריק פרידמן 1 מצביעים כמערכים דוגמה.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
שיעור ראשון: מבוא לתכנות
1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
Multicycle MIPS תרגול כיתה מס' 13.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
Multi-Cycle MIPS דוגמאות. דוגמה 1 נתון קטע הקוד הבא: begin:addi $v0, $zero, -1 loop:add $a0, $a0, $a0 addi$v0,$v0,1 bne $a0, $zero, loop הניחו כי בתחילת.
1 Gentle Introduction to Programming Assaf Zaritsky Summer 2010.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
מבוא למדעי המחשב תרגול מספר 1.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
עקרון ההכלה וההדחה.
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
1 שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ).
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
תרגול 2: ייצוג מספרים - המשך
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
1 Gentle Introduction to Programming Assaf Zaritsky Summer 2009.
מה היום ? - - חזרה מהירה. - קריאה וכתיבה לקבצים. - בניית תוכנית כתיבה low-level - בניית ערוץ גלובלי והדגמה מול חומרה - low-level DAQ, פולימורפיזם וטריגר.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ). (3)
תכנות תרגול 1 שבוע : צור קשר מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. דואר אלקטרוני :
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
תרגיל כיתה 7 מבוא לטכנולוגיות מחשב CPE. – 2 – ארכיטקטורה של מעבד מודרני Execution Functional Units Instruction Control Integer/ Branch FP Add FP Mult/Div.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk 1.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבוא לטכנולוגיות מחשב מבוא
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Computer Architecture and Assembly Language
מבוא למדעי המחשב סיבוכיות.
מבוא למערכות מידע סמסטר ב', תשע"ו הרצאה 1
מבוא למערכות מידע לחשבונאיים סמסטר ב', תשס"ט הרצאה 1
מצביעים קרן כליף.
SQL בסיסי – הגדרה אינדוקטיבית
Computer Programming Fall 2012 תרגול
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
הרצאה 3: משפטים, תנאים ולולאות
מבוא כללי למדעי המחשב תרגול 4
קורס תכנות שיעור ראשון: מבוא.
Shell Scripts בסביבת UNIX
עקרונות בסיסיים בתכנות Visual Basic
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Computer Architecture and Assembly Language
Presentation transcript:

מבוא למדעי המחשב: o234114 (מדעי המחשב) o 234117 (הנדסת חשמל) מבוסס על השקפים שנערכו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור, סאהר אסמיר,מיכאל אלעד, רון קימל ודן רביב. עדכון אחרון: סמסטר חורף 2013

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

מבוא למדעי המחשב. כל הזכויות שמורות © אדמיניסטרציה אתר הקורס: http://webcourse.cs.technion.ac.il/234114 למידע על חומר עזר וספרים צוות הקורס, שעות קבלה תרגילי בית רשימת תפוצה, אמצעי קשר חומר נוסף באתר – שאלות ותשובות, תקציר המנהלות, ועוד. מידע נוסף בתרגול הראשון. מתרגל אחראי: גב אנסטסיה דוברובינה (nastyad@cs.technion.ac.il) מרצה אחראי: פרופסור ניר אילון (nailon@cs.technion.ac.il) מרצים נוספים: דר תמיר לוי ((levyt@cs.technion.ac.il מר חביאר טורק ((javiert@cs.technion.ac.il מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנייה חומרת המחשב – רקע תוכנה – רקע צעדים ראשונים בשפת C How a computer works? * חלקים מפרק זה מבוססים על: http://www.eingang.org/Lecture מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © חומרה (Hardware) אנו מוקפים מחשבים, Laptop, טלוויזיה, DVD, ipod , מכונית, מכונת כביסה, טלפון, ועוד. לכל אלו מבנה עקרוני משותף: Bus התקני אחסון אמצעי קלט CPU זיכרון ראשי אמצעי פלט מבוא למדעי המחשב. כל הזכויות שמורות ©

חומרה: המרכיבים השונים Bus: ערוץ תקשורת פנימי שדרכו עובר מידע בין היחידות השונות. רוחבו מכתיב את מהירותו (לדוגמה, 64bits). CPU (Central Processing Unit - יחידת עיבוד מרכזית): אוסף רכיבים ומעגלים אלקטרוניים המנהלים את פעילות המחשב. יחידה זו מבצעת הבאת פקודות מהזיכרון, פענוחן, וביצוען. זיכרון ראשי (RAM memory): בו נשמרים הנתונים והפקודות של התכניות בזמן ביצועם. Random-Access-Memory – מהיר. המידע ברובו אינו נשמר כאשר מכבים את המחשב. מבוא למדעי המחשב. כל הזכויות שמורות ©

חומרה: המרכיבים השונים - המשך זיכרון משני (hard disk, disk on key, cdrom): עליו נשמרת מידע משני שאינו נחוץ לפעולות המחשב המידיות. בעת הצורך מועבר מידע מהזיכרון המשני לראשי ולהפך. המידע בזיכרון המשני נשמר עד אשר מוחקים אותו. אמצעי קלט ופלט (I/O devices): התקני חומרה כדוגמת מקלדת, עכבר, מסך, מצלמה, מדפסת, אמצעי תקשורת וכיו"ב שבאמצעותם נקלטים נתונים הנחוצים לתכניות שמריץ המחשב ומוצגים (פלט) נתונים שמייצרות תכניות אלו. מבוא למדעי המחשב. כל הזכויות שמורות ©

חוק Moore להתקדמות בציוד מחשוב עליה פי 100 כל כ-10 שנים – פקטור 1.6~ לשנה ניתן להראות גרפים דומים המתייחסים לגידול במהירותם ונפחהם של זיכרונות (RAM וכן Disk). מבוא למדעי המחשב. כל הזכויות שמורות ©

חוק Moore מקור: wikimedia

מבוא למדעי המחשב. כל הזכויות שמורות © CPU: קצב עבודה מחזורי הפקודות מבוצעים תחת פיקוחו של השעון הפנימי. מקובל לכן למדוד את מהירות ה – CPU על פי תדירות השעון (מספר הפעימות בשנייה). דוגמאות: Apple II (מתחילת שנות ה-80): MHz1~ (מיליון תקתוקי שעון בשנייה). מחשב 486 משנת 93': כ- 33MHz (33 מיליון בשנייה). מחשבי:Pentium IV 3.5GHz (כשלושה וחצי מיליארד בשנייה). טלפון סלולארי נוקיה 6680: 280MHz. iPhone 4S של Apple: 800MHz. ביצוע פקודה אחת עשוי להמשך מספר מחזורי שעון. מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © מרכיבי ה- CPU ALU (Arithmetic Logic Unit – יחידה אריתמטית לוגית): זוהי יחידת החישוב המבצעת פעולות אריתמטיות (חיבור, כפל, ...). פעולות לוגיות (AND, OR). השוואת נתונים הנמצאים בזיכרון הראשי או ברגיסטרים. רגיסטרים (אוגרים): מספר יחידות זיכרון שהגישה אליהן מהירה במיוחד (מעין RAM מקומי וקטן בתוך ה-CPU). אחד הרגיסטרים משמש כ-program counter (המציין מהי הפקודה הבאה לביצוע). מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © פעולת ה- CPU: דוגמה המטרה: חישוב B+C=A והשמת התוצאה ב- .C A, B, וכן C נמצאים ב- RAM. צעדי הפעולה: העבר תוכן A ל- R1, העבר תוכן B ל- R2, חבר R1 ל-R2, העבר התוצאה מ-R3 ל-C. ב- 4 צעדי שעון הושלמה פעולת חיבור ב- CPU. RAM תאי זיכרון A B C CPU ALU רגיסטרים R1 R2 R3 מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © ארגון הזיכרון במחשב התקני זיכרון משמשים לכתיבת (שמירת) מידע ו/או לקריאתו (שחזורו). זיכרון פועל כטבלה, בה לכל תא כתובת אליה ניתן לגשת ולטעון ערך או לקוראו. סיבית (bit) הינה יחידת המידע הקטנה ביותר של הזיכרון במחשב. סיבית מקבלת ערכים בינאריים, כלומר 0 או 1. זיכרון מאורגן בבתים (bytes) בני 8 סיביות. בית: יחידת הזיכרון הקטנה ביותר בעלת כתובת. ניתן לפרש סדרה כזו כמספר הכתוב בבסיס 2. משמעויות נוספות שיתכנו: חלק מפקודה, ועוד. מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © הזיכרון הראשי התקן זיכרון קטן (יחסית לדיסק) שהגישה אליו מהירה - הזיכרון הראשי בנוי משבבי זיכרון (chips). גודל הזיכרון (RAM) המקובל כיום למחשבים ביתיים הוא GB 1-12. MB= 220 bytes KB = 210 bytes GB = 230 bytes TB = 240 bytes גודל הזיכרון ב- Apple II היה KB 64. הזיכרון הראשי הינו RAM (Random Access Memory). בזיכרון מסוג זה ניתן לגשת לכל כתובת באופן ישיר, כלומר אין צורך לבצע מעבר על כל הזיכרון כדי להגיע לכתובת הרצויה. מבוא למדעי המחשב. כל הזכויות שמורות ©

ספירה בבסיס שתיים (בינארי) דרך בנייתו של מספר עשרוני: ובאנלוגיה, המרה ממספר בינארי לעשרוני תיעשה ע"י 9 3 7 5 * 103 102 101 100 5 + 70 + 300+ 9000 = 9375 1 * 23 22 21 20 0 + 2 + 0 + 8 = 10 מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © וההמרה חזרה ... תרגום ממספר עשרוני לבינארי – 10 (עשרוני) = ? תרגום ממספר עשרוני למספר בינארי – גישה שונה: 20 22 21 23 25 24 1 1 מנה מנה מנה מנה / 2 / 2 / 2 / 2 1 2 5 10 שארית שארית שארית שארית 1 1 1 מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנייה חומרת המחשב – רקע תוכנה – רקע צעדים ראשונים בשפת C How a computer works? מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנה (Software) תוכנית מחשב הינה סדרת פקודות שנועדו לבצע משימה מסוימת. פקודות התוכנית, בשעת ריצתה, נמצאות בזיכרון הראשי. ב-CPU יש מנגנון אשר באופן סידרתי קורא פקודה, מפענח אותה ומבצעה. הפקודות מבוצעות בזו אחר זו, לפי סדר ישיבתן בזיכרון, למעט פקודות הסתעפות. מבוא למדעי המחשב. כל הזכויות שמורות ©

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

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנה: שפת מכונה שפת מכונה: השפה שמבין ה-CPU והיא משתנה בין מחשב למחשב. שפות מכונה מכילות פקודות בסיסיות מהסוגים הבאים: העברת נתונים בין הרגיסטרים ותאי הזיכרון. פעולות אריתמטיות ולוגיות. קפיצות והסתעפויות מותנות. שפת מכונה הינה שפה בינארית. פקודה לדוגמא: 00010000 01000010 move from R1 to R2 מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנה: שפת אסמבלי (סף) שפת סף (Assembly) : ייצוג סמלי של שפת מכונה. למשל, אסמבלר: תכנית המתרגמת פקודות שפת סף לשפת מכונה בינארית. מה עושה התוכנית? #0, x #1, y #0, i #30, n y, t x, y t, x #1, i i, n loop mov add cmp bne loop: השם 0 במשתנה x השם 1 במשתנה y השם 1 במשתנה i השם 30 במשתנה n העתק את ערכו של המשתנה y למשתנה t הוסף את ערכו של המשתנה x למשתנה y העתק את ערכו של המשתנה t למשתנה x הוסף 1 למשתנה i השווה את המשתנה i עם המשתנה n ואם קטן יותר חזור מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנה: שפה עילית שפה עילית (C, Java, C++, Fortran, Pascal,....): דמוית אנגלית. פקודות מורכבות יותר מפקודות מכונה. תכנית בשפה עילית מתאימה לריצה על מחשבים שונים ואינה תלויה בשפת המכונה של מעבד ספציפי. compiler (מהדר): תכנית המתרגמת תכניות משפה עילית לתכניות בשפת מכונה של מעבד נתון. את קוד המכונה (קובץ הרצה) המתקבל ניתן להריץ פעמים רבות. x = 0; y = 1; i = 0; n = 30; do { t = y; y = y + x; x = t; } while(i++ < n); מה עושה התוכנית? y = 1, 1, 2, 3, 5, 8, 13, 21, 34, … i = 0, 1, 2, 3, 4, 5, 6, 7, 8, … מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © שלב התרגום ושלב ההרצה מהדר תוכנית בשפת מכונה my_prog.exe תוכנית בשפה עילית my_prog.c שגיאות הידור (אם יש) תוכנית בשפת מכונה my_prog.exe פלט התוכנית קלט לתוכנית שגיאות הרצה מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © מחזור החיים של תוכנה ניתוח הבעיה (הגדרת הקלט והפלט הרצוי) תכנון - Design : מציאת האלגוריתם (algorithm) לפתרון. תכנון מבנה הנתונים. חלוקת האלגוריתם לתתי-מרכיבים. מימוש : קידוד באמצעות שפת התכנות שנבחרה. מציאת שגיאות (debug), שימוש ותחזוקה. כאשר כותבים תוכניות גדולות ומורכבות, שלב 4 הינו הארוך ביותר. ככל ששלבים 1,2 יסודיים יותר, כך שלבים 3 ו- 4 קצרים ופשוטים יותר. במקרים מסוימים (בעיות מורכבות) שלב 2 (i) הוא הקשה ביותר. מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © שפת C פותחה ע"י דניס ריצ'י (Dennis Ritchie) בשנות ה-70 (של המאה העשרים). במקור יועדה לכתיבת מערכת הפעלה (UNIX) ומהדר (Compiler). זוהי שפה יעילה המאפשרת כתיבה עילית וירידה לפרטים ברמת הביטים (אם רוצים זאת). בשימוש נרחב במגוון יישומים הנדסיים. שפה זו הינה הבסיס ל- C++, ל- Java, ול-Ada. קל לשגות בה, וקשה לאתר ולתקן שגיאות אלה. זו השפה בה נתמקד בקורס זה מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © תוכנייה חומרת המחשב – רקע תוכנה – רקע צעדים ראשונים בשפת C How a computer works? מבוא למדעי המחשב. כל הזכויות שמורות ©

איך אומרים Hello World בשפת C? /* The traditional first program in honor of Dennis Ritchie who invented C at Bell Labs in 1972 */ #include<stdio.h> int main() { printf("Hello World!\n"); return 0; } RUN מבוא למדעי המחשב. כל הזכויות שמורות ©

מבנה תוכנית בשפת C אנו נעבור על כל אחד ממרכיבי התוכנית בשקפים הבאים /* The traditional first program in honor of Dennis Ritchie who invented C at Bell Labs in 1972 */ #include<stdio.h> int main() { printf("Hello World!\n"); return 0; } RUN הכללת קובץ הערה הפונקציה main הדפסה למסך ע"י קריאה לפונקציה ערך מוחזר אנו נעבור על כל אחד ממרכיבי התוכנית בשקפים הבאים מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © הערות הערה (Comment) – טקסט בתוך /* ... */ ההערה מתחילה בצירוף */ ומסתיימת בצירוף */ הערה יכולה להשתרע על פני מספר שורות דוגמה: לפי תקן C99 הערה היא גם טקסט שבא אחרי // עד לסוף השורה: /* In this part of the program we handle the computation of the final grades. */ // This is a comment a = b + c; // This is another comment מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © פונקציות פונקציה (Function) – יחידת חישוב אשר יכולה: לקבל ערכים (פרמטרים) לחשב חישוב מסוים לבצע קלט/פלט (ודברים נוספים) להחזיר ערך בשפות אחרות משתמשים גם במונחים Procedure, Routine,... לכל פונקציה: הצהרה המתארת את שמה, הפרמטרים שהיא מקבלת ואת ערך החזרה. הגדרת גוף הפונקציה. הגדרה מכילה, בין היתר, את ההצהרה. לפני השימוש בפונקציה חייבת לבוא ההצהרה עליה. נרחיב את נושא הפונקציות בהמשך הקורס. פונקציה ערכי מוצא פרמטרי כניסה קלט\פלט מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © פונקציות – דוגמה הצהרה בלבד: הגדרה: שם טיפוס מוחזר float power(float x, int n); שני פרמטרים float power(float x, int n) { float p; int i; p = 1.0; for (i=0;i<n;i++) p = p*x; return p; } מבוא למדעי המחשב. כל הזכויות שמורות ©

קבצי כותרת והכללתם ע"י #include קובץ כותרת (Header File): קובץ בעל סיומת ".h" אשר מכיל הצהרות על עצמים חיצוניים. בתוכנית HelloWorld שראינו, ישנה הכללה של stdio.h כיוון שאנו משתמשים בפונקציה printf המוצהרת שם. ללא הכללה זו הקוד לא היה עובר קומפילציה כי הקומפיילר מצפה לראות הצהרה על הפונקציה לפני השימוש בה. #include<stdio.h> // מכיל הצהרות על פונקציות קלט-פלט #include<math.h> // מכיל הצהרות על פונקציות מתמטיות הנחיה להכליל קובץ כותרת מבוא למדעי המחשב. כל הזכויות שמורות ©

stdio.h – פלט חכם ע"י printf פרמטרים: הארגומנט הראשון הוא מחרוזת בקרה (פירוט בתרגול), ואחריה באים הערכים אותם יש לכתוב לפי הפורמט. כל ארגומנט מתאים לקוד ה-% הבא בתור במחרוזת הבקרה. מחרוזת הבקרה יכולה גם להכיל טקסט רגיל (ללא %) שיודפס כמו שהוא. ערך החזרה: מספר התווים שנכתבו, או מספר שלילי בעת כישלון. דוגמאות: printf("Just printing text.\n"); int i = 5; printf("The sum of %d and %d is %d", i, 2, 2+i); מבוא למדעי המחשב. כל הזכויות שמורות ©

stdio.h – קלט חכם ע"י scanf פרמטרים: הארגומנט הראשון הוא מחרוזת בקרה (פירוט בתרגול), ואחריה באים המשתנים אותם יש לקרוא לפי הפורמט. כל ארגומנט מתאים לקוד ה-% הבא בתור במחרוזת הבקרה. יש להוסיף & לפני שם המשתנה (נבין מדוע בהמשך). ערך החזרה: מספר הנתונים שנקראו בהצלחה, או -1 במקרה של כשלון. דוגמה: לא לשכוח את ה-& int i; double x; float y; scanf("%d%lf%f", &i, &x, &y); מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © הפונקציה main תוכנית ב-C חייבת להכיל פונקציה אשר שמה הוא main. הביצוע המעשי של התוכנית יחל בפונקציה זו. בשלב זה נניח כי main אינה מקבלת פרמטרים. הערך המוחזר ממנה הוא "קוד סיום התוכנית". ערך זה מוחזר למערכת ההפעלה. 0: סיום בהצלחה שונה מ-0: בעיה כלשהי int main() { ... } מבוא למדעי המחשב. כל הזכויות שמורות ©

תוכנית ראשונה בשפת C – הגדרת הבעיה הגדרת הבעיה: קלט: סדרה של 10 מספרים. פלט: סכום המספרים. מבוא למדעי המחשב. כל הזכויות שמורות ©

תוכנית ראשונה בשפת C – תכנון האלגוריתם: אפס את הסכום. בצע 10 פעמים קרא את הערך הבא. הוסף ערך זה לסכום. הוצא את הסכום כפלט. מבנה הנתונים – נזדקק לשלשה תאי זיכרון: הסכום (sum) המספר הנקרא הנוכחי (value) מספר הערכים שקראנו עד כה (i) בחירת האלגוריתם ומבנה הנתונים בד"כ אינה תלויה בשפת התכנות. מבוא למדעי המחשב. כל הזכויות שמורות ©

תוכנית ראשונה בשפת C – הקוד #include <stdio.h> int main() { int i, sum, value; sum = 0; for( i = 0; i < 10; i++ ) { scanf("%d", &value); sum = sum + value; } printf("%d \n", sum); return 0; RUN מבוא למדעי המחשב. כל הזכויות שמורות ©

תוכנית לסיכום מספרים – שיפורים #include <stdio.h> int main() { int i, sum = 0, value, numbers_to_read; printf("Please enter number of values\n"); scanf("%d", &numbers_to_read); for( i = 0; i < numbers_to_read; i++ ) { printf("Enter the next integer: "); scanf("%d", &value); sum = sum + value; } printf("The sum of the %d numbers is %d\n", numbers_to_read, sum); return 0; RUN מבוא למדעי המחשב. כל הזכויות שמורות ©

תוכנית לסיכום 10 מספרים – בדיקת קלט ... printf("Please enter number of values\n"); scanf_result = scanf("%d", &numbers_to_read); if(scanf_result < 1) { printf("Failed reading the number of values\n"); return 1; } for( i = 0; i < numbers_to_read; i++ ) { printf("Enter the next integer: "); scanf("%d", &value); sum = sum + value; RUN איזה בדיקה נוספת כדאי לעשות? מה יקרה אם נכניס מספר שאינו שלם? מבוא למדעי המחשב. כל הזכויות שמורות ©

מקוד המקור לתוכנית שרצה - התהליך קוד מקור prog.c מהדר (קומפיילר) קוד מטרה prog.obj קַשָּר (linker) קוד מטרה נוסף other.obj ספריה libc.lib תוכנית לביצוע prog.exe מבוא למדעי המחשב. כל הזכויות שמורות ©

מבוא למדעי המחשב. כל הזכויות שמורות © סוגי שגיאות שגיאות תחביר (Syntax Errors) – קוד מקור שאינו חוקי: המהדר מגלה בקלות. שגיאות משמעות (Semantic Errors) – קוד מקור חוקי אבל שגוי: קשה יותר לגלות. שגיאות זמן ריצה (Run-time Errors) – כגון חלוקה ב-0 וכד': מתגלות בזמן הריצה. שגיאות לוגיות (Logical Errors) – שגיאות בפיתוח האלגוריתם: לא תמיד מצליחים לאתר את כולן. החלפת השורה בשורה תגרום לקבלת הודעה מהקומפיילר על כך שהמשתנה num אינו מוגדר. sum = sum + value; sum = num + value; החלפת השורה בשורה תוביל לשגיאה בפעולת התוכנית, אך הקומפיילר לא יראה בה שגיאה. printf("%d \n", sum); printf("%d \n", value); Bug! מבוא למדעי המחשב. כל הזכויות שמורות ©