Презентация Основные принципы работы с массивами

Содержание

Слайд 2

Вопросы лекции: Массив. Способы создания массивов; Алгоритмы обработки массивов; Одномерные и

Вопросы лекции:

Массив. Способы создания массивов;
Алгоритмы обработки массивов;
Одномерные и многомерные массивы;
Динамические массивы;
Вложенные

циклы;
Операторы циклов: For … Next, Do … Loop, While … Wend;
Оператор For … Each
Слайд 3

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

Массив. Способы создания массивов

Массив – это коллекция переменных, которые имеют общие

имя и базовый тип.
Все элементы данных, сохраняемых в массиве, должны иметь один и тот же тип;
Массив позволяет сохранять и манипулировать многими элементами данных посредством единственной переменной.
Использование циклов, для легкой обработки различных элементов массивов
Слайд 4

Массив – это единое множество переменных одного типа, у которых одно

Массив – это единое множество переменных одного типа, у которых одно

и то же имя, а отличаются они друг от друга только номером (индексом).
Элемент массива - каждый элемент данных, хранимых в массиве
Индекс – это числовое выражение целого типа. Иногда у переменной массива может быть ни один, а несколько индексов.
По умолчанию размер любого массива равен десяти. Массивы нужны для хранения большого числа данных одного типа.
Слайд 5

Индекс может быть: • константой; Пример: P (1), C (5) •

Индекс может быть:
• константой;
Пример:
P (1), C (5)
• переменной целого типа;
Пример:
A (i),

B (j)
• арифметическим выражением (значение арифметического выражения должно быть целым)
Пример:
A (i*2), Q (i^j)
Слайд 6

Объявление массива Для описания массива используется оператор Dim. Dim Имя массива

Объявление массива

Для описания массива используется оператор Dim.
Dim Имя массива (Размерность массива)

As Тип элементов
Пример:
Dim A (100) As Integer
Dim B (50) As Byte
Dim С (40) As Double
При таком описании массива его элементы индексируются (т.е. нумеруются), начиная с нуля.
Если оператор описания будет выглядеть следующим образом:
Dim A (1 To 100) As Integer,
то элементы массива индексируются с единицы.
Слайд 7

Объявление массива фиксированной длины Массив фиксированной длины можно объявить тремя способами,

Объявление массива фиксированной длины

Массив фиксированной длины можно объявить тремя способами, зависящими

от того, какую область видимости должен иметь массив:
Для создания открытого массива (public array) следует использовать оператор Public;
Для создания массива уровня модуля следует использовать оператор Private;
Для создания локального массива следует использовать оператор Private в процедуре
Слайд 8

Ввод массива 1 способ: На рабочем листе введем числа в ячейки

Ввод массива

1 способ:
На рабочем листе введем числа в ячейки электронной таблицы,

откроем окно программного кода и запишем в него программу, которая считывает данный массив чисел.
Программный код:
Option Explicit
Sub PR14()
Dim A(20) As Integer
Dim i As Integer
For i = 1 To 6
A(i) = Cells(1, i) ‘ массив заполняется
Next i ‘ числами с рабочего листа Excel
End Sub
Слайд 9

2 способ: Массив можно заполнить при помощи счетчика случайных чисел. Для

2 способ:
Массив можно заполнить при помощи счетчика случайных чисел. Для этого

в программе после объявления переменных следует написать следующее:
Randomize
For i = 1 To 10
Cells(1, i) = Int(Rnd * 100 – 50)
A(i) = Cells(1, i) ‘ заполнение массива
Next I
Функция Rnd возвращает значение от 0 до 1. Перед вызовом функции Rnd используется инструкция Randomize без аргумента для инициализации генератора случайных чисел значением, возвращаемым системным таймером.
Слайд 10

Вывод массива Для распечатки полученного массива на рабочий лист Excel используется

Вывод массива

Для распечатки полученного массива на рабочий лист Excel используется следующая

конструкция:
For i = 1 To n
Cells(k, i) = A(i) ‘ вывод массива в ячейки электронной таблицы
Next i ‘ k – номер строки для заполнения ячеек
Слайд 11

