Advertisement
Guest User

scala

a guest
Dec 9th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. package bank
  2.  
  3. /*
  4.  
  5. Wykorzystując listę „dane” zawartą w pliku „package.scala” rozwiąż poniższe
  6. ćwiczenie – swój kod kompiluj za pomocą polecenia:
  7.  
  8. scalac *.scala (lub fsc *.scala)
  9.  
  10. Program uruchamiaj poleceniem:
  11.  
  12. scala bank.Konto
  13.  
  14. Lista „dane” zawiera informacje na temat „operacji bankowych” – jej elementami
  15. są pary data - kwota operacji. Kwota ujemna oznacza obciążenie rachunku
  16. (wydatek).
  17.  
  18. W swoim rozwiązaniu nie używaj zmiennych (wprowadzanych za pomocą „var”)
  19. oraz konstrukcji „while” oraz „foreach”.
  20.  
  21. Ćwiczenie 1: Oblicz sumaryczną wysokość wpływów i wydatków dla każdego z miesięcy.
  22. Miesiące reprezentuj za pomocą liczb całkowitych (1 - styczeń, 2 – luty, …)
  23.  
  24. Ćwiczenie 2. Dla każdego dnia, którego data znajduje się w danych oblicz
  25. „stan konta”, tzn. wysokość sumy na koncie po uwzględnieniu operacji, które
  26. tego dnia zostały „zaksięgowane”. Załóż, że początkowo (31 grudnia 2013)
  27. na koncie znajdowało się 2500 zł.
  28.  
  29. Ćwiczenie 3. Znajdź miesiąc(e), w którym balans wpływów i obciążeń rachunku
  30. był najkorzystniejszy tzn. suma wpływów pomniejszona o sumę obciążeń była
  31. maksymalna.
  32.  
  33. */
  34. import scala.collection.immutable.SortedSet
  35. import scala.collection.immutable.ListMap
  36. object Konto {
  37.  
  38. def balansMiesieczny: ListMap[Int, Double] = {
  39. val byMonth = dane.groupBy(o => o._1.slice(5,7).toInt)
  40. val balance = ListMap(byMonth.mapValues(l => l.map(p => p._2).sum).toSeq.sortBy(_._2):_*)
  41. balance
  42.  
  43. }
  44.  
  45. def stanKonta: Map[String, Double] = ???
  46.  
  47. def najlepszeMiesiace: (Set[Int], Double) = ???
  48.  
  49. def main(args: Array[String]): Unit = {
  50. // balansMiesieczny foreach {case (key, value) => println (key + "-->" + value)}
  51. println(balansMiesieczny.last)
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement