Letter frequency: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
|||
Line 223: | Line 223: | ||
(defun letter-freq (str) |
(defun letter-freq (str) |
||
(freq-table (coerce str 'list)))</lang> |
(freq-table (coerce str 'list)))</lang> |
||
=={{header|Action!}}== |
|||
{{libheader|Action! Tool Kit}} |
|||
<lang Action!>INCLUDE "D2:PRINTF.ACT" ;from the Action! Tool Kit |
|||
CARD ARRAY histogram(256) |
|||
PROC Clear() |
|||
INT i |
|||
FOR i=0 TO 255 |
|||
DO histogram(i)=0 OD |
|||
RETURN |
|||
PROC ProcessLine(CHAR ARRAY line) |
|||
INT i |
|||
FOR i=1 TO line(0) |
|||
DO |
|||
histogram(line(i))==+1 |
|||
OD |
|||
RETURN |
|||
PROC ProcessFile(CHAR ARRAY fname) |
|||
CHAR ARRAY line(255) |
|||
BYTE dev=[1] |
|||
Close(dev) |
|||
Open(dev,fname,4) |
|||
WHILE Eof(dev)=0 |
|||
DO |
|||
InputSD(dev,line) |
|||
ProcessLine(line) |
|||
OD |
|||
Close(dev) |
|||
RETURN |
|||
PROC PrintResult() |
|||
INT i |
|||
CHAR ARRAY s(10) |
|||
FOR i=0 TO 255 |
|||
DO |
|||
IF histogram(i) THEN |
|||
StrC(histogram(i),s) |
|||
PrintF(" %C:%-5S",i,s) |
|||
FI |
|||
OD |
|||
RETURN |
|||
PROC Main() |
|||
CHAR ARRAY fname="H6:LETTE_KJ.ACT" |
|||
BYTE LMARGIN=$52,old |
|||
old=LMARGIN |
|||
LMARGIN=0 ;remove left margin on the screen |
|||
Put(125) PutE() ;clear the screen |
|||
PrintF("Reading ""%S""...%E%E",fname) |
|||
ProcessFile(fname) |
|||
PrintResult() |
|||
LMARGIN=old ;restore left margin on the screen |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Letter_frequency.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
Reading "H6:LETTE_KJ.ACT"... |
|||
:150 !:1 ":12 $:1 %:5 |
|||
(:27 ):27 +:1 ,:8 -:1 |
|||
.:5 0:7 1:5 2:7 4:1 |
|||
5:10 6:2 ::3 ;:4 =:13 |
|||
A:25 B:2 C:19 D:12 E:16 |
|||
F:10 G:4 H:8 I:13 J:1 |
|||
K:2 L:9 M:5 N:15 O:20 |
|||
P:16 R:44 S:4 T:20 U:6 |
|||
W:1 Y:8 [:1 ]:1 _:1 |
|||
a:16 c:9 d:10 e:49 f:9 |
|||
g:8 h:9 i:36 l:20 m:14 |
|||
n:29 o:23 p:2 r:25 s:24 |
|||
t:24 u:5 v:7 |
|||
</pre> |
|||
=={{header|Ada}}== |
=={{header|Ada}}== |