Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "מבוא כללי למדעי המחשב שיעור 1"— Presentation transcript:

1 מבוא כללי למדעי המחשב שיעור 1
מרצה: שי גוטנר

2 מנהלה הציון יורכב מ-85% ציון מבחן 15% ציוני תרגילים (לא מגן!!!)
שעת קבלה: יום ד' 16:00-17:00 או בתאום מראש, בבניין שרייבר ב-open space (מרתף) טלפון

3 אתר הקורס אתר הקורס יכיל את כל החומר הדרוש לקורס
cs4math07b/cs4math07b.html בודקת התרגילים: לירון לבקוביץ

4 ספרים מומלצים The C Programming Language / Kernighan and Ritchie
Introduction to Algorithms / Cormen, Leiserson, Rivest and Stein

5 סילבוס – מבנה הקורס אלגוריתמים וסיבוכיות הכרת המחשב פונקציות ושימושן
היכרות עם סביבת העבודה מבנה תוכנית ב C טיפוסי נתונים בסיסים טיפול בקליטת נתונים והצגתם על המסך פעולות אריתמטיות ב C. פעולות לוגיות ויחסים ב C. משפטי בקרה – if else לולאות – while , do while , for פונקציות ושימושן רקורסיות מבנה נתונים – מערכים, מיונים ויעילות מצביעים מחרוזות הגדרת טיפוסי נתונים על ידי המתכנת – structure הקצאת זיכרון דינאמית אלגוריתמים וסיבוכיות

6 נושאי השיעור מבנה המחשב שפות תכנות C יתרונות/חסרונות כלי פיתוח
שלבי התרגום תוכניות לדוגמא פונקציות קלט/פלט

7 מבנה המחשב מבנה המחשב ה"קלאסי" Processor Memory Input Output

8 מבנה המחשב - המעבד

9 סוגי זיכרון Hard disk זמן גישה איטי, מחיר זול
RAM (Random Access Memory) זמן גישה מהיר, מחיר יקר

10 ייצוג במחשב ביט – ספרה בינארית 0/1 בייט (בית) – שמונה ספרות בינאריות
ייצוג במחשב ביט – ספרה בינארית 0/1 בייט (בית) – שמונה ספרות בינאריות מספרים במחשב מיוצגים בבסיס 2 (בינארית) כלומר הבייט הבא מייצג את המספר 3 מה הטווח המספרים של בייט? מעבר ממספר עשרוני לבסיס 2

11 שפות תכנות - שפת מכונה השפה הבסיסית של המחשב
ההוראות מיוצגות ע"י ביטים, כלומר רצף של 0/1-ים יהווה הוראה. לדוגמא כל מעבד מכיר אך ורק את שפת המכונה שלו, לכן יתכנו שפות מכונה שונות למעבדים שונים

12 שפות תכנות - שפת אסמבלר שפה בסיסית בעלת פקודות פשוטות באנגלית (MOV,PUSH,POP) MOV R1 2 R2 R1 AX MOV R2 4 4 2 6 ADD R1 R2

13 שפות תכנות - שפה עילית פסקל, בייסיק, C, ++C השפות מזכירות אנגלית
משתמשות בסימנים מתמטים נדרש קומפיילר (מהדר) בכדי לתרגמן לשפת מכונה R1 = 2 R2 = 4 AX = R1 + R2

14 יתרונות/חסרונות C חסרונות יתרונות syntax(תחביר) מבלבל שפה קומפקטית
מאפשר עבודה ברמה נמוכה יתרונות שפה קומפקטית שפה "חזקה" בעלת תאימות גבוהה שפה מודולרית שפה יעילה מאפשר עבודה ברמה נמוכה

15 כלי פיתוח Editor - תוכנה לעריכת ה-code
Compiler (מהדר) – מתרגם משפה עילית ל-object code Linker - מחבר מספר קבצי object (אחד או יותר) ומייצר קובץ הרצה (executable) יחיד Debugger - מאפשר הרצה מבוקרת של התוכנית.

16 שלבי התרגום תוכנית C -כתיבת קוד Editor

17 שלבי התרגום -כתיבת קוד Editor Preprocessor מעבד פקודות שמתחילות ב-#

18 שלבי התרגום -כתיבת קוד Editor Preprocessor
מתרגם פקודות ב-C ל-object code Complier

