Со временем, если будешь достаточно практиковаться, всё встанет на свои места. Ты "вроде" знаешь теорию но на первой практике сложно связать всё воедино. Уверен что так у всех. У меня было точно так же.
Но судя по твоим вопросам, ты "функции, циклы и т.д." знаешь не достаточно хорошо. В одном из вопросов писал что не знаешь цикла "for", хотя это основа основ.
Советую тебе решать разного рода задачи, начиная от лёгких и постепенно увеличивая сложность. Те задачи что даются тебе с трудом - разделяй на подзадачи.
Как пример возьмём твою задачу.
Помним что кроме самой функции нас ничего интересует. На ввод принимается массив, на вывод - изменённый массив.
Далее расписываем алгоритм действий. Ставим вопрос - какие действия необходимы чтобы решить задачу? С каких начать? Как прочитать значение массива? Как проверить значение на "чётность"? Как добавить его в новый массив?
Для ответа на эти вопросы, тебе необходимо знать циклы и как они применяются. Нужны знания о массивах и их базовых методах и как создавать переменные и считывать/записывать данные в массив. Ну и для определения чётного числа необходимо знать математические операторы. В данном случае % (modulus -> остаток после деления).
Если что-то из этого не знаешь, то параллельно придётся искать информацию во время решения задачи. Я сам не всегда всё знаю/помню и частенько заглядываю в документацию.
Пишем все шаги на простом русском:
- Создаём пустой массив для последующего добавления в него чётных чисел.
- Считываем следующий элемент предоставленного нам массива.
- Проверяем является ли он чётным.
- В случае чётного числа добавляем его в созданный нами массив.
- Проверяем достигли ли мы конца массива.
- Повторяем 2.
- Выводим изменённый массив.
Надо понимать что массивы всегда сопровождаются циклами, так как ты не можешь сразу прочесть весь массив и сравнить все значения. Одно действие за раз.
Реализуем:
Пояснения: