I problemi con i testi (parole, frasi) sono diversi da quelli con i numeri…
- Quanti caratteri in un testo?
- Quante vocali, consonanti?
- Quante maiuscole, minuscole?
- Quante A, B, C, …, Z?
Per contare quante volte compare ciascun lettera puoi cominciare così…
Var CONTATORI: Array['A'..'Z'] of Word; (* fino a ~65000*) frase : String; Procedure Inizializza; Var i: Char; Begin For i:='A' To 'Z' Do CONTATORI[i]:=0; End; Procedure Visualizza; Var i: Char; Begin For i:='A' To 'Z' Do Writeln(i, ' ', CONTATORI[i]); End; Procedure Conta; Var i: Byte; C: Char; Begin For i:=1 To Length(frase) Do Begin C:=frase[i]; Inc(CONTATORI[C]); End; End; Begin Writeln('Inserisci una frase a piacere'); Readln(frase); Inizializza; Conta; Visualizza; Readln; End.
Note
- Il codice precedente conta le lettere maiuscole
- Se la frase in input contiene caratteri diversi ci sarà un errore in esecuzione
- Si potrebbero convertire le lettere minuscole in lettere maiuscole, con Upcase(), e poi conteggiarle.
C:=UpCase(frase[i]);
- Si potrebbero contare tutti i caratteri della tabella ASCII dal codice #0 al codice #255
Type CONTATORI: Array[#0..#255] of Word;