دروس الوحدة (2/2)
الجداول وشرط الأحداث
في 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.
إظهار التلميح
استخدم نقل 1200 إلى مبيعات WS-MONTHLY-SALES(1). للعنصر الأول، ثم كرر للعنصر الثاني والثالث باستخدام الفهارس (2) و (3).
الحل متاح بعد 3 من المحاولات