Advertisement
Guest User

MORENKA

a guest
Dec 9th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 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: Map[Int, Double] = {
  39. val byMonth = dane.groupBy(o => o._1.slice(5,7).toInt)
  40. val balance = byMonth.mapValues(l => l.map(p => p._2).sum).toMap
  41. balance
  42.  
  43. }
  44. def pisz( m: Map[Int,Double]): Unit = {
  45. val res = ListMap(m.toSeq.sortBy(_._2):_*)
  46. res foreach {case (key, value) => println (key + "-->" + value)}
  47. }
  48.  
  49. def stanKonta: Map[String, Double] = ???
  50.  
  51. def najlepszeMiesiace: (Set[Int], Double) = ???
  52.  
  53. def main(args: Array[String]): Unit = {
  54. // balance.foreach(print("msc -> "))
  55. // balansMiesieczny foreach {case (key, value) => println (key + "-->" + value)}
  56. pisz(balansMiesieczny)
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement