Erinevus lehekülje "ITI0011RUS:упражнение 02" redaktsioonide vahel
(→Mall) |
|||
(ei näidata sama kasutaja 4 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
− | Срок сдачи упражнения '''4-е занятие ( | + | Срок сдачи упражнения '''4-е занятие (12-е февраля)'''. |
− | Общая информация об упражнениях: [[ITI0011RUS_Practice]]. | + | Общая информация об упражнениях: [[ITI0011RUS_Practice]].<br/> |
+ | Обратно на [[ITI0011RUS|страницу предмета]]. | ||
== Описание == | == Описание == | ||
13. rida: | 14. rida: | ||
Но и это еще не все. Ваш друг не хочет докладывать инспекции о расходах. Если вдруг представитель инспекции поинтересуется днем, когда фирма потерпела убытки, ваш друг хочет, чтобы программа возвращала запись либо о предыдущем дне (если такая запись присутствует), о текущем дне или о завтрашнем дне - в соответствии с тем, какая из записей будет содержать наибольший результат (больше доход/меньше расход). | Но и это еще не все. Ваш друг не хочет докладывать инспекции о расходах. Если вдруг представитель инспекции поинтересуется днем, когда фирма потерпела убытки, ваш друг хочет, чтобы программа возвращала запись либо о предыдущем дне (если такая запись присутствует), о текущем дне или о завтрашнем дне - в соответствии с тем, какая из записей будет содержать наибольший результат (больше доход/меньше расход). | ||
− | == | + | == Шаблон == |
<source lang="java"> | <source lang="java"> | ||
62. rida: | 63. rida: | ||
</source> | </source> | ||
− | == | + | == Дополнительная информация == |
− | + | Вам следует написать тело функции getMyBigMoneys. Функция принимает два аргумента: массив целых чисел и целое число. Массив содержит историю доходов. Если длина массива 10, то соответственно, он содержит записи начиная с дня 1 и до дня 10 (обе границы включены в интервал). Второй аргумент - номер дня из этого списка, за который следует вернуть запись о доходах. | |
− | + | Функция возвращает одно число - значение дохода за выбранный день в соответствии с условиями описанными выше. | |
− | + | Длина массива: <pre>array.length</pre> | |
− | + | Элемент массива под индексом idx: <pre>array[idx]</pre> | |
− | + | Остаток деления: <pre>5 % 3 => 2</pre> | |
− | + | Прежде чем начать писать код советуем обдумать условия задания. Также следует подумать над примерами и понять их. Тогда можно приниматься за написание кода. |
Viimane redaktsioon: 12. veebruar 2015, kell 22:24
Срок сдачи упражнения 4-е занятие (12-е февраля).
Общая информация об упражнениях: ITI0011RUS_Practice.
Обратно на страницу предмета.
Описание
Один из ваших друзей едет на Гаваи и хочет там открыть фирму. Он не хочет говорить о том чем он там будет заниматься. Поскольку он знает, что у вас большой опыт в программировании, просит написать небольшую программу, которая помогла бы ему в работе. Дело в том, что у него недостаточно денег для того чтобы нанять бухгалтера и оплачивать его работу. Поэтому большую часть работы он выполняет в Excel. Время от времени налоговая инспекция проверяет как развивается бизнес. Представители налоговой инспекции приходят в офис и проверяют баланс доходов/расходов за любой выбранный день. Ваш друг просит вас написать программу, которая бы давала ответ на этот вопрос. Программе доступна информация о доходах за N последних дней (отрицательный доход означает расходы), причем значение N заранее неизвестно, а также конкретный день которым интересуются представители налоговой инспекции. История о доходах может хранить записи за последние, например, 20 дней. Представители налоговой инспекции могут поинтересоваться размеров доходов в первый день (день который был 20 дней назад), во второй день и т.д до 20-го дня. Записи о доходах также упорядочены, самая первая запись соответствует записи о доходах в первый день, и т.д.
Это еще не все. В штате Гаваи очень странная система налогообложения. Представители налоговой инспекции могут спросить информацию о будущем. Хотя бизнес вашего друга просуществовал всего 20 дней (тоесть существуют записи о доходах всего за 20 дней), представители налоговой инспекции могут спросить размер доходов в 21-й день. Согласно местным "законам", будущее можно предсказать по прошлому. Тоесть доход за 21-й день в точности идентичен доходу за 1-й день. Доход за 30-й день в точности такой же, как и доход за 10-й день. Точно таким же образом размер дохода происходит в будущем. Например, доход за 51-й день такой же, как и доход за 11-й день.
И это еще не все. Местная культура позволяет по воскресеньям проводить "дни увеличенного дохода". Это означает то, что в такой день доходы на 20% выше. Таким образом, если в обычное воскресенье фирма выручила 100 денежных единиц, то в "день повышенного дохода" запись о доходах может содержать 120 денежных единиц. В случае убытков, запись о доходах может содержать на 10% меньшее значение. Тоесть в случае доходов в -100 денежных единиц регистрируемый результат только -90. Известно, что ваш друг начал вести свой бизнес в понедельник. Производя арифместические расчеты, результат следует округлять в соответствии с правилами математики (11.5 => 12, 11.49 => 11, -12.5 => -13, -12.49 => -12), tulemus on alati täisarv.
Но и это еще не все. Ваш друг не хочет докладывать инспекции о расходах. Если вдруг представитель инспекции поинтересуется днем, когда фирма потерпела убытки, ваш друг хочет, чтобы программа возвращала запись либо о предыдущем дне (если такая запись присутствует), о текущем дне или о завтрашнем дне - в соответствии с тем, какая из записей будет содержать наибольший результат (больше доход/меньше расход).
Шаблон
<source lang="java"> /**
* Home assignment 02.´ * * Read more: https://courses.cs.ttu.ee/pages/ITI0011:упражнение_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 whatYouAskMon 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 whatYouAskMon) { // 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>
Дополнительная информация
Вам следует написать тело функции getMyBigMoneys. Функция принимает два аргумента: массив целых чисел и целое число. Массив содержит историю доходов. Если длина массива 10, то соответственно, он содержит записи начиная с дня 1 и до дня 10 (обе границы включены в интервал). Второй аргумент - номер дня из этого списка, за который следует вернуть запись о доходах.
Функция возвращает одно число - значение дохода за выбранный день в соответствии с условиями описанными выше.
Длина массива:
array.length
Элемент массива под индексом idx:
array[idx]
Остаток деления:
5 % 3 => 2
Прежде чем начать писать код советуем обдумать условия задания. Также следует подумать над примерами и понять их. Тогда можно приниматься за написание кода.