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 em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre 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 / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de Dados8Tomada de Decisões Avançada
Case com Classes e Regexwhen com Múltiplos ValoresOperador Ternárioif / unless em uma LinhaRecapitulação - Classificador de NotasPratique por conta própria: Compilador de Ruby online