Конспект урока «Обработка одномерных массивов на VBA»


Конспект урока «Обработка одномерных массивов на VBA»
Цель:
Обучающие:
познакомить с понятием массив, одномерный массив, видами массивов;
показать правила описания одномерного массива, способы ввода, вывода его элементов;
совершенствовать умения и навыки работы с программой VBA.
Развивающие:
стимулирование интереса учащихся к данной теме и предмету в целом;
вовлечь в активную практическую деятельность.
Воспитательные:
развитие мышления, умения применять полученные знания при решении задач различной направленности;
Учебное оборудование: программа презентаций Microsoft Office PowerPoint 2010, компьютер, мультимедиа проектор.
Тип урока: Урок ознакомления с новым материалом
Методы обучения: практические, наглядные, словесные.
Структура урока:
Организационный момент
Объяснение нового материала
Закрепление изученного материала. Решение задач
Подведение итогов урока
Домашнее задание

Ход урока
Этапы урока Деятельность учителя Деятельность ученика
Организационный момент Учитель здоровается с учениками и отмечает отсутствующих, знакомит учеников с темой, целями и ходом урока. Приветствуют учителя
Объяснение нового материала Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Например:
А=(3, 4, 18, 6, 0, 5) – массив целых чисел
Name=(“Анна”, “Людмила”, “Елена”, “Галина”) – массив строковых значений
W=(1.5, 2.3, -1.9) – массив вещественных чисел.
Прежде чем начать работать с элементами массива, массив необходимо объявить – неявное объявление массива недопустимо.
Синтаксис объявления одномерного массива:
Dim <Имя массива> (<НГ > То < ВГ >) As <Тип>
Где:
Имя массива – имя массива, удовлетворяющее стандартным правилам именования переменных;
НГ, ВГ– нижнее (минимальное) и верхнее (максимальное) зна-чение индекса, соответственно.
Тип – тип данных массива.
Например, операторы
Dim Plan (1 To 17) As Integer
Dim F (100 To 170) As Single
объявляют:
-переменную Plan как массив целых чисел, значение индекса у которого изменяется от 1 до 17 включительно;
-переменную F как массив вещественных чисел, значение индекса у которого изменяется от 100 до 170 включительно;
При объявлении переменной типа “массив” происходит резер-вирование памяти в соответствии стипом элементов массива;
максимально возможным количеством элементов массива.
Доступ к отдельному элементу массива осуществляется путем индексирования элементов массива.
Индекс элемента массива – это его порядковый номер в массиве.
Для обращения к конкретному элементу массива необходимо указать имя массива и в круглых скобках индекс элемента.
Алгебраическая запись Запись на VBA
а1 А(1)
а3 А(3)
аi A(i)
Например:
А(3)=56 – третьему элементу массива А присвоено значение 56;
Name(1) = “Anna” – первому элементу массива Name присвоено значение «Anna»;
B(i)=Input (“ Введи B(“ & i & “)=”, "Ввод элемента массива").
i-ому элементу массива В присваивается значение, которое будет введено с клавиатуры. Очевидно, что значение переменной i должно быть определено до оператора присваивания.
Индексы могут представлять собой выражения любого скалярного типа, кроме вещественного. Возможно, например, обращение A(i+1) или A(N-i+1) для целочисленных переменных i и N соответственно.
Тип индекса определяет границы изменения значений индекса. Для типа Byte – максимальное значение индекса – 255, для типа Integer – 32767.
Процедура ввода значений элементов массива разбивается на два этапа:
Ввод размерности массива, т.е. того количества элементов массива, с которым пользователь хочет работать. Это значение не должно превышать значение ВГ, указанного при его объявлении.
Поочередный ввод значений элементов массива. Если игнорировать этот этап, в зарезервированных при объявлении массива ячейках памяти будут находиться нулевые значения (для числовых типов), а не те, с которыми хотел бы иметь дело пользователь.
Например, для массива x, объявленного как Dim x(1 To 10) As Byte, возможен ввод не более 10 целых чисел, значение которых не превышает 255. То есть вводимое значение размерности массива N должно быть не больше 10 и x(i) – любое неотрицательное число до 255 включительно, т.к. тип элементов массива объявлен Byte. Если при вводе данных ввести некорректные значения, программа завершит свою работу аварийно.
Процесс ввода элементов массива графически представляется следующим образом:

Поскольку это довольно очевидное и распространенное действие, то обычно этот фрагмент графической схемы алгоритма оформляется в виде одного блока:

