Letter frequency: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1,919:
 
(letter-freq "test.lisp")</lang>
 
=={{header|COBOL}}==
<lang COBOL>
IDENTIFICATION DIVISION.
PROGRAM-ID. Letter-Frequency.
AUTHOR. Bill Gunshannon.
INSTALLATION. Home.
DATE-WRITTEN. 12 December 2021.
************************************************************
** Program Abstract:
** A rather simplistic program to do the kind of thing
** that COBOL does really well.
************************************************************
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT Text-File ASSIGN TO "File.txt"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD Text-File
DATA RECORD IS Record-Name.
01 Record-Name PIC X(80).
WORKING-STORAGE SECTION.
01 Eof PIC X VALUE 'F'.
 
01 Letter-cnt.
05 A-cnt PIC 9(5) VALUE 0.
05 B-cnt PIC 9(5) VALUE 0.
05 C-cnt PIC 9(5) VALUE 0.
05 D-cnt PIC 9(5) VALUE 0.
05 E-cnt PIC 9(5) VALUE 0.
05 F-cnt PIC 9(5) VALUE 0.
05 G-cnt PIC 9(5) VALUE 0.
05 H-cnt PIC 9(5) VALUE 0.
05 I-cnt PIC 9(5) VALUE 0.
05 J-cnt PIC 9(5) VALUE 0.
05 K-cnt PIC 9(5) VALUE 0.
05 L-cnt PIC 9(5) VALUE 0.
05 M-cnt PIC 9(5) VALUE 0.
05 N-cnt PIC 9(5) VALUE 0.
05 O-cnt PIC 9(5) VALUE 0.
05 P-cnt PIC 9(5) VALUE 0.
05 Q-cnt PIC 9(5) VALUE 0.
05 R-cnt PIC 9(5) VALUE 0.
05 S-cnt PIC 9(5) VALUE 0.
05 T-cnt PIC 9(5) VALUE 0.
05 U-cnt PIC 9(5) VALUE 0.
05 V-cnt PIC 9(5) VALUE 0.
05 W-cnt PIC 9(5) VALUE 0.
05 X-cnt PIC 9(5) VALUE 0.
05 Y-cnt PIC 9(5) VALUE 0.
05 Z-cnt PIC 9(5) VALUE 0.
01 Letter-disp.
05 A-cnt PIC ZZZZ9.
05 B-cnt PIC ZZZZ9.
05 C-cnt PIC ZZZZ9.
05 D-cnt PIC ZZZZ9.
05 E-cnt PIC ZZZZ9.
05 F-cnt PIC ZZZZ9.
05 G-cnt PIC ZZZZ9.
05 H-cnt PIC ZZZZ9.
05 I-cnt PIC ZZZZ9.
05 J-cnt PIC ZZZZ9.
05 K-cnt PIC ZZZZ9.
05 L-cnt PIC ZZZZ9.
05 M-cnt PIC ZZZZ9.
05 N-cnt PIC ZZZZ9.
05 O-cnt PIC ZZZZ9.
05 P-cnt PIC ZZZZ9.
05 Q-cnt PIC ZZZZ9.
05 R-cnt PIC ZZZZ9.
05 S-cnt PIC ZZZZ9.
05 T-cnt PIC ZZZZ9.
05 U-cnt PIC ZZZZ9.
05 V-cnt PIC ZZZZ9.
05 W-cnt PIC ZZZZ9.
05 X-cnt PIC ZZZZ9.
05 Y-cnt PIC ZZZZ9.
05 Z-cnt PIC ZZZZ9.
PROCEDURE DIVISION.
Main-Program.
OPEN INPUT Text-File
PERFORM UNTIL Eof = 'T'
READ Text-File
AT END MOVE 'T' to Eof
END-READ
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING A-cnt OF Letter-cnt FOR ALL 'A'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING B-cnt OF Letter-cnt FOR ALL 'B'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING C-cnt OF Letter-cnt FOR ALL 'C'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING D-cnt OF Letter-cnt FOR ALL 'D'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING E-cnt OF Letter-cnt FOR ALL 'E'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING F-cnt OF Letter-cnt FOR ALL 'F'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING G-cnt OF Letter-cnt FOR ALL 'G'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING H-cnt OF Letter-cnt FOR ALL 'H'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING I-cnt OF Letter-cnt FOR ALL 'I'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING J-cnt OF Letter-cnt FOR ALL 'J'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING K-cnt OF Letter-cnt FOR ALL 'K'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING L-cnt OF Letter-cnt FOR ALL 'L'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING M-cnt OF Letter-cnt FOR ALL 'M'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING N-cnt OF Letter-cnt FOR ALL 'N'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING O-cnt OF Letter-cnt FOR ALL 'O'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING P-cnt OF Letter-cnt FOR ALL 'P'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING Q-cnt OF Letter-cnt FOR ALL 'Q'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING R-cnt OF Letter-cnt FOR ALL 'R'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING S-cnt OF Letter-cnt FOR ALL 'S'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING T-cnt OF Letter-cnt FOR ALL 'T'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING U-cnt OF Letter-cnt FOR ALL 'U'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING V-cnt OF Letter-cnt FOR ALL 'V'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING W-cnt OF Letter-cnt FOR ALL 'W'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING X-cnt OF Letter-cnt FOR ALL 'X'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING Y-cnt OF Letter-cnt FOR ALL 'Y'
INSPECT FUNCTION UPPER-CASE(Record-Name)
TALLYING Z-cnt OF Letter-cnt FOR ALL 'Z'
END-PERFORM.
CLOSE Text-File.
MOVE CORRESPONDING Letter-cnt To Letter-disp.
DISPLAY 'Letter Frequency Distribution'.
DISPLAY '-----------------------------'.
DISPLAY 'A : ' A-cnt OF Letter-disp ' '
'N : ' N-cnt OF Letter-disp.
DISPLAY 'B : ' B-cnt OF Letter-disp ' '
'O : ' O-cnt OF Letter-disp.
DISPLAY 'C : ' C-cnt OF Letter-disp ' '
'P : ' P-cnt OF Letter-disp.
DISPLAY 'D : ' D-cnt OF Letter-disp ' '
'Q : ' Q-cnt OF Letter-disp.
DISPLAY 'E : ' E-cnt OF Letter-disp ' '
'R : ' R-cnt OF Letter-disp.
DISPLAY 'F : ' F-cnt OF Letter-disp ' '
'S : ' S-cnt OF Letter-disp.
DISPLAY 'G : ' G-cnt OF Letter-disp ' '
'T : ' T-cnt OF Letter-disp.
DISPLAY 'H : ' H-cnt OF Letter-disp ' '
'U : ' U-cnt OF Letter-disp.
DISPLAY 'I : ' I-cnt OF Letter-disp ' '
'V : ' V-cnt OF Letter-disp.
DISPLAY 'J : ' J-cnt OF Letter-disp ' '
'W : ' W-cnt OF Letter-disp.
DISPLAY 'K : ' K-cnt OF Letter-disp ' '
'X : ' X-cnt OF Letter-disp.
DISPLAY 'L : ' L-cnt OF Letter-disp ' '
'Y : ' Y-cnt OF Letter-disp.
DISPLAY 'M : ' M-cnt OF Letter-disp ' '
'Z : ' Z-cnt OF Letter-disp.
STOP RUN.
END-PROGRAM.
>/lang>
{{out}}
<pre>
Letter Frequency Distribution
-----------------------------
A : 416 N : 434
B : 120 O : 545
C : 316 P : 215
D : 267 Q : 12
E : 679 R : 436
F : 122 S : 432
G : 171 T : 493
H : 131 U : 180
I : 429 V : 57
J : 12 W : 97
K : 17 X : 35
L : 303 Y : 50
M : 162 Z : 60
</pre>
 
=={{header|Component Pascal}}==