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 после выполнения каждого оператора:
Const n=15; var d:array[1..n] of integer; i:integer; begin //Инициализация и вывод Randomize; Writeln('Исходный массив в столбик:'); for i:=1 to n do begin d[i]:=Random(-20,18); Writeln(d[i]:4) end; Writeln('Исходный массив в строку:'); for i:=1 to n do Write(d[i]:4); Writeln; { Задание 1. Найдите отдельное количество отрицательных и положительных элементов массива. } begin var ineg,ipos:integer; ineg:=0; ipos:=0; for i:=1 to n do if d[i]>0 then Inc(ipos) else if d[i]<0 then Inc(ineg); Writeln('Задание 1'); Writeln('Количество отрицательных элементов ',ineg, ', положительных- ',ipos) end; { Задание 2. Найдите произведение элементов, имеющих значение меньше -2 } begin var p:integer:=1; for i:=1 to n do if d[i]<-2 then p*=d[i]; Writeln('Задание 2'); Writeln('Произведение элементов, меньших -2: ',p) end; { Задание 3. Найдите максимальный элемент массива из элементов, стоящих на местах, номера которых кратны пяти. } begin var dmax:integer; i:=10; dmax:=d[5]; while i<=n do begin if dmax<d[i] then dmax:=d[i]; i+=5 end; Writeln('Задание 3'); Writeln('Максимальный элемент массива из элементов,'); Writeln('стоящих на местах с номером, кратным 5: ',dmax) end; { Задание 4. Замените отрицательные элементы, стоящие на нечётных местах на последний элемент массива } i:=1; while i<=n do begin if d[i]<0 then d[i]:=d[n]; i+=2 end; Writeln('Задание 4'); Writeln('Отрицательные элементы, стоящие на нечётных местах,'); Writeln('заменены последним элементом массива:'); for i:=1 to n do Write(d[i]:4); Writeln; { Задание 5. Если в массиве имеются нулевые элементы, то найдите сумму элементов массива, имеющих значение, кратное трем, иначе выведите на экран положительные элементы массива } begin var sum:integer:=0; var FlagSum:boolean:=False; for i:=1 to n do begin Flagsum:=(d[i]=0); if FlagSum then break end; Writeln('Задание 5'); if FlagSum then begin for i:=1 to n do if (d[i] mod 3)=0 then sum+=d[i]; Writeln('Сумма элементов, имеющих значение, кратное трем: ',sum) end else begin Writeln('Положительные элементы массива:'); for i:=1 to n do if d[i]>0 then Write(d[i]:4); Writeln end end; { Задание 6*. Найти в массиве элементы, кратные 12, и вывести на экран их номера. Если таких элементов нет, то вывести сообщение об этом на экран. } Writeln('Задание 6*'); begin var k:integer:=0; var p:array[1..n] of integer; for i:=1 to n do if (d[i] mod 12)=0 then begin Inc(k); p[k]:=i end; if k>0 then begin Writeln('Номера элементов массива, кратных 12:'); for i:=1 to k do Write(p[i]:3); Writeln end else Writeln('В массиве нет элементов, кратных 12') end end.
Тестовое решение: Исходный массив в столбик: -12 -5 -2 15 -20 13 -4 -2 12 17 12 14 2 3 -20 Исходный массив в строку: -12 -5 -2 15 -20 13 -4 -2 12 17 12 14 2 3 -20 Задание 1 Количество отрицательных элементов 7, положительных- 8 Задание 2 Произведение элементов, меньших -2: -96000 Задание 3 Максимальный элемент массива из элементов, стоящих на местах с номером, кратным 5: 17 Задание 4 Отрицательные элементы, стоящие на нечётных местах, заменены последним элементом массива: -20 -5 -20 15 -20 13 -20 -2 12 17 12 14 2 3 -20 Задание 5 Положительные элементы массива: 15 13 12 17 12 14 2 3 Задание 6* Номера элементов массива, кратных 12: 9 11
Задание 7*. Выведите на экран одномерный массив, раскрасив в нем красным цветом кратные 12 элементы.
uses GraphABC; const n=15; var d:array[1..n] of integer; i:integer; begin SetWindowSize(800,600); Randomize; for i:=1 to n do begin d[i]:=Random(-20,18); if (d[i] mod 12)=0 then begin SetFontColor(clRed); Write(d[i]:4); SetFontColor(clBlack) end else Write(d[i]:4) end; Writeln end.
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 после выполнения каждого оператора:
Объяснение: