» נושאי לימוד
» נושאי לימוד
יום ראשון 22 בדצמבר 2024
לולאת FOR
דף ראשי  פרק 3 :יסודות שפת פסקל  לולאות  לולאת FOR גרסה להדפסה

לולאת FOR

 

מבנה לולאת FOR:

do ערך סופי to ערך התחלתי =: משתנה הלולאה for

begin

                            ;הוראה

                            ;הוראה

                                  ·   

                                  ·         

                                  ·         

                            ;הוראה

;end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

דוגמא לשימוש:

כתוב תוכנית המדפיסה שורה בת 30 כוכביות.

 

פתרון:

 

 

 להורדת הדוגמא לחץ כאן

 

תוצאת ריצה:

 

 

בלולאה זו נדרש שהפקודה write תבוצע 30 פעמים בדיוק. ההוראה:

for I:=1 to 30 do  היא ההוראה הקובעת כמה פעמים יש לבצע את ה-write . 

המשתנה I  נקרא משתנה לולאה או מונה הלולאה.סופר כמה פעמים בוצעה הלולאה.

תחילה (מיד אחרי ה-for) קובעים את ערכו לערך התחלתי ולאחר ה-to קובעים את הערך אליו יגיע בסיום הלולאה (הערך הסופי). לאחר ה-do נמצאת ההוראה אותה צריך לבצע. לאחר כל ביצוע של הוראה זו, מקודם אוטומטית הערך של I ב-1. כאשר הערך של I גדול מהערך הסופי, מסתיימת הלולאה ועוברים לביצוע של ההוראה הבאה אחרי הלולאה.

כאשר יש צורך בגוף הלולאה לבצע יותר מפקודה אחת, יירשם בלוק פנימי וכל הבלוק יבוצע מספר פעמים שדורשת הלולאה.

מספר הפעמים שמבוצע גוף הלולאה =

(ערך התחלתי) – (ערך סופי) + 1  

 

בדוגמא הנ"ל מספר הפעמים שמבוצע גוף הלולאה הוא: 1+30-1=30 פעמים.

 שימו: אם הערך של מונה הלולאה לא גדול מערך הסופי, גוף הלולאה יבוצע! כלומר אם כתבנו בטעות:

 

for I:=10 to 1 do הוראה;

 

 

 

ההוראה לא תבוצע אפילו פעם אחת כי מלכתחילה הערך שהוצב ב-I גדול מהערך הסופי.

מכיוון שמספר הפעמים שיש לבצע את הלולאה הוא מספר שלם (לא ניתן לבצע חצי או שליש לולאה) משתנה הלולאה חייב להיות מסוג integer.

 

דוגמא:

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

 

פתרון:

 

 

 להורדת הדוגמא לחץ כאן

 

דוגמת ריצה:

 

 

התוכנית קולטת מספר ומציבה אותו במשתנה הממשי X, קופצת שורה וממשיכה לביצוע ההוראה הבאה בתור.

בהוראה הבאה נבדק האם תוכן X גדול מ-10.

אם כן תבוצע ההוראה writeln ועל הצג נקבל:

10 is bigger then (המספר שהקשנו) The number

 

 

אם לא , לא יבוצע דבר והתוכנית ממשיכה להוראה הבאה, ההוראה הבאה היא סיום הלולאה, כאן התוכנית מקדמת את N (מונה הלולאה) ב-1. התוכנית קופצת לראש הלולאה (ל- for) ושואלת אם הערך הנמצא ב-N גדול מ-5. אם לא מבוצע שוב גוף הלולאה, אם כן התוכנית קופצת להוראה שאחרי הלולאה ל-end. שמסיים את התוכנית.

  

נתמקד בהוראה הבאה:     ;A:=A+3

כלומר, חבר לתוכן משתנה A את הערך 3 ואת התוצאה אחסן במשתנה A שוב.

מהוראה זו בלבד לא ניתן לנחש מה יהיה תוכן משתנה A לאחר סיום ההוראה. תוכן A תלוי בהוראות קודמות בתוכנית שהיו לפני הוראה זו.

במקרה זה, התא A הוא צובר. כלומר, צובר לתא A ערך נוסף.

 

נניח כי נתון קטע התוכנית הבא:

 

 

 להורדת הדוגמא לחץ כאן

 

דוגמת ריצה:

 

 

בקטע תוכנית זו, הוצב ערך התחלתי 10. זאת כדי שנוכל לדעת בוודאות את הערך במשתנה A בהמשך. בכל פעם שמבוצע גוף הלולאה, נוסף לצובר A הערך המאוחסן ב-J.

עם סיום התוכנית ערכו של A יהיה 56. תוצאה זו נובעת מהפעולה המצטברת:

 

 

שימו:  אין להניח שבתחילת ביצוע התוכנית ערך המשתנים אפס.

שתי סיבות לאיסור זה:

1.    התוכנית שאנו כותבים, אולי תהיה תת-תוכנית ולא ידוע מה קורה בתת-תוכניות אחרות.

2.    הפסקל אינו מאפס משתנים לפני הרצת התוכנית.

לכל צובר יש להציב ערך התחלתי!!!

 

 23-03-04 / 23:42  עודכן ,  29-09-03 / 15:42  נוצר ע"י ליזי פרגו'ן  בתאריך 
 לולאות - הקודםהבא - לולאת FOR-המשך 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 5