בלוקים פנימיים בלולאת if-המשך
דוגמא:
כתוב תוכנית הקולטת את ציוניך בספרות ובמחשבים.
· אם שני הציונים גם יחד גבוהים מ-94, התוכנית תדפיס "כל הכבוד".
· אם הציון במחשבים גבוה מ-94, אך הציון בספרות נמוך יותר, התוכנית תדפיס "מצטיין
במקצוע המחשבים".
· בכל מקרה אחר התוכנית תאחל לך בהצלחה בהמשך לימודיך.
פתרון:
program MARKS; { תוכנית המטפלת בציוני תלמיד } var A,B: real; (* המיונים בספרות ובמחשבים, בהתאמה *)
procedure INPUT_MARKS; {תת-תוכנית לקליטת הציונים מהמשתמש } begin write (' הציון בספרות '); readln (A); write (' הציון במחשבים '); readln (B); end;
procedure OUT_MARKS; { תת-תוכנית המדפיסה מעמד התלמיד } begin (*אם הציון במחשבים גדול/שווה 95,אזי אם הציון בספרות גדול או *) (*שווה 95 אזי הדפס "כל הכבוד!" אחרת,אם הציון בספרות לא גדול או*) (*שווה 95,הדפס "מצטיין במחשבים" אחרת, אם הציון *) (* במחשבים לא גדול או שווה 95 הדפס "בהצלחה בהמשך לימודיך" *)
if B > 94 then if A > 94 then writeln (' כל הכבוד!') else writeln ('מצטיין במקצוע המחשבים') else writeln (' בהצלחה בהמשך לימודיך '); end;
(******* התוכנית הראשית *********)
begin INPUT_MARKS; OUT_MARKS; end. |
להורדת הדוגמא לחץ כאן
דוגמת ריצה:
ה-else הראשון מתייחס ל-then האחרון ואילו ה-else האחרון מתייחס ל-then הראשון. ממש כמו ההתייחסות לסוגריים בפעולות החשבון.
נשים לב להקפדה הרבה בצורת הכתיבה. כך, ניתן בקלות לזהות את ההיגיון שבהוראה.