Podsumowanie – inwentarz
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 17 z 56.
Wyzwanie
ŚredniŚledzisz stan magazynowy sklepu. Wczytaj jeden wiersz danych wejściowych: oddzieloną przecinkami listę operacji na początkowo pustym słowniku [String: Int] o nazwie stock. Każda operacja ma jedną z postaci:
in:<item>:<qty>dodaj ilość do produktu (użyj wzorca z wartością domyślną przy indeksowaniu)out:<item>:<qty>odejmij ilość. Jeśli wynikowa ilość wynosi0lub jest ujemna, usuń klucz całkowicie.
Po zastosowaniu każdej operacji wypisz:
- Osobny wiersz dla każdego pozostałego produktu, posortowanego alfabetycznie, w formacie
<item>: <qty> Total units: <n>dla wszystkich pozostałych wartości
Dla danych wejściowych in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 wynikiem jest:
apple: 6
Total units: 6Spróbuj swoich sił
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: przetwórz każde op w formacie kind:item:qty; in dodaje, out odejmuje;
// usuń klucze, dla których qty spada do <= 0; wypisz posortowane wiersze + sumę
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słów3Słowniki
Deklarowanie słownikówWyszukiwanie opcjonalneAktualizowanie słownikówIterowanie po słownikachGrupowanie wartościPodsumowanie – inwentarz6Funkcje wyższego rzędu, cz. 2
compactMapflatMapsorted(by:)Tworzenie potokówPowtórzenie – tabela wynikówPoćwicz samodzielnie: Edytor online Swift