Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

2 שיעור קודם int a,b; בנית תוכנית בסיסית int main() { return 0; }
  return 0; } הגדרת משתנים int a,b; שימוש בפונקציות פלט printf(“The number of secs is %d\n”, secs);

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

4 פעולות חשבון –int int a,b; /* Read two integer numbers. */
int main() { int a,b;   /* Read two integer numbers. */ printf(“Enter two integers\n”); scanf(“%d%d”, &a, &b);   /* Perform some calculations. */ printf(“%d + %d = %d”, a, b, a+ b); printf(“%d - %d = %d”, a, b, a - b); printf(“%d * %d = %d”, a, b, a * b); printf(“%d / %d = %d”, a, b, a / b); printf(“%d mod %d = %d”, a, b, a % b);   return 0; }

5 תוכנית - פלט Enter two integers 4 2 4 + 2 = 6 4 - 2 = 2 4 * 2 = 8
= 2 4 * 2 = 8 4 / 2 = 2 4 mod 2 = 0

6 תוכנית - פלט Enter two integers 7 3 7 + 3 = 10 7 - 3 = 4 7 * 3 = 21
7 3 7 + 3 = 10 = 4 7 * 3 = 21 7 / 3 = 2 7 mod 3 = 1

7 פעולות חשבון –float int main() { float x, y;
printf (“Enter two numbers:\n”); scanf (“%f%f”, &x, &y);   /* Perform some calculations. */ printf(“%f + %f = %f”, x, y, x+ y); printf(“%f - %f = %f”, x, y, x- y); printf(“%f * %f = %f”, x, y, x * y); printf(“%f / %f = %f”, x, y, x / y);   return 0; }

8 תוכנית - פלט Enter two numbers: 4 2 4.000000 + 2.000000 = 6.000000
= * = / =

9 תוכנית - פלט Enter two numbers 7 3 7.000000 + 3.00000 = 10.000000
7 3 = = * = / =

10 טיפוסים בסיסיים format טווח מה מייצג שם %d תלוי מערכת הפעלה מספר שלם
int %f(%e, %g) 3.4E +/- 38(6 digits) מספר ממשי float Printf :%f(%e, %g) Scanf: %lf (%le, %lg) 1.7E +/- 308(15 digits) double %c –128 to 127 תו char

11 פורמטים שונים – קליטה והדפסה
#include <stdio.h> int main () { char c1, c2, c3; int i; float x; double y; printf("Input three characters\n an int, a float, and a double:\n "); scanf("%c%c%c%d%f%lf", &c1, &c2, &c3, &i, &x, &y); printf("\nHere is the data that you typed in:\n"); printf("%3c%3c%3c%5d%17g%17g\n\n", c1, c2, c3, i, x, y); return 0; }

12 פלט Input three characters an int, a float, and a double:
Abc Here is the data that you typed in: A b c

13 אלגוריתם אלגוריתם – הפתרון לכל בעיה חישובית מערב ביצוע של סידרת פעולות בסדר מסוים. פתרון בעיה שמוגדר באמצעות הפעולות לביצוע נקרא אלגוריתם

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

15 מציאת המספר המינימלי מבין שני מספרים
אלגוריתם קלט: num1,num2 אתחול: minnum1 בדיקה: אם min>num2 אז minnum2 פלט: min אם נרצה לממש את התוכנית הזו ב-C מה חסר לנו?

16 משפט if ב C if (expression) Statements else מה זה expression ?
זהו ביטוי שמחושב ערכו אם ערכו הוא שונה מ 0 אז מתבצעות הפעולות שאחרי ה-if. אם הוא שווה ל 0 אז הפעולות לא מתבצעות. אם מופיע else אז מתבצעות הפעולות שאחרי ה else. אופציונאלי

17 תרגום ל-C #include <stdio.h> int main() { } int min, a, b;
scanf(“%d%d”, &a, &b); min = a; if (min > b) min = b; printf(“The min is %d\n”, min); return 0; }

18 משפטי if מורכבים יותר משפט if רגיל מחכה לפעולה אחת בלבד אחריו וכך גם else if (x < 5) printf(“ 5 is larger than x\n”); else printf(“ 5 is smaller or equal to x\n”); אם נרצה לגרום למספר פעולות לקרות במידה ומשפט התנאי מתקיים (או לא מתקיים) כיצד נעשה זאת ?