19 שלבי התרגום -כתיבת קוד Editor Preprocessor Complier
מחבר מספר קבצי object לקובץ הרצה linker

20 שלבי התרגום -כתיבת קוד Editor Preprocessor Complier linker
(exe) קובץ הרצה

21 תוכנית ראשונה #include <stdio.h> int main() {
printf(“Hello World\n”); return 0; }

22 תוכנית ראשונה – שורה 1 # -מתורגם ע"י preprocessor.
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } # -מתורגם ע"י preprocessor.

23 תוכנית ראשונה – שורה 1 C - שפה מודולרית מאפשרת שימוש בפונקציות קיימות
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; }

24 תוכנית ראשונה – שורה 1 #include <stdio.h> int main() { printf(“Hello World\n”); return 0; } Include - מאפשר שימוש בפונקציות המוגדרות בספרייה קיימת.

25 תוכנית ראשונה – שורה 1 Stdio.h ספרייה המטפלת בקלט/פלט
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } Stdio.h ספרייה המטפלת בקלט/פלט (standard Input/Output)

26 תוכנית ראשונה – שורה 1 # -מתורגם ע"י preprocessor.
Include - מאפשר שימוש בפונקציות המוגדרות ב-stdio.h Stdio.h ספרייה המטפלת בקלט/פלט #include <stdio.h> int main() { printf(“Hello World\n”); return 0; }

27 תוכנית ראשונה – שורה 2 #include <stdio.h> int main() { printf(“Hello World\n”); return 0; } main היא פונקציה. זאת השורה הראשונה של הפונקציה. ה-( ) מציינות פונקציה

28 תוכנית ראשונה – שורה 2 כל תוכנית C מכילה פונקצית main.
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } כל תוכנית C מכילה פונקצית main. זוהי נקודת הכניסה לכל תוכנית

29 תוכנית ראשונה – שורה 2 #include <stdio.h> int main() { printf(“Hello World\n”); return 0; } המילה int היא מילה שמורה ב-C. היא מצביעה על כך שהפונ' מחזירה מספר שלם(integer).

30 תוכנית ראשונה – שורה 3+6 סוגריים מסולסלים תוחמים את גוף הפונ'.
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } חייבים להופיע אחרי שם הפונקציה מייצגים בלוק של פקודות

31 תוכנית ראשונה – שורה 4 המשפט יוצר קריאה לפונקציה Printf
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } המשפט יוצר קריאה לפונקציה Printf הסוגריים מצביעים על פונ'

32 תוכנית ראשונה – שורה 4 הסוגריים מצביעים על פונ'
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } הסוגריים מצביעים על פונ' printf נמצאת ב-stdio.h והיא מדפיסה על המסך

33 תוכנית ראשונה – שורה 4 מחרוזת היא אוסף תווים בין “…”
#include <stdio.h> int main() { printf(“Hello World\n”); return 0; } מחרוזת היא אוסף תווים בין “…” המחרוזת היא הארגומנט לפונ' \n- מסמל ירידת שורה

34 תוכנית ראשונה – שורה 4 #include <stdio.h> int main() { printf(“Hello World\n”); return 0; } ; - מסמל סוף פקודה ב-C אם נשכח נקבל שגיאת קומפילציה

35 תוכנית ראשונה – שורה 5 #include <stdio.h> int main() { printf(“Hello World\n”); return 0; } main מחזירה מספר שלם המשפט מחזיר אפס (יסמן הצלחה)

36 תוכנית שנייה – תוכנית המחשבת את מספר השניות ביממה
#include <stdio.h> int main() { int secs, hours, minutes; hours = 24; minutes = 60; secs = hours * minutes * 60 ; printf(“The number of secs in a day is %d\n”, secs); return 0; }

37 תוכנית שנייה – הגדרת משתנים
int secs, hours, minutes; זאת הגדרת משתנים הגדרת משתנים כמו הוראה וקריאה לפונקציה מסתיימת ב-; בתוכנית מוקצה מקום לשלושה משתנים מטיפוס int, מספר שלם.

38 תוכנית שנייה – השמה hours = 24; minutes = 60; סימן ה-"=" מייצג השמה.
המספרים 24 ו 60 הם int-ים והמספרים 24 ו 60 מוכנסים לתוך המשתנים hours ו-minutes בהתאמה.

