Erinevus lehekülje "ITI0011RUS:упражнение 02" redaktsioonide vahel
(Uus lehekülg: 'Срок сдачи упражнения '''4-е занятие (13-е февраля)'''. Общая информация об упражнениях: ITI0011RUS_Practice. ...') |
|||
5. rida: | 5. rida: | ||
== Описание == | == Описание == | ||
− | Один из ваших друзей едет на Гаваи и хочет там открыть фирму. Он не хочет говорить о том чем он там будет заниматься. Поскольку он знает, что у вас большой опыт в программировании, просит написать небольшую программу, которая помогла бы ему в работе. Дело в том, что у него недостаточно денег для того чтобы нанять бухгалтера и оплачивать его работу. Поэтому большую часть работы он выполняет в Excel. Время от времени налоговая инспекция проверяет как развивается бизнес. Представители налоговой инспекции приходят в офис и проверяют баланс доходов/расходов за любой выбранный день. Ваш друг просит вас написать программу, которая бы давала ответ на этот вопрос. | + | Один из ваших друзей едет на Гаваи и хочет там открыть фирму. Он не хочет говорить о том чем он там будет заниматься. Поскольку он знает, что у вас большой опыт в программировании, просит написать небольшую программу, которая помогла бы ему в работе. Дело в том, что у него недостаточно денег для того чтобы нанять бухгалтера и оплачивать его работу. Поэтому большую часть работы он выполняет в Excel. Время от времени налоговая инспекция проверяет как развивается бизнес. Представители налоговой инспекции приходят в офис и проверяют баланс доходов/расходов за любой выбранный день. Ваш друг просит вас написать программу, которая бы давала ответ на этот вопрос. Программе доступна информация о доходах за N последних дней (отрицательный доход означает расходы), причем значение N заранее неизвестно, а также конкретный день которым интересуются представители налоговой инспекции. История о доходах может хранить записи за последние, например, 20 дней. Представители налоговой инспекции могут поинтересоваться размеров доходов в первый день (день который был 20 дней назад), во второй день и т.д до 20-го дня. Записи о доходах также упорядочены, самая первая запись соответствует записи о доходах в первый день, и т.д. |
− | + | Но это еще не все. В штате Гаваи очень странная система налогообложения. Представители налоговой инспекции могут спросить информацию о будущем. Хотя бизнес вашего друга просуществовал всего 20 дней (тоесть существуют записи о доходах всего за 20 дней), представители налоговой инспекции могут спросить размер доходов в 21-й день. Согласно местным "законам", будущее можно предсказать по прошлому. 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 alustas oma äri esmaspäeval. Numbritega opereerimisel tuleb ümardada matemaatika reegleid kasutades (11.5 => 12, 11.49 => 11, -12.5 => -13, -12.49 => -12), tulemus on alati täisarv. | 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 alustas oma äri esmaspäeval. Numbritega opereerimisel tuleb ümardada matemaatika reegleid kasutades (11.5 => 12, 11.49 => 11, -12.5 => -13, -12.49 => -12), tulemus on alati täisarv. |
Redaktsioon: 10. veebruar 2015, kell 18:16
Срок сдачи упражнения 4-е занятие (13-е февраля).
Общая информация об упражнениях: ITI0011RUS_Practice.
Описание
Один из ваших друзей едет на Гаваи и хочет там открыть фирму. Он не хочет говорить о том чем он там будет заниматься. Поскольку он знает, что у вас большой опыт в программировании, просит написать небольшую программу, которая помогла бы ему в работе. Дело в том, что у него недостаточно денег для того чтобы нанять бухгалтера и оплачивать его работу. Поэтому большую часть работы он выполняет в Excel. Время от времени налоговая инспекция проверяет как развивается бизнес. Представители налоговой инспекции приходят в офис и проверяют баланс доходов/расходов за любой выбранный день. Ваш друг просит вас написать программу, которая бы давала ответ на этот вопрос. Программе доступна информация о доходах за N последних дней (отрицательный доход означает расходы), причем значение N заранее неизвестно, а также конкретный день которым интересуются представители налоговой инспекции. История о доходах может хранить записи за последние, например, 20 дней. Представители налоговой инспекции могут поинтересоваться размеров доходов в первый день (день который был 20 дней назад), во второй день и т.д до 20-го дня. Записи о доходах также упорядочены, самая первая запись соответствует записи о доходах в первый день, и т.д.
Но это еще не все. В штате Гаваи очень странная система налогообложения. Представители налоговой инспекции могут спросить информацию о будущем. Хотя бизнес вашего друга просуществовал всего 20 дней (тоесть существуют записи о доходах всего за 20 дней), представители налоговой инспекции могут спросить размер доходов в 21-й день. Согласно местным "законам", будущее можно предсказать по прошлому. 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 alustas oma äri esmaspäeval. Numbritega opereerimisel tuleb ümardada matemaatika reegleid kasutades (11.5 => 12, 11.49 => 11, -12.5 => -13, -12.49 => -12), 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
<source lang="java"> /**
* Home assignment 02.´ * * Read more: https://courses.cs.ttu.ee/pages/ITI0011:harjutus_02 * */
public class Task02 {
/** * Your killer app, which tries to fool the tax office * that your friend is a killer businessman. * * (don't try this at home, we haven't taught you anything) * * @param whatHas An array of profits for every day. * The first element of the array indicates the profit * for the first day etc. * @param whotYouAskMon The day for which the tax officer * wants to get information. * @return The profit to be shown to the tax officer. */ public static int getMyBigMoneys(int[] whatHas, int whotYouAskMon) { // yoyo, your code here return 0; }
/** * The main method, which is the entry point of the program. * !!IMPORTANT!! You have to keep the main method in order * to get your solution tested. * @param args Arguments from the command line */ public static void main(String[] args) { System.out.println(getMyBigMoneys(new int[]{1}, 1)); // => 1 System.out.println(getMyBigMoneys(new int[]{1, -2, 3}, 2)); // => 3 System.out.println(getMyBigMoneys(new int[]{-1, 2, 3}, 4)); // => 3 System.out.println(getMyBigMoneys( new int[]{-1, 2, 3, 4, 5, -60, -70, -80}, 7)); // => -60 System.out.println(getMyBigMoneys( new int[]{-1, 2, 3, 4, -70, -60, -65, -80}, 6)); // => -59 }
}
</source>
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]
Jäägiga opereerimine:
5 % 3 => 2
Soovitatav on enne natuke läbi mõelda, mis reeglid ülesande tekstis kirjas on. Samuti tasub näiteid vaadata ja nendest proovida aru saada.