» נושאי לימוד
» נושאי לימוד
יום שבת 4 במאי 2024
לולאות כפולות
דף ראשי  פרק 3 :יסודות שפת פסקל  לולאות  לולאות כפולות גרסה להדפסה

לולאות כפולות

 

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

 

דוגמא לשימוש בלולאות כפולות:

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

לדוגמא, אם המספר שנקלט הוא 6 הפלט שיתקבל הוא:

 

*

**

***

****

*****

******

 

 

 

 

 

 

פתרון:

 

program TRIANGLE;

var

   N:integer ; (*  משתנה הקלט- מספר הכוכביות בשורה האחרונה *)

   I,J: integer; (* מוני הלולאות *)

 

procedure MAKE_TRIANGLE;

   { תת-תוכנית להדפסת משולש מכוכביות}

begin

 { קלט}

  write(' הקש את מספר הכוכביות בשורה האחרונה ');

  readln(N);     (*  מספר הכוכביות בשורה האחרונה הוא מספר השורות*)

                                               {  הלולאה הכפולה  }

                 (* הוא מונה הלולאה החיצונית הסופרת את השורות I *)

  (* הוא מונה הלולאה החיצונית הסופרת את מספר הכוכביות בכל שורה J *)

  for I:=1 to N do  (* לולאה חיצונית *)

  begin

    for J:=1 to I do (* לולאה פנימית *)

         write (' * ');

    writeln;  (* לקפוץ שורה בסיום כל שורת כוכביות *)

  end;

end;

 

(************* התוכנית הראשית ****************)

begin

  MAKE_TRIANGLE;

end.

 

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

 

דוגמת ריצה:

 

 

בלולאה הפנימית J הולך מ-1 ועד I בכל פעם שלולאה זו מתבצעת. כאשר I שווה 1 אזי ההוראה write בלולאה הפנימית מבוצעת פעם אחת.

 בסיום הלולאה הפנימית הסמן קופץ לשורה הבאה. כאשר I שווה 2, הלולאה הפנימית מבצעת את ה-write פעמיים, (כי J הולך מ-1 עד 2) ואז בסיומה הסמן קופץ לשורה הבאה (בגלל ה-writeln) כך הלאה עד ש-I שווה 6 והלולאה החיצונית מסתיימת והתוכנית קופצת להוראה שאחרי הלולאה החיצונית וכך גם מסתיימת תת-התוכנית.

 

דוגמא:

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

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

פתרון:

 

 

תת התוכנית מתאימה גם לבסיס שלילי.

בתנאי היציאה מלולאת repeat, נרשם I<1 ולא I=0. יש להימנע ככל האפשר מהצבת שוויון לבדו. יכול להיות שבמהלך הכתיבה וניפוי התוכנית משגיאות, נפלה טעות ולעולם לא יתקיים השוויון.

אך הסימן קטן (>) כולל תחום רחב מאוד שימנע לולאה שלא נגמרת.

 

לולאה שאינה נגמרת היא טעות לוגית ולא תתגלה על ידי המהדר!

לולאה שביצועה אינו נגמר נקראת לולאה אינסופית!

 

 

 22-03-04 / 13:06  עודכן ,  02-09-03 / 15:42  נוצר ע"י כפיר מרגי  בתאריך 
 פונקציות מתמטיות בפסקל - הקודםהבא - משתנים ומחרוזות 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 1