|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen GIER Computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen GIER Computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4967 (0x1367) Description: Bits:30000666 tegnstat Types: 8-hole paper tape Notes: Gier Text
begin comment J.P.Søltoft, 26 MAR 1970. _____ _______Tegnstatistik for en bestemt samling tegn i en tekst. De enkelte tegn optælles med lyn, og konverteres til en bekvem intern datarepræs entation sledes, at tegnene nummereres fra 1 og opefter. Tegn, dr ikke ønskes optalt, sættes af k onv til nul. Sluttegnet for den tekst, der skal indlæses, sættes af konv til -1. Nr optællingen er slut, sorteres tegnene efter hyppighed og udskrives efter fald ende hyppighed med bde absolut og procentisk forekomst. Ideen til den interne repræsentation er hentet fra SL: Elementær Datamatik p. 110 ff. Variabelbeskrivelse n Antal tegn i alfabetet i,j Indexvariable m,l Indexvariable i sortering konv[0:127] Konverterer tegnene i flexowriterkoden til den valgte, interne repræsentation raa[1:n] Omformer den interne rep. tilbage til flexowriterkoden stat[1:n] Hyppighed for tegnene i alfabetet proc[1:n] Procentisk hyppighed for tegnene i alfabetet hstat,hraa Hjælpevariable for stat og raa i sorteringen tegn Det aktuelle indlæste tegn total Samlede antal læste tegn i alfabetet nt,q,js,jl Hjælpevariable i udskrift Som input kræver programmet 2 strimler: 1. n, <alfabetet> <det ønskede sluttegn> STOP CODE 2. <Den tekst, der skal undersøges> <sluttegn> STOP CODEDet bemærkes, at alfabetet skal st uden mellemrum, cr, tape feed o.s.v.; ____integer n,i,j,ii,jj,nt,q,js,jl,tegn,total; _______integer array konv[0:127]; _______ _____select(8);comment initialisernng af samtlige tegn; _______for i:=0 step 1 until 127 do konv[i]:=0; ___ ____ _____ __n:=read integer;begin integer array raa,stat[1:n]; _____ _______ _____integer hstat,hraa,m,l; _______real array proc[1:n]; ____ _____for i:=1 step 1 until n do ___ ____ _____ __begin j:=lyn; konv[j]:=i; raa[i]:=j; stat[i]:=0; _____end; ___j:=lyn; konv[j]:=-1;comment indledende overskrift; _______writecr;writetext(|< |); < >writetext(|<Tabel over hyppighedsforekomst for de enkelte tegn i alfabetet <|); >writecr; writecr;writetext(|< |); < >for i:=1 step 1 until n do writechar(raa[i]); ___ ____ _____ __writecr; writecr;comment indlæsning og sortering; _______for tegn:=konv[lyn] while tegn_0 do ___ _____ > __begin iftegn>0 then _____ __ ____stat[tegn]:=stat[tegn]+1;end; ___comment sidste tegn er læst, og der sorteres efter størrelse; _______for i :=2 step 1 until n do ___ ____ _____ __begin for j:=1 step 1 until i do _____ ___ ____ _____ __begin ii:=stat[i]; jj:=stat[j]; _____if jj<ii∨(jj=ii∧j>i) then __ ____begin hstat:=stat[i]; hraa:=raa[i]; m:=i-j; _____for l:=i-1 step -1 until j do ___ ____ _____ __begin stat[l+1]:= stat[l]; _____raa[l+1] := raa[l];end; ___stat[j]:=hstat; raa[j]:=hraa;end; ___end; ___end; ___comment udregning af totalt antal tegn og procentvis forekomst; _______total:=0;for i :=1 step 1 until n do total:=total+stat[i]; ___ ____ _____ __for i:=1 step 1 until n do proc[i]:= 100⨯(stat[i]/total); ___ ____ _____ __comment afsluttende udskrift; _______writetext(|< |); < >writetext(|<Det totale antal læste tegn i alfabetet er|); < >write(| dddddddd|,total); < >writecr; writecr; writecr;nt:=(n-1)_10+1; :for j:=1 step 1 until nt do ___ ____ _____ __begin jl:=(j-1)⨯10+1; _____q:=if n-jl_9 then 9 else n-jl; js:=jl+q; __ > ____ ____writetext(|<Tegn |); < >for i:=jl step 1 until js do ___ ____ _____ __begin writetext(|< |); writechar(raa[i]); _____ < >end; ___writecr; writetext(|<Forekomst |); < >for i:=jl step 1 until js do write(| dddddddd|,stat[i]); ___ ____ _____ __ < >writecr; writetext(|<I procent |); < >for i:=jl step 1 until js do write(| ddd.dd|,proc[i]); ___ ____ _____ __ < >writecr; writecr; writecr;end; ___end; ___end[ s t o p ] ___