1. Вспомните, как в используемом вами языке программирования выделить в памяти массив A из N элементов и заполнить его нулями:
Место для ввода текста.
заполнить массив натуральными числами от 1 до N:
Место для ввода текста.
заполнить массив случайными числами в диапазоне [50,100]:
Место для ввода текста.
найти сумму всех элементов массива:
Место для ввода текста.
найти сумму чётных элементов массива:
Место для ввода текста.
найти количество отрицательных элементов массива:
Место для ввода текста.
найти максимальный элемент массива:
Место для ввода текста.
2. Представьте себе, что в кофейной чашке налит сок, а в стакане – кофе, и вы хотите, чтобы было наоборот. Что вы сделаете?
1)
2)
3)
3. Требуется поменять местами соседние элементы массива A, в котором чётное число элементов N. (1-й элемент меняется со 2-м, 3-й – с 4-м и т.д.) Выполните вручную следующий алгоритм для массива {1, 2, 3, 4} (N = 4).
for i in range(N):
поменять местами A[i] и A[i+1]
Заполните пропуски в таблице:
Почему этот алгоритм не сработал так, как нужно:
Место для ввода текста.
Какая ошибка произошла на последнем шаге выполнения цикла:
Место для ввода текста.
4. Предложите другое решение задачи из предыдущего задания, записав нужные операторы в теле цикла.
i = 1
while i < N:
5. Требуется выполнить реверс массива, то есть переставить элементы массива из N элементов в обратном порядке, так чтобы первый элемент стал последним, а последний – первым. С каким элементом нужно поменять местами
элемент A[0] c
элемент A[1] c
элемент A[i] c
6. Требуется выполнить реверс массива A, в котором N элементов. Выполните вручную следующий алгоритм для массива {1, 2, 3, 4} (N = 4).
for i in range(N):
поменять местами A[i] и A[N-1-i]
Заполните пропуски в таблице:
Почему этот алгоритм не сработал так, как нужно:
Место для ввода текста.
7. Запишите в тетради операторы, которые нужно добавить в тело цикла для того, чтобы выполнить реверс массива. Для обмена используйте вс переменную с.
for i in range(N // 2):
8. Запишите в тетради другое решение задачи реверса, которое использует цикл с условием (пока, while):
Место для ввода текста.
9. Катя торопилась и написала такой алгоритм поиска значения X в массиве:
i = 0
while A[i] != X:
i += 1
print( "A[", i, "]=", X )
Проверьте, используя ручную прокрутку, правильно ли сработает алгоритм, если искать в массиве {1, 2, 3} число 2? число 4?
10. Запишите фрагмент программы для поиска номера минимального элемента массива (он должен быть записан в переменную nMin):
nMin = 0
for j in range( ):
if then
11. Запишите в тетради фрагмент программы, который меняет местами элементы A[i] и A[nMin]. Используйте вс переменную c.
Место для ввода текста.
12. Нарисуйте в тетради интеллект-карту параграфа «Обработка массивов»
13. В переменных записаны значения a = 1, b = 2 и с = 3. Как изменятся значения переменных после выполнении алгоритма:
a b c
1 2 3
c = a
b = a
a = c
Исправьте один символ в программе так, чтобы получился правильный алгоритм обмена значений переменных a и b.
c = a
b = a
a = c
14. Что произойдет с массивом [1, 2, 3, 4] (N = 4) при выполнении следующего фрагмента программы:
for i in range(N-1):
A[i] = A[i+1]
Покажите, как меняются элементы массива и значение переменной i после выполнения каждого оператора:
15. Что произойдет с массивом [1, 2, 3, 4] (N = 4) при выполнении следующего фрагмента программы:
for i in range(N-1):
A[i+1] = A[i]
Покажите, как меняются элементы массива и значение переменной i после выполнения каждого оператора:
16. Что произойдет с массивом [1, 2, 3, 4, 5, 6] (N = 6) при выполнении следующего фрагмента программы:
i = 0
while i < N-2:
c = A[i]
A[i] = A[i+1]
A[i+1] = A[i+2]
A[i+2] = c
i += 3
Покажите, как меняются элементы массива, а также переменные i и c после выполнения каждого оператора:
1. Вспомните, как в используемом вами языке программирования
выделить в памяти массив A из N элементов и заполнить его нулями:
Место для ввода текста.
заполнить массив натуральными числами от 1 до N:
Место для ввода текста.
заполнить массив случайными числами в диапазоне [50,100]:
Место для ввода текста.
найти сумму всех элементов массива:
Место для ввода текста.
найти сумму чётных элементов массива:
Место для ввода текста.
найти количество отрицательных элементов массива:
Место для ввода текста.
найти максимальный элемент массива:
Место для ввода текста.
2. Представьте себе, что в кофейной чашке налит сок, а в стакане – кофе, и вы хотите, чтобы было наоборот. Что вы сделаете?
1)
2)
3)
3. Требуется поменять местами соседние элементы массива A, в котором чётное число элементов N. (1-й элемент меняется со 2-м, 3-й – с 4-м и т.д.) Выполните вручную следующий алгоритм для массива {1, 2, 3, 4} (N = 4).
for i in range(N):
поменять местами A[i] и A[i+1]
Заполните пропуски в таблице:
Почему этот алгоритм не сработал так, как нужно:
Место для ввода текста.
Какая ошибка произошла на последнем шаге выполнения цикла:
Место для ввода текста.
4. Предложите другое решение задачи из предыдущего задания, записав нужные операторы в теле цикла.
i = 1
while i < N:
5. Требуется выполнить реверс массива, то есть переставить элементы массива из N элементов в обратном порядке, так чтобы первый элемент стал последним, а последний – первым. С каким элементом нужно поменять местами
элемент A[0] c
элемент A[1] c
элемент A[i] c
6. Требуется выполнить реверс массива A, в котором N элементов. Выполните вручную следующий алгоритм для массива {1, 2, 3, 4} (N = 4).
for i in range(N):
поменять местами A[i] и A[N-1-i]
Заполните пропуски в таблице:
Почему этот алгоритм не сработал так, как нужно:
Место для ввода текста.
7. Запишите в тетради операторы, которые нужно добавить в тело цикла для того, чтобы выполнить реверс массива. Для обмена используйте вс переменную с.
for i in range(N // 2):
8. Запишите в тетради другое решение задачи реверса, которое использует цикл с условием (пока, while):
Место для ввода текста.
9. Катя торопилась и написала такой алгоритм поиска значения X в массиве:
i = 0
while A[i] != X:
i += 1
print( "A[", i, "]=", X )
Проверьте, используя ручную прокрутку, правильно ли сработает алгоритм, если искать в массиве {1, 2, 3} число 2? число 4?
10. Запишите фрагмент программы для поиска номера минимального элемента массива (он должен быть записан в переменную nMin):
nMin = 0
for j in range( ):
if then
11. Запишите в тетради фрагмент программы, который меняет местами элементы A[i] и A[nMin]. Используйте вс переменную c.
Место для ввода текста.
12. Нарисуйте в тетради интеллект-карту параграфа «Обработка массивов»
13. В переменных записаны значения a = 1, b = 2 и с = 3. Как изменятся значения переменных после выполнении алгоритма:
a b c
1 2 3
c = a
b = a
a = c
Исправьте один символ в программе так, чтобы получился правильный алгоритм обмена значений переменных a и b.
c = a
b = a
a = c
14. Что произойдет с массивом [1, 2, 3, 4] (N = 4) при выполнении следующего фрагмента программы:
for i in range(N-1):
A[i] = A[i+1]
Покажите, как меняются элементы массива и значение переменной i после выполнения каждого оператора:
15. Что произойдет с массивом [1, 2, 3, 4] (N = 4) при выполнении следующего фрагмента программы:
for i in range(N-1):
A[i+1] = A[i]
Покажите, как меняются элементы массива и значение переменной i после выполнения каждого оператора:
16. Что произойдет с массивом [1, 2, 3, 4, 5, 6] (N = 6) при выполнении следующего фрагмента программы:
i = 0
while i < N-2:
c = A[i]
A[i] = A[i+1]
A[i+1] = A[i+2]
A[i+2] = c
i += 3
Покажите, как меняются элементы массива, а также переменные i и c после выполнения каждого оператора:
Объяснение:
```
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = 0;
}
```
Обоснование: Массив A объявляется с помощью оператора `new`, указывая тип элементов массива (`int`) и количество элементов (`N`). Затем, с помощью цикла `for` массив заполняется нулями. Цикл проходит по индексам массива от 0 до N-1 и присваивает каждому элементу значение 0.
2. Чтобы заполнить массив A натуральными числами от 1 до N, нужно использовать следующий код:
```
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = i + 1;
}
```
Обоснование: Аналогично предыдущему случаю, массив A объявляется и выделяется в памяти. Затем с помощью цикла `for` каждому элементу массива присваивается значение i + 1, где i - индекс элемента массива.
3. Чтобы заполнить массив A случайными числами в диапазоне [50,100], нужно использовать следующий код:
```
import java.util.Random;
int[] A = new int[N];
Random random = new Random();
for (int i = 0; i < N; i++) {
A[i] = random.nextInt(51) + 50;
}
```
Обоснование: В данном случае, кроме объявления и выделения памяти для массива A, используется класс `Random` для генерации случайных чисел. В цикле `for` каждому элементу массива присваивается случайное значение, полученное с помощью метода `nextInt()`. Аргументом метода является граница случайных чисел, равная 51, а затем к полученному числу прибавляется 50, чтобы получить числа в диапазоне [50,100].
4. Чтобы найти сумму всех элементов массива, нужно использовать следующий код:
```
int sum = 0;
for (int i = 0; i < N; i++) {
sum += A[i];
}
```
Обоснование: Здесь объявляется переменная `sum`, которая будет хранить сумму элементов массива. С помощью цикла `for` проходим по всем элементам массива и прибавляем их к переменной `sum`.
5. Чтобы найти сумму чётных элементов массива, нужно использовать следующий код:
```
int sumEven = 0;
for (int i = 0; i < N; i++) {
if (A[i] % 2 == 0) {
sumEven += A[i];
}
}
```
Обоснование: В данном случае, кроме объявления переменной `sumEven`, используется условный оператор `if`, чтобы проверить, является ли текущий элемент массива чётным (делится на 2 без остатка). Если условие выполняется, то элемент прибавляется к переменной `sumEven`.
6. Чтобы найти количество отрицательных элементов массива, нужно использовать следующий код:
```
int countNegative = 0;
for (int i = 0; i < N; i++) {
if (A[i] < 0) {
countNegative++;
}
}
```
Обоснование: Здесь объявляется переменная `countNegative`, которая будет хранить количество отрицательных элементов массива. В цикле `for` проверяем условие, является ли текущий элемент отрицательным числом. Если условие выполняется, то увеличиваем значение переменной `countNegative` на 1.
7. Чтобы найти максимальный элемент массива, нужно использовать следующий код:
```
int max = A[0];
for (int i = 1; i < N; i++) {
if (A[i] > max) {
max = A[i];
}
}
```
Обоснование: В данном случае объявляется переменная `max` и присваивается значение первого элемента массива `A[0]`. Затем с помощью цикла `for` проверяем каждый элемент массива. Если текущий элемент больше значения переменной `max`, то присваиваем текущее значение элемента переменной `max`.
8. Чтобы менять содержимое двух переменных местами можно использовать операцию присваивания с использованием третьей временной переменной. Например:
```
int temp = a;
a = b;
b = temp;
```
Обоснование: В данном примере используется переменная `temp`, которая помогает временно сохранить значение переменной `a`. После присваивания значения переменной `b` переменной `a`, значение переменной `temp` присваивается переменной `b`.
9. Для выполнения реверса массива с использованием цикла `for` можно использовать следующий код:
```
for (int i = 0; i < N / 2; i++) {
int temp = A[i];
A[i] = A[N - 1 - i];
A[N - 1 - i] = temp;
}
```
Обоснование: Здесь использован цикл `for`, который проходит по первой половине массива. Внутри цикла меняем значения элементов массива местами, используя временную переменную `temp`. Первый элемент меняем с последним, второй с предпоследним и так далее.
10. Алгоритм поиска значения X в массиве, представленный Катей, является линейным поисковым алгоритмом. Он будет работать корректно, если искомое значение есть в массиве. Однако, если искомого значения нет в массиве, алгоритм будет продолжать выполнение и выйдет за пределы индексов массива, что может вызвать ошибку.
11. Для поиска номера минимального элемента массива можно использовать следующий код:
```
int nMin = 0;
for (int j = 1; j < N; j++) {
if (A[j] < A[nMin]) {
nMin = j;
}
}
```
Обоснование: В данном примере объявляется переменная `nMin`, которая будет хранить номер минимального элемента. В цикле `for` проверяются все элементы массива, и если текущий элемент меньше элемента с индексом `nMin`, то индекс `nMin` обновляется.
12. Интеллект-карта параграфа «Обработка массивов» может быть составлена в виде диаграммы, которая включает такие темы, как создание массива, заполнение массива, обращение к элементам массива, поиск минимального и максимального элементов, сортировка массива, поиск суммы элементов, реверс массива и другие операции с массивами.
13. При выполнении данного алгоритма с искомыми значениями 2 и 4 в массиве [1, 2, 3], алгоритм сработает правильно при поиске числа 2, так как оно есть в массиве и находится на второй позиции. Однако, при поиске числа 4, алгоритм будет продолжать выполнение и выйдет за пределы индексов массива, так как 4 отсутствует в массиве [1, 2, 3].
14. После выполнения каждого оператора фрагмента программы с массивом [1, 2, 3, 4], изменения будут следующими:
- Первая итерация цикла: `A[0] = A[1]` -> [2, 2, 3, 4], `i = 0 + 1 = 1`
- Вторая итерация цикла: `A[1] = A[2]` -> [2, 3, 3, 4], `i = 1 + 1 = 2`
- Последняя итерация цикла: `A[2] =