Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bank
- /*
- Wykorzystując listę „dane” zawartą w pliku „package.scala” rozwiąż poniższe
- ćwiczenie – swój kod kompiluj za pomocą polecenia:
- scalac *.scala (lub fsc *.scala)
- Program uruchamiaj poleceniem:
- scala bank.Konto
- Lista „dane” zawiera informacje na temat „operacji bankowych” – jej elementami
- są pary data - kwota operacji. Kwota ujemna oznacza obciążenie rachunku
- (wydatek).
- W swoim rozwiązaniu nie używaj zmiennych (wprowadzanych za pomocą „var”)
- oraz konstrukcji „while” oraz „foreach”.
- Ćwiczenie 1: Oblicz sumaryczną wysokość wpływów i wydatków dla każdego z miesięcy.
- Miesiące reprezentuj za pomocą liczb całkowitych (1 - styczeń, 2 – luty, …)
- Ćwiczenie 2. Dla każdego dnia, którego data znajduje się w danych oblicz
- „stan konta”, tzn. wysokość sumy na koncie po uwzględnieniu operacji, które
- tego dnia zostały „zaksięgowane”. Załóż, że początkowo (31 grudnia 2013)
- na koncie znajdowało się 2500 zł.
- Ćwiczenie 3. Znajdź miesiąc(e), w którym balans wpływów i obciążeń rachunku
- był najkorzystniejszy tzn. suma wpływów pomniejszona o sumę obciążeń była
- maksymalna.
- */
- import scala.collection.immutable.SortedSet
- import scala.collection.immutable.ListMap
- object Konto {
- def balansMiesieczny: ListMap[Int, Double] = {
- val byMonth = dane.groupBy(o => o._1.slice(5,7).toInt)
- val balance = ListMap(byMonth.mapValues(l => l.map(p => p._2).sum).toSeq.sortBy(_._2):_*)
- balance
- }
- def stanKonta: Map[String, Double] = ???
- def najlepszeMiesiace: (Set[Int], Double) = ???
- def main(args: Array[String]): Unit = {
- // balansMiesieczny foreach {case (key, value) => println (key + "-->" + value)}
- println(balansMiesieczny.last)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement