كوبول - الصورة - بند ثنائي - خيارات
قراءة تخطيطات كوبول تم كتابة هذا البرنامج التعليمي حول كيفية قراءة تخطيط كوبول خصيصا لعملائنا الذين أجروا تحويلا في القرص تبادل وتلقوا تخطيط كوبول مع البيانات. الغرض منه هو أن تعطيك معلومات كافية لقراءة تخطيطات أبسط. أنها لا تغطي جميع المواضيع أو كل شيء سوف تجد في تخطيط معقد، ويهدف إلى شرح تخطيطات كوبول فقط حتى تتمكن من استخدام البيانات التي تم تحويلها، وليس حتى تتمكن من كتابة برامج كوبول. تبدأ هذه المقالة هنا: قراءة تخطيطات كوبول حيث ستجد أيضا فهرس الموضوع. الجزء 4: الحقول الرقمية يصف هذا القسم العديد من أنواع البيانات الرقمية ومعالجة الإشارات والنقاط العشرية. محتويات هذا القسم: تحتاج إلى تحويل الحقول الرقمية ثاتس عملنا يحتوي كوبول على عدة أنواع من الحقول الرقمية. وتشمل أنواع البيانات هذه حقل ديسبلاي، يتكون من أحرف (الأحرف إبكديك أو أسي من 0 إلى 9)، وحقول ثنائية، وحقول معبأة، وحقول نقطة عائمة. هناك أيضا خيارات لعلامة منفصلة أو - علامة أو لافتة، وللعشرية الحقيقية أو الضمنية. يتم تحديد نوع البيانات بواسطة بند أوساج إس. الاستخدام هو شرط هناك في الواقع أكثر إلى بيان الصورة من ويف سبق وصفها. هناك عبارة أوسيج إس تحدد نوع تخزين حقل رقمي - عرض أو ثنائي أو حسابي. بناء الجملة الكامل، على سبيل المثال، هو: يقول هذا لتخزين الحقل في الشكل الحسابي 3. استخدام هو جزء اختياري و عموما تركت، و يمكن اختصار كومبوتاتيونال كومب، لذلك سوف أكثر شيوعا رؤية هذا مكتوب أنواع الحقول الرقمية سوف تشاهد عادة في تخطيطات كوبول هي: عرض (بما في ذلك حقول وقعت) ثنائي الحسابية، أو كومب-كومب-2 كومب-3 العرض، بما في ذلك الحقول الموقعة أو المخصصة، هو الأكثر شيوعا، و كومب-3 هو النوع الثاني الأكثر شيوعا من الحقل الرقمي. قد يكون لدى بعض المبرمجين أيضا أنواع بيانات كومب-4 و كومب-5، عادة لمحاكاة كومب على مترجم آخر. الاستخدام عرض تنسيق العرض هو الافتراضي للأرقام في كوبول. إذا لم يتم تحديد شرط استخدام، الافتراضي هو استخدام العرض، وهو ما يعني يتم تخزين القيمة كأحرف إبكديك (أرقام)، بدلا من ثنائي. قد تكون القيمة أو لا تحتوي على عشرية - ضمنية أو حقيقية - وقد تكون غير موقعة أو تحتوي على علامة مضمن أو علامة منفصلة - والتي يمكن أن تكون إما رائدة أو زائدة. يحتوي حقل تنسيق العرض الموقوف الافتراضي على علامة زائدة مدمجة، ويطلق عليه عادة حقل موقعة أو عب موقعة أو حقل مخصصة. ويرد أدناه وصف لنوع البيانات هذا. الحقول الموقعة يوجد نوع بيانات رقمي شائع يستخدم في كوبول على عب مينفرامس يسمى سيغند (ويسمى أيضا عب سيغنيد، أو زونيد). يمثل كوبول هذا النوع من الحقول بواسطة S في شرط الصورة في حقل تنسيق العرض، على سبيل المثال. بيك S9 (6). ويتألف الحقل الموقَّع من أحرف رقمية إبكديك عادية، وحرف واحد لكل بايت، بالنسبة لجميع الأرقام باستثناء الرقم الذي يحمل العلامة، إما الرقم الأكثر دلالة (علامة بارزة) أو الرقم الأقل أهمية (علامة زائدة) - وعادة ما يكون الأقل أهمية. الرقم الذي يحمل علامة يجمع، أو أكثر من اللكمات علامة من الرقم على هذا الرقم. هذا يحفظ بايت واحد أن علامة تحتل خلاف ذلك. يتم تخزين قيمة هذا الرقم كقيمة ثنائية، و أورد مع رمز التوقيع، وهو عرافة D0 للأرقام السالبة، عرافة C0 للقيم الإيجابية، والعرافة F0 للقيم غير الموقعة. نظرا للإفراط، لن يظهر الرقم الذي يحمل علامة كعدد عندما يتم عرض الحقل في وضع حرف إبكديك. إذا كان لديك الحقل وعرض قيمة 1.23 مع محرر إبكديك، فإنه سيتم قراءة 0000012C. يستخدم مصممو أسي كوبول أيضا نوع بيانات موقعة مع إزاحة، ولكن بتة الإشارة مختلفة وغير موحدة بين المجمعين. راجع الحقول المختصرة للتوقيع على تيش-تالك للحصول على مزيد من التفاصيل حول كل من حقول إبكديك و أسي الموقعة. التوقيع هو توقيع كوبول منفصل الحقول تضمين علامة في القيمة بشكل افتراضي (انظر الحقول وقعت أعلاه). ولكن هناك حكم في كوبول لعلامة منفصلة، ويمكن أن يكون إما الرائدة أو زائدة. بيان هذا هو قد يتم دمج هذا مع الشرط الرئيسي أو زائدة: يمكن تطبيق هذا البيان على عنصر ابتدائي (حقل) أو إلى السجل بأكمله. الحقول الحسابية والثنائية لأن أجهزة الكمبيوتر تؤدي الحسابات مع الأرقام الثنائية، فمن أكثر كفاءة لتخزين تلك القيم في الملف في شكل ثنائي الأصلي من لتخزينها في قاعدة للقراءة البشرية عشرة. إذا تم تخزين الرقم في تنسيقه ثنائي الأصلي يمكن أن يكون الإدخال من الملف واستخدامها مباشرة. إذا كان تخزينها في شكل قاعدة عشرة يحتاج إلى تحويلها إلى ثنائي قبل إجراء العمليات الحسابية على ذلك، ثم تحويلها مرة أخرى إلى قاعدة عشرة للتخزين. يحدد كوبول العديد من أنواع البيانات الثنائية. سنقوم بإدراج ملخص مختصر هنا، ويمكنك العثور على مزيد من التفاصيل في حقول كوبول الحسابية وفي كوبول كومب-3 باكيد فييلدز. قبل أن نبدأ، هناك نقطة مهمة واحدة لفهم: معيار كوبول يترك التنفيذ الفعلي لمعظم أنواع البيانات حتى المورد الذي كتب مترجم كوبول. والسبب في ذلك هو لأن أجهزة الكمبيوتر المختلفة - وحدات المعالجة المركزية - استخدام تمثيلات ثنائية مختلفة داخليا، وتعمل بشكل أفضل مع نوع الخاصة بهم من الأرقام الثنائية. هذا النهج يؤدي إلى أفضل وأسرع المجمعين، ولكن أيضا يسبب الارتباك، لأن نوع بيانات كومب على جهاز واحد ليس بالضرورة نفس كومب على جهاز آخر. يسرد الجدول أدناه الاستخدامات الشائعة، ولن يتبع كل المجمعين هذه الأنواع. لمزيد من التفاصيل حول ترتيب الكلمات وعلامات انظر الرابط أعلاه. نوع البيانات الذي يستخدمه الحقل للتخزين يتم تحديده باستخدام عبارة في تعريف الحقل، وفي معظم الحالات يتم تحديد عدد وحدات البايت التخزينية بعدد الأرقام في الموافقة المسبقة عن علم. وتتبع أرقام النقاط العائمة الصيغ الثنائية القياسية، وبالتالي لا يتم تحديد أحجامها بواسطة الموافقة المسبقة عن علم، ولا تستخدم الموافقة المسبقة عن علم في تعريف المجال. وصف كيفية تخزين نوع البيانات هذا يتم تنفيذ العشرية المعزولة عادة ك كومب-3. انظر كومب-3. عند قراءة مواصفات حقل ثنائي أو كومب، يكون الحجم المدرج في بيك هو عدد الأرقام العشرية بعد تحويل الرقم من ثنائي إلى قاعدة عشرة. في حالة حقل معبأ، حجمه بعد تفريغ. العشرية الحقيقية معظم المبرمجين بيسي تميل إلى التفكير من حيث العشرية الحقيقية في القيم الرقمية. على جهاز الكمبيوتر، إذا كان لديك حقل دولار وسنت ل، على سبيل المثال، الفاتورة الإجمالية، في مبلغ 123.45، فإن الملف يحتوي على ستة بايت 123.45 (وربما علامة). وبعبارة أخرى، هناك نقطة عشرية حقيقية في الملف. كوبول يمكن القيام بذلك، أيضا، عن طريق ما يلي: أور: وجود. في بيك يسبب عشري حقيقي في الملف. العشرية ضمنية، ومع ذلك، هو أكثر شيوعا في كوبول. العشرية الضمنية يعني العشرية الضمنية ببساطة وجود نقطة عشرية ضمنية في موقع محدد في حقل، ولكن لا يتم تخزينها فعليا في الملف. يشار إلى موقع العشرية الضمنية بواسطة V في بيك. يؤدي استخدام العشرية الضمنية إلى توفير مساحة في الملف. يمكن تطبيق العشرية الضمنية على أي نوع من الحقول الرقمية، بما في ذلك حقل معبأ أو كومب-3. على سبيل المثال، هو حقل عشري ضمني. هناك 6 أرقام، ثم عشري ضمني - V - و 2 أرقام أخرى، ليصبح المجموع 8 أرقام. الحقل هو 8 بايت في حجم لا يوجد. في الملف - يعني موقع النقطة العشرية أن يكون بين 9 (6) و 99. إذا كان الحقل يحتوي على 00000123 ثم رصيد الحساب هو 1.23، لأن هناك عشرية ضمنية بين الدولارات والسنتات. المزامنة والمحاذاة هذا الموضوع متضمن قليلا لهذا البرنامج التعليمي، ولكن يجب أن تكون على بينة من ذلك. عند استخدام التخزين الثنائي (ثنائي و كومب)، قد يتطلب بعض المجمعين على بعض الأجهزة أن يبدأ حقل رقمي على بعض الحدود. على سبيل المثال، على جهاز 32 بت، قد يتطلب أن يبدأ حقل كومب على حدود 32 بت. إذا قمت بتحديد حقل كومب في منتصف السجل، وأنه لا يحدث أن تبدأ على حد 32 بت (4 بايت)، فإن المحول البرمجي محاذاة إلى حد 32 بت لمزامنتها. ما تخزينه فعلا في الملف قد لا يكون نفس بيكس على تخطيط تشير. هذه ليست مشكلة شائعة جدا، ويرجع ذلك جزئيا لأن المجالات الثنائية و كومب ليست شائعة جدا في الملفات، ولكن يجب أن تكون على بينة من ذلك. معلومات إضافية لمزيد من المقالات حول تحويل البيانات، راجع مؤشر تكتالك الخاص بنا. لدينا خدمات تحويل كوبول يمكن أن تقوم شركة إنتيرتشانج سيرفيس كومباني بتحويل معظم أنواع البيانات الرقمية، بما في ذلك جميع أنواع بيانات إب المركزية إبكديك، ومعظم أنواع بيانات أسي من أنظمة الكمبيوتر و أونيكس. لدينا مكتبة من إجراءات التحويل يسمح لنا للتعامل مع تلك الوظائف الصعبة التي لا يمكن تحويل المجمعين كوبول القياسية. بند أوسيج يحدد بند أوسيج تنسيق عنصر بيانات في ذاكرة الكمبيوتر أو في سجل ملف. في بعض الحالات، قد يختلف تنسيق ملف ملف عناصر البيانات عن تنسيق ذاكرة الكمبيوتر كما هو محدد في بند أوسيج. يمكن أن يحدث هذا عندما يتم الوصول إلى أنظمة الملفات غير كوبول مع تنسيقات تخزين البيانات المختلفة من خلال واجهة. على سبيل المثال، يستخدم Acu4GL سكل للوصول إلى أنظمة الملفات غير كوبول، وفي عملية تحدث ترجمة على البيانات. ملاحظة: هناك العديد من خيارات المترجم للتأثير على سلوك تخزين البيانات. راجع خيارات تخزين البيانات في قسم توافق أكوكوبول-غ. يعرض العمود الموجود على اليسار الاختصارات المقبولة للمصطلحات الموجودة على اليمين: يمكن استخدام شرط الاستخدام في أي إدخال لوصف البيانات باستثناء تلك التي تحتوي على أرقام مستوى 66 و 78 و 88. ولا يجوز استخدام شرط الاستخدام مع خارجي عنصر بيانات النقطة العائمة. إذا كان شرط أوسيج في إدخال وصف البيانات لعنصر مجموعة، فيجب أن تكون أي عبارات أوسيج التي تظهر للإدخالات الفرعية من النوع نفسه. سلسلة بيكتيور لسلسلة كومب أو كومب-1 أو كومب-2 أو كومب-3 أو كومب-4 أو كومب-5 أو كومب-6 أو بيناري أو ديكيمال يمكن أن تحتوي فقط على الرموز 9 و S و V و قد لا تستخدم عناصر كومب-6 الرمز S. سلسلة بيكتيور لعنصر كومب-X أو كومب-N قد تحتوي فقط على جميع الرموز 9 أو كافة رموز X. لا يمكن أن يحتوي إدخال وصف البيانات لعنصر بيانات أوساج إس إندكس على أي من العبارات التالية: بلانك ون زيرو، جوستفيد، بيكتيور، فالو إس. قد لا يتم تحديد مستوى 88 عنصرا لعنصر بيانات أوساج إس إندكس. لا يمكن أن يحتوي إدخال وصف البيانات لعنصر بيانات أوسيج إس بوينتر على أي من العبارات التالية: فارغ عند زيرو أو جوستيفيد أو بيكتيور. قد يكون عنصر بيانات بوينتر عبارة قيمة محددة له، ولكن يجب أن تكون القيمة الكلمة نول. إدخال وصف البيانات للاستخدام هو فلوت أو عنصر بيانات أوسيج مزدوج لا يمكن أن يحتوي على أي من العبارات التالية: فارغ عند زيرو أو جوستفيد أو بيكتيور. قد تحتوي بنود البيانات فلوت أو دوبل على بند قيمة. قد تكون القيمة نقطة عائمة حرفية أو حرفية رقمية أو كلمة زيرو. في ما يلي مثال على بند بيانات قسم تخزين العمل: تسمى المجموعات التالية أنواع البيانات على غرار C: تم التوقيع عليها، موقعة، موقعة، موقعة قصيرة، غير مسجلة، قصيرة، مسجلة، طويلة، غير مسجلة. وتشبه أنواع البيانات هذه أنواع البيانات الموجودة في لغة البرمجة C. لا يمكن أن يحتوي إدخال وصف البيانات لنوع بيانات نمط C على أي من العبارات التالية: فارغ عند زيرو أو جوستفيد أو بيكتيور. نوع التحكم هو واحد من أسماء نوع التحكم الرسومية المعروفة للمترجم، مثل لابيل أو إنتري-فيلد، أو اسم أكتيفكس أو كوم أو عنصر تحكم. قد لا يحتوي إدخال وصف البيانات لعناصر بيانات أوسيج هاندل على أي من العبارات التالية: فارغ عند زيرو أو جوستيفيد أو بيكتيور. إذا كان يحتوي على جملة فالو، يجب أن تكون القيمة المحددة هي الكلمة نول. فونت-نيم هو أحد المعرفات التالية: ديفولت-فونت، فيكسيد-فونت، تراديتيونال-فونت، سمال-فونت، مديوم-فونت، لارج-فونت. وتجدر الإشارة إلى أن الخيار - Df أو الخيار - Cv يسبب المترجم لعلاج كومب-1 و كومب-2 كما فلوت و دوبل، على التوالي. لمزيد من المعلومات، راجع القسم 5.4 في الانتقال إلى أكوكوبول-غ. اسم التخطيط هو اسم أحد مديري تخطيط الأنظمة القياسية. حاليا، هذا يمكن أن يكون فقط لم-ريزيزي. ينطبق شرط الاستخدام المكتوب على مستوى المجموعة على كل بند أساسي تابع لعنصر المجموعة. إذا لم يتم تحديد شرط أوسيج، فسيتم استخدام أوسيج إس ديسبلاي. الشكل الداخلي لعنصر "استخدام العرض" هو أسي. شكل عنصر الفهرس هو 32 بت بتوقيع ثنائي. حجمه هو دائما أربعة، وأنه يحمل مجموعة من القيم من -2147483647 إلى 2147483647. عند استخدام مفتاح ترجمة التوافق مع الإصدارات قبل 6.0.0 (-Z52 على سبيل المثال) عنصر فهرس هو ثنائي بت 16 بت غير موقعة، حجم هو دائما اثنين، ويحمل قيم من 0 إلى 65535. تنسيق عنصر بيانات كومب-1 هو 16 بت بتوقيع ثنائي. وتتراوح القيم القانونية من -32767 إلى 32767. حجم عنصر البيانات هو دائما اثنين بايت، ويتم تخزين النصف العلوي من البيانات في بايت أقصى اليسار. سلسلة بيكتيور التي تصف العنصر غير ملائمة. على عكس أنواع البيانات الرقمية الأخرى، سيحدث خطأ حجم على عنصر بيانات كومب-1 أو كومب-X أو كومب-N فقط عندما تتجاوز القيمة التخزين الفعلي للعنصر (بمعنى آخر، عدد 9s في العناصر يتم تجاهل بيكتيور عند تحديد حجم الخطأ). بالنسبة إلى كومب-2 (التخزين العشري)، يتم تخزين كل رقم في بايت واحد بتنسيق عشري. إذا تم توقيع القيمة، يتم تخصيص بايت زائدة إضافي للعلامة. تخزين كومب-2 متطابق مع أوسيج ديسبلاي مع أربع بتات عالية الترتيب تجريد من كل بايت. بالنسبة إلى كومب-3 (التخزين العشري المعبأ)، يتم تخزين رقمين في كل بايتة. ويخصص نصف بايت إضافي للعلامة، حتى وإن كانت القيمة غير موقعة. يتم وضع علامة في أقصى اليمين، وقيمته 0x0D لسلبية جميع القيم الأخرى تعامل على أنها إيجابية (ولكن انظر القاعدة 18 أدناه). يتم تقسيم حجم عنصر (بما في ذلك واحد للعلامة الضمنية) من قبل اثنين للوصول إلى حجمها الفعلي (تقريب الكسور تصل). شكل عنصر كومب-4 هو ثنائي التكملة ثنائي (القيمة دون النقطة العشرية). يتم تخزين قيم كومب-4 بتنسيق مستقل عن الجهاز. ويضع هذا الشكل الجزء الأعلى ترتيبا من القيمة في موضع أقصى اليسار، ويتبعه الجزء السفلي من الترتيب في أقصى اليمين. ويتوقف عدد وحدات البايت التي يشغلها عنصر بيانات على عدد 9S في صورته وعلى وجود خيارات مختلفة لوقت التحويل. على سبيل المثال، يمكنك تضمين أكثر من ثمانية عشر ثانية فقط إذا تم تجميع البرنامج للحصول على دعم مكون من 31 رقما. يتم تلخيص ذلك في الجدول التالي: ملاحظة: حيث يتم إعطاء قيمتين، تنطبق القيمة الأصغر على عناصر البيانات غير الموقعة، وتطبق القيمة الأكبر على عناصر البيانات الموقعة. يستخدم كومب-5 في المقام الأول للتواصل مع البرامج الخارجية التي تتوقع تخزين البيانات الأصلية. تنسيق عنصر بيانات كومب-5 مطابق لعنصر بيانات كومب-4، إلا أنه يتم تخزين البيانات بتنسيق يعتمد على الجهاز. يتم تخزينها في أمر طبيعي إلى الجهاز المضيف. على سبيل المثال، يكافئ عنصر بيانات بيك S9 (9) كومب-5 كلمة ثنائية 32 بت على الجهاز المضيف، ويعادل عنصر بيك S9 (20) كومب-5 كلمة 64 بت. ملاحظة: قد لا تكون البيانات المخزنة في حقل كومب-5 قابلة للنقل إلى أجهزة أخرى لأن الأجهزة المختلفة لها ترتيب بايت طبيعي مختلف. على العديد من الآلات (68000، معظم ريس)، كومب-5 مطابق ل كومب-4. على الآخرين (80x86، فاكس)، هو نفسه مع وحدات البايت في ترتيب عكسي. يتم تخزين شرط فالو لعنصر بيانات كومب-5 بتنسيق مستقل عن الجهاز ويتم ضبطه عند تحميله في عنصر البيانات. هذا يضمن أن القيمة هي نفسها من آلة إلى آلة. على المخازن الحسابية وغير الحسابية إلى عناصر كومب-5، إذا كان اقتطاع مطلوب، افتراضيا أكوكوبول-غ اقتطاع في عشري إلى عدد الأرقام الواردة في شرط بيكتيور. يمكنك استخدام الخيار --TruncANSI مترجم لإجبار اقتطاع في ثنائي إلى سعة التخزين المخصصة من كومب-5 البنود. و - Dz و - نوترونيكوبتيونس أيضا آثار اقتطاع. راجع الكتاب 1، القسم 2.1.9، خيارات تخزين البيانات، لمزيد من المعلومات. تتم مزامنة عناصر البيانات المستوى 01 ومستوى 77 التي يتم دمجها كومب-5 تلقائيا مع حدود الجهاز المناسبة بغض النظر عن أي إعدادات وقت تجميع. هذا يسمح لك لتمرير هذه العناصر بأمان إلى C الفرعية دون الحاجة إلى القلق نفسك مع المحاذاة. إذا تم استخدام كومب-5 مع عنصر بيانات بيك X (n) وتم تعيين قيمة أبجدية رقمية، فإن النتائج غير محددة. على سبيل المثال، يؤدي شفر التعليمات البرمجية التالية نوم إلى رقم غير معرف والقيمة الناتجة عن السطر الأخير ستكون 100: لا يمكن توقيع عنصر البيانات بيك X (n) المستخدم مع كومب-5. ويكون شكل عنصر كومب-6 مطابقا لعنصر كومب-3 إلا أنه غير مرسوم ولا يتم تخصيص أي مساحة للعلامة. إذا كان عدد األرقام غريبا، يتم إضافة صفر إلى الطرف األيسر من الرقم قبل تعبئته. وبالتالي هناك رقمين عشريين لكل بايت، ويتم تحديد الحجم الفعلي للعنصر بقسمة حجم صورته بمقدار اثنين وتقريبه. يجب وصف عنصر بيانات كومب-X بسلسلة صورة تتكون من 9 رموز فقط أو X فقط. في كلتا الحالتين، يتم التعامل مع عنصر البيانات على أنه عدد صحيح ثنائي غير موقعة، مع وحدة تخزين داخلية مماثلة لتلك الموجودة في عنصر بيانات كومب-4. إذا كانت الرموز X تستخدم لوصف العنصر، فإن عدد وحدات البايت المخصصة للعنصر هو نفس عدد الرموز X في سلسلة الصورة. إذا تم استخدام 9 رموز بدلا من ذلك، فإن عدد وحدات البايت المخصصة هو أقل عدد من وحدات البايت المطلوبة لعقد عدد من هذا الحجم. على سبيل المثال، سيتم تخصيص عنصر بيانات بيك 99 بايتة واحدة سيتم تخصيص عنصر بيانات بيك 9 (9) 4 بايتات. وبغض النظر عن عدد 9 رموز في سلسلة صور العناصر، فإن القيمة القصوى التي يمكن تخزينها في كومب يتم تحديد العنصر X بواسطة عدد وحدات البايت المخصصة له (بحد أقصى 18 رقما، أو بحد أقصى 31 رقما إذا كان الدعم المكون من 31 رقما ساري المفعول). على سبيل المثال، يمكن أن يحتوي عنصر كومب-X المكون من 1 بايت على مجموعة من الأرقام من 0 إلى 255. يمكن أن يكون عدد كومب-X 2 بايت من 0 إلى 65535. يحدث خطأ في الحجم على عنصر كومب-X فقط عندما القيمة أكبر من عنصر البيانات يمكن أن تعقد جسديا. عندما يتم استخدام كومب-X مع عنصر بيانات بيك (X)، الحد الأقصى هو بيك X (8). (يتم زيادة هذا الحد الأقصى إلى بيك X (16) عندما يكون الدعم المكون من 31 رقما ساري المفعول.) عنصر بيانات كومب-N مطابق لعنصر بيانات كومب-X، باستثناء أن البيانات مخزنة في نسق الجهاز المضيف الأصلي، بدلا من تنسيق الجهاز المستقل. عناصر البيانات الموصوفة على أنها باكيد-ديسيمال متطابقة مع كومب-3. يمكنك أن تتعامل مع باكيد-ديسيمال غير موقعة ك كومب-6 باستخدام خيار وقت التحويل البرمجي. بشكل افتراضي، عنصر بيانات بيناري مطابق لعنصر بيانات كومب-4. يتعامل خيار تجميع الوقت - D5 عناصر البيانات بيناري كعناصر كومب-5 بدلا من ذلك. في وضع التوافق فاسكوبول، عنصر بيانات كومب هو نفس كومب-4 ويتم التعامل مع البيانات الثنائية. في وضع التوافق رمكوبول، كومب هو نفس كومب-2. يمكنك استخدام خيارات وقت التحويل لتغيير السلوك الافتراضي. يتم التعامل مع عنصر بيانات المؤشر كعنصر بيانات رقمي غير موقعة. يختلف الشكل الداخلي لكل آلة. تهدف عناصر بيانات المؤشر إلى الاحتفاظ بعناوين عناصر البيانات الأخرى (راجع بيان سيت.) قد يحتوي عنصر بيانات المؤشر على عبارة فالو المحددة له، ولكن يجب أن تكون القيمة المحددة هي الكلمة نول. يشير هذا إلى أن المؤشر لا يشير حاليا إلى أي عنصر. إذا لم يتم إعطاء مؤشر بشكل واضح قيمة أولية، ثم قيمته الأولية هي تعسفية. البنود بيانات المؤشر تشغل 8 بايت. يوفر هذا مساحة كافية لعقد عنوان على جهاز 64 بت. إذا كنت على جهاز أصغر، وقت التشغيل يستخدم فقط 4 بايت الأولى من عناصر بيانات المؤشر (4 بايت المتبقية لا تزال في الذاكرة، يتم تركها فقط غير المستخدمة). يمكنك استخدام الخيار - Dw تجميع الوقت لضبط المساحة المخصصة لعناصر بيانات المؤشر. يمكنك القيام بذلك للحفاظ على التخزين إذا كنت تعرف أنك لن تعمل على جهاز 64 بت. يمكن استخدام المؤشرات في التعبيرات الشرطية، حيث يمكن مقارنتها ببعضها البعض أو بالقيمة نول. يجب أن تكون المقارنة التي تتضمن المؤشر إما مساويا أو لا تساوي (لا يسمح بالمقارنات أكبر وأقل من المقارنات). تتم مزامنة عناصر البيانات المستوى 01 ومستوى 77 التي هي عناصر بوينتر تلقائيا إلى حد الجهاز المناسب، بغض النظر عن أي إعدادات وقت تجميع. هذا يسمح لك لتمرير هذه العناصر بأمان إلى C الفرعية دون الحاجة إلى القلق نفسك مع المحاذاة. باستثناء المزامنة التلقائية، يتم التعامل مع عناصر بيانات أوسيج بوينتر من جميع النواحي مثل أوسيج أونسيغند-لونغ عناصر البيانات. هذا يعالج جميع الآلات الحالية بشكل صحيح. قد يتغير هذا السلوك لتلبية متطلبات بعض الجهاز في المستقبل. يتم تخزين عناصر بيانات النقطة العائمة بتنسيق يعتمد على الجهاز. استخدام عناصر فلوت لها 4 بايت المخصصة لهم. استخدام عناصر مزدوجة تحتل 8 بايت. المستوى 01 ومستوى 77 عناصر البيانات التي يتم استخدامها تعويم أو مزدوجة يتم مزامنة تلقائيا إلى حدود الجهاز المناسبة، بغض النظر عن أي إعدادات وقت تجميع. هذا يسمح لك لتمرير هذه العناصر بأمان إلى C الفرعية دون الحاجة إلى القلق نفسك مع المحاذاة. تعريف أنسي من كوبول لا يشير إلى كيفية تخزين العلامات في الحقول الرقمية (باستثناء حالة التوقيع هو سيبارات). أكوكوبول-غ يتيح لك اختيار اتفاقيات التوقيع تخزين بديلة باستخدام خيارات تجميع الوقت - Dca، - Dcb، - Dci، - DCM، - Dcn، - Dcr، و - Dcv. تحديد اتفاقية تخزين الإشارات مفيد أحيانا عندما تقوم بتصدير واستيراد البيانات. للحصول على معلومات إضافية، راجع دليل المستخدمين، القسم 2.2.10، "خيارات تخزين البيانات". تؤثر اتفاقية التخزين كيفية ظهور البيانات في أنواع بيانات أوساج ديسبلاي و كومب 2 و كومب-3. في أوسيج ديسبلاي، تخزين أسي قياسي، إذا تم تضمين الإشارة في موضع أرقام، يتم ترميز الرقم وفقا للجدول التالي: إدخالات الجدول التي تحمل علامة النجمة تشير إلى عناصر ذات حجم ثابت. حجم ثابت البند هو نفس الحجم بغض النظر عن الجهاز الهدف. أما الإدخالات بدون علامة النجمة فهي متغيرة الحجم. ستشغل هذه العناصر مساحة تصل إلى عدد وحدات البايت المدرجة في الجدول. ملاحظة: الأحجام المدرجة في الجدول أعلاه تغطي جميع الآلات الحالية والمتوقعة التي تعمل أكوكوبول-غ. قد تتطلب معماريات المستقبل تغييرات على الحجم الأقصى المخصص لهذه العناصر. في بيئة التنفيذ، تعمل هذه العناصر بكل الطرق كما لو كانت عناصر بيانات ذات حجم ثابت بالحجم المناسب. على سبيل المثال، جزء التعليمات البرمجية التالي: سيتم طباعة 4 عند تشغيل على جهاز 32 بت، ولكن سيتم طباعة 8 عند تشغيل على جهاز 64 بت. في الأمثلة التالية، يتم تمثيل كل بايت برقمين سداسي عشري أو بواسطة حرف واحد مقتبس. يتم عرض كل قيمة في أشكال مختلفة. كما يظهر هو أوسيج ديسبلاي باستخدام خيارات سيغن المختلفة. تستخدم الأمثلة التالية اتفاقيات تخزين تسجيل أكوكوبول-غ الافتراضية. تشكل عناصر البيانات هاندل فئة البيانات الخاصة بها وفئة في كوبول. يتم تخزينها داخليا كقيم صحيحة، وتتصرف مثل الأرقام عند استخدامها. يتم استخدام عنصر بيانات هاندل عادة لتخزين مقبض كائن تم إنشاؤه ديناميكيا مثل نافذة عائمة أو عنصر تحكم رسومية. عناصر بيانات هاندل تأتي في شكلين: كتابة و عام. يمكنك إنشاء مقبض عام عند حذف عبارة أوف. يمكنك إنشاء مقبض كتبته عند تضمين العبارة أوف. يمكنك استخدام عناصر بيانات هاندل فقط عندما يسمح بها صراحة، أو كجزء من عبارة موف، بيان كال (كمعلمة)، أو في تعبير منطقي. يمكن استخدام المقابض العامة في أي حالة يسمح فيها بالمقابض. عند استخدام مقبض عام كمصدر لبيان موديفي، لن تكون قادرا على استخدام أي خاصية عنصر تحكم محدد أو أسماء أنماط في تلك العبارة. وذلك لأن المقبض العام يمكن أن يرتبط بأي نوع من أنواع التحكم. في هذه الحالة، لا يستطيع برنامج التحويل البرمجي تحديد أي مجموعة من أسماء الأنماط والممتلكات صالحة. يمكن استخدام مقابض الكتابة في العبارات حيث يسمح بأي مقبض، أو عندما تقوم بالإشارة إلى كائن من نوع مطابق. على سبيل المثال، لا يمكن استخدام مقبض النافذة كالمقبض في كشف "تسمية ديسبلاي". بدلا من ذلك، يجب عليك استخدام مقبض عام أو مقبض تسمية. تسمح المقابض التي تمت كتابتها للمترجم بالاعتراف بأسماء الأنماط والممتلكات المرتبطة عند الاقتضاء. كما أن المقابض المطبوعة تحسن من قابلية قراءة البرنامج من خلال توفير معلومات إضافية حول الاستخدام المقصود للمقبض، بالإضافة إلى توفير فحص وقت التجميع للتأكد من أنك تستخدم المقابض في المواقف المناسبة. ويمكن استخدام المقابض في المقارنات. لا يوجد سوى مقارنات ذات مغزى: التحقق من المساواة أو عدم المساواة إلى نول، والمقارنة مع عنصر بيانات مقبض آخر. قيمة مقبض نول تشير دائما إلى مقبض غير صالح. يتم تخزين مقابض داخليا كما 4-بايت الأعداد الصحيحة الثنائية. يمكن أن تكون هذه المعلومات مفيدة عند تصحيح برنامج (يمكنك فحص قيم المقابض في المصحح). ولكن لا ينبغي أن تعتمد على هذا التعريف في البرنامج الخاص بك، ولكن لأنها عرضة للتغيير في المستقبل. التعامل مع عناصر البيانات تلقائيا متزامنة على حدود 4 بايت. لاحظ أن هذا يحدث بغض النظر عن الإعداد - Dl ترجمة الوقت الخيار (الذي يحد من كمية التزامن). يتطلب نظام وقت التشغيل هذا المستوى من المحاذاة لتجنب توليد أخطاء حافلة على بعض الأجهزة. إذا تم تحديد اسم الخط، ثم يتم تهيئة عنصر البيانات الموضحة بواسطة عبارة أوسيج عند بدء تشغيل البرنامج مع مقبض الخط المطابق. يعمل هذا بشكل مماثل لوضع العبارة: في بداية البرنامج، حيث عنصر البيانات هو عنصر البيانات الموصوفة بواسطة بند أوسيج و فونت-نيم هو نفس اسم الخط في بند أوسيج. يمكن تمثيل داخلي للبيانات اعتبارا هاما لكفاءة البرنامج. لسوء الحظ التمثيل الافتراضي المستخدمة من قبل كوبول لبنود البيانات الرقمية يمكن أن تؤثر سلبا على سرعة الحسابات. يمكن تحديد تنسيق أكثر كفاءة للبيانات الرقمية باستخدام عبارة أوسيج. تقدم هذه الوحدة مفهوم تمثيلات البيانات الداخلية، وتناقش التمثيل الافتراضي المستخدم في كوبول وتحدد كيف أن هذا التمثيل، المستخدم للبيانات الرقمية، قد يسبب أوجه قصور. يتم إعطاء بناء جملة العبارة أوسيج وشرح الخيارات المختلفة. يتم تقديم شرط متزامن ومثال عام معطى. الأهداف بنهاية هذه الوحدة يجب عليك - معرفة أن يتم تخزين النص في جهاز كمبيوتر باستخدام بعض تسلسل الترميز. فهم المشاكل الناجمة عن تخزين البيانات الرقمية كأرقام أسي. تكون قادرة على استخدام استخدام عبارة الاستخدام لتغيير الطريقة يتم تخزين البيانات الرقمية في الكمبيوتر. المعرفة متى وكيفية استخدام شرط متزامنة. المتطلبات الأساسية مقدمة إلى كوبول إعلان البيانات في كوبول أوامر قسم الإجراءات الأساسية التحديد في كوبول الترشيح في كوبول مقدمة إلى ملفات متتابعة معالجة الملفات المتسلسلة قراءة الملفات المتسلسلة الصور المعدلة تخزين أجهزة الكمبيوتر بياناتها في شكل أرقام ثنائية. وبصرف النظر عن الأرقام الكاردينال (الأعداد الصحيحة الإيجابية) جميع البيانات الأخرى المخزنة في ذاكرة أجهزة الكمبيوتر يستخدم نوعا من اتفاقية التنسيق. يتم تخزين بيانات النص، على سبيل المثال، باستخدام تسلسل ترميز مثل أسي أو إبكديك. ويعتبر نظام التشفير مجرد اتفاقية تحدد أن مجموعة معينة من البتات تستعمل لتمثيل حرف معين. فعلى سبيل المثال، يبين الرسم البياني أدناه تشكيلة البتات المستخدمة لتمثيل كوتاكوت في الحالة العليا في أسي وتتابعات تشفير إبكديك. يمكن الاحتفاظ بالبيانات الرقمية كأرقام نصية (أرقام أسي) أو أرقام ثنائية نقية (في حالة القيم الأساسية)، أو على أنها تكمل الأرقام الثنائية (في حالة الأعداد الصحيحة)، أو كأرقام عشرية (باستخدام بسد)، أو كأرقام حقيقية (باستخدام نسق رقم حقيقي مثل مواصفات إيي لأرقام النقطة العائمة). يتم استخدام بند أوسيج لتحديد كيفية تخزين عنصر بيانات في ذاكرة الكمبيوتر. يحتوي كل متغير تم الإعلان عنه في برنامج كوبول على شرط استخدام - حتى في حالة عدم تحديد شرط صريح. عندما لا يكون هناك شرط أوسيج صريح، يتم تطبيق الافتراضي - أوسيج إس ديسبلاي -. مشاكل مع استخدام العرض سرعة أجهزة الكمبيوتر الحديثة يعني أنه لا يكاد يستحق الجهد من استخدام شرط أوسيج إلا إذا كان عنصر البيانات سيتم استخدامها في الآلاف من الحسابات. ولأسباب قابلية النقل، لا ينبغي أبدا استخدام شرط الاستخدام في الأوصاف القياسية. إذا تم قراءة الملف على جهاز كمبيوتر مختلف ليس لدينا أي ضمان بأن البيانات سوف تفسر بشكل صحيح. حتى على نفس جهاز الكمبيوتر، باستخدام شرط أوسيج في أوصاف السجل يعني أن البيانات الموجودة في الملف ربما لن تكون مفهومة من قبل لغات البرمجة الأخرى أو برامج المرافق أو من قبل برامج تحرير النصوص. بالنسبة إلى العناصر النصية أو العناصر الرقمية التي لن يتم استخدامها في الحساب (أرقام الحساب وأرقام الهواتف وما إلى ذلك)، فإن الافتراضي هو استخدام ديسبلاي لا توجد مشاكل ولكن بالنسبة للبنود الرقمية التي يتم إجراء بعض العمليات الحسابية عليها الافتراضي الاستخدام ليست الطريقة الأكثر فعالية لتخزين البيانات. عند استخدام عناصر رقمية (بيك 9 عناصر) ديسبلاي. يتم تخزينها كأرقام أسي (راجع أرقام أسي 0-9 في جدول أسي أدناه). النظر في جزء البرنامج التالي. ماذا يحدث إذا تم إجراء عمليات حسابية مباشرة على الأرقام المخزنة في هذا التنسيق نظرا لأن أي من عناصر البيانات يحتوي على بند أوسيج صريح، فإنه يتم افتراضيا - أوسيج إس ديسبلاي. وهذا يعني أن القيم في المتغيرات Num1، Num2 و Num3 يتم تخزينها كأرقام أسي. كيف تقوم حسابات التأثير هذه إذا قمت بفحص جدول أسي أدناه سترى أن الرقم 4 (القيمة في Num1) يتم ترميزه على أنه 00110100 ويتم ترميز الرقم 1 ك 00110001. عندما تضاف هذه الأرقام الثنائية معا النتيجة هي 01100101 الذي هو رمز أسي للحرف الأدنى كوتيكوت. المجموع 4 1 ه لا يحسب. عندما تتم الحسابات مع عناصر البيانات الرقمية التي يستخدمها ديسبلاي، الكمبيوتر لديه لتحويل القيم الرقمية إلى ما يعادلها المكافئة الثنائية قبل أن يتم الحساب. عند حساب النتيجة يجب على الكمبيوتر إعادة تحويلها إلى أرقام أسي. التحويل من وإلى أرقام أسي يبطئ الحسابات. لهذا السبب، غالبا ما يتم الإعلان عن البيانات التي تشارك بشكل كبير في الحساب باستخدام واحدة من الاستخدامات الأمثل لحساب مثل الاستخدام هو كومبوتاتيونال. يتم التعامل مع عناصر المجموعة دائما كأحرف أبجدية رقمية وهذا يمكن أن يسبب مشاكل عند وجود عناصر كومب تابعة. على سبيل المثال، لنفترض أن لدينا بيان مثل - موف زيروس إلى GROUP2. في البرنامج المعاكس. على السطح يبدو كما لو كان هذا البيان يتحرك القيمة الرقمية 0 إلى NumItem1 و NumItem2 ولكن ما تم نقله فعلا إلى هذه العناصر هو رقم أسي كوت0quot. عند محاولة استخدام NumItem1 أو NumItem2 في حساب البرنامج سوف تعطل لأن هذه العناصر البيانات تحتوي على بيانات غير رقمية. يمكن استخدام بند أوسيج مع أي إدخال وصف البيانات باستثناء تلك التي تحتوي على أرقام مستوى 66 أو 88. عندما يتم الإعلان عن بند أوسيج لعنصر مجموعة، يتم تطبيق الاستخدام المحدد على كل عنصر في المجموعة. The group item itself is still treated as an alphanumeric data-item (see example program below).USAGE IS COMPUTATIONAL or COMP or BINARY are synonyms of one another. The USAGE IS INDEX clause is used to provide an optimized table subscript. When a table is the target of a SEARCH statement it must have an associated index item (see the Search Tutorial). Any item declared with USAGE IS INDEX can only appear in: - A SEARCH or SET statement - A relation condition - The USING phrase of the PROCEDURE DIVISION - The USING phrase of the CALL statement The picture string of a COMP or PACKED-DECIMAL item can contain only the symbols 9, S, V andor P. The picture clause used for COMP or PACKED-DECIMAL items must be numeric. 1QuadWord (8 Bytes) PACKED-DECIMAL Data-items declared as PACKED-DECIMAL are held in binary-coded-decimal (BCD) form. Instead of representing the value as a single binary number, the binary value of each digit is held in a nibble (half a byte). The sign is held in a separate nibble in the least significant position of the item (see diagram below). General USAGE notes The USAGE clause is one of the areas where many vendors have introduced extensions to the COBOL standard. It is not uncommon to see COMP-1. COMP-2. COMP-3. COMP-4. COMP-5 and POINTER usage items in programs written using these extensions. Even though COMP-1 and COMP-2 are extensions to the COBOL standard, vendors seem to use identical representations for these usages. COMP-1 is usually defined as a single precision, floating point number, adhering to the IEEE specification for such numbers (Real or Float in typed languages) and COMP-2 is usually defined as a double precision, floating point number (LongReal or Double in typed languages). The SYNCHRONIZED clause The SYNCHRONIZED clause is sometimes used with USAGE IS COMP or USAGE IS INDEX items. It is used to optimize speed of processing but it does so at the expense of increased storage requirements. Many computer memories are organized in such a way that there are natural addressing boundaries - such as word boundaries. If no special action is taken some data items in memory may straddle theses boundaries. This may cause a processing overhead as the CPU may need two fetch cycles to retrieve the data from memory. The SYNCHRONIZED clause is used to explicitly align COMP and INDEX items along their natural word boundaries. Without the SYNCHRONIZED clause, data-items are aligned on byte boundaries. The word SYNC can be used instead of SYNCHRONIZED . The effect of the synchronized clause is implementation dependant. You will need to read your vendor manual to see how it works on your computer (in some cases it may have no effect). For the purpose of illustrating how the SYNCHRONIZED clause works let us assume that a COBOL program is running on a word-oriented computer where the CPU fetches data from memory a word at a time. In this program we want to perform a calculation on the number stored in the variable TwoBytes (as declared in the diagram below). Because of the way the data items have been declared, the number stored in TwoBytes straddles a word boundary. In order to use the number, the CPU has to execute two fetch cycles - one to get the first part of the number in Word2 and the second to get the second part of the number in Word3. This double fetch slows down calculations. Now consider the impact of using the SYNCHRONIZED clause. The number in TwoBytes is now aligned along the word boundary, so the CPU only has to do one fetch cycle to retrieve the number from memory. This speeds up processing but at the expense of wasting some storage (the second byte of Word2 is no longer used). Copyright Notice These COBOL course materials are the copyright property of Michael Coughlan. كل الحقوق محفوظة. No part of these course materials may be reproduced in any form or by any means - graphic, electronic, mechanical, photocopying, printing, recording, taping or stored in an information storage and retrieval system - without the written permission of the author. (c) Michael CoughlanIBM VS Cobol II Compiler Options This section contains information on the IBM VS Cobol II compiler and library. It contains information on compiler options. For information on Compiler Directing Statements check this page out. Note: The defaults listed with the options below are the VS COBOL II defaults shipped with the product. They may have been changed by the installation. The minimum abreviation is the part that is capitialized. Note: The EXIT option cannot be specified in a PROCESS (CBL) statement. It can only be specified at invocation in the PARM field of JCL (under TSO, specify it in a command argument), or at installation time. INEXIT(str1,mod1) The compiler reads source code from a user-supplied load module (where mod1 is the module name), instead of SYSIN. LIBEXIT(str2,mod2) The compiler obtains copy code from a user-supplied load module (where mod2 is the module name), instead of library-name or SYSLIB. For use with either COPY or BASIS statements. PRTEXIT(str3,mod3) The compiler passes printer destined output to the user-supplied load module (where mod3 is the module name), instead of SYSPRINT. The module names mod1, mod2, mod3, can refer to the same module. The suboptions str1, str2, str3, are optional. They are character strings up to 64 characters in length and enclosed in apostrophes, that are passed to the exit module. Any character is allowed, but included apostrophes must be doubled, and lowercase characters are folded to uppercase. For more details on using EXIT to provide user-exits, see Using EXIT to Provide User-Exits in topic 5.2.2.9. Use NOFLAG to suppress error flagging. NOFLAG will not suppress error messages for compiler options. If you experience a problem with this page, please send a message to JTateJaTomes including a description of the problem.
Comments
Post a Comment