39 תוכנית שנייה – השמה secs = hours * minutes * 60; משפט השמה נוסף.
קודם מחשבים את הערך בצד הימני ואז מבצעים השמה לצד השמאלי. האופרטורים *,+,-,/ עומדים עבור חלוקה חיסור, חיבור וכפל. סדר פעולות רגיל. (להיזהר עם חילוק נראה בהמשך)

40 תוכנית שנייה – פונקציית פלט
printf(“The number of secs is %d\n”, secs); המשפט מציין קריאה לפונקציה printf הפרמטר הראשון שמקבלת הפונקציה היא מחרוזת קבועה אשר מציינת את פורמט הפלט. ניתן באמצעות מחרוזת זו לשזור בפלט תוכן של משתנים. לצורך כך צריך לציין מהו הפורמט של הדפסת המשתנה. %d מייצג מספר שלם לאחר סיום המחרוזת צריך בפונקצית הפלט לציין מהו המשתנה ממנו נלקח הערך להדפסה.

41 תוכנית שנייה - זיכרון secs minutes hours
תמונת הזיכרון לאחר הגדרת המשתנים

42 תוכנית שנייה - זיכרון secs minutes hours
24 תמונת הזיכרון לאחר hours = 24;

43 תוכנית שנייה - זיכרון secs minutes hours
60 24 תמונת הזיכרון לאחר minutes = 60;

44 תוכנית שנייה - זיכרון secs minutes hours תמונת הזיכרון לאחר
86400 60 24 תמונת הזיכרון לאחר ; secs = hours * minutes * 60

45 תוכנית שלישית- תוכנית הקולטת שני מספרים ומחשבת את סכומם
#include <stdio.h> int main() { int a, b, sum; printf(“Enter an integer\n”); scanf(“%d”, &a); scanf(“%d”, &b); sum = a + b; printf(“%d + %d = %d\n”, a, b, sum); return 0; }

46 תוכנית שלישית- פלט Enter an integer 5 7 5+ 7 = 12

47 תוכנית שלישית int main() { int a, b, sum; …… return 0; }
#include <stdio.h> int main() { int a, b, sum; …… return 0; } a,b,sum הם שמות של משתנים(variables) משתנה הוא מקום בזיכרון שבו ניתן לאחסן ערך. בתוכנית זאת כל המשתנים מסוג int (מספר שלם) ניתן להגיד משתנים מאותו סוג בשורה אחת

48 תוכנית שלישית- זיכרון a b sum תמונת הזיכרון לאחר הגדרת המשתנים

49 תוכנית C שנייה - זיכרון a b sum 5 תמונת הזיכרון לאחר scanf(“%d”, &a);

50 תוכנית שלישית - זיכרון a b sum 5 7 תמונת הזיכרון לאחר scanf(“%d”, &b);

51 תוכנית שלישית - זיכרון a b sum 5 7 12 תמונת הזיכרון לאחר sum = a + b;

52 תוכנית שלישית int main() { …. printf(“Enter an integer\n”); …
#include <stdio.h> int main() { …. printf(“Enter an integer\n”); return 0; } מכניסים הוראה למשתמש להכניס מספר

53 תוכנית שלישית פקודת ה-scanf היא פקודת הקלט הארגומנטים ל-:scanf מחרוזת
#include <stdio.h> int main() { printf(“Enter an integer\n”); scanf(“%d”, &a); return 0; } פקודת ה-scanf היא פקודת הקלט הארגומנטים ל-:scanf מחרוזת כתובות של משתנים

54 המחרוזת מציינת מהו פורמט הקלט שעל המשתמש להכניס
תוכנית שלישית scanf(“%d”, &a); המחרוזת מציינת מהו פורמט הקלט שעל המשתמש להכניס %d מסמל שאנו מצפים למשתנה מסוג int &a מציין שהמספר יוכנס לתוך המשתנה a(נרחיב בנושא זה מאוחר יותר)

55 תוכנית שלישית – פעולות אריתמטיות
sum = a + b; מתבצע השמה לתוך המשתנה sum (המשתנה בצד השמאלי) לאחר שמתבצעת הפעולה באגף שמאל פעולת החיבור מיוצגת בצורה סטנדרטית "+"


Download ppt "מבוא כללי למדעי המחשב שיעור 1"

Similar presentations


Ads by Google