Powtórzenie – operacje na macierzach
Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 14 z 56.
Połącz tworzenie, dostęp, iterację i typowe wzorce w jednym wyzwaniu.
Wyzwanie
ŚredniWczytaj z wejścia n, czyli rozmiar macierzy kwadratowej. Zbuduj macierz n × n, w której każda komórka w wierszu r i kolumnie c jest równa r + c.
Następnie wypisz w osobnych wierszach:
- Macierz, używając
inspectna tablicy zewnętrznej - Sumę wszystkich komórek
- Maksymalną wartość na głównej przekątnej
- Transpozycję, używając
inspect
Dla wejścia 3 wynikiem jest:
[[0, 1, 2], [1, 2, 3], [2, 3, 4]]
18
4
[[0, 1, 2], [1, 2, 3], [2, 3, 4]](W przypadku tej konstrukcji macierz jest równa swojej transpozycji.)
Spróbuj swoich sił
n = gets.to_i
# TODO: utwórz macierz n×n i wypisz cztery wymagane wiersze
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 ocen3Tablice 2D
Podstawy tablic 2DDostęp do elementów tablic 2DIterowanie po tablicach 2DTypowe wzorce 2DPowtórzenie – operacje na macierzach6Projekt – Menedżer biblioteki
Przegląd projektuDodaj książkęPoćwicz samodzielnie: Kompilator Ruby online