Одномерные массивы

Содержание

Слайд 2

Базовым типом структуры данных в Python является список. В других языках программирования

Базовым типом структуры данных в Python является список. В других языках программирования
такой структурой является массив.
В Python для работы с массивом подключают модуль array, но чаще всего используют список.
Отличие списков от массивов заключается в функциях, которые можно выполнять с ними. Список более широкое понятие. В массиве все элементы имеют одинаковый тип, а в списке типы элементов могут быть различными.

Слайд 3

Ключевые понятия

Список – набор элементов произвольного типа.
Массив – набор данных одного типа, записанных под

Ключевые понятия Список – набор элементов произвольного типа. Массив – набор данных
определенным именем.
Длина (размер) массива – количество элементов в массиве.
Индекс – порядковый номер элемента в массиве.
Одномерный массив – массив, в котором для задания элемента требуется один индекс.

Слайд 4

Cпособы создания массивов (списков)

1. Чтобы задать массив (список) в программе, можно указать

Cпособы создания массивов (списков) 1. Чтобы задать массив (список) в программе, можно
его имя и в квадратных скобках через запятую перечислить элементы. Значения строковых элементов записываются в апострофах.

Слайд 5

Cпособы создания массивов (списков)

2. Можно описать пустой список и с помощью цикла

Cпособы создания массивов (списков) 2. Можно описать пустой список и с помощью
организовать ввод элементов с клавиатуры.

Слайд 6

Cпособы создания массивов (списков)

3. Заполнение массива по определенному правилу. В данном случае

Cпособы создания массивов (списков) 3. Заполнение массива по определенному правилу. В данном
можно использовать генератор списка.

Слайд 7

Тип данных массив


Массив — это структурированный тип данных, состоящий из фиксированного

Тип данных массив Массив — это структурированный тип данных, состоящий из фиксированного
числа элементов, имеющих один и тот же тип (базовый).
Особенности:
все элементы имеют один тип;
весь массив имеет одно имя;
элементы упорядочены по индексам (номерам).
Типы массивов:
одномерный массив;
двумерный массив;
...
n-мерный массив.

Слайд 8

Структура одномерного массива


Элемент массива

Номер элемента (индекс)
Элементы массива упорядочены (урегулированы) по индексам. Доступ к

Структура одномерного массива Элемент массива Номер элемента (индекс) Элементы массива упорядочены (урегулированы)
каждому элементу осуществ-ляется путем индексирования, т. е. указания имени массива и номера элемента.
Пример: a[1] = 15.

Слайд 9

Описание (объявление) массива


