שיעורי מודול (2/2)
טבלאות וסעיף OCCURS
ב-COBOL, אין מילת מפתח "מערך" או "וקטור" כדי להגדיר רשימות של נתונים הומוגניים. לשם כך, אתה משתמש בסעיף OCCURS, המציין כמה פעמים משתנה או מבנה חוזרים בזיכרון.
הגדרת טבלה עם OCCURS
הסעיף OCCURS מתווסף להצהרה של משתנה כפוף (לדוגמה, רמה 05 ומעלה) בתוך מבנה קבוצה (רמה 01):
01 WS-SALES-DATA.
05 WS-MONTHLY-SALES PIC 9(4) OCCURS 12 TIMES.בדוגמה זו, WS-MONTHLY-SALES היא טבלה המורכבת מ-12 אלמנטים מספריים בני 4 ספרות כל אחד. הזיכרון שהוקצה לרשומה זו יהיה בדיוק 12 * 4 = 48 תווים.
גישה לאלמנטים ואינדקסים
כדי לגשת לרכיב מסוים בטבלה, ציין את האינדקס בסוגריים מיד אחרי שם השדה.
[!חשוב] בניגוד לרוב השפות המודרניות המשתמשות באינדקס מבוסס 0, COBOL משתמש באינדקס מבוסס 1. האלמנט הראשון נמצא באינדקס
1, השני באינדקס2וכן הלאה.
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).מעבר טבלה (איטרציה)
כדי לעבור בלולאה בין הרכיבים של טבלה, אתה יכול להשתמש במשפט PERFORM VARYING או לנהל מונה באופן ידני בלולאה PERFORM UNTIL:
PERFORM UNTIL WS-INDEX > 12
DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
ADD 1 TO WS-INDEX
END-PERFORM.נסה זאת בעצמך
הכריז על טבלה של 5 טמפרטורות עשרוניות (3 ספרות שלמות ו-1 עשרוני) תחת מבנה הקבוצה WS-WEATHER-DATA באמצעות סעיף OCCURS.
הצג רמז
כתוב: 05 WS-TEMPERATURE PIC 9(3)V9 מתרחשת 5 פעמים.
הפתרון זמין לאחר 3 ניסיונות
אתחול שלושת האלמנטים הראשונים של טבלת WS-MONTHLY-SALES עם הערכים 1200, 1500 ו-1800 בהתאמה באמצעות הצהרות MOVE. זכור שהמדדים של COBOL מתחילים מ-1.
הצג רמז
השתמש ב- MOVE 1200 TO WS-MONTHLY-SLES(1). עבור האלמנט הראשון, לאחר מכן חזור על השני והשלישי באמצעות האינדקסים (2) ו-(3).
הפתרון זמין לאחר 3 ניסיונות