Track
/
AWK
AWK
/
Esercizi
/
Indice di leggibilità automatico
Indice di leggibilità automatico

Indice di leggibilità automatico

Medio

Istruzioni

Man mano che cresciamo, riusciamo a capire testi sempre più complessi. Ma come si valuta il livello di complessità di un testo, e come possiamo scrivere programmi che lo facciano? In questo esercizio scriverai un programma che determina quanto è difficile leggere un testo e a quale età è più adatto.

Useremo la formula dell'indice di leggibilità automatico (ARI) per calcolare la complessità di un testo. L'ARI è stato sviluppato nel 1967 per valutare il livello scolastico statunitense richiesto per leggere un testo. Lo fa misurando la complessità delle parole e delle frasi. La complessità si misura in caratteri per parola e parole per frase. Più il valore è alto, più il testo è complesso.

Anteprima del testo

Il programma deve mostrare le prime tre frasi del testo, ma non più di 50 caratteri per ogni frase. Se una frase supera i 50 caratteri, stampa solo i primi 50 caratteri seguiti dai puntini di sospensione (...). Se il testo contiene più di tre frasi, stampa come quarta riga solo i puntini di sospensione.

Supponiamo che ci sia un file chiamato "ari.txt" con il seguente contenuto (questo testo sarà usato in tutti gli esempi qui sotto):

ARI was designed for military use in 1967. It was for real-time monitoring of readability on typewriters. It offered an automated counting method. It has similar results to other frameworks. This validates its accuracy.

Il programma dovrà stampare:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

Statistiche del testo

Il programma deve calcolare e stampare il numero di caratteri, parole e frasi del testo. Le frasi possono terminare con un punto, un punto esclamativo o un punto interrogativo. Gli spazi bianchi separano le parole all'interno di una frase. Quando conti il numero di caratteri per parola, conta tutti i caratteri non vuoti, compresi i segni di punteggiatura. Stampa le statistiche dopo l'anteprima del testo, separate da una riga vuota.

Ecco un esempio di output per la sola parte delle statistiche del testo:

Words: 34
Sentences: 5
Characters: 186

Indice di leggibilità automatico

Date queste informazioni sul testo, possiamo calcolare il suo livello di complessità con la seguente formula:

score = 4.71 * chars / words + 0.5 * words / sentences - 21.43

Il programma deve calcolare e stampare il punteggio e l'età approssimativa necessaria per comprendere il testo.

Punteggio Età Livello scolastico
1 5-6 Scuola dell'infanzia
2 6-7 Prima elementare
3 7-8 Seconda elementare
4 8-9 Terza elementare
5 9-10 Quarta elementare
6 10-11 Quinta elementare
7 11-12 Prima media
8 12-13 Seconda media
9 13-14 Terza media
10 14-15 Prima superiore
11 15-16 Seconda superiore
12 16-17 Terza superiore
13 17-18 Quarta superiore
14 18-22 Studente universitario

Il punteggio deve essere stampato con due cifre significative dopo la virgola. Quando lo si usa per trovare l'età o il livello scolastico, il punteggio va arrotondato al numero intero più vicino e limitato a 14. Qui sotto c'è un esempio di output del programma:

The text is:
ARI was designed for military use in 1967.
It was for real-time monitoring of readability on ...
It offered an automated counting method.
...

Words: 34
Sentences: 5
Characters: 186
Score: 7.74
This text should be understood by 12-13 year-olds.
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
AWK Exercism

Vuoi iniziare Indice di leggibilità automatico?

Iscriviti a Exercism per imparare e padroneggiare AWK con 3 concetti92 esercizi e il mentoring di persone reali, tutto gratis.