Recapitulação - Classificador de Notas
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 42 de 56.
Combine múltiplos valores case, o operador ternário e modificadores inline para classificar notas de exames em um script curto.
Desafio
MédioLeia uma lista de pontuações inteiras separadas por vírgulas da entrada. Para cada pontuação, imprima uma linha:
<score>: <letter> (<status>)Onde letter vem de um case na pontuação:
90..100→A80..89→B70..79→C60..69→D- qualquer outra coisa →
F
E status usa um ternário: passing quando a pontuação é pelo menos 60, failing caso contrário.
Após o loop, imprima Top scorer: <score>: mas apenas se a pontuação máxima for 90 ou superior (use um if inline).
Para a entrada 95,72,55,88, a saída é:
95: A (passing)
72: C (passing)
55: F (failing)
88: B (passing)
Top scorer: 95Experimente você mesmo
scores = gets.chomp.split(",").map(&:to_i)
# TODO: para cada pontuação imprima "<n>: <letra> (<status>)"
# TODO: imprima "Top scorer: <max>" apenas se max >= 90
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um Intervalo?Métodos de IntervaloIntervalos em Case / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline8Tomada de Decisão Avançada
Case com Classes e Regexwhen com múltiplos valoresOperador Ternárioif / unless inlineRecapitulação - Classificador de Notas