1 of 36

תנאים

חגית כהן && רחל פרלמן

הפיקוח על הוראת מדעי המחשב

2 of 36

הקדמה

  • נסתכל על קטע הקוד הבא המכיל 3 שורות קוד.
  • כאשר נתחיל הרצה, שורות הקוד יתבצעו אחת אחרי השניה לפי סדר הופעתן.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

print ('Python is fun')�num = int(input('Enter number'))print (10/num)

התוכנית מדפיסה את תוצאת החילוק של 10 במספר הנקלט מהמשתמש.

האם תמיד נרצה שפעולת החילוק תתבצע?

print ('Python is fun’)

num = int(input('Enter number'))

print (10/num)

3 of 36

הקדמה

מה יקרה אם num שווה 0?

כיצד ניתן לבקש מהמחשב לבצע את פעולת החילוק רק אם num שונה מ- 0?

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

print ('Python is fun’)

num = int(input('Enter number'))

print (10/num)

האם num שונה מ- 0?

כן

  • ביצוע מותנה

ביצוע מותנה הינו החלטה אילו צעדים נבצע עבור קיום תנאי לוגי מסוים. 

  • תנאי לוגי / בוליאני

בדיקה אשר ערכה אמת או שקר – True or False

דוגמא: האם המספר שונה מ-0? התשובה היא אמת או שקר.

4 of 36

תנאי בסיסי

  • התנאי הבסיסי ביותר נכתב בצורה הבאה:

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

אם מתקיים תנאי:

בצע את הפעולות הבאות

אם num שונה מ- 0:

הדפס תוצאת חישוב

את כל הפעולות שנרצה לבצע אם התנאי התקיים נרשום בהזחה.

print ('Python is fun')�num = int(input('Enter number'))�if num != 0:� print (10/num)

4 רווח�TAB

בדיקת קיום תנאי

5 of 36

תנאים לוגים

ניתן להשתמש בהשוואות הבאות:

  • שווה = =
  • שונה =!
  • גדול <
  • גדול או שווה =<
  • קטן >
  • קטן או שווה =>
  •  
  • שימו לב: הסימן == משמש להשוואה ואילו = משמש להשמת ערך.
  • שימו לב: הסימן = = משמש להשוואה � ואילו הסימן = משמש להשמת ערך.
  • -------------------------------------------------------------------

a = 3

השמת הערך 3 במשתנה a

  • -------------------------------------------------------------------

a = = 3

בדיקה האם ערך המשתנה a זהה ל-3

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

6 of 36

תירגול

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

מהם ערכי הביטויים הבאים?

a = 10, b= 15, c = 20, d = 5

תוצאה

תנאי

a > b

a + b > c

b+d >= c

שקר

אמת

7 of 36

פתרון

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

מהם ערכי הביטויים הבאים?

a = 10, b = 15, c = 20, d = 5

תוצאה

תנאי

שקר

a > b

אמת

a + b > c

אמת

b+d >= c

שקר

a + b+d <= c

אמת

c - b == a - d

8 of 36

מספר חיובי

  • בקטע קוד הבא נקלוט מספר.
  • אם המספר חיובי, נדפיס Positive.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

num = int(input('Enter Number'))�if num >= 0:� print ('Positive')�if num < 0:� print('Negative')

num = int(input('Enter Number'))�if num >= 0:� print ('Positive')

  • תרגול:
  • 1. שנו את הקוד כך שידפיס האם המספר שלילי.
  • 2. שנו את הקוד כך שידפיס האם המספר חיובי או שלילי.

9 of 36

אם.... אז.... אחרת...

num = int(input('Enter Number'))�if num >= 0:� print ('Positive')�else:� print('Negative')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

קיראו את הקוד הבא ונסו להבין מה הוא עושה.

האם 2 קטעי הקוד מבצעים את אותו הדבר?

num = int(input('Enter Number'))�if num >= 0:� print ('Positive')�if num < 0:� print('Negative')

10 of 36

אם.... אחרת אם אז.... אחרת…�else elif if

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:� print('Negative')

else:

print('Zero')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

נכתוב קטע קוד שידפיס בהתאמה למספר שנקלט - �positive�Negative�Zero�

11 of 36

אם.... אז.... אחרת...

  • ניתן להגדיר תנאי בצורה נוספת:
  • אם תנאי מתקיים
    • בצע פעולות
  • אחרת
    • בצע פעולות

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

if תנאי:

פעולות לביצוע

else: רשות – לא חייב להופיע

פעולות לביצוע

12 of 36

תרגול

  • כיתבו תוכנית אשר קולטת 2 מספרים שלמים.
  • התוכנית תדפיס את המספר הגדול מביניהם.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

num1 = int(input('Enter Number'))�num2 = int(input('Enter Number'))�if num1 > num2:� print (num1)

elif num1 < num2:

print(num2)�else:� print(“המספרים זהים”)�

אם num1 > num2

הדפס num1

אחרת הדפס num2

13 of 36

תרגילים

  • תרגיל 1:
  • כיתבו תוכנית אשר קולטת 2 שמות. התוכנית תדפיס את השמות לפי סדר ה- אלף בית האנגלי.
  • הערה: ניתן להשתמש ב < > == גם על מחרוזת. ההשוואה הינה לפי ה- אלף בית האנגלי.

  • תרגיל 2:
  • כיתבו תוכנית הקולטת 2 מספרים. התוכנית תדפיס True אם סכום המספרים גדול מ- 10. אחרת, תדפיס False.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

14 of 36

פתרונות

  • name1 = input('Enter Name')
  • name2 = input('Enter Name')
  • if name1 < name2:
  • print (name1)
  • print (name2)
  • else:
  • print (name2)
  • print (name1)

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

תרגיל 1:

כיתבו תוכנית אשר קולטת 2 שמות. התוכנית תדפיס את השמות לפי סדר ה- אלף בית האנגלי.

הערה: ניתן להשתמש ב < > == גם על מחרוזת. ההשוואה הינה לפי ה- אלף בית האנגלי.

בדיקה האם name1 קטן מ- name2

אחרת

15 of 36

פתרונות

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

תרגיל 2:

כיתבו תוכנית הקולטת 2 מספרים. התוכנית תדפיס True אם סכום המספרים גדול מ- 10. אחרת, תדפיס False.

num1 = int(input('Enter a number'))

num2 = int(input('Enter a number’))

if num1+num2>10:

print ('True')

else:

print('False')

בדיקה האם name1 קטן מ- name2

אחרת

קליטת מספרים שלמים

16 of 36

אם.... אז.... אחרת אם ... אז

  • ניתן להגדיר תנאי בצורה נוספת:
  • אם תנאי מתקיים
    • בצע פעולות
  • אחרת אם תנאי מתקיים (תנאי אחר):
    • בצע פעולות

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

if תנאי:

פעולות לביצוע

elif תנאי : רשות – לא חייב להופיע

פעולות לביצוע

נבדוק האם תנאי 1 מתקיים.

רק אם לא מתקיים, נבדוק האם תנאי 2 מתקיים

elif = else if

17 of 36

תרשים

רק אם התנאי num>0 אינו מתקיים, נבדוק את התנאי: האם num<0.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

לא

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:

print('Negative')

num = int(input('Enter number'))

בצע פעולות

האם num>0?

כן

האם num<0?

בצע פעולות

כן

18 of 36

אם.... אז.... אחרת אם...

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:

print('Negative')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

קיראו את הקוד הבא ונסו להסבירו

מה יהיה הפלט עבור המספרים הבאים:

2

2-

0

אם num>0

הדפס Positive

אחרת אם num < 0

הדפס Negative

19 of 36

אם.... אז.... אחרת אם...

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:

print('Negative')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

מה יהיה הפלט עבור המספרים הבאים:

2 יודפס Positive

2- יודפס Negative

0 לא יודפס פלט

אם num>0

הדפס Positive

אחרת אם num < 0

הדפס Negative

20 of 36

אם.... אז.... אחרת אם... אחרת...

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:

print('Negative’)

else:

print ('Natural')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

קיראו את הקוד הבא ונסו להסבירו

מה יהיה הפלט עבור המספרים הבאים:

2

2-

0

אם num>0

הדפס Positive

אחרת אם num < 0

הדפס Negative

אחרת

הדפס Natural

21 of 36

אם.... אז.... אחרת אם... אחרת...

num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:

print('Negative’)

else:

print ('Natural')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

מה יהיה הפלט עבור המספרים הבאים:

2 יודפס Positive

2- יודפס Negative

0 יודפס Natural

אם num>0

הדפס Positive

אחרת אם num < 0

הדפס Negative

אחרת

הדפס Natural

22 of 36

תרגילים

  • תרגיל 1:
  • בכביש עירוני מותר לנסוע במהירות 55 קמ"ש. כיתבו תוכנית הקולט את מהירות הנסיעה של נהג ומדפיסה האם הוא נוסע מעל המהירות המותרת / מתחת למהירות המותרת או במהירות המותרת.
  • דוגמא:
      • עבור המהירות 60 קמ"ש יודפס: מהירות גבוהה
      • עבור המהירות 40 קמ"ש יודפס: מהירות נמוכה
      • עבור המהירות 55 קמ"ש יודפס: מהירות מותרת
  • תרגיל 2:
  • בקבוצת כדורסל משחקים 5 שחקנים על המגרש. כיתבו תוכנית הקולטת מספר שחקנים ומדפיסה האם ניתן להרכיב 2 קבוצות למשחק.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

23 of 36

פתרונות

speed = int(input('Enter speed'))�if speed > 55:� print('Your speed is too high')�elif speed == 55:� print('Your speed is OK')�else:� print('Your speed is too low')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

תרגיל 1:

בכביש עירוני מותר לנסוע במהירות 55 קמ"ש. כיתבו תוכנית הקולט את מהירות הנסיעה של נהג ומדפיסה האם הוא נוסע מעל המהירות המותרת / מתחת למהירות המותרת או במהירות המותרת.

24 of 36

פתרונות

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

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

num = int(input('Enter number of players'))�if num >=10:� print('You can play')�else:� print('You can not play')

25 of 36

תנאים מורכבים

ביטוי בוליאני / לוגי יכול להיות מורכב מאוסף של ביטויים בוליאניים המחוברים על ידי קשרים לוגיים.

דוגמא:

בדיקת מספר חד ספרתי חיובי: x>=0 וגם x<=9

מספר חד ספרתי הוא בעל ספרה אחת – בתחום של 0 (כולל) עד 9 (כולל)

כיצד ניתן לבדוק האם מספר הינו חד ספרתי חיובי?

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

פתרון בעמוד הבא

26 of 36

תנאים מורכבים ותנאים מקוננים

דרך ראשונה – תנאי מקונן:

האם: x>=0?

כן – האם x<=9

כן – x מספר חד ספרתי

לא – x אינו מספר חד ספרתי

לא – x אינו מספר חד ספרתי

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

דרך שניה – תנאי מורכב:

האם: x>=0 וגם x<=9?

כן – x מספר חד ספרתי

לא – x אינו מספר חד ספרתי

27 of 36

קשרים לוגים

  • ניתן להשתמש בקשרים לוגים הבאים:
    • וגם / and – תנאי א' מתקיים וגם תנאי ב' מתקיים.
    • או / or - תנאי א' מתקיים או תנאי ב' מתקיים או שניהם.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

תנאי א or תנאי ב

תנאי א and תנאי ב

תנאי ב

תנאי א

אמת

אמת

אמת

אמת

אמת

שקר

שקר

אמת

אמת

שקר

אמת

שקר

שקר

שקר

שקר

שקר

28 of 36

תירגול

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

X >= 0 and x <= 9

X גדול שווה ל-0 וגם קטן שווה ל-9

x = int(input('Enter number'))�if x>=0 and x<=9:� print('True')�else:� print('False')

if x>=0:� if x<=9:� print('True')� else:� print('False')�else:� print('False')

תנאי מורכב:

תנאי א וגם תנאי ב

תנאי מקונן:

אם תנאי א מתקיים, תבדוק שתנאי ב מתקיים

29 of 36

תירגול

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

x = int(input('Enter number'))�if x<10 or x>20:� print('True')�else:� print('False')

תנאי מורכב:

תנאי א או תנאי ב

תנאי מקונן:

אם תנאי א לא מתקיים, תבדוק אם תנאי ב מתקיים

X < 10 or x > 20

X קטן מ-10 או גדול מ- 20

if x<10:� print('True')�elif x>20:� print('True')�else:� print('False')

30 of 36

תרגילים

תרגיל 1:

כתבו תכנית אשר קולטת מהמשתמש ציונים: grade1

אם הציונים גדול מ- 80 יודפס: כל הכבוד.

אם הציון בין 60 ל -80 (כולל) יודפס: עברת.

אחרת, יודפס: נסה שנית

תרגיל 2:

כתבו תכנית אשר קולטת מספר שלם למשתנה num ומדפיסה האם המספר שנקלט הוא דו ספרתי.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

יש לפתור בשתי דרכים:

  • תנאי מקונן
  • תנאי מורכב

31 of 36

תרגילים

  • השלימו את הטבלאות הבאות:

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

תוצאה

num

תנאי

 

10

If num < 4 and num > 0

 

4

אמת

 

שקר

 

תוצאה

num

תנאי

 

10

If num < 4 or num > 20

 

4

אמת

 

שקר

 

32 of 36

תרגיל מבחינת מפמ"ר

  • לפניך טבלה ובה ארבעה קטעי קוד.
  • לכל אחד מקטעי הקוד בטבלה תן דוגמה לקלט שיציג Yes ודוגמה לקלט שיציג No.

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

33 of 36

תרגיל מבחינת מפמ"ר

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

34 of 36

פתרונות

grade = int(input('Enter grade'))��if grade>=60 and grade<=80 :� print('You pass')�elif grade>80:� print('Well done')�else:� print('Try again')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

ניתן לכתוב בדרכים שונות!!

תרגיל 1:

כתבו תכנית אשר קולטת מהמשתמש ציונים: grade1

אם הציונים גדול מ- 80 יודפס: כל הכבוד.

אם הציון בין 60 ל -80 (כולל) יודפס: עברת.

אחרת, יודפס: נסה שנית

grade = int(input('Enter grade'))��if grade>=60:� if grade<=80:� print('You pass')� else:� print('Well done')�else:� print('Try again')

35 of 36

פתרונות

num = int(input('Enter number'))��if num>=10:� if num<=99:� print ('True')� else:� print('False')�else:� print('False')

חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב

num = int(input('Enter number'))

if num>=10 and num<100:� print('True')�else:� print('False')

תרגיל 2:

כתבו תכנית אשר קולטת מספר שלם למשתנה num ומדפיסה האם המספר שנקלט הוא דו ספרתי.

36 of 36

תכנות זה הנייר והעיפרון של המאה ה- 21

הוראת פיתון�

רחל פרלמן && חגית כהן�הפיקוח להוראת מדעי המחשב