COBOL – UNIT 11
Transcription
COBOL – UNIT 11
COBOL – UNIT 11 Intrinsic Functions כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ Intrinsic Functions מבוא סוגי הפונקציות סוגי הפרמטרים פונקציות מחרוזת פונקציות סטטיסטיות פונקציות מתימטיות פונקציות תאריכים תרגילים COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 2 Intrinsic FUNCTIONs Intrinsic FUNCTIONsהם פונקציות פנימיות של קובול. לא מדובר בUser defined Functions - הפונקציה מחזירה ערך שניתן לשלבו בביטויים מתאימים COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 3 - Intrinsic FUNCTIONsהמשך ניתן להשתמש בתוצאה של פונקציה כאחד מהאופרנדים של פקודת קובול או כפרמטר לפונקציה אחרת. לא ניתן להשתמש בפונקציה כיעד של חישוב. צורת השימוש: )FUNCTION Function-name (Arguments COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 4 סוגי הפונקציות Alphanumeric < לטיפול במחרוזות/טקסט Numeric < מחזירות ערך עם סימן .אפשר להשתמש בהן רק בביטויים אריתמטיים Integer < ערכים נומריים ללא Vועם סימן COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 5 פרמטרים הפרמטרים בתוך הסוגריים יכולים להיות: משתנים )כולל כניסה בטבלה( ביטויים אריתמטיים קבועים מספר הפרמטרים יכול להיות: אפס )סוגריים ריקים( אחד )לדוגמה ב(SQRT - יותר מאחד )לדוגמה ב(REM - COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 6 סוגי הפרמטרים NUMERIC ALPHABETIC ALPHANUMERIC שלם COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 7 טבלאות כפרמטר לפונקציה כאשר פונקציה מאפשרת ריבוי פרמטרים ,ניתן להשתמש ב- ALLכדי לציין את כל הכניסות של הטבלה אם בטבלה צוין גם OCCURS...DEPENDING ONאז מספר הכניסות נקבע ע"י המשתנה שצוין בDEPENDING - ON דוגמה: = COMPUTE WS10-TOTAL ))FUNCTION SUM (TB01-NUM(ALL ALL COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 8 פונקציות מחרוזתיות הערך המוחזר התו הנמצא במיקום int בטבלת הEBCDIC/ASCII - אורך המחרוזת הפיכת המחרוזת לאותיות קטנות הפיכת הערך שבפרמטר לנומרי מיקום התוו בטבלת ה- ASCII/EBCDIC המחרוזת בסדר הפוך הפיכת המחרוזת לאותיות גדולות COBOL – Unit 11 פרמטרים סוג הפונקציה פונקציה Alphanumeric int CHAR Integer Alphanumeric any string LENGTH LOWER-CASE Numeric Integer alphanumeric string NUMVAL ORD Alphanumeric Alphanumeric string string REVERSE UPPER-CASE כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 9 דוגמאות- פונקציות מחרוזתיות MOVE MOVE FUNCTION FUNCTION CHAR(FUNCTION CHAR(FUNCTION ORD('a')) ORD('a')) TO TO WS20-CHAR-X WS20-CHAR-X COMPUTE COMPUTE WS30-ORDENAL-ASCII-POSITION-I WS30-ORDENAL-ASCII-POSITION-I == FUNCTION FUNCTION ORD ORD (FUNCTION (FUNCTION CHAR(61)) CHAR(61)) MOVE MOVE FUNCTION FUNCTION LENGTH LENGTH (WS20-CHAR-X) (WS20-CHAR-X) TO TO CN10-ORIGINAL-VAR-LENGTH CN10-ORIGINAL-VAR-LENGTH IF FUNCTION IF FUNCTION LOWERCASE(WS20-CHAR-X)= LOWERCASE(WS20-CHAR-X)= WS20-CHAR-X WS20-CHAR-X THEN THEN DISPLAY DISPLAY 'The 'The value value is is lowercase' lowercase' END-IF END-IF IF IF FUNCTION FUNCTION UPPERCASE(WS20-CHAR-X)= UPPERCASE(WS20-CHAR-X)= WS20-CHAR-X WS20-CHAR-X THEN THEN DISPLAY DISPLAY 'The 'The value value is is Uppercase' Uppercase' END-IF END-IF COMPUTE COMPUTE WS01-NUM-N WS01-NUM-N == FUNCTION FUNCTION NUMVAL(FUNCTION NUMVAL(FUNCTION REVERSE('12')) REVERSE('12')) 10 מימון – ייעוץ והדרכה במחשבים בע"מ.כל הזכויות שמורות לד COBOL – Unit 11 פונקציות סטטיסטיות הערך המוחזר הערך המקסימלי ממצוע ממוצע של המינימום והמקסימום ערך מינימלי מיקום הערך המקסימלי מיקום הערך המינימלי ההפרש בין הערך המקסימלי לערך המינימלי סטיית התקן סכום הפרמטרים שונות COBOL – Unit 11 סוג Any Numeric Numeric פרמטרים 1 or more, any 1 or more, num 1 or more, num פונקציה MAX MEAN MIDRANGE Any Integer Integer Any 1 or more, any 1 or more, any 1 or more, any 1 or more, int/num MIN ORD-MAX ORD-MIN RANGE Numeric Numeric Numeric 1 or more, num 1 or more, num 1 or more, num STANDARD-DEVIATION SUM VARIANCE כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 11 דוגמאות- פונקציות סטטיסטיות COMPUTE WS02-NUM-V99 = FUNCTION MAX[MIN](WS01-INTEGER TB01NUM(ALL 3)) COMPUTE WS01-INTEGER = FUNCTION ORD-MAX[ORD-MIN](TB01NAME(ALL ALL)) COMPUTE WS02-NUM-V99 = FUNCTION MEAN[STANDARDDEVIATION][MEDIAN] [MIDRANGE][RANGE][SUM][VARIANCE](TB01 -NUM(ALL ALL)) 12 מימון – ייעוץ והדרכה במחשבים בע"מ.כל הזכויות שמורות לד COBOL – Unit 11 פונקציות מתימטיות פונקציה 13 פרמטרים סוג ACOS ASIN ATAN COS FACTORIAL INTEGER INTEGER-PART LOG LOG10 MOD RANDOM REM SIN 1,num 1,num 1,num 1,num 1,int 1,num 1,num 1,num 1,num 2,int1 int2 1,int or none 2,num1 num2 1,num Numeric Numeric Numeric Numeric Integer Integer Integer Numeric Numeric Integer Numeric Numeric Numeric SUM SQRT TAN 1 or more, int/num 1,num 1,num Numeric Numeric Numeric מימון – ייעוץ והדרכה במחשבים בע"מ.כל הזכויות שמורות לד COBOL – Unit 11 דוגמאות- פונקציות מתימטיות COMPUTE WS04-INT = FUNCTION MOD(WS03-NUM-V99 COMPUTE WS02-NUM-V99 = FUNCTION REM (WS03-INT1 5) WS04-INT2) COMPUTE CN01-FACTORIAL = FUNCTION FACTORIAL (WS01-INTEGER) COMPUTE WS01-INTEGER = FUNCTION INTEGER[-PART] (WS02-NUM-V99) 14 מימון – ייעוץ והדרכה במחשבים בע"מ.כל הזכויות שמורות לד COBOL – Unit 11 פונקציות תאריכים הלוח הגרגוריאני נבחר לשמש את פונקציות התאריכים התאריך ההתחלתי הוא יום שני 1 ,ינואר .1601וזהו יום מספר .1 כל פונקציות התאריכים מתרגמות את התאריך למספר הסידורי שלו בלוח הגרגוריאני. COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 15 פונקציות תאריכים סוג הערך המוחזר התאריך והזמן הנוכחי תרגום מספר לתאריך בצורה YYYYMMDD תרגום מספר לתאריך בצורה YYYYDDD תרגום תאריך בצורה YYYYMMDDלמספר תרגום תאריך בצורה YYYYDDDלמספר COBOL – Unit 11 פרמטרים Alphanumeric Integer Integer Integer Integer כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ None 1,int 1,int 1,int 1,int פונקציה CURRENT-DATE DATE-OF-INTEGER DAY-OF-INTEGER INTEGER-OF-DATE INTEGER-OF-DAY 16 דוגמאות- פונקציות תאריכים חישוב גיל בימים 03 WS01-CURRENT-DATE. 05 WS01-CURRENT-DATE-9 PIC 9(8). 03 WS02-BIRTH-DATE PIC 9(8) VALUE 19451203. 03 WS03-AGE-IN-DAYS PIC 9(5). MOVE FUNCTION CURRENT-DATE TO WS01-CURRENT-DATE COMPUTE WS03-AGE-IN-DAYS = FUNCTION INTEGER-OF-DATE(WS01-CURRENT-DATE) – FUNCTION INTEGER-OF-DATE(WS02-BIRTH-DATE) 17 מימון – ייעוץ והדרכה במחשבים בע"מ.כל הזכויות שמורות לד COBOL – Unit 11 פונקציות תאריכים -המשך איך לחשב את היום בשבוע? השתמש בשארית החלוקה ב7 - = COMPUTE WS10-DATE-DAY-OF-WEEK FUNCTION REM (FUNCTION INTEGER-OF)DATE (WS11-DATE-YYYYMMDD )7 הפונקציה תחזיר 0 :עבור יום ראשון 1 ,עבור יום שני... COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 18 תרגילים .1הפרש בין תאריכים חשב את ההפרש בין שני תאריכים .2הוספת ימים לתאריך חשב את התאריך המתקבל ע"י הוספת מספר ימים לתאריך נתון COBOL – Unit 11 כל הזכויות שמורות לד .מימון – ייעוץ והדרכה במחשבים בע"מ 19