Одномерные массивы Одномерный массив - это такое средство языка программирования, которое

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

Одномерный массив - это такое средство языка программирования, которое позволяет

ссылаться на любой элемент пронумерованного множества значений.
Все элементы массива должны быть одного типа.
Объявление переменных массивов ничем не отличается от объявления обычных переменных, за исключением указания на интервал.
Пример: Dim A as Integer – переменная
Dim A (n) as Integer - массив
Dim A (1 to 30) as Integer – массив
Слайд 12

Одномерный массив – это набор однотипных элементов, расположенных друг за другом

Одномерный массив – это набор однотипных элементов, расположенных друг за другом

в одной строке или столбце.
Пример:
1 –34 8 2 6
или
1
2
8
-5
Каждый элемент массива обозначается при помощи имени массива и индекса, заключенного в круглые скобки.
Слайд 13

Двумерные массивы Двумерные массивы - набор однотипных элементов, расположенных в несколько

Двумерные массивы

Двумерные массивы - набор однотипных элементов, расположенных в несколько строк

и столбцов.
например:
6 3 2 4 0
7 1 2 6 0
12 24 25 8 4
0 4 5 8 3
обозначается при помощи имени и индексов, заключенных в круглые скобки;
Например:
A(i, j), X(4, 3), P(2⋅i, j+1), первый индекс – номер строки, второй – номер столбца.
Двумерный массив, называемый также матрицей, описывается при помощи оператора Dim.
Dim A(10, 10) As Тип ‘ нумерация с нуля
Dim A(1 To 10, 1 To 10) As Тип ‘ нумерация с единицы
Матрица, у которой количество строк равно количеству столбцов, называется квадратной матрицей.
Слайд 14

Многомерные массивы многомерные массивы могут использоваться для представления таблицы данных в

Многомерные массивы

многомерные массивы могут использоваться для представления таблицы данных в программах

с организацией данных в формате строк и столбцов, подобно ячейкам в рабочих листах Excel;
Создание массивов до 60 измерений
Например
(следующий оператор объявляет в процедуре двумерный массив 10 на 10):
Static Matric (9, 9) As Double
(Одну или обе размерности можно объявить с явным заданием нижней границы):
Static Matric (1 To 10, 1 To 10) As Double
Слайд 15

Динамические массивы Динамический массив – это массив размер которого может изменяться

Динамические массивы

Динамический массив – это массив размер которого может изменяться во

время выполнения.
Для создания динамического массива следует:
Объявить массив с ключевым словом Public (если необходимо иметь открытый массив), или Dim на уровне модуля (если необходимо иметь массив уровня модуля), или Static или Dim в процедуре (если необходимо иметь локальный массив).
Dim DynArray(1)
2. С помощью оператора ReDim назначить действительное число элементов массива.
ReDim DynArray(X + 1)
Слайд 16

Сложные (вложенные) циклы Совокупность простых циклов, вложенных один в другой, называется

Сложные (вложенные) циклы

Совокупность простых циклов, вложенных один в другой, называется

сложным (вложенным) циклом.
Правила построения вложенных циклов:
нельзя войти во внутренний цикл, минуя вход внешнего цикла;
имена параметров простых циклов не должны повторяться в конструкции сложного цикла;
простые циклы не должны пересекаться в конструкции сложного цикла, то есть окончание внешнего цикла не должно предшествовать окончанию внутреннего цикла.
Слайд 17

Оператор For … Next Оператор цикла For – Next используется, когда

Оператор For … Next

Оператор цикла For – Next используется, когда заранее

известно, сколько раз должно повториться тело цикла.
Общий вид оператора цикла с параметром выглядит следующим образом:
For Счетчик = Начальное значение To Конечное значение Step Шаг
Блок операторов
Next Счетчик
Цикл For – Next обеспечивает выполнение блока операторов (тела цикла) n раз при последовательном изменении счетчика от начального до конечного значения с указанным шагом изменения. Если Step Шаг в конструкции отсутствует, то по умолчанию считается, что шаг равен 1.
Слайд 18

