Обработка массивов
К.Ю.Поляков, Е.А.Еремин
9 класс. § 20 стр 155-158
Видеоурок № 1(массивы) в 9 классе
Гаврюкова Г.А. школа № 68 Рязань 2021
Массив – это группа переменных одного типа, расположенных в соседних ячейках и имеющих общее имя
Заполнение массива
A[1]=5
A[2]=-8
A[3]=7
A[4]=69
A[5]=37
По формуле
(в тексте программы)
- A[i] := i * i
- A[i] := 20 + random(81);
Во время работы программы
(после запуска на выполнение)
{Ввод/Вывод элементов массива с клавиатуры}
program readArray;
const N = 5 ;
var A: array [ 1. .N] of integer ;
i: integer ;
begin
writeln ( 'Введите элементы массива:' );
for i:= 1 to N do
begin
write( ' элемент № ' ,i, ' = ' );
read(A[i])
end ;
writeln ( 'Элементы Вашего массива:' );
for i:= 1 to N do
write( ' A[' ,i, ']=' ,A[i] );
end .
I = 1 , 5
Ввод I элемента
I = 1 , 5
Вывод I элемента
3
{ Заполнение массива случайными числами
Вход: нет
Результат: 7 случайных чисел от -20 до 20}
program randArray;
var A: array [ 1..7 ] of integer ;
i: integer ;
begin
for i:= 1 to 7 do
begin
A[i]:= random( 41 )- 20 ;
writeln( 'A[' ,i, ']= ' , A[i]);
end ;
end .
I = 1 , 7
Ввод I элемента
Вывод I элемента
Заполнение и вывод массива Вход: нет Результат: 1 4 9 16 25
Массив задом наперёд
4
program inputArray;
Исходный массив:
const N = 5 ;
A[1]=1
var A: array [ 1. .N] of integer ;
A[2]=2
A[3]=3
i: integer ;
begin
A[4]=4
A[5]=5
writeln ( 'Исходный массив:' );
for i:= 1 to N do begin
A[i]:=i;
Массив задом наперёд:
A[5]=5
writeln( 'A[' ,i, ']=' ,A[i], ' ' );
A[4]=4
end ;
writeln ( 'Массив задом наперёд:' );
A[3]=3
A[2]=2
for i:=N downto 1 do
writeln( 'A[' ,i, ']=' ,A[i], ' ' );
A[1]=1
end .
4
Компьютерный практикум №1
вход
A[1]= 3
A[2]= 4
A[3]= 1
A[4]= 7
A[5]= 5
A[6]= 2
A[7]= 10
A[8]= 6
выход
A[1]= 9
A[2]= 16
A[3]= 1
A[4]= 49
A[5]= 25
A[6]= 4
A[7]= 100
A[8]= 36
Напишите программу, которая заполняет массив из
N = 8 элементов случайными числами
в диапазоне [0,10] и выводит его на экран.
А затем выводит на экран квадраты всех элементов массива.
4
Квадраты всех элементов массива
вход
A[1]= 3
A[2]= 4
A[3]= 1
A[4]= 7
A[5]= 5
A[6]= 2
A[7]= 10
A[8]= 6
выход
A[1]= 9
A[2]= 16
A[3]= 1
A[4]= 49
A[5]= 25
A[6]= 4
A[7]= 100
A[8]= 36
program rvadrati;
var A: array [ 1..8 ] of integer ;
i: integer ;
begin
writeln( 'вход' );
for i:= 1 to 8 do begin
A[i]:= random( 11 );
writeln( 'A[' ,i, ']= ' , A[i]);
end ;
writeln( 'выход' );
for i:= 1 to 8 do begin
writeln( 'A[' ,i, ']= ' , A[i]*A[i]);
end ;
end .
4
Перестановка элементов массива
Как поменять местами значения двух переменных t и k ?
?
вспомогательная переменная
Соседние элементы массива:
z:= t;
с:= A[i];
t:= k;
A[i]:= A[i+1];
k:= z;
A[i+1]:= c;
Перестановка пар соседних элементов Задача 1 стр 156
Массив A содержит чётное количество элементов N. Нужно поменять местами пары соседних элементов: первый со вторым, третий — с четвёртым и т. д.
1
2
7
3
12
4
38
5
N-1
…
N
40
23
1
12
2
3
7
4
5
38
…
N-1
23
N
40
Задача 1 стр 156
program arrObmen;
const N = 6 ;
var A: array [ 1. .N] of integer ;
i, c: integer ;
begin
writeln ( 'Элементы исходного массива:' );
for i:= 1 to N do begin
A[i]:=random( 20 );
write ( A[i], ' ' );
end ;
i:= 1 ;
while i do begin
c:= A[i];
A[i]:= A[i+ 1 ];
A[i+ 1 ]:= c;
i:= i+ 2 ;
end ;
writeln ( 'После обмена: ' );
for i:= 1 to N do
write ( A[i], ' ' );
end .
Поменять местами пары соседних элементов: первый со вторым, третий - с четвертым и т.д.
Элементы исходного массива:
7 8 2 1 11 0
После обмена:
8 7 1 2 0 11
Реверс массива Задача2 стр 157
Переставить элементы массива в обратном порядке (выполнить реверс )
1
2
7
3
12
5
N-2
…
N-1
38
40
N
23
1
23
2
40
3
38
N-2
…
5
N-1
12
N
7
A[ 1 ] A[N]
A[ 2 ] A[N- 1 ]
A[i] A[N+ 1 -i]
- Сумма индексов элементов, участвующих в обмене, для всех пар = N+1
- Элемент с номер i должен меняться с номером (N+1-i)
- Остановить цикл на середине массива, чтобы не выполнить цикл дважды
Компьютерный практикум №2
program arrReverse;
const N = 5 ;
var A: array [ 1. .N] of integer ;
i, c: integer ;
begin
writeln ( 'Исходный массив:' );
for i:= 1 to N do begin
A[i] :=i;
write ( A[i], ' ' );
end ;
for i:= 1 to N div 2 do begin
c:= A[i];
A[i]:= A[N+ 1 -i];
A[N+ 1 -i]:= c
end ;
writeln();
writeln ( 'После реверса: ' );
for i:= 1 to N do
write ( A[i], ' ' );
end .
Исходный массив:
1 2 3 4 5
После реверса:
5 4 3 2 1
№ 3 Сумма элементов массива
program Summa;
const N = 5 ;
var A: array [ 1. .N] of integer ;
i,S: integer ;
begin
writeln ( 'Элементы Вашего массива:' );
for i:= 1 to N do
begin
A[i]:= random( 9 );
writeln( ' A[' ,i, ']=' ,A[i] );
end ;
S:= 0 ;
for i:= 1 to N do
S:= S + A[i];
writeln ( 'Сумма= ' , S );
end .
5
2
8
3
1
1
2
3
4
5
i
Sum
0
5
1
7
2
15
3
18
4
19
5
Сумма не всех элементов массива
№ 4 Найти сумму чётных элементов массива.
?
Что делаем с нечётными?
program Summa;
const N = 5 ;
var A: array [ 1. .N] of integer ;
i,S: integer ;
begin
writeln ( 'Элементы Вашего массива:' );
for i:= 1 to N do
begin
A[i]:= random( 9 );
writeln( ' A[' ,i, ']=' ,A[i] );
end ;
S:= 0 ;
for i:= 1 to N do
if A[i] mod 2 = 0 then S:= S + A[i];
writeln ( 'Сумма чётных = ' , S );
end .
sum:= 0 ;
for i:= 1 to N do
sum:= sum + A[i];
writeln( sum );
if A[i] mod 2 = 0 then
if A[i] mod 2 = 0 then
sum:= sum + A[i];
writeln( sum );
Элементы Вашего массива:
A[1]=5
A[2]=6
A[3]=0
A[4]=7
A[5]=2
Сумма чётных = 8
15
Задачи
«A»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [–5; 5] и находит сумму ненулевых элементов.
«B»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [–2; 2] и находит произведение ненулевых элементов.
«C»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100; 1000] и находит отдельно сумму элементов в первой и во второй половинах массива.
15
Обработка массивов
К.Ю.Поляков, Е.А.Еремин
9 класс. § 20 стр 155-158
Видеоурок № 1(массивы) в 9 классе
Гаврюкова Г.А. школа № 68 Рязань 2021