Readability
Implemente um programa que calcula o nível aproximado de série necessário para compreender um texto, como mostrado abaixo.
$ ./readability
Text: Congratulations! Today is your day. You're off to Great Places! You're off and away!
Grade 3
Começando
Abra o VS Code.
Comece clicando dentro da janela do seu terminal e execute cd
sozinho. Você deve encontrar que seu "prompt" se parece
com o abaixo.
$
Clique dentro da janela do terminal e execute
wget https://cdn.cs50.net/2022/fall/psets/6/sentimental-readability.zip
seguido de Enter para baixar um arquivo ZIP chamado sentimental-readability.zip
em seu espaço de código. Tenha cuidado para
não ignorar o espaço entre o wget
e a URL a seguir, ou
qualquer outro caractere!
Agora execute
unzip sentimental-readability.zip
para criar uma pasta chamada sentimental-readability
. Você não
precisa mais do arquivo ZIP, então pode executar
rm sentimental-readability.zip
e responda com "y" seguido por Enter no prompt para remover o arquivo ZIP que você baixou.
Agora digite
cd sentimental-readability
seguido de Enter para mover-se para o diretório (ou seja, abrir) esse diretório. Seu prompt agora deve se parecer com o abaixo.
sentimental-readability/ $
Se tudo ocorreu bem, você deve executar
ls
e ver um arquivo chamado readability.c
. Se você tiver algum problema, siga essas mesmas etapas novamente e veja se consegue determinar onde errou!
Especificação
- Escreva, em um arquivo chamado
readability.py
, um programa que primeiro pede ao usuário que digite algum texto e, em seguida, produz como saída o nível de leitura do texto, de acordo com a fórmula Coleman-Liau, exatamente como foi feito no Conjunto de Problemas 2, exceto que o programa desta vez deve ser escrito em Python.- Lembre-se de que o índice Coleman-Liau é calculado como
0.0588 * L - 0.296 * S - 15.8
, ondeL
é o número médio de letras por 100 palavras no texto eS
é o número médio de sentenças por 100 palavras no texto.
- Lembre-se de que o índice Coleman-Liau é calculado como
- Use a função
get_string
da biblioteca CS50 para obter a entrada do usuário e a funçãoprint
para produzir a saída da resposta. - Seu programa deve contar o número de letras, palavras e sentenças no texto. Você pode assumir que uma letra é qualquer caractere minúsculo de
a
az
ou qualquer caractere maiúsculo deA
aZ
, qualquer sequência de caracteres separados por espaços deve contar como uma palavra, e que qualquer ocorrência de um ponto, ponto de exclamação ou ponto de interrogação indica o final de uma sentença. - Seu programa deve imprimir como saída
"Grade X"
, ondeX
é o nível de leitura calculado pela fórmula Coleman-Liau, arredondado para o inteiro mais próximo. - Se o número de índice resultante for 16 ou maior (equivalente a ou maior do que um nível de leitura de graduação sênior), seu programa deve produzir como saída
"Grade 16+"
em vez de fornecer o número de índice exato. Se o número de índice for menor do que 1, seu programa deve produzir como saída"Before Grade 1"
.
Uso
O seu programa deve se comportar conforme o exemplo abaixo.
$ python readability.py
Text: Congratulations! Today is your day. You're off to Great Places! You're off and away!
Grade 3
Testando
Embora o check50
esteja disponível para este problema, você é encorajado a primeiro testar seu código por conta própria para cada um dos seguintes casos.
- Execute o seu programa como
python readability.py
e aguarde um prompt para a entrada. DigiteOne fish. Two fish. Red fish. Blue fish.
e pressione enter. Seu programa deve exibirBefore Grade 1
. - Execute o seu programa como
python readability.py
e aguarde um prompt para a entrada. DigiteWould you like them here or there? I would not like them here or there. I would not like them anywhere.
e pressione enter. Seu programa deve exibirGrade 2
. - Execute o seu programa como
python readability.py
e aguarde um prompt para a entrada. DigiteCongratulations! Today is your day. You're off to Great Places! You're off and away!
e pressione enter. Seu programa deve exibirGrade 3
. - Execute seu programa como
python readability.py
, e aguarde por um prompt para inserir um texto. DigiteHarry Potter was a highly unusual boy in many ways. For one thing, he hated the summer holidays more than any other time of year. For another, he really wanted to do his homework, but was forced to do it in secret, in the dead of the night. And he also happened to be a wizard.
e pressione enter. Seu programa deve imprimirGrade 5
. - Execute seu programa como
python readability.py
, e aguarde por um prompt para inserir um texto. DigiteIn my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.
e pressione enter. Seu programa deve imprimirGrade 7
. - Execute seu programa como
python readability.py
, e aguarde por um prompt para inserir um texto. DigiteAlice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, "and what is the use of a book," thought Alice "without pictures or conversation?"
e pressione enter. Seu programa deve imprimirGrade 8
. - Execute seu programa como
python readability.py
, e aguarde por um prompt para inserir um texto. DigiteWhen he was nearly thirteen, my brother Jem got his arm badly broken at the elbow. When it healed, and Jem's fears of never being able to play football were assuaged, he was seldom self-conscious about his injury. His left arm was somewhat shorter than his right; when he stood or walked, the back of his hand was at right angles to his body, his thumb parallel to his thigh.
e pressione enter. Seu programa deve imprimirGrau 8
. - Execute seu programa como
python readability.py
, e aguarde por um prompt para entrada. DigiteThere are more things in Heaven and Earth, Horatio, than are dreamt of in your philosophy.
e pressione enter. Seu programa deve exibirGrade 9
. - Execute seu programa como
python readability.py
, e aguarde um prompt para entrada. DigiteIt was a bright cold day in April, and the clocks were striking thirteen. Winston Smith, his chin nuzzled into his breast in an effort to escape the vile wind, slipped quickly through the glass doors of Victory Mansions, though not quickly enough to prevent a swirl of gritty dust from entering along with him.
e pressione enter. Seu programa deve exibirGrade 10
. - Execute o seu programa como
python readability.py
, e aguarde por um prompt para entrada. DigiteA large class of computational problems involve the determination of properties of graphs, digraphs, integers, arrays of integers, finite families of finite sets, boolean formulas and elements of other countable domains.
e pressione enter. Seu programa deve retornarGrade 16+
.
Execute o código abaixo para avaliar a correção do seu código usando check50
. Mas certifique-se de compilar e testar o código você mesmo também!
check50 cs50/problems/2023/x/sentimental/readability
Execute o abaixo para avaliar o estilo do seu código usando style50
.
style50 readability.py
Como Enviar
No seu terminal, execute abaixo para enviar seu trabalho.
submit50 cs50/problems/2023/x/sentimental/readability