Формат блока (в разделе описания типов):
Формат блока (в разделе

Описание (объявление) массива Формат блока (в разделе описания типов): Формат блока (в
описания переменных):
Пример:

Type <имя типа> = array [тип индекса] of <тип элементов>;
Var <имя массива> : <имя типа>;

Var <имя массива> = array [тип индекса] of <тип элементов>;

Const n = 20;
Type Mas = array [1..n] of Integer;
Var a, b : Mas;
c : array [1..26] of Char;

?

Слайд 10

Заполнение массива


Формат блока (ввод элементов с клавиатуры):
Пример:

For <индекс> := 1 to

Заполнение массива Формат блока (ввод элементов с клавиатуры): Пример: For := 1
<размер массива> do
ReadLn (<имя массива> [<индекс>]);

For i := 1 to n do
ReadLn (a[i]);

?

?

a[1] =
a[2] =
a[3] =
a[4] =
a[5] =

15
5
0
-25
17

Слайд 11

Вывод массива на экран


Формат блока:
Пример: Результат:

For <индекс> := 1 to <размер массива>

Вывод массива на экран Формат блока: Пример: Результат: For := 1 to
do
Write (<имя массива>[индекс]);

WriteLn (‘Массив а:’);
For i := 1 to n do
Write (a[i]:4);

Массив а:
1 25 -5 10 2

?

?

?

Слайд 12

Заполнение массива по формуле


Формат блока (ввод элементов по формуле):
Пример:

For <индекс> :=

Заполнение массива по формуле Формат блока (ввод элементов по формуле): Пример: For
1 to <размер массива> do
<имя массива>[<индекс>] := <формула>;

a[1] := 2;
For i := 2 to n do
a[i] := a[i-1] + 2;

?

Задача № 1
Сформировать и вывести на экран массив из 10 первых чисел Фиббоначи.

a[1] =
a[2] =
a[3] =
a[4] =
a[5] =

2
4
6
8
10

?

Слайд 13

Заполнение массива с помощью генератора случайных чисел


Функция Random [0;N):
Формат блока (использование функции

Заполнение массива с помощью генератора случайных чисел Функция Random [0;N): Формат блока
Random):
Пример:

For <индекс> := 1 to <размер массива> do
<имя массива>[<индекс>] := Random[(range)];

For i := 1 to n do
a[i] := random(101);

x := random;
x := random (50);
x := random (100)+50;
x := random (100)-50;
x := random (254)-123;

[0;1)
[0;49]
[50;149]
[-50;49]
[-123;130]

Слайд 14

Обработка элементов массива Вычисление суммы элементов массива


Входные данные:
Выходные данные:
sum = a[1] +

Обработка элементов массива Вычисление суммы элементов массива Входные данные: Выходные данные: sum
a[2] + a[3] + a[4] + a[5]
Словесный алгоритм решения задачи:
Задать начальное значение переменной sum.
Сформировать и вывести массив на экран.
Пройти весь массив, записав в sum сумму всех элементов.
Вывести результат на экран.

Задача № 2
Ввести с клавиатуры массив из 5 элементов. Найти сумму всех элементов массива.

Слайд 15

Обработка элементов массива Вычисление суммы элементов массива


Алгоритм:

Обработка элементов массива Вычисление суммы элементов массива Алгоритм:

Слайд 16

Обработка элементов массива Вычисление суммы элементов массива


Трассировка:

sum := 0;
For i

Обработка элементов массива Вычисление суммы элементов массива Трассировка: sum := 0; For
:= 1 to n do sum := sum + a[i];
WriteLn (‘Сумма элементов массива = ‘, sum);

Слайд 17

Обработка элементов массива Вычисление произведения элементов массива



Входные данные:
Выходные данные: pr =

Обработка элементов массива Вычисление произведения элементов массива Входные данные: Выходные данные: pr
a[4] * a[5] * a[6]
Словесный алгоритм решения задачи:
Сформировать и вывести массив на экран.
Задать начальное значение переменных i, j и pr.
Пройти массив от i до j, записав в pr произведение элементов.
Вывести результат на экран.

Задача № 3
Дан массив 10 целых случайных чисел в интервале [0..20]. Найти произведение элементов массива с i-го по j-й (i и j вводятся с клавиатуры).

Слайд 18

Обработка элементов массива Вычисление среднего арифметического элементов массива



Входные данные:
Выходные данные: mid

Обработка элементов массива Вычисление среднего арифметического элементов массива Входные данные: Выходные данные:
= (a[1] + a[2] + ... + a[n])/n
Словесный алгоритм решения задачи:
Сформировать и вывести массив на экран.
Задать начальное значение переменной mid.
Пройти весь массив, вычислить сумму элементов массива.
Вычислить mid.
Вывести результат на экран.

Задача № 4
Сформировать массив из 10 целых случайных чисел в интервале [–15..0], найти среднее арифметическое всех элементов массива.

Слайд 19

Обработка элементов массива Подсчет количества элементов массива



Входные данные:
Выходные данные: переменная-счетчик k.
Словесный

Обработка элементов массива Подсчет количества элементов массива Входные данные: Выходные данные: переменная-счетчик
алгоритм решения задачи:
Сформировать и вывести массив на экран.
Задать начальное значение переменной-счетчика k.
Пройти весь массив. Если текущий элемент равен 0, то увеличить счетчик на 1 и перейти к следующему элементу.
Вывести результат на экран.

Задача № 5
Заполнить массив случайными числами в интервале [–1..1] и подсчитать количество нулевых элементов.

Слайд 20


Обработка элементов массива Подсчет количества элементов

Алгоритм:

Обработка элементов массива Подсчет количества элементов Алгоритм:

Слайд 21

Обработка элементов массива Подсчет количества элементов


Трассировка:

k := 0;
For i :=

Обработка элементов массива Подсчет количества элементов Трассировка: k := 0; For i
1 to n do
If a[i] = 0 then inc(k);
WriteLn ('Количество нулевых элементов = ', k);

Слайд 22

Обработка элементов массива Поиск максимального элемента массива



Входные данные:
Выходные данные: max =

Обработка элементов массива Поиск максимального элемента массива Входные данные: Выходные данные: max
10, im = 8.

Задача № 6
Заполнить массив из 10 элементов случайными числами в интервале [–10..10] и найти в нем первый (последний) максимальный элемент и его номер.

Слайд 23

Обработка элементов массива Поиск максимального элемента массива



Словесный алгоритм решения задачи:
Сформировать и

Обработка элементов массива Поиск максимального элемента массива Словесный алгоритм решения задачи: Сформировать
вывести массив на экран.
Задать начальное значение переменных max и im.
Пройти массив. Если текущий элемент больше максимального, то изменить значения максимального элемента и его индекса.
Вывести результат на экран.
Запись на алгоритмическом языке:

начало
ввод а, вывод а
max := a[1], im := 1
нц для i от 2 до n
если a[i] > max, тогда max := a[i], im := i
кц
вывод max, im
конец

?

Слайд 24


Обработка элементов массива Поиск максимального элемента

Алгоритм:

Обработка элементов массива Поиск максимального элемента Алгоритм:

Слайд 25

Обработка элементов массива Поиск максимального элемента массива


Трассировка:

max := a[1]; im :=

Обработка элементов массива Поиск максимального элемента массива Трассировка: max := a[1]; im
1;
For i := 2 to n do
If a[i] > max
then begin
max := a[i];
im := i;
end;

Слайд 26

Обработка элементов массива Задачи для самостоятельного выполнения



Задача № 7
Заполнить массив случайными

Обработка элементов массива Задачи для самостоятельного выполнения Задача № 7 Заполнить массив
числами в интервале [–10..10] и подсчитать сумму положительных элементов.

Задача № 8
Заполнить массив из 10 элементов случайными числами в интервале [0..100] и подсчитать отдельно среднее значение всех элементов, которые < 50, и среднее значение всех элементов, которые ≥ 50.

Задача № 9
Заполнить массив случайными числами в интервале [20..100] и подсчитать отдельно число четных и нечетных элементов.

Слайд 27

Обработка элементов массива Задачи для самостоятельного выполнения



Задача № 10
Заполнить массив случайными

Обработка элементов массива Задачи для самостоятельного выполнения Задача № 10 Заполнить массив
числами в интервале [1000..2000] и подсчитать число элементов, у которых вторая с конца цифра — четная.

Задача № 11
Заполнить массив из 15 элементов случайными числами в интервале [–20..20] и найти в нем минимальный положительный элемент и его номер.

Задача № 12
Заполнить массив из 10 элементов случайными числами в интервале [0..5] и вывести номера всех элементов, равных X.

Слайд 28

Обработка элементов массива Задачи для самостоятельного выполнения



Задача № 13
Даны два массива

Обработка элементов массива Задачи для самостоятельного выполнения Задача № 13 Даны два
одинаковой размерности. Получить третий массив такой же размерности, каждый элемент которого равен суме соответствующих элементов данных массивов.

Задача № 14
Заполнить массив из 10 элементов случайными числами в интервале [0..5] и определить, есть ли в нем одинаковые соседние элементы.

Слайд 29

Обработка элементов массива Реверс массива



Входные данные:
Выходные данные:
Меняем местами элементы:
a[1] и a[10]
a[2]

Обработка элементов массива Реверс массива Входные данные: Выходные данные: Меняем местами элементы:
и a[9]
a[3] и a[8]
a[4] и a[7]

Задача № 15
Переставить элементы массива в обратном порядке.

Слайд 30

Обработка элементов массива Реверс массива



Словесный алгоритм решения задачи:
Сформировать и вывести массив

Обработка элементов массива Реверс массива Словесный алгоритм решения задачи: Сформировать и вывести
на экран.
Пройти половину массива и поменять местами элементы a[i] и a[n+1-i].
Вывести результат на экран.
Запись на алгоритмическом языке:

начало
ввод а, вывод а
нц для i от 1 до n div 2
k := a[i]
a[i] := a[n+1-i]
a[n+1-i] := k
кц
вывод a
конец

?

Слайд 31

Обработка элементов массива Поиск максимального элемента массива


Трассировка:

k := 0;
For i

Обработка элементов массива Поиск максимального элемента массива Трассировка: k := 0; For
:= 1 to n div 2 do
begin
k := a[i];
a[i] := a[n+1-i];
a[n+1-i] := k ;
end;

Слайд 32

Обработка элементов массива Удаление элемента массива



Входные данные:
Выходные данные:
Словесный алгоритм решения задачи:
Сформировать

Обработка элементов массива Удаление элемента массива Входные данные: Выходные данные: Словесный алгоритм
и вывести массив на экран. Задать значение k.
Пройти массив, начиная с k-го элемента и присвоить каждому текущему элементу значение следующего элемента.
Вывести массив размером n-1. Последний элемент сделать 0.

Задача № 16
Удалить k-й элемент массива.

Слайд 33

Обработка элементов массива Вставка элемента массива



Входные данные:
A = 13
Выходные данные:

Задача №

Обработка элементов массива Вставка элемента массива Входные данные: A = 13 Выходные
17
Вставить число A после k-го элемента массива..