Треки
/
AWK
AWK
/
Вправи
/
Автоматизований індекс читабельності
Автоматизований індекс читабельності

Автоматизований індекс читабельності

Середня

Вказівки

З віком ми здатні розуміти дедалі складніші тексти. Але як оцінюють рівень складності того чи іншого тексту і як створити програми, які це роблять? У цій вправі ми напишемо програму, яка визначатиме, наскільки складно читати текст і якому віку він найкраще підходить.

Щоб обчислити складність тексту, скористаймося формулою автоматизованого індексу читабельності (ARI). ARI розробили 1967 року, щоб визначати, який клас навчання в США потрібен, аби прочитати той чи інший текст. Він робить це, вимірюючи складність слів і речень. Складність вимірюють як кількість символів на слово та слів на речення. Що вище значення, то складнішим є текст.

Попередній перегляд тексту

Програма має показати перші три речення тексту, але не більше ніж 50 символів на кожне речення. Якщо якесь речення перевищує 50 символів, виводимо лише перші 50 символів, а далі три крапки (...). Якщо текст містить більше ніж три речення, четвертим рядком виводимо лише три крапки.

Припустімо, є файл із назвою «ari.txt» з таким вмістом (цей текст використовуватиметься в усіх прикладах нижче):

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.

Тоді програма має вивести:

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 = 4.71 * chars / words + 0.5 * words / sentences - 21.43

Програма має обчислити й вивести бал і приблизний вік, потрібний для розуміння тексту.

Бал Вік Клас навчання
1 5-6 Дитячий садок
2 6-7 Перший клас
3 7-8 Другий клас
4 8-9 Третій клас
5 9-10 Четвертий клас
6 10-11 Пʼятий клас
7 11-12 Шостий клас
8 12-13 Сьомий клас
9 13-14 Восьмий клас
10 14-15 Девʼятий клас
11 15-16 Десятий клас
12 16-17 Одинадцятий клас
13 17-18 Дванадцятий клас
14 18-22 Студент коледжу

Бал виводимо з двома цифрами після десяткової коми. Коли бал використовують, щоб визначити вік або клас навчання, його округлюють до найближчого цілого числа й обмежують зверху 14. Нижче наведено зразок виведення програми:

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.
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
AWK Exercism

Час розпочати Автоматизований індекс читабельності?

Зареєструйтеся на Exercism, щоб вивчати й опановувати AWK, а також 3 концепції92 вправи та справжнє наставництво від людей, і все це безкоштовно.