IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Identify vowels, consonants and digits using EVALUATE


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
venosol
Warnings : 1

New User


Joined: 16 Nov 2006
Posts: 43
Location: Bangalore

PostPosted: Mon Mar 26, 2007 10:37 am
Reply with quote

IDENTIFICATION DIVISION.
PROGRAM-ID. EX37.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CHAR.

88 VOWEL VALUE 'A', 'E', 'I', 'O', 'U'.
88 CONSONANT 'B' THRU 'D', 'F' THRU 'H', 'J' THRU 'N',
'P' THRU 'T', 'V' THRU 'Z'.
88 DIGIT VALUE '0' THRU '9'.
88 VALID-CHAR VALUE 'A' THRU 'B', '0' THRU '9'.
PROCEDURE DIVISION.
PARA-1.
DISPLAY 'ENTER ANY CHARACTER'.
ACCEPT CHAR.
EVALUATE VALID-CHAR
WHEN VOWEL DISPLAY ' IT IS A VOWEL'
WHEN CONSONANT DISPLAY ' IT IS A CONSONANT'
WHEN DIGIT DISPLAY ' IT IS A DIGIT'
WHEN OTHER DISPLAY ' SPECIAL CHARACTER'
END-EVALUATE.
STOP RUN.

I had used this program to identify vowels,consonants and digits when input is given. But when I entered any space or * or ? it is displaying IT IS A VOWEL as if it is a default. please clarify me on this.
Back to top
View user's profile Send private message
Narismha

New User


Joined: 22 Nov 2006
Posts: 23
Location: Mumbai

PostPosted: Mon Mar 26, 2007 1:14 pm
Reply with quote

Hi Venu,

Try with this.

WORKING-STORAGE SECTION.

01 WS-CHAR PIC X(01).
01 WS-VALID-CHAR PIC X(01) VALUE ' '.
88 WS-VOWEL VALUE 'A','E','I','O','U'.
88 WS-CONSONANT VALUE 'B' THRU 'D','F' THRU 'H',
'J' THRU 'N','P' THRU 'T','V' THRU 'Z'.
88 WS-DIGIT VALUE '0' THRU '9'.
88 WS-VC VALUE 'A' THRU 'Z','0' THRU '9'.

****************************************************************
P R O C E D U R E D I V I S I O N *
****************************************************************
PROCEDURE DIVISION.

ACCEPT WS-CHAR.
DISPLAY 'ENTERED CHARACTER:' WS-CHAR.
MOVE WS-CHAR TO WS-VALID-CHAR.
EVALUATE TRUE
WHEN WS-VOWEL DISPLAY ' ITS VOWEL'
WHEN WS-CONSONANT DISPLAY ' CONSONANT '
WHEN WS-DIGIT DISPLAY ' DIGIT '
WHEN WS-VC DISPLAY ' VALID CHAR'
WHEN OTHER DISPLAY ' SPECIAL CHARACTER'
END-EVALUATE.

STOP RUN.

Thanks
-Narisimha
Back to top
View user's profile Send private message
agkshirsagar

Active Member


Joined: 27 Feb 2007
Posts: 691
Location: Earth

PostPosted: Mon Mar 26, 2007 1:53 pm
Reply with quote

Good one Narismha..
Original program was a complete mess. icon_wink.gif
Back to top
View user's profile Send private message
venosol
Warnings : 1

New User


Joined: 16 Nov 2006
Posts: 43
Location: Bangalore

PostPosted: Tue Mar 27, 2007 11:15 am
Reply with quote

Narismha wrote:
Hi Venu,

Try with this.

WORKING-STORAGE SECTION.

01 WS-CHAR PIC X(01).
01 WS-VALID-CHAR PIC X(01) VALUE ' '.
88 WS-VOWEL VALUE 'A','E','I','O','U'.
88 WS-CONSONANT VALUE 'B' THRU 'D','F' THRU 'H',
'J' THRU 'N','P' THRU 'T','V' THRU 'Z'.
88 WS-DIGIT VALUE '0' THRU '9'.
88 WS-VC VALUE 'A' THRU 'Z','0' THRU '9'.

****************************************************************
P R O C E D U R E D I V I S I O N *
****************************************************************
PROCEDURE DIVISION.

ACCEPT WS-CHAR.
DISPLAY 'ENTERED CHARACTER:' WS-CHAR.
MOVE WS-CHAR TO WS-VALID-CHAR.
EVALUATE TRUE
WHEN WS-VOWEL DISPLAY ' ITS VOWEL'
WHEN WS-CONSONANT DISPLAY ' CONSONANT '
WHEN WS-DIGIT DISPLAY ' DIGIT '
WHEN WS-VC DISPLAY ' VALID CHAR'
WHEN OTHER DISPLAY ' SPECIAL CHARACTER'
END-EVALUATE.

STOP RUN.

Thanks
-Narisimha


I got new ideas. One is using perform only and another is IF Else.

WORKING-STORAGE SECTION.
01 N PIC 9.
01 CHAR.
88 VOWEL VALUE 'A', 'E', 'I', 'O', 'U'.
88 CONSONANT 'B' THRU 'D', 'F' THRU 'H', 'J' THRU 'N',
'P' THRU 'T', 'V' THRU 'Z'.
88 DIGIT VALUE '0' THRU '9'.
88 VALID-CHAR VALUE 'A' THRU 'B', '0' THRU '9'.
PROCEDURE DIVISION.
PARA-1.
DISPLAY 'ENTER ANY CHARACTER'.
ACCEPT CHAR.
PERFORM UNTIL NOT VALID-CHAR AND N>1
EVALUATE TRUE
WHEN VOWEL DISPLAY ' IT IS A VOWEL'
WHEN CONSONANT DISPLAY ' IT IS A CONSONANT'
WHEN DIGIT DISPLAY ' IT IS A DIGIT'
WHEN OTHER DISPLAY ' SPECIAL CHARACTER'
END-EVALUATE
COMPUTE N=N+1
END-PERFORM.
STOP RUN.


other one is.
WORKING-STORAGE SECTION.
01 CHAR.
88 VOWEL VALUE 'A', 'E', 'I', 'O', 'U'.
88 CONSONANT 'B' THRU 'D', 'F' THRU 'H', 'J' THRU 'N',
'P' THRU 'T', 'V' THRU 'Z'.
88 DIGIT VALUE '0' THRU '9'.
88 VALID-CHAR VALUE 'A' THRU 'B', '0' THRU '9'.
PROCEDURE DIVISION.
PARA-1.
DISPLAY 'ENTER ANY CHARACTER'.
ACCEPT CHAR.
IF NOT VALID-CHAR
DISPLAY ' SPECIAL CHARACTER'
ELSE
EVALUATE VALID-CHAR
WHEN VOWEL DISPLAY ' IT IS A VOWEL'
WHEN CONSONANT DISPLAY ' IT IS A CONSONANT'
WHEN DIGIT DISPLAY ' IT IS A DIGIT'
WHEN OTHER DISPLAY 'UNKNOWN'
END-EVALUATE
END-IF
STOP RUN.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts How to identify the transaction categ... IMS DB/DC 3
No new posts Identify Program Insert DB2 7
No new posts Evaluate variable to execute a jcl step JCL & VSAM 3
No new posts Want to mask Middle 8 Digits of Debit... COBOL Programming 3
No new posts Identify unused (junk) REXX scripts TSO/ISPF 30
Search our Forums:

Back to Top