|
بايثون – פיתון – python
( ) الحلقة
التكرارية - while
(
أ ) عدد مرات
التكرار
معلوم لنا –
متواليات عددية
סיכום על-פי עמליה
לולאת while
·
לולאת
while מאפשרת חזרה על פקודת עד שתנאי מסוים מתקיים.
·
התנאי
יכול להיכתב כמו תנאי if .
num=
0
while
num<
10:
print num ,
num+=1
·
הלולאה
תדפיס את כל המספרים עד שנגיע למספר 9 .
·
כאשר num = 10 , התנאי לא יתקיים ותסתיים
הלולאה.
·
ביצוע
חוזר מותנה נכתב בפייתון באופן הבא:
while <Logical
condition>:
Python code instructions
דוגמה ללולאת
n = raw_input ("Please
enter 'hello': ")
whilen n != 'hello':
n = raw_input
("Please
enter 'hello': ")
print "end"
·
קלטנו ערך למחרוזת n
·
הלולאה תרוץ כל עוד לא קלטנו את המילה hello כפי
שמופיעה בתנאי הלולאה.
·
כאשר נקליד את המילה כפי שמופיעה בתנאי הלולאה ç נצא מהלולאה.
במצב בו
אנו מריצים לולאה בהתאם לקיומו של תנאי יש לשים לב לתנאי ולערכים של המשתנים:
הלולאה תתבצע 5 פעמים (0 עד 4). |
count=0 while
(count < 5):
print count count+=1 |
הלולאה לא תתבצע, ערכו של המשתנה בתחילת הלולאה קטן מ – 5. |
count=0 while
(count > 5): print count count+=1 |
לולאה תתבצע ללא הפסקה – עולמים לא נגיע למצב שבו המשתנה יהיה גדול מ – 5. |
count=0 while
(count <5):
print count,
count - = 1 |
·
בתוך הלולאה, ניתן לקלוט ערכים, לבדוק תנאים ועוד. ·
נחשב את כל המספרים הזוגיים מ 0 עד מספר נתון. |
num=
int (raw_input("Enter number: ")) count
= 1; sum = 0 ; while (count < num+1):
if count
2 % == 0: sum += count count+= 1 print "the sum of the even
numbers is:", sum |
תרגילים
1)
כתבו תכנית המקבלת מספר כקלט ומדפיסה את כל המספרים האי
זוגיים עד למספר זה.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
2)
כתבו תכנית המבקשת באופן מחזורי מספר חיובי הגדול מאפס.
כאשר מתקבל אפס או מספר שלילי, התכנית מדפיסה את כמות המספרים שהוכנסו, וכן את
הממוצע שלהם.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
3)
במתמטיקה, פעולת עצרת של מספר (מסומנת בסימן קריאה)
נותנת את מכפלת כל המספרים מ- 1 ועד למספר עצמו.
לדוגמה: 4!= 1 * 2 * 3 * 4 = 24
כתבו תכנית המבקשת מספר שלם, מחשבת, ומדפיסה את תוצאת פעולת העצרת עליו.
(נסו לפתור בשתי הלולאות שלמדנו for ו –
while)
--------------------------------------------------------------------------------------------------------------------------------------------------------------
4)
כתבו תכנית המבקשת מחרוזת, ומדפיסה אותה מהסוף להתחלה.
הוסיפו לולאה שתתבצע שוב ושוב כל עוד לא הוכנסה המילה "stop".
--------------------------------------------------------------------------------------------------------------------------------------------------------------
5)
כתבו תכנית המקבלת כקלט גבהים של תלמידים עד לקליטת מספר
שלילי.
א.
התכנית תמנה כמה תלמידים גבוהים מ – 1.65 מ'.
ב.
בתכנית תחשב את ממוצע גובה התלמידים.
בסיום הלולאה תציג התכנית את ממוצע
גובה התלמידים וכמה תלמידים גבוהים מ – 1.65 מ'.
שימו לב: לצורך כתיבת תכנית זו יש לבדוק את נתון
הקלט לפני הכניסה ללולאה כדי שניכנס ללולאה. ובתוך הלולאה כדי שנבדוק את הגובה
הבא.
--------------------------------------------------------------------------------------------------------------------------------------------------------------
6)
נתונה רשימת צבעים:
blue, green,
red, cyan, magenta, yellow, black, white
כתבו תכנית העוברת על הערכים ברשימה ומדפיסה את
הצבעים אשר שמם מתחיל באות מסוימת. ערך האות יתקבל מהמשתמש.
|
בדיקת אלגוריתם (בפסודו-קוד) באמצעות טבלת מעקב
לפניכם אלגוריתם הרשום בפסודו-קוד, קראו וענו על השאלות הבאות:
1. קלוט ערך למשתנה num1
2.
קלוט ערך למשתנה num2
3.
0 ß counter
4. כל
עוד num1 ≥ num2 בצע:
4.1 num1 – num2 ß num1
4.2 counter + 1 ß counter
5.
הדפס counter + " ____ (1) ____"
6.
הדפס num1 + " ____ (2) ____"
א. מה יהיה ערכם של המשתנים num1 ו- counter בסיום ההרצה של
התוכנית, כאשר בתחילת התכנית מוזנים הערכים num2=6 ו- num1=20 ?
ב. מהי מטרת התכנית.
ג. מה יהיה הטקסט אותו נצטרך
להקליד בפעולות ההדפסה 5, 6 במקומות המסומנים (1) ו-
(2) לפי מטרת התכנית אותה מצאתם ?
(1):
____________________________
(2): ____________________________
פתרון:
num1 ≥ num2 |
counter |
num2 |
num1 |
כן 20 ≥ 6 |
0 |
6 |
20 |
|
1 |
|
20 – 6 = 14 |
כן 14 ≥ 6
|
|
|
|
|
2 |
|
14 – 6 = 8 |
כן 8 ≥ 6 |
|
|
|
|
3 |
|
8 – 6 = 2 |
לא 2 ≥ 6 |
|
|
|
א) ערכו של num1=2 ו- counter=3
ב) לבדוק חלוקה בשלמים בין
שני מספרים ולרשום האם ישנה שארית.
ג)
(1)
מספר הפעמים שנכנס המספר 6 במספר 20 הוא 3
(מספר הפעמים שנכנס המספר num2 במספר num1)
(2)
השארית לאחר שחלקנו את 20 ב 6 היא 2
(השארית לאחר שחלקנו את num1 ב num2)
|
תרגיל:
כתוב תכנית שקולטת סדרת מספרים ומודיעה לקופאי ללכת הביתה כשהפדיון
מגיע ל- 1000 שקלים ומעלה.
פתרון:
הגדרת הבעיה:
קלט: סדרת מספרים.
פלט: סכומים חלקיים.
סיום: כשהסכום לפחות 1000.
(ברגע שהעובד מגיע לסכום של 1000 ש"ח או יותר, הוא מקבל הודעה
אתה יכול ללכת הביתה).
האלגוריתם:
אפס את s כל עוד s<1000 קרא נתון x הוסף את x ל- s הצג את s הצג הודעה "לך הביתה" |
ç לאתחל את s, לשים ב s את הערך
ההתחלתי 0 ç חזור כל עוד s לא הגיע או עבר
את 1000 ç קבל נתון x ç הוסף את הערך של x לתאs ç הצג את הערך של s ç הודע שאפשר ללכת הביתה |
שלב הקידוד, בשפת פיתון:
x, s=0 while
(s<1000) : x=input("x=") s+=x print
"the sum is", s print
"Go
Home" |
הרצה ידנית
לפעמים כדאי לבצע הרצה ידנית, בשלב כתיבת האלגוריתם או לאחר כתיבת
הקידוד.
קלט 100 333 700
x, s=0 while
(s<1000) : x=input("x=") s+=x
print "the sum is", s print
"Go Home |
|
הרצה במחשב.
תריצו את הקוד שכתבנו...
|
C#
לולאות Loops
לולאה היא
פעולה שחוזרת על עצמה שוב ושוב – כל עוד שמתקיים התנאי בתחילת הלולאה.
מבנה
הלולאה:
|
while (<ביטוי לוגי >) { // אוסף פקודות } |
לדוגמא:
אנו קובעים שיש לקלוט מספרים עד שמופיע ה"דגל" המראה שאין
להמשיך.
למשל:
לקלוט מספרים כל עוד המספר הוא מספר חיובי הגדול מ- 0 ולבסוף ידפיס כמה מספרים היו
שווים ל- 10
הלוגיקה:
אנחנו צריכים לקלוט מספרים כל עוד המספר שקלטנו שונה מ- 0
המטרה היא שהפקודה האחרונה תשפיע במשהו על הדגל שקובע האם הגענו לסוף
תהליך.
לדוגמא: כאן קלטנו עוד מספר למרות שאנו יודעים (לפני ההנחות שאירוע
זה יקרה)
הניסוח :
while (<תנאי
>) {
פקודות שיש לבצע בתוך הלולאה } |
דוגמא: חשב את סכום כל המספרים. הקלט תסתיים כאשר ייקלט 1-
פתרון ב C#
int x = int.Parse
(Console.ReadLine()); int sum =0; while (x>0) {
sum+= x; x = int.Parse (Console.ReadLine()); } |
שימושים של לולאות while
לא ידוע על
כמה איברים יש לבצע לולאה.
פירוק מספר (כל פעם נוריד את האחדות)
לדוגמא : קלוט מספר. על הקטע תוכנית לחשב את הספרה המקסימלית
int x = int.Parse
(Console.ReadLine()); int max= -1 while (x!= 0) {
int ahadot = x %10;
if (ahadot >= max) max = ahadotl x /= 10; // אנחנו גורמים למספר להתקרב לתנאי הסיום } |
מבקשים לקלוט מספר ואחריו מבקשים לקלוט סדרה של מספרים עד שאנו
קולטים עוד פעם את המספר הראשון. התוכנית לבסוף תדפיס כמה מספרים נקלטו.
int firstNumber
= int.Parse (Console.ReadLine()); int
anotherNumber = int.Parse (Console.ReadLine()); int counter =
0; // בינתיים אין מספרים while
(anotherNumber != firstNumber) { counter++; anotherNumber = int.Parse
(Console.ReadLine()); } Console.WriteLine
("Another {0} numbers were input", counter); |
תרגול
לולאות – while
1.
קלוט מספר. אם המספר אינו מספר בין 0 ל- 10, יש להודיע
הודעה מתאימה ולקלוט שוב מספר עד שהמספר יתאים לטווח (בדיקת תקינות(
2. אנו מעוניינים לכתוב קטע
תוכנית הקולטת ציוני תלמידים בבחינת מדעים המחשב. יש מספר לא ידוע מראש של תלמידים
ולכן בסוף הקלט, תקלט המספר 1 (דגל). לאחר הקלט יש להדפיס כמה תלמידים מצטיינים יש
(תלמיד מצטיין זה תלמיד שהציון שלו הוא בין 85 ל- 100) וכמה תלמידים נכשלו. כמו כן
יש להציג את הציון הממוצע של הנבחנים.
3. כתוב
קטע תוכנית הקולטת מספרים. יש להפסיק את הקלט כאשר סכום המספרים הוא עד 1000.
לבסוף יש להדפיס כמה מספרים נקלטו.
4. כתוב קטע תוכנית שיוצר
מספר רנדומלי בין 1 ל- 100. כעת יש לקלוט ניחושים של המשתמש. אם המשתמש מקליד מספר גדול מהמספר
הרנדומלי, התוכנית תדפיס too big . אם המשתמש מקליד מספר קטן
מהמספר הרנדומלי, התוכנית תדפיס
too
small. הקלט יסתיים כאשר המשתמש
ניחש את המספר הנכון. בסוף הקטע יודפס כמה מספרים המתמש הקליד.
5. אנחנו מעוניינים לכתוב קטע
תוכנית אשר עורכת סקר. אנחנו עבור כל משתמש קולטים 2 מספרים. אחד – אם הוא בן (1)
או בת (2). כמו כן אנחנו קולטים מספר נוסף – 1 אם אוהב ספורט. 2 אם אינו אוהב
ספורט.
מס' המשתתפים אינו ידוע מראש ולכן כאשר ייקלט
עבור מין
המשתתף (רק
מספר 1) 0. לבסוף יודפס כמה משתתפים ומה אחוז הבנים האוהבים ומה
אחוז הבנות
האוהבות ספורט ואיזה מהם אוהב ספורט יותר.
6.
כתוב קטע תוכנית הקולטת מספר ומדפיסה את כל המספרים
הזוגיים ממספר 0 עד למספר שקלטת
7. כתוב קטע תוכנית הקולטת
סכום הפקדה, אחוז ריבית לשנה, וסכום היעד. (הנחה – שסכום ההפקדה הוא קטן מסכום
היעד ואחוז הוא חיובי). על התוכנית לחשב, כמה שנים ייקח ללקוח להגיע לסכום היעד
בתוכנית החיסכון.
8. קלוט מספר וספרה ותדפיס
הודעה מתאימה אם הספרה קיימת במספר.(המספר 146 והספרה 0 התשובה
תהיה שקר אבל עבור הספרה 4 התשובה תהיה אמת.
9. קלוט 2 מספרים וחשב
באמצעות לולאת while מה השארית
של חילוק ללא שימוש ב- %.
10.
קלוט 2 מספרים וחשב את המחלק המשותף הגדול ביותר. השיטה
היא להחסיר את המספר הגדול מהקטן עד ששני המספרים שווים.
11.
קלוט מספר ובדוק האם כל ספרות המספר הם בסדר עולה לדוגמא
953 תחזיר אמת, 186 תחזיר שקר.
12.
קלוט מספר והדפס מה ממוצעת הספרות של המספר.
|
תרגול לולאת While
מקבץ תרגילים מ C#
1. לפניך לולאת while עם תנאי חסר.
int counter = 0; while (counter
==10) { Writeln("Helow"); counter++ ; } |
כמה פעמים תודפס המילה Hello בכל אחד מהמקרים הבאים?
א. == ב.
=> ג. > ד. =! ה. <
2. כתוב תוכנית הקולטת סדרת מספרים שלמים. התוכנית
תסתיים כאשר ייקלט מספר שלילי ואז יודפס סכומם של כל המספרים שנקלטו.
3. כתוב תוכנית שקולטת מספרים
שלמים ומדפיסה אותם עד שיקלטו בסך הכל 7 מספרים שליליים.
4. כתוב תוכנית שקולטת מספרים
שלמים כל עוד הסכום המצטבר שלהם קטן מ - 100. לאחר סיום הקליטה הדפס את מספר
הערכים שנקלטו.
5. נגדיר "משקל" של
מספר תלת ספרתי כסכום של מכפלת שתי הספרות הראשונות של המספר ושל מכפלת שתי הספרות
האחרונות שלו.
למשל:
ה"משקל" של המספר 327 הוא: 20=3*2+2*7 .
כתוב
תוכנית שתקלוט מספרים תלת ספרתיים ותדפיס עבור כל אחד את ה"משקל" שלו.
הקליטה תסתיים כאשר סכום המשקלים יהיה גדול מ - 100.
6. במרכז בחינות, מחשבים את
ממוצע ציוני המבחן במדעי המחשב. ציון המבחן הוא חוקי אם הוא בין 0-100 (כולל).
כתוב תוכנית
הקולטת את כל הציונים שהתקבלו (הנתון האחרון הוא 999) התוכנית תחשב ותדפיס:
א.
מספר הציונים החוקיים שנקלטו.
ב.
ממוצע הציונים.
7. בבית אריזה ממיינים תפוחים
לשני סוגים.
סוג
א' תפוחים שמשקלם בין – 150 – 250
סוג
ב' תפוחים (אחרים) שוקלים פחות מ- -150 גרם או יותר מ- 250
גרם.
את
התפוחים מכניסים לארגזים בעלי מקום ל- 50 תפוחים.
כתוב
תוכנית הקולטת משקל של כל תפוח ובודקת לאיזה סוג הוא שייך. התוכנית תעצור כאשר אחד
הארגזים יתמלא. התוכנית תדפיס הודעה איזה ארגז התמלא ראשון.
הערה: אם אתם
מתעצלים להקליט למעלה מ - 50 נתונים, תוכלו במקום לקלוט, להגריל מספר המהווה משקל
התפוח בין 10-500 גרם.
8. כתוב תוכנית הקולטת מספר
שלם וחיובי (לא ידוע מה מספר ספרותיו), וכן ספרה. התוכנית תחשב ותדפיס כמה פעמים
מופיעה הספרה במספר.
9. כתוב תוכנית הקולטת מספר
שלם וחיובי (לא ידוע מה מספר ספרותיו). עליך לחשב ולהדפיס את סכום ספרותיו.
10. כתוב תוכנית שתקלוט מספר
שלם וחיובי ותיצור מהמספר שנקלט מספר ההפוך בספרותיו (שימו לב, לא באמצעות שרשור
מחרוזות), לדוגמה: אם המספר שנקלט הוא 1234, המספר החדש הוא: 4321.
11. כתוב תוכנית הקולטת שני
מספרים שלמים וחיוביים ומוצאת את המחלק המשותף הגדול ביותר שלהם, כלומר המספר
הגדול ביותר המשותף שמחלק את שני המשתנים ללא שארית.
לדוגמה: אם המספרים שנקלטו הם: 14 , 28 , המחלק
המשותף הגדול ביותר הוא 14.
דוגמה נוספת: 30 , 9 , המחלק המשותף הגדול ביותר
הוא 3.
דוגמה נוספת: 7 , 5 , המחלק המשותף הגדול ביותר
הוא 1
בהצלחה !!!!
|
תרגילים
(C# - לולאת while)
1.
כתבו
מדפיסה את הסכום של כל המספרים בטווח (
0-1000 ) שמתחלקים ב 7 .
2.
כתוב
תכנית שקולטת טבעי n ובודקת האם הוא ראשוני או לא.
3.
כתבו
תכנית שקולטת יתרה נוכחית של חשבון בנק , מסגרת אשראי
ופעולות (הפקדה / משיכה ) לחשבון. ( לא
ידוע כמה פעולות מראש ) . תחילה התכנית
תקלוט את נתוני החשבון ולאחר מכן התכנית
תקלוט תו (משתנה מסוג char ) "m" ל - " משיכה" ו –
" h" להפקדה. לאחר מכן
התכנית תקלוט סכום למשיכה / הפקדה. אם
במהלך החישוב התכנית מנסה למשוך יותר ממסגרת האשראי אז תודפס הוראה מתאימה למסך
והפעולה לא תתבצע. אם המשתמש יקליד "q" התכנית תפסיק את החישוב ותדפיס את מצב החשבון , ( יתרה נוכחית ) ואת מספר הפעולות שבוצעו במהלך החישוב.
4.
כתוב
תכנית שקולטת שני מספרים ומדפיסה את כל המספרים שנמצאים ביניהם ( לא כולל)
5.
כתוב תוכנית
הקולטת מספר , ותסתיים ברגע שנקלט
מספר גדול ממנו.
6.
כתוב
תכנית שקולטת 10 מספרים
ומדפיסה את המקסימום ואת המינימום .
7.
כתוב
תכנית שמחשבת את הסכום של כל המספרים המתחלקים ב
3 בטווח ( 0-1000 )
8.
כתוב
תכנית שקולטת מספר ומדפיסה את סכום הספרות שלו.
9.
כתוב תוכנית הקולטת מספר ומדפיסה אותו
בסדר הפוך של
ספרותיו.
10.
כתוב תוכנית הקולטת אותיות ומבצעת את
הפעולות הבאות:
a.
עבור
האותיות a,b,c תדפיס
"@ " ותרד שורה .
b.
עבור
האותיות d,
e, f תדפיס
# ותרד שורה.
c.
עבור
האותיות g
, h, i תדפיס
$ ותרד שורה.
d.
לגבי
שאר האותיות היא תדפיס אותם כרגיל ותרד שורה.
e.
התוכנית
תסתיים רק כאשר תקיש q
.
11.
כתוב
תכנית המדגימה פעולה של מחשבון פשוט.
התכנית תקלוט מספר ראשון , פעולה ומספר שני. ( פעולה חוקית היא למעשה אחד מ ארבעת
התווים "+, - , * , / " ) אם
התו הנקלט אינו "פעולה חוקית"
תודפס הודעת שגיאה מתאימה. לאחר כל חישוב צריך לתת אפשרות ליציאה מן התכנית
או להמשך .
12.
כתוב תוכנית הקולטת 3 מספרים ותדפיס את סידרת פיבונאצי . שני מספרים
הראשונים יהיו 2 האיברים הראשונים בסדרה, והשלישי מספר האיברים הנוספים שיש להדפיס .
הערה : התכנית צריכה לטפל בכל מקרי הקצה האפשריים .
Daliaty School – Copywrite 2023
wahbem@gmail.com | https://daliaty.com
<meta name="viewport"
content="width=device-width, initial-scale=1">