תנאים
חגית כהן && רחל פרלמן
הפיקוח על הוראת מדעי המחשב
הקדמה
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
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)
הקדמה
מה יקרה אם num שווה 0?
כיצד ניתן לבקש מהמחשב לבצע את פעולת החילוק רק אם num שונה מ- 0?
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
print ('Python is fun’)
num = int(input('Enter number'))
print (10/num)
האם num שונה מ- 0?
כן
ביצוע מותנה הינו החלטה אילו צעדים נבצע עבור קיום תנאי לוגי מסוים.
בדיקה אשר ערכה אמת או שקר – True or False
דוגמא: האם המספר שונה מ-0? התשובה היא אמת או שקר.
תנאי בסיסי
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
אם מתקיים תנאי:
בצע את הפעולות הבאות
אם num שונה מ- 0:
הדפס תוצאת חישוב
את כל הפעולות שנרצה לבצע אם התנאי התקיים נרשום בהזחה.
print ('Python is fun')�num = int(input('Enter number'))�if num != 0:� print (10/num)
4 רווח�TAB
בדיקת קיום תנאי
תנאים לוגים
ניתן להשתמש בהשוואות הבאות:
a = 3
השמת הערך 3 במשתנה a
a = = 3
בדיקה האם ערך המשתנה a זהה ל-3
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תירגול
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
מהם ערכי הביטויים הבאים?
a = 10, b= 15, c = 20, d = 5
תוצאה | תנאי |
| a > b |
| a + b > c |
| b+d >= c |
שקר | |
אמת | |
פתרון
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
מהם ערכי הביטויים הבאים?
a = 10, b = 15, c = 20, d = 5
תוצאה | תנאי |
שקר | a > b |
אמת | a + b > c |
אמת | b+d >= c |
שקר | a + b+d <= c |
אמת | c - b == a - d |
מספר חיובי
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
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')
אם.... אז.... אחרת...
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')
אם.... אחרת אם אז.... אחרת…�else elif if
num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:� print('Negative')
else:
print('Zero')
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
נכתוב קטע קוד שידפיס בהתאמה למספר שנקלט - �positive�Negative�Zero�
אם.... אז.... אחרת...
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
if תנאי:
פעולות לביצוע
else: רשות – לא חייב להופיע
פעולות לביצוע
תרגול
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
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
תרגילים
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
פתרונות
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תרגיל 1:
כיתבו תוכנית אשר קולטת 2 שמות. התוכנית תדפיס את השמות לפי סדר ה- אלף בית האנגלי.
הערה: ניתן להשתמש ב < > == גם על מחרוזת. ההשוואה הינה לפי ה- אלף בית האנגלי.
בדיקה האם name1 קטן מ- name2
אחרת
פתרונות
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תרגיל 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
אחרת
קליטת מספרים שלמים
אם.... אז.... אחרת אם ... אז
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
if תנאי:
פעולות לביצוע
elif תנאי : רשות – לא חייב להופיע
פעולות לביצוע
נבדוק האם תנאי 1 מתקיים.
רק אם לא מתקיים, נבדוק האם תנאי 2 מתקיים
elif = else if
תרשים
רק אם התנאי 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?
בצע פעולות
כן
אם.... אז.... אחרת אם...
num = int(input('Enter Number'))�if num > 0:� print ('Positive')�elif num < 0:
print('Negative')
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
קיראו את הקוד הבא ונסו להסבירו
מה יהיה הפלט עבור המספרים הבאים:
2
2-
0
אם num>0
הדפס Positive
אחרת אם num < 0
הדפס Negative
אם.... אז.... אחרת אם...
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
אם.... אז.... אחרת אם... אחרת...
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
אם.... אז.... אחרת אם... אחרת...
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
תרגילים
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
פתרונות
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 קמ"ש. כיתבו תוכנית הקולט את מהירות הנסיעה של נהג ומדפיסה האם הוא נוסע מעל המהירות המותרת / מתחת למהירות המותרת או במהירות המותרת.
פתרונות
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
num = int(input('Enter number of players'))�if num >=10:� print('You can play')�else:� print('You can not play')
תנאים מורכבים
ביטוי בוליאני / לוגי יכול להיות מורכב מאוסף של ביטויים בוליאניים המחוברים על ידי קשרים לוגיים.
דוגמא:
בדיקת מספר חד ספרתי חיובי: x>=0 וגם x<=9
מספר חד ספרתי הוא בעל ספרה אחת – בתחום של 0 (כולל) עד 9 (כולל)
כיצד ניתן לבדוק האם מספר הינו חד ספרתי חיובי?
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
פתרון בעמוד הבא
תנאים מורכבים ותנאים מקוננים
דרך ראשונה – תנאי מקונן:
האם: x>=0?
כן – האם x<=9
כן – x מספר חד ספרתי
לא – x אינו מספר חד ספרתי
לא – x אינו מספר חד ספרתי
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
דרך שניה – תנאי מורכב:
האם: x>=0 וגם x<=9?
כן – x מספר חד ספרתי
לא – x אינו מספר חד ספרתי
קשרים לוגים
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תנאי א or תנאי ב | תנאי א and תנאי ב | תנאי ב | תנאי א |
אמת | אמת | אמת | אמת |
אמת | שקר | שקר | אמת |
אמת | שקר | אמת | שקר |
שקר | שקר | שקר | שקר |
תירגול
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
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')
תנאי מורכב:
תנאי א וגם תנאי ב
תנאי מקונן:
אם תנאי א מתקיים, תבדוק שתנאי ב מתקיים
תירגול
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
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')
תרגילים
תרגיל 1:
כתבו תכנית אשר קולטת מהמשתמש ציונים: grade1
אם הציונים גדול מ- 80 יודפס: כל הכבוד.
אם הציון בין 60 ל -80 (כולל) יודפס: עברת.
אחרת, יודפס: נסה שנית
תרגיל 2:
כתבו תכנית אשר קולטת מספר שלם למשתנה num ומדפיסה האם המספר שנקלט הוא דו ספרתי.
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
יש לפתור בשתי דרכים:
תרגילים
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תוצאה | num | תנאי |
| 10 | If num < 4 and num > 0 |
| 4 | |
אמת |
| |
שקר |
|
תוצאה | num | תנאי |
| 10 | If num < 4 or num > 20 |
| 4 | |
אמת |
| |
שקר |
|
תרגיל מבחינת מפמ"ר
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
תרגיל מבחינת מפמ"ר
חגית כהן && רחל פרלמן�הפיקוח להוראת מדעי המחשב
פתרונות
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')
פתרונות
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 ומדפיסה האם המספר שנקלט הוא דו ספרתי.
תכנות זה הנייר והעיפרון של המאה ה- 21
הוראת פיתון�
רחל פרלמן && חגית כהן�הפיקוח להוראת מדעי המחשב