פרק 7 - הוראת MOVE.

ב. המבנים השונים של הוראות MOVE.

 

עד כה, עסקנו בצורה אחת של הוראת MOVE :

 תבנית 1

  .(שם משתנה-2) TO (שם משתנה-1 ) MOVE

במקרה זה, על שם-משתנה-1 ושם-משתנה-2 להיות מוגדרים בחטיבת-הנתונים של התכנית. כדי שתוכנו של שם-משתנה-1 יועתק לשם-משתנה-2 במדוייק, חייבת להיות הגדרת PICTURE זהה לשני השדות.

צורה שנייה של הוראת MOVE היא זו:

 תבנית 2

   .(שם משתנה) TO (קבוע) MOVE

כזכור, קיימים שני סוגי קבועים: קבועים מספריים, וקבועים שאינם מספריים:

 קבועים – תזכורת

  קבוע מספרי

     
  1. 1 עד 18 ספרות

  2. נקודה עשרונית (אינה חייבת להופיע)

  3. סימן + או - (אינו חייב להופיע) .

 

  קבוע שאינו מספרי (אלפאנומרי)

     
  1. 1 עד 120  תווים.

  2. ניתן להשתמש בכל סימני COBOL (פרט למרכאות).

  3. הנתון כולו מופיע בין מרכאות.

 

 דוגמא 1

MOVE  123  TO  DEPT.

' = DISPLAY  'DEPT

DISPLAY  DEPT

 

 דוגמא 2

MOVE  ‘CODE1’  TO  CLASSIFICATION.

' = DISPLAY  'CLASSIFICATION

DISPLAY  CLASSIFICATION

למרות העובדה, שחובה להגדיר שמות-נתונים בחטיבת הנתונים, אין חובה להגדיר קבועים בכל מקום אחר  בתכנית-COBOL. אם משפט ה-PICTURE, השייך לשדה המקבל, הוא כנדרש, הקבוע יועתק אל השדה  המקבל במדוייק. חשוב לזכור, כי השדה המקבל הוא תמיד שם של משתנה. בדוגמא 1, המספר 123 הוא קבוע מספרי. אנו  יודעים, כי הוא קבוע ולא משתנה, כי הוא מורכב כולו מספרות, בעוד משתנה חייב להכיל אות אחת לפחות.  כדי להציב קבוע מספרי בתוך שדה, על שדה זה להיות בעל מבנה זהה לזה של הקבוע - כלומר, במקרה זה,  עליו להיות שדה מספרי. כך, בדוגמא 1 , משתנה DEPT, משפט - ה-PICTURE של DEPT צריך להיות 999,  כלומר שדה ספרתי באורך 3 תווים.

בדוגמא 2 – ‘CODE1’ הוא קבוע שאינו מספרי. אנו יודעים, כי הוא אינו שם משתנה, הואיל והוא נתון בין  גרשיים. כדי להעביר נתון זה אל שדה כלשהו, חייב השדה להיות בעל מבנה זהה לזה של הקבוע האלפאנומרי. כך, בדוגמא 2, חייב השדה CLASSIFICATION להיות בעל משפט PICTURE, המורכב מאותיות - X. כדי  שיוצב בו בדיוק  , ‘CODE1’  עליו להיות בעל PICTURE מהצורה X(5), כלומר שדה אלפאנומרי בן 5 תווים.

אם למשתנה  ADDRESS-1 מתאים משפט PICTURE עם תיאור XXX, ההוראה .  MOVE  123  TO  ADDRESS-1 הינה בעלת מבנה שגוי. זאת משום שהקבוע 123 אינו בעל אותו סוג-נתונים  כמו השדה המקבל. אם ל-  ADDRESS-1 מתאים המשפט PICTURE XXX, הקבוע צריך להיות לא-מספרי.  ננסח, אם כן, את ההוראה כך:

                           MOVE  ‘123’  TO  ADDRESS-1.

צורה שלישית של הוראת-MOVE היא זו:

 תבנית 3

    .(שם-משתנה) TO (קבוע מיוחד) MOVE  

כזכור, קבוע מיוחד הינו מלה שמורה ב-COBOL, כמו SPACES או ZERO, המציינת קבוע מחרוזתי מיוחד,  כגון תו-אפס או תווי רווח.

 דוגמא 3

MOVE  ZEROS  TO  TOTAL.

' = DISPLAY  'TOTAL.

DISPLAY  TOTAL.

 

 דוגמא 4

MOVE  SPACES  TO  HDR .

' = DISPLAY  'HDR

DISPLAY  HDR

בדוגמא 3 - ZEROS הוא הקבוע המיוחד, שמשמעותו - כל השדה ימולא בספרות-אפס. מאחר שאפס יכול  לשמש כספרה או כסימן אלפאנומרי, יכול המשתנה TOTAL להיות מספרי (אם יש לו משפט PICTURE  מתאים של ספרות - 9 ) או אלפאנומרי (PICTURE של אותיות- X). בכל מקרה, התוכן של TOTAL יוחלף  כולו באפסים. גודל השדה TOTAL אינו חשוב. השדה יתמלא כולו באפסים, ללא קשר עם גודלו.

בדוגמא 4 - ZEROS מציין - כל השדה רווחים. מאחר שרווח איבו תו ספרתי, על משפט ה-PICUTRE של  HDR להיות אותיות- X המציינות שדה אלפאנומרי, או אותיות- A, המציינות שדה אלפביתי - גם כאן אין  חשיבות לגודלו של HDR. כל השדה ימולא בתווי-רווח.

אם כן, קיימות 3 תבניות (או מבנים) של הוראת- MOVE :

                                   (שם-משתנה-1)  

(שם-משתנה-2 )     TO                (קבוע)   MOVE

                                        (קבוע מיוחד)     

כל אחוד משלושת האלמנטים, יכול לשמש שדה שולח. השדה המקבל יהיה תמיד שם-משתנה. שים לב, שכל קבוע, שאינו מספרי, יכול לעבור לתוך שדה אלפאנומרי. לעומת זאת, קבוע שאינו מספרי יכול  לעבור לתוך שדה אלפביתי,  רק אם יש בו אותיות או רווחים.  

קודם | תחילת הדף | הבא

שאלות להערכה עצמית >>

 

נושאים

פרק 3 - חטיבת הזיהוי                               (IDENTIFICATION DIVISION)
פרק 6 - חטיבת הביצוע                               (PROCEDURE DIVISION)
פרק 14 - הוראת DISPLAY ו-ACCEPT

.איתן 2002. כל הזכויות שמורות למערכת המידע איתן ©