ITI0011-2015:harjutus 02
Harjutuse tähtaeg on 4. praktikum (12.-13. veebruar).
Üldine informatsioon harjutuste kohta: ITI0011:harjutused.
Kirjeldus
Üks teie sõber läheb Hawaiile ja tahab seal oma firma asutada. Ta täpsemalt ei taha rääkida, millega ta seal tegelema hakkab. Kuna aga ta teab, et teil on hea kogemus programmeerimise vallas, palub ta teilt ühte väikest programmi, mis teda tema töös aitaks. Nimelt pole tal alguses raha, et palgata korralikku raamatupidajat. Seega teeb ta ise suure osa tööst ära Excelis. Küll aga on kohalik maksuamet aeg-ajalt kontrollimas, et kuidas äri edeneb. Maksuamet käib ja kontrollib ühe konkreetse päeva kohta, et kuidas selle päeva kasum/kahjum oli. Teie sõber palub teilt sellist programmi, mis maksuametile vastaks. Programm saab ette päevade kasumite ajaloo (negatiivne kasum tähendab kahjumit) kuni N päeva (N ei ole täpselt teada) ning ühe konkreetse päeva, mille kohta maksuamet tahab teada kasuminumbrit. Kasumi ajalugu võib ulatuda näiteks 20 päeva tagasi. Maksuamet võib küsida kasumit näiteks 1. päeval (kõige kaugem päev minevikus), 2. päeval jne kuni 20. päeval. Etteantud kasuminimekiri on samamoodi järjestatud, et kõige esimene element näitab 1. päeva kasumit jne.
Aga see pole veel kõik. Hawaiil on väga imelik maksusüsteem. Maksuamet võib küsida informatsiooni ka näiteks tuleviku kohta. Kuigi teie sõbra äri on töös olnud 20 päeva (ehk siis ajalugu on 20 päeva kohta), võib maksuamet küsida 21. päeva kasumit. Sealne "seadus" ütleb nii, et tulevik ennustatakse mineviku pealt. Esimene päev peale ajalugu kordub ajaloo esimene päev. Ehk siis 21. päeva kasum on täpselt sama, mis oli 1. päeva kasum. 30. päeva kasum on täpselt sama mis oli 10. päeva kasum. Sarnaselt kordub ajalugu ka edaspidi tulevikus. Näiteks 51. päeva kasum on sama mis 11. päeva kasum.
Ja ka see pole veel kõik. Kohalik kultuur võimaldab pühapäevadel pidada "kõrgema maksu päeva". See tähendab seda, et kasumliku pühapäeva puhul on tegelik kasum 20% suurem. Seega, kui muidu pühapäeva numbrid näitavad kasumiks 100 ühikut raha, siis "kõrgema maksu päeva" tõttu saab välja näidata 120 ühikut. Kahjumi korral saab kahjumit vähendada 10%. Ehk siis -100 puhul oleks näidatav tulemus -90. On teada, et teie sõber alusts oma ära esmaspäeval. Numbritega opereerimisel tuleb ümardada matemaatika reegleid kasutades (11.5 => 12, 11.49 => 11), tulemus on alati täisarv.
Aga ka see pole veel kõik. Nimelt ei taha teie sõber näidata välja kahjumit. Kui maksuameti küsitud päev juhtub kahjumiga olema, tahab teie sõber, et programm tagastaks kas eelmise (kui selline päev on olemas), sama või järgmise päeva kasumi - vastavalt sellele, mis annab parema tulemuse (on suurem kasum/väiksem kahjum).
Mall
Täiendavat infot
Teie peate kirjutama funktsiooni getMyBigMoneys sisu. Funktsioonile antakse ette kaks argumenti: täisarvude massiiv ja täisarv. Massiiv sisaldab kõiki kasumeid ajaloos. Kui massiivi pikkus on 10, siis järelikult sisaldab ta kasumeid päevast 1 kuni päevani 10 (mõlemad kaasa arvatud). Teine number on päeva järjekorranumber, mille kohta peate kasumiinfo tagastama.
Funktsioon tagastab ühe numbri - kasumiinfo vastavalt üleval kirjeldatud soovidele.
Massiivi pikkuse saate kätte:
array.length
Massiivi elemendid vastavalt indeksiga idx:
array[idx]