Powtórka – klasyfikator ocen
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 42 z 56.
Połącz wielowartościowe case, operator trójargumentowy i modyfikatory inline, aby sklasyfikować wyniki egzaminu w jednym krótkim skrypcie.
Wyzwanie
ŚredniWczytaj z wejścia listę wyników całkowitych rozdzielonych przecinkami. Dla każdego wyniku wypisz jeden wiersz:
<score>: <letter> (<status>)Gdzie letter pochodzi z instrukcji case zastosowanej do wyniku:
90..100→A80..89→B70..79→C60..69→D- każdy inny wynik →
F
A status korzysta z operatora trójargumentowego: passing, gdy wynik wynosi co najmniej 60, w przeciwnym razie failing.
Po pętli wypisz Top scorer: <score>, ale tylko wtedy, gdy maksymalny wynik wynosi 90 lub więcej (użyj jednolinijkowego if).
Dla wejścia 95,72,55,88 wynikiem jest:
95: A (passing)
72: C (passing)
55: F (failing)
88: B (passing)
Top scorer: 95Spróbuj swoich sił
scores = gets.chomp.split(",").map(&:to_i)
# TODO: dla każdego wyniku wypisz "<n>: <letter> (<status>)"
# TODO: wypisz "Top scorer: <max>" tylko jeśli max >= 90
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków w szczegółach
Przegląd metod łańcuchów znakówInterpolacja łańcuchów znakówIterowanie po łańcuchach znakówDzielenie i łączeniePowtórka – Tkacz łańcuchów znaków4Bloki, procki i lambdy
Czym jest blok?do..end a nawiasy klamroweSłowo kluczowe yieldParametry blokuProcki i lambdyPodsumowanie — własny iterator7Hashe, część 2
Hash.new z wartościami domyślnymiIterowanie po haszachZagnieżdżone haszeŁączenie i przekształcaniePowtórka — licznik częstotliwości10Projekt – ewidencja uczniów
Przegląd projektuDodawanie ucznia5Potęga Enumerable
Select i RejectŁączenie wywołań mapReduce / Injectcount, all?, any?, none?group_by i partitionsort_by, min_by, max_byPodsumowanie — potok danych8Zaawansowane podejmowanie decyzji
case z klasami i wyrażeniami regularnymiwhen z wieloma wartościamiOperator trójargumentowyInline if / unlessPowtórka – klasyfikator ocenPoćwicz samodzielnie: Kompilator Ruby online