Слайды и текст этой онлайн презентации
Слайд 1
Структурированные типы данных. Массивы.
Слайд 2
Основные вопросы:
Понятие об организации (структуре) данных.
Понятие массива. Виды массивов их отличия.
Простейшие операции с одномерными массивами
Слайд 3
Структурированные типы данных
Структурированные типы данных предназначены для задания сложных структур данных. В качестве структурированных типов данных можно привести следующие типы данных:
Массивы
Записи (Структуры) - Изначально записи были созданы для хранения баз данных. В отличие от массива, элементами записей (их называют полями) могут быть данные различных типов. Именно поэтому при объявлении записи для каждого элемента указывается его тип. Например, так создаётся тип, в котором будет храниться дата (день, месяц, год):
Файлы - Последний тип данных не совсем привычен — это файлы.
Чаще всего, из структурированных типов данных встречается массив.
Слайд 4
Массивы
Массив – это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.
Шкаф – это массив
Ящики – это индексы
Содержимое ящиков – элементы массива
Слайд 6
Если адрес элемента массива определяется одним индексом, то такой массив называется одномерным.
Массивы бывают и многомерными. Примеры:
Одномерный массив (координата точки на числовой прямой)
Двумерный массив (координата точки на плоскости)
Трёхмерный массив (координата точки в пространстве)
Слайд 7
Одномерный массив
Одномерный массив - упорядоченный набор данных, имеющих одно имя, но разные порядковые номера (индексы).
Каждый массив имеет имя и размерность:
имя массива – это любая буква латинского алфавита.
размерность массива - количество элементов этого массива.
Например, если A(N) – массив, то A – имя, N – размерность.
Слайд 8
А — имя массива
Значения
3.7.9.1.2
1.2.3.4.5
Индексы
1, 2 …5 — номер элемента.
А[3]=9
Значение
Имя массива
Индекс
Слайд 9
Структура одномерного массива
Массив А
Элементы
массива А
Слайд 10
Структура одномерного массива
У каждого элемента в массиве есть место, которое называется индексом.
Массив А
Элементы
массива А
Слайд 11
Доступ к элементам массива
Массив А
У каждого элемента в массиве есть свое имя. Имя элемента
образуется из имени массива и индекса элемента.
Примеры: a[1], a[2], a[5].
Числовые значения называются значениями элементов массива.
Пример: значением элемента a[2] является число 164. a[2]=164
Слайд 12
Двумерный массив
Двумерный массив определяется, как прямоугольная таблица (пересечение определенного числа строк и столбцов). Горизонтальный ряд чисел называют строкой, а вертикальный – столбцом. Строка обозначается буквой I, а столбец – J.
Массив имеет имя и размерность:
имя массива – это любая буква латинского алфавита.
размерность массива - количество строк (М) и столбцов (N) этого массива.
Например, если В(М, N) – массив, то В – имя, М N – размерность.
Слайд 13
В математике квадратные и прямоугольные таблицы часто называют матрицами
М
Первый
индекс –
номер
строки
а 1 1.а12.а13.а14.а15.а 1 6
а21.а22.а23.а24.а25.а26
а31.а32.а33.а34.а35.а36
N
Второй
индекс –
номер
столбца
Матрица имеет размер М*N
Слайд 14
Двумерный массив
Примеры.
Двумерный массив (прямоугольная матрица) - В(M, N).
В(m, n), m – строк, n – столбцов.
Слайд 15
Двумерный массив
Примеры.
2) Двумерный числовой массив В(2, 4), 2 – строки, 4 – столбца.
.1.2.3.4
1.0.-5.-10.-20
2.5.0.-5.15
В(1, 1)=0, В(1, 2)= -5, В(1, 3)= -10, В(1, 4)= -20
В(2, 1)=5, В(2, 2)=0, В(2, 3)= -5, В(2, 4)=15
Слайд 16
Двумерный массив
Примеры.
3) Двумерный массив (квадратная матрица) - C(N, N). C(n, n), n – строк, n – столбцов.
Слайд 17
Двумерный массив
Примеры.
4) Двумерный числовой массив C(3, 3), 3 – строки, 3 – столбца.
.1.2.3
1.0.-5.-10
2.5.0.-5
3.0.-2.-1
C(1, 1)=0, C(1, 2)= -5,
C(1, 3)= -10, C(2, 1)=5,
C(2, 2)=0, C(2, 3)= -5
C(3, 1)=0, С(3, 2)= -2,
С(3, 3,)= -1
Слайд 18
Описание массива
В Basic элементы массива располагаются в последовательных ячейках памяти. Это означает, что массив занимает непрерывную область памяти.
Прежде чем мы сможем обращаться к массиву из программы, надо указать, сколько памяти необходимо для размещения массива.
Всему массиву, определяется объемом памяти, занимаемым одним элементом массива умноженным на число элементов в массиве.
Поэтому нужно указать максимальное число элементов массива.
Слайд 19
В Бейсике описание размера массива делается с помощью оператора DIM, который имеет следующий синтаксис: DIM имя массива (максимальное число элементов массива) Например: DIM D(7)
DIM S(5) - где S имя массива, 5- максимальное число элементов массива, DIM M(25) - M имя массива, 25- максимальное число элементов массива. Первый элемент массива имеет номер 0. Наличие именно этого дополнительного элемента и приводит к тому, что массив занимает на один элемент больше памяти, чем это задано в его описании, но с единицы нам привычнее и удобнее, поэтому нулевой элемент можно пропустить.
Все массивы вводятся и обрабатываются в цикле, причем параметром цикла является индекс элемента массива.
.1.2.3.4.5.6.7
D.......
Слайд 20
Обработка одномерного массива
Для обработки одномерных массивов надо организовать одинарный цикл, позволяющий сделать перебор всех элементов.
Если A(N) - одномерный числовой массив, то его элементы перечисляются А(1), А(2), …, A(N).
Пусть i – параметр цикла, тогда i=1, …,N.
Слайд 21
Обработка двумерного массива
Двойные или вложенные циклы организуются для обработки двумерных массивов. Циклы открываются по 2-м различным параметрам, что дает возможность осуществить перебор элементов по строкам и по столбцам.
Если В(М, N) - двумерный числовой массив, то его элементы перечисляются:
В(1, 1), В(1, 2), …, В(1, N)
---------------------------------
В(М, 1), В(М, 2), …, В(М, N).
Пусть i , j– параметры циклов, тогда
i=1, …, М и j=1, …,N.
Слайд 22
Элементы массива могут быть введены с клавиатуры с помощью оператора INPUT или с помощью операторов DATA, READ или иным способом. Например,
Ввод массива осуществляется с помощью цикла:
FOR I = 1 TO 7
INPUT A(I)
NEXT I
Вывод массива тоже осуществляется с помощью цикла:
FOR I = 1 TO 7
PRINT A(I)
NEXT I
Чтобы обратиться к элементу массива, надо указать его имя и индекс.
D(1) = 0
D(7) = 100
Слайд 23
Заполнение массива
Заполнение массива можно производить:
через оператор присваивания (по формуле)
с клавиатуры с помощью INPUT;
через датчик случайных чисел RANDOM(i);
заполнение массива с помощью оператора DATA, READ
Слайд 24
Заполнение массива
1 способ (заполнение массива с помощью оператора присваивания)
CLS 10 DIM S(5) в этой строке объявлен массив с именем S и пятью элементами 11 S(1)=53 12 S(2)=31 13 S(3)=-32 в этих строках элементам массива присваиваются значения 14 S(4)=44 15 S(5)=-23 16 PRINT "S(1) = " ; S(1) 17 PRINT "S(2) =" ; S(2) 18 PRINT "S(3) =" ; S(3) в этих строках на экран последовательно 19 PRINT "S(4) =" ; S(4) выводятся значения элементов массива 20 PRINT "S(5) =" ; S(5) Результаты работы этой программы будут выглядеть так:
S(1) = 53 S(2) = 31 S(3) = -32 S(4) = 44 S(5) = -23
Слайд 25
Заполнение массива
2 способ (заполнение массива с помощью оператора ввода)
CLS INPUT “Введите количество элементов массива”; N DIM A(N) FOR I =1 TO N PRINT “Введите”; i ; “элемент массива” INPUT A(I) NEXT I FOR I=1 TO N PRINT A(I) NEXT I Результаты работы программы для 3-х элементов будут выглядеть так: Введите 1 элемент массива ? 23 Введите 2 элемент массива ? -54 Введите 3 элемент массива ? 21 23 -54 21
Слайд 26
Заполнение массива
3 способ (заполнение массива с помощью оператора DATA )
CLS DATA 23, 13, 98, -8, 7 DIM M(5) FOR I=1 TO 5 READ M(I) ' считывание данных PRINT M(I) NEXT I Результаты работы этой программы будут выглядеть так: 23 13 98 -8 7
Слайд 27
Заполнение массива
4 способ (заполнение массива с помощью генератора случайных чисел)
DIM S(IOO) FOR i=1 ТО 100 S(i) = 1+INT(1000*RND) NEXT i
Слайд 28
Разбор решения задач
Слайд 29
ЗадаНИЕ 1: Заполнить массив случайными числами из промежутка [1;50]. Размерность массива 15. Вывести на экран первый и последний элемент полученного массива.
CLS
REM заполнение массива
DIM A(15)
FOR I = 1 TO 15
A(I) = INT(RND * 50)+1
PRINT A(I) NEXT I
PRINT "Первый"; A(1)
PRINT "Последний"; A(15) END
Слайд 30
Задание 2: Найти сумму элементов массива D, длиной 7 элементов
CLS
REM Сумма элементов массива
DIM A (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
S = 0
FOR I = 1 TO 7
S = S + A(I)
NEXT I
PRINT “S=”; S
END
Слайд 31
Задание 3: Составить программу, которая обнуляет все отрицательные числа.
CLS
REM Обнуление отрицательных элементов
DIM D (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
FOR I = 1 TO 7
IF A(I) < 0 THEN A(I) = 0
NEXT I
FOR I = 1 TO 7
PRINT A(I)
NEXT I
END
Слайд 32
Задание 4: Найти среднее арифметическое всех положительных чисел массива D.
CLS
REM Среднеарифметическое положительных элементов
DIM D (7)
FOR I = 1 TO 7
INPUT A(I)
NEXT I
S = 0
FOR I = 1 TO 7
IF A(I) > 0 THEN S = S + A(I)
NEXT I
S = S / 7
PRINT “S=”; S
END
Слайд 33
Задание 5: В одномерном числовом массиве А(К) подсчитать количество отрицательных элементов.
CLS
REM количество отрицательных элементов
INPUT “ввод размерности”; K
DIM A(K)
N=0
FOR i=1 TO K
INPUT A(i)
NEXT I
FOR i=1 TO K
IF A(i)<0 THEN N=N+1
NEXT I
PRINT “количество отрицательных элементов равно”; N
END.
Слайд 34
Задание 6: Подсчитайте произведение элементов массива.
CLS
INPUT “размер массива”;N
DIM S(N)
P=1 ’ обозначение произведение
FOR i=1 ТО N
S(i) = INT(RND(1)*10)
P=P*S(i)
NEXT i
PRINT “Массив”
FOR i=1 ТО N
PRINT S(i);
NEXT I
PRINT “Произведение элементов”;P
END
Слайд 35
Задание 6: Заполнить массив размерностью 10 случайными числами из промежутка [0;60]. Вывести на экран элементы массива имеющие четные номера.
CLS
REM
DIM B(10)
FOR i = 1 TO 10
B(i) = INT(RND * 60)
PRINT "B("; i; ")="; b(i)
NEXT
PRINT “Четные элементы массива”
FOR i = 2 TO 10 STEP 2
PRINT "B("; i; ")="; B(i)
NEXT
Слайд 36
Задание 7: Составить программу вывода двумерного массива на экран
CLS
REM вывод элементов двумерного массива на экран
DIM А(13, 15)
FOR i = 1 TO 13
FOR j = 1 TO 15
А(i, j) = INT(RND * 20) + 1
PRINT А(i, j);
NEXT j
PRINT
NEXT I
END
Слайд 37
Задание 8: Найти сумму всех элементов двумерного массива
CLS
REM вывод элементов двумерного массива на экран
INPUT “кол-во строк=”;N
INPUT “кол-во столбцов=”;M
DIM А(N, M)
FOR i = 1 TO N
FOR j = 1 TO M
А(i, j) = INT(RND * 20) + 1
PRINT А(i, j);
NEXT j
PRINT
NEXT I
REM СУММИРОВАНИЕ ЭЛЕМЕНТОВ
S=0
FOR I = 1 TO N : REM N – КОЛИЧЕСТВО СТРОК
FOR J = 1 TO M: REM М – КОЛИЧЕСТВО СТОЛБЦОВ
S = S + A (I,J)
NEXT J : NEXT I
PRINT” S =”; S
END
Слайд 38
Задание 9: Найти сумму положительных элементов данной матрицы.
CLS
REM вывод элементов двумерного массива на экран
INPUT “кол-во строк=”;N
INPUT “кол-во столбцов=”;M
DIM А(N, M)
FOR i = 1 TO N
FOR j = 1 TO M
А(i, j) = INT(RND * 20) + 1
PRINT А(i, j);
NEXT j
PRINT
NEXT I
REM СУММИРОВАНИЕ ЭЛЕМЕНТОВ ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ
S=0
FOR I = 1 TO N : REM N – КОЛИЧЕСТВО СТРОК
FOR J = 1 TO M: REM М – КОЛИЧЕСТВО СТОЛБЦОВ
IF A(I,J) > 0 THEN S= S + A (I,J)
NEXT J : NEXT I
PRINT” S =”; S : END
Слайд 39
Задание 10: В таблице 3х4 вычислить количество отрицательных элементов, сумму четных элементов, произведение элементов второй строки.
CLS
DIM tabl (3, 4)
REM Заполнение массива FOR I=1 TO 3: FOR J=1 TO 4 INPUT "Введите элемент массива:", tabl(I, J) NEXT J : NEXT I REM Вывод массива на экран в виде таблицы CLS FOR I=1 TO 3 : FOR J=1 TO 4 PRINT tabl(I,J); NEXT J: PRINT: NEXT I REM требуемые вычисления k=0: s=0: p=1 FOR I=1 TO 3: FOR J=1 TO 4 IF tabl(I, J)<0 THEN k=k+1 IF tabl(I, J) MOD 2 = 0 THEN s=s+tabl(I, J) IF I=2 THEN p=p*tabl(I, J) NEXT J: NEXT I PRINT "результат:" PRINT "отрицательных элементов: ", k PRINT "сумма четных элементов: ", s PRINT "произведение элементов второй строки: ",p END
Слайд 40
Домашнее задание
Написать конспект по данной теме
Решать следующие задачи:
В одномерном числовом массиве X(N) подсчитать количество положительных элементов и найти их произведение.
2) Введите матрицу
2 4 6 8
R= -3 -5 7 -9
11 -22 33 -44
c помощью операторов READ и DATA, и выведите ее на экран в форме таблицы. Поменяйте знаки значений элементов матрицы на противоположные. Выведите на экран новую матрицу в форме таблицы.