1. Почему при поиске индекса максимального элемента не нужно хранить само значение максимального элемента?
При поиске индекса максимального элемента само значение максимального элемента не нужно хранить, потому что индекс — это то, что нас интересует. Нам нужно знать где находится максимальный элемент, а не какое значение он имеет.
2. Как вы думаете, какую ошибку чаще всего делают начинающие программисты, выполняя реверс массива без использования встроенной функции?
Начинающие программисты при реверсе массива часто допускают ошибку в условии цикла или в индексации. Они могут неправильно определить границы цикла, использовать неверные индексы для обмена элементов, или забыть о необходимости обмена парой элементов.
3. Как вы думаете, какие проблемы (и ошибки) могут возникнуть при циклическом сдвиге массива вправо (без использования срезов)?
При циклическом сдвиге массива вправо без использования срезов могут возникнуть проблемы с переписыванием элементов и потерей данных. Если некорректно организовать перенос элементов, последний элемент может быть перезаписан, и часть данных будет утеряна.
4. Что произойдёт с массивом при выполнении следующего фрагмента программы:
for i in range(Nl):
A[i+1] = A[i]
Фрагмент кода for i in range(Nl): A[i+1] = A[i] сдвигает все элементы массива A на одну позицию вправо, записывая значение последнего элемента в последнюю ячейку, тем самым, перезаписывая значение последнего элемента. Первый элемент массива будет потерян.
5. Как (при использовании приведённого алгоритма поиска) определить, что элемент не найден?
При использовании алгоритма линейного поиска, элемент считается не найденным, если цикл завершается, и не было найдено совпадение с искомым значением. Можно использовать флаг или специальное значение для индикации неуспешного поиска.
6. Что такое выход за границы массива? Почему он может быть опасен?
Выход за границы массива – это попытка доступа к элементу массива с индексом, выходящим за пределы допустимого диапазона индексов (от 0 до длины массива минус 1). Он опасен, потому что может привести к непредсказуемому поведению программы, повреждению данных или к сбою программы.
7. Сравните разные методы отбора части элементов одного массива в другой массив. Какой из них вам больше нравится? Почему?
Существуют различные методы отбора части элементов одного массива в другой: копирование с использованием цикла, копирование с использованием срезов (в языках, поддерживающих срезы), использование фильтров (в функциональном программировании). Метод, который “лучше”, зависит от конкретного языка программирования, требуемой эффективности и читаемости кода. Срезы обычно наиболее компактны и эффективны (когда доступны), но циклы дают больше контроля над процессом отбора.