a) Ustvarimo razred Nepremicnina
. V razredu definiramo konstruktor, ki sprejme podatke o številki, širini, dolžini, coni (zazidljiva/ nezazidljiva), občini in ceni parcele. Številko, širino, dolžino in ceno vnašamo kot števila (6. vrstica) s pozitivnimi vrednostmi (9. vrstica), cono kot logično vrednost True
ali False
(7.vrstica), občino pa kot niz (8. vrstica).
b) Za vsak podatek, ki ga hranimo v konstruktorju sestavimo t.i. "get metodo", ki nam vrne vrednost le tega (18. do 29. vrstica).
d) Za številko, širino, dolžino, ceno in ceno sestavimo t.i. "set metode", s katerimi lahko spreminjamo želene podatke parcele (32. do 45. vrstica). Za občino takšne metode ne ustvarimo!
e) Velikost parcele izračunamo kot produkt širine in dolžine (47. vrstica). "Get metode", "set metode" in metoda velikost parcele so objektne!
Opisi nadaljnjih metod niso metode razreda Nepremicnina
!
f) Najdražjo zazidljivo parcelo definiramo kot metodo izven razreda Nepremicnina
, kjer za parameter dobimo seznam objektov tega razreda. V 56. vrstici ustvarimo prazen seznam, kjer bomo hranili podatke o najdražji parceli ter spremenljivko cena z vrednostjo 0, in jo bomo zamenjali, kadar bomo našli kakšno dražjo parcelo v seznamu sez
.
Po seznamu sez
spustimo for zanko. V primeru, da je vrednost cone tekočega objekta True
(cona je zazidljiva), primerjamo ceno parcele s spremenljivko cena. Če sta si ceni enaki (59. vrstica), potem na seznam najdražjih dodamo dvojico (številka parcele, občina), če pa je cena parcele večja od trenutno največje cene (62. vrstica), ki jo hranimo v spremenljivki cena, potem seznamu najdražjih "izbrišemo" stare dvojice in vanj shranimo dvojico (številka parcele, občina). Ko se zanka izteče, samo še vrnemo seznam.
g) Najdražjo in najcenejšo parcelo po občinah bomo našli s pomočjo slovarjev. Slovarje pa bomo uporabili, ker imajo to lepo lastnost, da preslikajo množico ključev v množico vrednosti. Če bomo torej imeli več parcel iz iste občine, bomo v slovarju imeli samo eno parcelo iz te občine, le vrednosti bomo spreminjali (glede na določene kriterije). Ustvarimo dva slovarja, prvega poimenujemo najdrazja
, drugega pa najcenejsa
. Metoda najPoObcinah
za parameter sprejme seznam objektov iz razreda Nepremicnina
. Po temu seznamu spustimo for zanko (73. vrstica). Ker bomo v ključih slovarja hranili imena občin, najprej preverimo, če je občina že v katerem od slovarjev (75. in 77. vrstica). Če ni, potem v slovar dodamo ključ z vrednostma kot občina: [številka parcele, cena]
. Če pa se katera izmed občin že nahaja v katerem od slovarjev, preverimo ceno parcele s ceno, ki je hranjena v vrednosti ključa. Če ima parcela iz občine, višjo ceno kot občina iz slovarja najdrazja
, potem ključu, ki hrani ime te občine, zamenjamo vrednosti [številka parcele, občina]
(82. vrstica). Podobno naredimo v seznamu najcenejsa
(84. vrstica).
Na koncu samo izpišemo stavke, katera je najdražja oz. najcenejša parcela v kateri občini in zraven podamo še ceno te parcele. To naredimo z while zanko po obeh slovarjih.
h) Pri metodi recesija
bomo zazidljivim parcelam zmanjšali vrednost za n procentov ter nezazidljivim parcelam za m procentov. Tudi tukaj bomo za parameter prejeli seznam objektov razreda Nepremicnina
, zraven pa bosta še parametra n
in m
. Spustimo zanko po seznamu nepremičnin. Če je parcela zazidljiva, ji spremenimo vrednost z objektno metodo setCena()
, kjer od cene odštejemo m procentov cene. Če je parcela nezazidljiva, ji spremenimo vrednost z objektno metodo setCena()
, kjer od cene odštejemo n procentov cene.
i) Če hočemo spremeniti ime občine, moramo skočiti nazaj v razred Nepremicnina
in v njem definirati novo metodo (45. vrstica). Ta v primeru, da se parcela nahaja v Kranju, spremeni lastnost občine 'kranj'
v 'carnium'
. Sedaj imamo metodo, ki bo spremenila ime občine, zato s to metodo samo še pregledamo seznam objektov s for zanko (110. do 113. vrstica).
j) Pri metodi normalne(sez)
, kjer je parameter sez seznam objektov razreda Nepremicnina
, ustvarimo dva prazna seznama, kjer bomo ločili zazidljive parcele od nezazidljivih (118. vrstica) in dva seznama kamor bomo dodajali cene parcel, zazidljivih v enega in nezazidljivih v drugega.
S for zanko po elementih seznama sez
preverimo, katere parcele so zazidljive in katere nezazidljive. Objekte, kjer je vrednost cone True
(122. vrstica)strpamo v seznam zazidljivih ter cene, ki so hranjene v takih objektih dodamo v seznam ceneZaz
. Objekte, kjer je vrednost cone False
(125. vrstica) pa strpamo v seznam nezazidljivih parcel ter cene, ki so hranjene v takih objektih dodamo v seznam ceneNezaz
.
Seznam zazidljivih oz. nezazidljivih bo nadaljnje za nas zanimiv samo, če bo neničeln (129. in 134. vrstica). V takem primeru izračunamo povprečno vrednost parcele (zazidljive posebej in nezazidljive posebej) količnik med vsoto cen seznama, kjer smo hranili cene z dolžino tega seznama. Po vsakem seznamu (zazidljivih, nezazidljivih) spustimo zanko for in primerjamo ceno tekočega objekta s povprečno ceno. Če je cena parcele v meji med 85% in 115% povprečne cene (132. in 135. vrstica), potem je parcela normalna in jo dodamo na seznam (normalne zazidljive posebej, normalne nezazidljive posebej). Na koncu vrnemo seznam normalnih zazidljivih in normalnih nezazidljivih parcel.
k)Z metodo stdOdlkonLj(sez)
bomo preverjali standardni odklon cen zazidljivih parcel v občini Ljubljani. V tej metodi bomo najprej v en seznam strpali vse parcele, ki se nahajajo v Ljubljani in so zazidljive (146. vrstica). Standardni odklon je definiran kot:
Povprečna cena parcele je odvisna od površine parcele in jo bomo dobili kot produkt kvadrature parcele s povprečno vrednostjo kvadratnega metra zazidljive parcele v Ljubljani. Števec ulomka pod korenom bodo dobili s pomočjo for zanke. Pred zanko nastavimo spremenljivko, kateri bomo prištevali kvadrat razlike cene parcele s povprečno vrednostjo parcele, na 0. V zanki najprej izračunamo povprečno vrednost parcele (149. vrstica) in v naslednji vrstici spremenljivki vs
prištejemo kvadrat razlike med ceno parcele tekočega objekta in povprečno vrednostjo za parcelo s takšno kvadraturo. Na koncu vnemo koren količnika spremenljivke vs s številom zazidljivih parcel v Ljubljani.