{"id":19411666,"url":"https://github.com/levvolkov/stringsandarrays","last_synced_at":"2026-06-18T00:31:34.700Z","repository":{"id":218957576,"uuid":"720434150","full_name":"levvolkov/stringsAndArrays","owner":"levvolkov","description":"6 «Строки и массивы»","archived":false,"fork":false,"pushed_at":"2024-03-21T10:46:16.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T02:34:13.513Z","etag":null,"topics":["java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/levvolkov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-18T13:29:41.000Z","updated_at":"2025-02-02T16:09:32.000Z","dependencies_parsed_at":"2024-02-07T14:41:40.603Z","dependency_job_id":null,"html_url":"https://github.com/levvolkov/stringsAndArrays","commit_stats":null,"previous_names":["levvolkov/stringsandarrays"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/levvolkov/stringsAndArrays","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2FstringsAndArrays","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2FstringsAndArrays/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2FstringsAndArrays/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2FstringsAndArrays/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levvolkov","download_url":"https://codeload.github.com/levvolkov/stringsAndArrays/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2FstringsAndArrays/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34471638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java"],"created_at":"2024-11-10T12:22:34.282Z","updated_at":"2026-06-18T00:31:34.676Z","avatar_url":"https://github.com/levvolkov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 6. Домашнее задание к занятию «Строки и массивы»\n\n## Цель задания\n\n1. Научиться использовать циклы для работы с массивами.\n\n------\n\n## Инструкция к заданию\n\n1. Скачайте и установите профессиональный редактор кода [Intellij Idea Community Version](https://www.jetbrains.com/idea/download/).\n1. Откройте IDEA и [создайте и настройте новый Maven-проект](https://github.com/netology-code/javaqa-homeworks-video/blob/javaqa-55/QA_Maven_Idea_Create.md). Под каждую задачу следует создавать отдельный проект, если обратное не сказано в условии.\n2. Создайте пустой репозиторий на GitHub и свяжите его с папкой вашего проекта, а не с какой-либо другой.\n3. Правильно настройте репозиторий в плане `.gitignore`. Проигнорируйте папки `.idea` и `target` (раньше была `out`) и `.iml`-файл — их в репозитории быть не должно.\n4. Выполните в IDEA требуемую задачу согласно условию.\n5. Проверьте соблюдение [правил форматирования кода](https://github.com/netology-code/javaqa-homeworks-video/blob/javaqa-55/QA_Java_Idea_Format.md).\n6. Убедитесь, что при запуске `mvn clean test` все тесты запускаются, проходят, а сборка завершается успешно.\n7. Закоммитьте и отправьте в репозиторий содержимое папки проекта.\n\n------\n\n## Материалы, которые пригодятся для выполнения задания\n\n1. [Как создать Maven-проект в IDEA?](https://github.com/netology-code/javaqa-homeworks-video/blob/javaqa-55/QA_Maven_Idea_Create.md)\n1. [Как отформатировать код в Java?](https://github.com/netology-code/javaqa-homeworks-video/blob/javaqa-55/QA_Java_Idea_Format.md)\n\n------\n\n## Задание 1 — обязательное\n\nСтатистика — очень важный компонент любого бизнеса. У вас есть набор данных о продажах конкретного предприятия по месяцам: `[8, 15, 13, 15, 17, 20, 19, 20, 7, 14, 14, 18]`.\n\nПрограммисты все заняты, и вам поручили написать небольшой сервис, который умеет по предоставленному ему массиву месячных продаж рассчитывать:\n* сумму всех продаж;\n* среднюю сумму продаж в месяц;\n* номер месяца, в котором был пик продаж, то есть осуществлены продажи на максимальную сумму*;\n* номер месяца, в котором был минимум продаж, то есть осуществлены продажи на минимальную сумму*;\n* количество месяцев, в которых продажи были ниже среднего (см. п.2);\n* количество месяцев, в которых продажи были выше среднего (см. п.2).\n\nПримечание: в вашем задании нужно найти последний месяц, соответствующий условиям.\n\nСервис должен представлять собой один класс с шестью методами — по методу на пункт. Входные данные для расчёта сервис должен принимать в параметрах своих методов. Обратите внимание, что написанный класс должен уметь работать с любыми корректными значениями в массиве продаж, а приведённый выше набор — это лишь пример данных для ваших тестов на методы создаваемого класса.\n\nМетод ниже считает номер месяца минимальных продаж. \nЛогика его такова: заводим переменную `minMonth` для хранения номера ячейки в массиве того месяца, в котором были минимальные продажи среди всех уже просмотренных.\nИзначально мы никакие ещё не просмотрели, потому запишем туда номер 0.\nБудем циклом поочерёдно смотреть месяцы продаж, перебирая все номера ячеек.\nЕсли мы смотрим на месяц, в котором продажи меньше, чем в том, который мы помним как минимальный из просмотренных ранее, то считаем теперь этот рассматриваемый месяц минимальным и присваиваем в `minMonth` значение `i`.\nИ так до конца массива продаж, тогда после цикла в `minMonth` у нас будет лежать номер месяца минимальных продаж.\nОстанется только один момент: мы нумеровали месяцы с нуля, так как в массивах ячейки нумеруются с нуля, потому, отдавая ответ, нам надо прибавить 1.\n\n```java\n    public int minSales(long[] sales) {\n        int minMonth = 0; // номер месяца с минимальными продажами среди просмотренных ранее\n\n        for (int i = 0; i \u003c sales.length; i++) {\n            if (sales[i] \u003c= sales[minMonth]) { // значит, в рассматриваемом i-м месяце продаж меньше\n                minMonth = i; // запомним его как минимальный\n            }\n        }\n\n        return minMonth + 1; // месяца нумеруются с 1, а индексы массива с 0, нужно сдвинуть ответ на 1\n    }\n```\n\nВам необходимо\n1. Создать Maven-проект, в котором в package `ru.netology.stats` будет класс `StatsService` с необходимыми методами, сами придумайте им говорящие названия.\n1. Написать на каждый метод по одному автотесту, который проверяет правильность работы на тестовых данных.\n1. Убедиться, что ваши автотесты работают и проходят.\n\n------\n\n## Правила приёма работы\n\nПрикреплена одна ссылка на публичный репозиторий с решением задачи.\n\n------\n\n## Критерии оценки\n\n1. В каждом репозитории размещено содержимое папки проекта IDEA. Корнем репозитория должна быть именно папка проекта — не папка `src`, не папка внутри которой лежит папка проекта. Таким образом, в корне репозитория должна лежать сразу папка `src`.\n1. Есть файл `.gitignore`, игнорирующий ненужные файлы и папки, которые должны отсутствовать в репозитории. Если они присутствуют, их нужно оттуда удалить.\n1. Программа соответствует всем требованиям из условия задачи.\n1. Программа использует только те инструменты языка, которые мы проходили или которые прямо разрешены условием задачи.\n1. Программа работает правильно на всех примерах из условия.\n1. Программный код отформатирован и соответствует пройденным требованиям к качеству кода.\n1. При запуске `mvn clean test` тесты запускаются и проходят, а сборка завершается успешно.\n1. Программа спроектирована достаточно логично и правильно, не противоречит общепринятым в производстве практикам и традициям.\n1. При наличии недочётов, в зависимости от их серьёзности и количества, работа может быть отправлена на доработку или принята — решение принимается на основе экспертной оценки работы.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevvolkov%2Fstringsandarrays","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flevvolkov%2Fstringsandarrays","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevvolkov%2Fstringsandarrays/lists"}