דילוג לתוכן המרכזי
מודול 4 · שיעור 2 מתוך 28/10 בקורס~15 min
שיעורי מודול (2/2)

טבלאות וסעיף OCCURS

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

הגדרת טבלה עם OCCURS

הסעיף OCCURS מתווסף להצהרה של משתנה כפוף (לדוגמה, רמה 05 ומעלה) בתוך מבנה קבוצה (רמה 01):

COBOL
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 וכן הלאה.

COBOL
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).

מעבר טבלה (איטרציה)

כדי לעבור בלולאה בין הרכיבים של טבלה, אתה יכול להשתמש במשפט PERFORM VARYING או לנהל מונה באופן ידני בלולאה PERFORM UNTIL:

COBOL
PERFORM UNTIL WS-INDEX > 12
    DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
    ADD 1 TO WS-INDEX
END-PERFORM.

נסה זאת בעצמך

פעילות גופנית#cobol.m4.l2.e1
ניסיונות: 0טוען...

הכריז על טבלה של 5 טמפרטורות עשרוניות (3 ספרות שלמות ו-1 עשרוני) תחת מבנה הקבוצה WS-WEATHER-DATA באמצעות סעיף OCCURS.

טוען עורך...
הצג רמז

כתוב: 05 WS-TEMPERATURE PIC 9(3)V9 מתרחשת 5 פעמים.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#cobol.m4.l2.e2
ניסיונות: 0טוען...

אתחול שלושת האלמנטים הראשונים של טבלת WS-MONTHLY-SALES עם הערכים 1200, 1500 ו-1800 בהתאמה באמצעות הצהרות MOVE. זכור שהמדדים של COBOL מתחילים מ-1.

טוען עורך...
הצג רמז

השתמש ב- MOVE 1200 TO WS-MONTHLY-SLES(1). עבור האלמנט הראשון, לאחר מכן חזור על השני והשלישי באמצעות האינדקסים (2) ו-(3).

הפתרון זמין לאחר 3 ניסיונות