19 משפטי if מורכבים יותר למשל נרצה שאם xגדול מ 5 נקלוט מספר ל x
1. printf(“ 5 is larger than x\n”); 2. scanf(“%d”, &x); else printf(“ 5 is smaller or equal to x\n”); נרצה שגם שורה אחת וגם שורה שתיים יתבצעו במידה ומשפט התנאי מתקיים.

20 משפטי if מורכבים יותר הפתרון:
כדי לשייכם יחד נפתח בלוק של קוד עבורם ע"י שימוש בסוגריים מסולסלים. if (x < 5) { printf(“ 5 is larger than x\n”); scanf(“%d”, &x); } else printf(“ 5 is smaller or equal to x\n”);

21 קינון של משפטי if if (grade >= 90) printf(“A\n”); else
printf(“B\n”); if (grade >= 70) printf(“C\n”); printf(“Failed\n”); המון if ו else, איך אפשר לקרוא את זה ? בנוסף אין כלל סוגרים מסולסלים. נזכור שגם if וגם else מצפים לפעולה אחת לביצוע.

22 לולאות לעיתים נרצה לחזור על אותה פעולה מספר רב של פעמים. למשל:
כתבו תוכנית שמקבלת מהמשתמש קלט מספר x ומדפיסה x פעמים את המספר 5. לולאות זה דבר שכמובן נמצא בכל שפה. נראה כעת סוג אחד של לולאות שקיים ב C.

23 לולאת while כשמה כן היא, מתבצעת כל עוד מתקיים תנאי מסוים.
init expressionביטוי האתחול - while (loop expression) הלולאה המילה while היא כמובן מילה שמורה של C

24 דוגמא- תוכנית המוצאת את החזקה הראשונה של 2 אשר גדולה מ 1000.
#include <stdio.h> int main() { int product = 2; while (product <= 1000) product = product * 2; printf (“The minimal number is %d\n”, product); return 0; }

25 דוגמא 2: תוכנית הקולטת 10 מספרים ומחשבת את הממוצע שלהם
int main() { int counter, grade,total; float average; total = 0; counter =1; while (counter <= 10) printf(“Enter grade:\n”); scanf(“%d”,&grade); total = total + grade; counter = counter + 1; } average = total / 10.0; printf(“The average %f\n”,average); return 0; הגדרת משתנים שלב האתחול שלב העיבוד

26

27 פעולות לוגיות ב C כדי לבנות ביטויים לוגים מורכבים יותר ישנם אופרטורים לוגים שמקשרים שני ביטויים. AND וגם - && OR או || NOT שלילה - !

28 אופרטורים לוגים ב – C טבלת אמת
X !X X Y X && Y X || Y 1 0 0 0 1 1 0 1 1

29 סדר הקדימויות של קריאת האופרטורים:
X = 0; Y = 1; Z = 1; if (X && Y || Z) printf(“True\n”); else printf(“False\n”);

30 סדר הקדימויות של קריאת האופרטורים:
((X && Y) || Z) = ((0 && 1) || 1) = 1 (X && (Y || Z)) = (0 && (1 || 1)) = 0 כלומר צריך לדעת כיצד C מפרשת את הביטוי ללא סוגרים. סדר העדיפויות של הפעולות הוא כך: ! && || בתוכנית שלנו ללא הסוגרים שקול למצב הראשון

31 סדר הקדימויות של קריאת האופרטורים:
3 < j < 5 נניח כי j = 7 היינו רוצים כי ערך הביטוי יהיה אפס (3 < j ) < > 1 < 5  1 לכן היינו צריכים להשתמש בתנאי הבא: 3 < j && j < 5 שקול ל- (3 < j) && (j < 5)

32 פעולות לוגיות – עוד על סדר הביצוע
הפעולות האריתמטיות (+, -, *, /, %) מבוצעות תמיד לפני פעולות ההשוואה (==, > וכו') שמבוצעות לפני הפעולות הלוגיות && ו- ||. ל- ! (NOT) יש את הקדימות הגבוהה ביותר (עוד לפני פעולות אריתמטיות). דוגמאות לתנאים: (5+4>8) (!1 >= 0||1) 0 >= 0 || 1 1 || 1 1


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

Similar presentations


Ads by Google