Пример: Задано натуральное число n. Вычислить n! (факториал n). Программный код:

Пример:
Задано натуральное число n. Вычислить n! (факториал n).

Программный код:
Option Explicit
Sub PR7()
Dim

n As Integer
Dim F As Double
Dim i As Integer
n = Val(InputBox("Введите n"))
F = 1
For i = 1 To n
F = F * i
Next i
MsgBox ("Факториал числа " & n & "=" & F)
End Sub
Слайд 19

Оператор цикла Do – Loop 1. Do While Условие Блок операторов

Оператор цикла Do – Loop

1.
Do While Условие
Блок операторов
Loop
2.

Do Until Условие
Блок операторов
Loop
3.
Do
Блок операторов
Loop While Условие
4.
Do
Блок операторов
Loop Until Условие

В VBA для организации циклов с неизвестным заранее числом повторений используются и другие операторы циклов:

Оператор Do While – Loop обеспечивает многократное выполнение блока операторов до тех пор, пока условие истинно, а оператор Do Until – Loop – пока условие ложно.

Слайд 20

Вычислим корень уравнения x2 = 2 с точностью до e =

Вычислим корень уравнения x2 = 2 с точностью до e =

0,00001. За отрезок начальной локализации корня берется отрезок[0;2].

Option Explicit
Sub PR13()
Dim c As Double, f As Double
Dim fa As Double, fb As Double, fc As Double
Dim a As Double, b As Double, eps As Double, bh As Double
a = 0: b = 2: eps = 0.00001
fa = a ^ 2 - 2
fb = b ^ 2 - 2
If fa * fb >= 0 Then
MsgBox ("Функция не меняет знак на концах отрезка")
Exit Sub ‘ выход из процедуры
End If
Do
c = (a + b) / 2
fc = c ^ 2 - 2
fa = a ^ 2 - 2
f = fc * fa
If f < 0 Then b = c Else a = c
Loop Until b - a < eps
bh = c
MsgBox ("значение корня=" & bh)
End Sub

Слайд 21

Оператор цикла While – Wend Оператор цикла While – Wend используется

Оператор цикла While – Wend

Оператор цикла While – Wend используется для

организации цикла с неизвестным заранее числом повторений тела цикла. Общий вид цикла While – Wend выглядит следующим образом:
While Условие
Блок операторов
Wend
Цикл While – Wend обеспечивает многократное выполнение блока операторов, пока условие принимает значение True (истина).
Слайд 22

Пример: Вычислить и вывести значения функции Y при X изменяющемся от

Пример: Вычислить и вывести значения функции Y при X изменяющемся от –10

до 10 с шагом 2.

Программный код:
Option Explicit
Sub PR9()
Dim X As Integer
Dim Y As Double
X = –10
While X <= 10
If X <> 2 Then
Y = 1 / (X – 2) + X
MsgBox ("Y=" & Y)
Else
MsgBox ("функция не определена")
End If
X = X + 2
Wend
End Sub

Пример: Вычислить и вывести значения функции Y при X изменяющемся от –10 до 10 с шагом 2.

Программный код:
Option Explicit
Sub PR9()
Dim X As Integer
Dim Y As Double
X = –10
While X <= 10
If X <> 2 Then
Y = 1 / (X – 2) + X
MsgBox ("Y=" & Y)
Else
MsgBox ("функция не определена")
End If
X = X + 2
Wend
End Sub

Слайд 23

Конструкция For Each … Next Цикл For Each … Next похож

Конструкция For Each … Next

Цикл For Each … Next похож на

цикл For …. Next , но он повторяет группу операторов для каждого элемента из набора объектов (collection of objects) или из массива, вместо повторения операторов заданное число раз. Он особенно полезен, когда неизвестно, сколько элементов содержится в наборе.
Синтаксис конструкции цикла For Each … Next таков:
For Each element In group
Операторы
Next element
В отличие от цикла For …. Next цикл For Each … Next не использует счетчик цикла.
Циклы For Each … Next выполняются столько раз, сколько имеется элементов в определенной группе, такой как коллекция объектов или массив.