Решить 2 задачи на языке Kotlin
Нужно решить 2 задачи на языке Kotlin
Сроки можно обговорить
1.
В качестве практики работы с файлами, массивами и циклами напишите программу подбора пароля.
Вам известен хеш, вычисленный алгоритмом CRC32 от исходного пароля, который имеет вид word123, т.е. состоит из слова и числа (от 1 до 9999). Используйте пример (инструкции в комментариях). Словарь для подбора содержит 10000 слов и дан в виде текстового файла https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt
Текстовый файл со словами нужно скачать в текстовом формате (см. кнопку Raw на странице) и поместить в папку с проектом.
В качестве ответа приложите исходный текст программы и демонстрацию работы (снимок экрана)
2.
Для получения состояния погоды удобно использовать API сервиса Openweathermap. Все города, которые есть в его базе доступны в формате JSON в архиве http://bulk.openweathermap.org/sample/city.list.min.json.gz
Файл большой, поэтому рекомендуется взять из него небольшую часть записей, каждая из которых имеет формат:
{
"id":707860,
"name":"Hurzuf",
"country":"UA",
"coord":{
"lon":34.283333,
"lat":44.549999
}
}
Вам требуется создать приложение для поиска ближайших городов. Пользователь вводит город (из тех, что есть в JSON файле) и предельное расстояние L от него.
При десериализации учитывайте, что в файле JSON требуется, чтобы он начинался с объявления поля и придётся модифицировать файл.
{ "name": [1, 2, 3, 4] }
если просто десериализовывать массив, то возникнет ошибка
{ [1, 2, 3, 4] }
Список городов берётся из файла JSON, для этого вам потребуется десериализовать список JSON-объектов и определить расстояние до каждого. Определить расстояние по координатам можно, используя формулу для земной сферы или готовую библиотеку. Примеры библиотек:
https://github.com/piruin/geok
https://github.com/grumlimited/geocalc
В качестве решения приложите JSON-файл, исходный код программы и демонстрацию работы.