Данная работа необходима для проверки ваших знаний и навыков по итогу прохождения первого блока обучения на программе разработчик. Мы должны убедиться что базовое знакомство с it прошло успешно.
Задача алгоритмически не самая сложная, однако для полценного выполнения проверочной работы необходимо:
- Создать репозиторий на GitHub
- Нарисовать блок-схему алгоритма (можно обойтись блок-схемой основной содержательной части, если вы выделяете ее в отдельный метод)
- Снабдить репозиторий оформленным текстовым описанием решения (файл README.md)
- Написать программу, решающую поставленную задачу
- Использовать контроль версий в работе над этим небольшим проектом (не должно быть так что все залито одним коммитом, как минимум этапы 2, 3 и 4 должны быть расположены в разных коммитах)
Задача: Написать программу, которая из имеющегося массива строк формирует массив из строк, длина которых меньше либо равна 3 символа. Первоначальный массив можно ввести с клавиатуры, либо задать на старте выполнения алгоритма. При решении не рекомендуется пользоваться коллекциями, лучше обойтись исключительно массивами.
Примеры:
["hello", "2", "world", ":-)"] -> ["2", ":-)"]
["1234", "1567", "-2", "computer science"] -> ["-2"]
["Russia", "Denmark", "Kazan"] -> []
Тут приведено описание работы основного метода решения поставленной задачи. В своем решении я первым делом нахожу размер новой таблицы, которую необходимо создать для записывания в нее строк длина которых меньше или равна 3. Конечно, можно было создавать массив с таким же размером как и первоначальный, ведь нужных нам элементов из ниоткуда не появится, но таких элементов может быть значительно меньше или не быть вовсе. И в таком случае мы выделяем лишнюю память для массива.
Итак, изначально у нас есть исходный массив array, и введенные мной переменные size, k, maxLenght.
- size - это размер нашего нового массива, а переменная равна 0, так как необходимый размер еще нужно найти;
- k - это счетчик, необходимый чтоб пройтись по изначальному массиву и призванный помочь найти size;
- maxLenght - это максимальная длина строки. Служит для нас критерием отбора элементов в новый массив. В нашем случае переменная равна 3.
После того как переменные заданы начинается 1я часть работы программы.
Мы запускаем цикл c переменной k, который будет работать до тех пор пока он меньше размера основного массива array. В самом цикле мы задаем условие при котором если длинна k-тый элемент массива array, меньше или равен переменной maxLenght, то мы увеличиваем размер новой таблицы size на 1. После того как цикл отработает мы получим нужный для нас размер новой таблицы.
Первая часть программы завершена. Перед началом работы 2й части, мы вводим новые переменные. Сначала мы создаем новый массив newArray размером size, найденным в 1й части программы, а так же вводим 2 новых счетчика i и j, которые изначально равны 0.
С началом работы 2й части программы, мы сразу запускаем цикл который переберет все элементы исходного массива.
Внутри цикла мы ставим аналогичное условие тому, которое было в 1й части, если длинна i-го элемента массива array, меньше или равна переменной maxLenght, то в j-й элемент новой таблицы мы запишем этот элемент и в таком случае увеличим счетчик j и i на 1. Если условие не выполняется, то просто увеличим i на 1.
После того как цикл доработает мы вернем в программу результат метода в виде полученного нового массива newArray.