где N – размерность массива, а X  – имя массива, элементы которого вводятся.
В программе эти действия реализуются следующим образом:
Sub Pr()
Dim N As Byte
Dim X(1 To 25) As Integer
N=InputBox(“Сколько чисел в массиве?”,"Ввод размерности")
For i=1 To N
X(i)=InputBox(“Введи X(“& i &”) – ый элемент массива”)
Next iEnd Sub
Графически вывод значений элементов массива может быть представлен в виде следующего фрагмента схемы:
Поскольку, так же как и ввод элементов массива, их вывод – процесс очевидный и распространенный, то в графических схемах алгоритмов он обычно изображается одним блоком:
Программная реализация вывода элементов массива зависит от метода организации вывода. Мы будем осуществлять вывод элементов массива только на рабочий лист Excel . Вывод элементов массива может осуществляться в разных строках одного столбца рабочего листа Excel (построчный вывод) или в разных столбцах одной строки. Запись фрагментов программы для этих случаев приведена в таблице1, а их реализация:
Вывод элементов массива в один столбец Вывод элементов массива в одну строку
Cells (1, 1)= “Массив X:”
For i=1 To N
Cells (1+i, 1)=X(i)
-4635540894000 Next iCells (1, 1)= “Массив X:”
For i=1 To N
Cells (2, i)=X(i)
Next i Внимательно слушают учителя
Записывают основное в тетрадь
Записывают в тетрадь
Записывают в тетрадь
Закрепление изученного материала. Решение задач Задача 1. Найти среднее значение чисел одномерного массива, стоящих на четных местах и принадлежащих промежутку (x; y].Найти произведение чисел одномерного массива, не принадлежащих промежутку [x; y] и стоящих на местах, кратных 5.
Алгоритм и результаты тестирования представлены слайде. В качестве дополнительной переменной используется переменная W логического типа, которая может принимать два значения: True - Истина и False – Ложь. Значение True – начальное, False – если в массиве встретилось хотя бы одно число, не принадлежащее промежутку [x; y].
Решают задачу у доски, далее делают ее за компьютером.
Sub Pr_1_1()
Dim N As Byte, A(1 To 10) As Integer
Dim i As Byte, S As Integer, K As Byte
Dim x As Integer, y As Integer
Dim Sr As Single'Ввод и вывод исходных данных
N = InputBox("Введи размерность массива")
For i = 1 To N
A(i) = InputBox("Введи значение А(" & i & ")-го элемента")
Next i x = InputBox("Введи значение нижней границы промежутка")
y = InputBox("Введи значение верхней границы промежутка")
Cells(1, 1) = "Исходный массив:"
For i = 1 To N
Cells(2, 1 + i) = A(i)
Next i'Определение среднего значения
S = 0: K = 0
For i = 2 To N Step 2
If A(i) > x And A(i) <= y Then S = S + A(i): K = K + 1
Next i Вывод результата
If K = 0 Then Cells(3, 1) = "На четных местах нет чисел из промежутка (" _ & x & ";" & y & "]" Else Sr = S / K
Cells(3,1)="Среднее значение чисел, стоящих на четных местах"
Cells(4, 1) = " и принадлежащих промежутку (" & x & ";" & y & " ]"
Cells(5, 1) = "равно " & Sr End If
End Sub
Sub Pr_1_2()
Dim N As Byte, A(1 To 10) As Integer
Dim i As Byte, P As Integer
Dim x As Integer, y As Integer
Dim W As Boolean 'Ввод и вывод исходных данных
N = InputBox("Введи размерность массива")
For i = 1 To N
A(i) = InputBox("Введи значение А(" & i & ")-го элемента")
Next i x = InputBox("Введи значение нижней границы промежутка")
y = InputBox("Введи значение верхней границы промежутка")
Cells(1, 1) = "Исходный массив:"
For i = 1 To N
Cells(2, 1 + i) = A(i)
Next i'Обработка данных
If N < 5 Then Cells(3, 1) = "В массиве меньше 5 чисел"
Else 'Нахождение произведения
W = True P = 1
For i = 5 To N Step 5
If A(i) < x Or A(i) > y Then P = P * A(i): W = False
Next
'Вывод результата
If W = True Then
Cells(3, 1) = "На местах, кратных 5, все числа из промежутка [" _ & x & ";" & y & "]" Else Cells(3, 1) = "Произведение чисел, не принадлежащих"
Cells(4, 1) = "промежутку [" & x & ";" & y & " ], равно " & P
End If
End If
38588957299960Рис. 1.4
00Рис. 1.4
End Sub
Подведение итогов Сегодня мы рассмотрели несколько задач с применением массивов. Эти знания вам помогут решить задачи из ЕГЭ. Домашнее задание Повторить основные определения. Выучить операторы и функции. Записывают задание в дневник