الانتقال إلى المحتوى الرئيسي
الوحدة 4 · الدرس 2 من 28/10 في الدورة~15 min
دروس الوحدة (2/2)

الجداول وشرط الأحداث

في 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.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم نقل 1200 إلى مبيعات WS-MONTHLY-SALES(1). للعنصر الأول، ثم كرر للعنصر الثاني والثالث باستخدام الفهارس (2) و (3).

الحل متاح بعد 3 من المحاولات