הוראה זו הינה חיונית ביותר לשם כתיבת תכנית בגישת התכנות המבני. ראשית, היא מעבירה את הבקרה לקטע, שבשמו היא נוקבת. קטע זה מבוצע שוב ושוב באופן רצוף, עד אשר מתקיים התנאי, שצויין בהוראה. כאשר מתקיים תנאי זה, חוזרת הבקרה להוראה שמיד אחרי הוראת PERFORM.
להזכירך:
EOF הוא משתנה מיוחד בסעיף האחסון- לעבודה,
המכיל אפס כערך התחלתי, ויכיל אחד רק כאשר
יתקיים תנאי AT
END. אם כן, הוראת PERFORM מורה למעשה, כי יש לבצע את כל ההוראות
בקטע CALC-RTN,
עד אשר אין יותר רשומות קלט לעיבוד. אז
תחזור הבקרה להוראה שאחרי הוראת PERFORM. סדר הצעדים מופיע כלהלן:
הטווח (RANGE) של הוראת PERFORM כולל את כל ההוראות בקטע שצויין, עד אשר מופיע שם הקטע הבא, או עד שאין הוראות נוספות. בהוראת PERFORM...UNTIL מעורבת בדיקת-תנאי על ידי המחשב. כלומר, חייב להתקיים תנאי מסויים, כדי שהבקרה תחוור לביצוע בהוראה שלאחר PERFORM. הנקודה, בה נערכת הבדיקה, היא בעלת משמעות היונית. חשוב לציין, כי הבדיקה מתבצעת מיד בתחילת הביצוע, ולאהר מכן - שוב ושוב, בכל פעם שבה התבצע הסעיף שצוייך בשלמות. תרשים
התהליך הבא מסביר את אופי ביצוע הפעולה: נזכרך
את הסדר הנ"ל, בחן את הסדר הבא, וראה אם
תוכל למצוא, מדוע אינו מהווה תכנית חליפית
נכונה לתכנית הקודמת, שאת סדר פעולותיה
ראינו.
בדוגמה הקודמת, נקראה רשומת נתונים ביחידה הראשית, ואז הועברה הבקרה ליחידה CALC-RTN – שם עובדה הרשומה הראשונה, ולאחריה נקראה הרשומה הבאה, וכן הלאה. בדוגמה זו - היהידה הראשית אינה מכילה הוראת-READ. במקום זאת, קוראת השגרה CALC-RTN רשומה ומעבדת אותה בכל פעם. הצעדים, שיתבצעו בתכנית זו, זהים בדיוק למה שהתבצע בדוגמה הקודמת, פרט לרשומה האחרונה. ראינו אז, כי כאשר נעשה ניסיון לקרוא רשומת נתונים נוספת (ורשומות כאלה אינן בנמצא) יתבצע התנאי - AT END. בנקודה זו, הואיל והוראת READ היא ההוראה האחרונה, מתבצעת בדיקה אם 1 = EOF. כאשר שוויון זה נכון, חוזרת הבקרה ליחידה הראשית. מה קורה במקרה שלעיל, כאשר נעשה ניסיון לקרוא רשומה - ואין כזו? מתבצע התנאי AT END, ו-EOF מושווה ל-1 . אולם הבדיקה להחזרת הבקרה אינה מתבצעת, אלא אחרי שבוצע כל הקטע. משמעות הדבר היא המשך הביצוע, למרות שאין רשומה נוספת. לאחר הביצוע פעם נוספת, תחזור הבקרה ליחידה הראשית. תוצאת התכנית הזו הינה, בדרך כלל, ביצוע עיבוד הרשומה האחרונה פעמיים, בקיצור, כאשר משתמשים בתבנית ההוראה הבאה: .1 = EOF UNTIL (שם סעיף) PERFORM כפי שנעשה בתכניותינו, יש תמיד למקם את הוראת READ בסוף הסעיף שצויין. בדרך זו, יועבר הביצוע הזרה ליחידה הראשית, מיד כאשר מתקיים התנאי AT END. אם כן, לכל תכניותינו תהייה הצורה הבאה:
|
פרק 1 - מבוא לתכנות COBOL.
פרק 2 - ארגון נתונים
פרק 3 - חטיבת הזיהוי
(IDENTIFICATION DIVISION)
פרק 4 - חטיבת הסביב
(ENVIRONMENTAL DIVISION)
פרק 5 - חטיבת הנתונים
(DATA DIVISION)
פרק 6 - חטיבת הביצוע
(PROCEDURE DIVISION)
פרק 7 - הוראת MOVE
פרק 8 - קטעי האחסון לעבודה
פרק 9 - הוראות אריתמטיות
פרק 10- הוראות תנאי
פרק 11 - רישומים נוספים בחתיבת הנתונים
פרק 12 - עריכת פלט מודפס
פרק 13 - הוראות מיוחדות לעריכת הדפסה
פרק 14 - הוראת DISPLAY ו-ACCEPT
|
.איתן 2002. כל הזכויות שמורות למערכת המידע איתן © |