Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Программирование на VBA в MS Excel



Программирование на VBA в MS Excel

Лабораторная работа № 1.

Линейные алгоритмы

Время выполнения

4 часа

Цель работы

Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе линейных алгоритмов.

Задачи лабораторной работы

После выполнения данной работы студент должен знать и уметь:

  • знать все операторы, используемые в программах;
  • уметь применять любые из изученных операторов для написания своих модулей;
  • уметь объяснить написанную программу.

Перечень обеспечивающих средств

Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система Windows XP, электронные таблицы Excel с приложением в виде языка Visual Basic for Applications.

Общие теоретические сведения

VBA – это язык объектно-ориентированного программирования.

Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов.

Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки.

Семейство – объект, содержащий несколько других объектов того же типа:

Worksheets (“Лист 1”) – рабочий лист с имени Лист1,

Worksheets (1) – первый лист рабочей книги.

Классы – это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса.

Методы – это действия, выполняемые над объектом.

Объект.метод – синтаксис метода

 

Пример.

Application.Quit – закрыть объект Application.

Worksheets (“Лист1”).Chartobjects.Delete – удалит все диаграммы с листа “Лист1”.

Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость).

Для изменения характеристик меняют его свойства:

Объект.Свойство=Значение свойства

 

Пример.

Worksheets.Visible = False

Есть свойства, возвращающие объект:

ActiveCell возвращает активную ячейку активного листа активной рабочей книги.

ActiveWindow – активное окно.

Свойства ActiveCell, ActiveWindow. ActiveCell и Application. ActiveWindow. ActiveCell возвращают одну и ту же активную ячейку.

События – это действия, распознаваемые объектом.

Суть программирования на VBA и заключается в том, чтобы на событие получить отклик.

 

Пример 1. Написать программу, которая вычисляет периметр треугольника.

Запись программы в виде блок-схемы (рис. 1) и визуальное представление формы для ввода данных (рис. 2) и результата (рис. 3):

Рисунок 1. Блок-схема решения задачи

 

Рисунок 2. Ввод исходных данных в процессе выполнения программы

 

Рисунок 3. Вывод результата в процессе выполнения программы

 

Программный код

Option Explicit

Sub ПериметрТреугольника()

Dim ВтораяСторона, ТретьяСторона, Периметр As Single

ВтораяСторона = 3.5

ТретьяСторона = InputBox("Введите значение третьей стороны треугольника", "Третья сторона")

Периметр = Cells(1, 4) + ВтораяСторона + ТретьяСторона

MsgBox "Периметр треугольника = " & Периметр

End Sub

 

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

Запись программы в виде блок-схемы (рис. 4) и визуальное представление формы для ввода данных (рис. 5) и результата (рис. 6):

 

Рисунок 4. Блок-схема решения задачи

 

а)

б)

в)

Рисунок 5. Ввод исходных данных в процессе выполнения программы

 

Рисунок 6. Вывод результата в процессе выполнения программы

 

Программный код

Option Explicit

Sub КореньКвадратныйИзСуммыТрехПеременных()

Dim ПерваяПеременная, ВтораяПеременная, ТретьяПеременная, Сумма As Single

Dim Корень As Double

ПерваяПеременная = InputBox("Введите значение первой переменной", "Первая Переменная")

ВтораяПеременная = InputBox("Введите значение второй переменной", "Вторая Переменная")

ТретьяПеременная = InputBox("Введите значение третьей переменной", "Третья Переменная")

Сумма = ТретьяПеременная + ВтораяПеременная + ПерваяПеременная

Корень = Sqr(Сумма)

MsgBox "Корень из суммы трех переменных = " & Корень

End Sub

 

Пример 3. Вычислить Y, задав значения переменным:

 

Программный код

Sub Main()

Dim x, b, a, res As Single

x = -3

b = 2

a = 0,5

res = (Sqr(5 * x ^ 4 + 2 * Sin(b) ^ 2)) / Cos(Abs(a ^ 3 - 3 * Tan(b)))

MsgBox "res=" & CStr(res)

End Sub

Private Sub CommandButton1_Click()

Dim x, b, a, res As Single

x = Cells(3, 1)

b = Cells(3, 2)

a = Cells(3, 3)

res = (Sqr(5 * x ^ 4 + 2 * Sin(b) ^ 2)) / Cos(Abs(a ^ 3 - 3 * Tan(b)))

Cells(5, 2) = res

End Sub

 

Визуальное представление решения задачи представлено на рис. 7.

Рисунок 7. Визуальное представление решения задачи

 

Пример 4. Вычислить f, задав значения переменным:

 

Программный код

Sub Main()

Dim x, y, t, res As Single

x = -3

y = 2

t = 0.5

res = (x / (4.8 * x ^ 3 - y) ^ 3) + 1 / 4 * (t - 3 / x)

MsgBox "res=" & CStr(res)

End Sub

Private Sub CommandButton2_Click()

Dim x, y, t, res As Single

x = Cells(3, 9)

y = Cells(3, 10)

t = Cells(3, 11)

res = (x / (4.8 * x ^ 3 - y) ^ 3) + 1 / 4 * (t - 3 / x)

Cells(5, 10) = res

End Sub

 

Визуальное представление решения задачи представлено на рис. 8.

Рисунок 8. Визуальное представление решения задачи

Видеоурок по выполнению заданий лабораторной работы http://informatics.ssga.ru/practics/lab-28 .

 

Варианты заданий

Задание 1. Составить блок-схему и написать программный код согласно условию задачи.

  1. Вычислите значение квадратного корня из суммы трех переменных.
  2. Вычислите значение суммы обратных величин трех переменных.
  3. Найдите сумму первой и второй переменных и разность первой и третьей переменной.
  4. Найти объем цилиндра.
  5. Вычислить площадь прямоугольника.
  6. Вычислите значение куба, квадрата и обратной величины переменных.
  7. Найдите площадь круга по формуле .
  8. Найти расстояние от точки М до начала координат.
  9. Найти сторону квадрата, площадь которого равна площади прямоугольника.
  10. Найти площадь ромба.
  11. Определите произведение трех переменных.
  12. Найти гипотенузу треугольника.
  13. Найти остаток от деления двух действительных чисел.
  14. Найти сумму квадратов трех чисел.
  15. Найти среднее арифметическое трех введенных чисел.

Задание 2. Вычислить для своего варианта Y, задав значения переменным:

 

 

Задание 3. Вычислить для своего варианта f, задав значения переменным

 

Содержание отчета

  1. Цель работы, условие задачи
  2. Алгоритм в виде блок-схемы.
  3. Исходный текст программы.
  4. Вводимые данные и результаты.
  5. Фрагменты экрана с диалоговыми окнами Excel.
  6. В программе значение одной из переменных должно быть записано в ячейке электронной таблицы.
  7. Значение другой переменной задается в программе или вводится с помощью окна-диалога.
  8. Все типы переменных и констант, которые используются в программе, должны быть объявлены и отражать смысловое значение переменных или констант.
  9. Результат работы программы должен иметь наглядный вид.
  10. Для запуска макроса создать кнопку с соответствующей надписью.

Вопросы для защиты работы

  1. Какие встроенные типы данных вы знаете?
  2. Как описываются переменные?
  3. Как объявляют константы?
  4. Какие операции языка VBA вы знаете?
  5. Какие операторы языка VBA вы знаете?
  6. Перечислите операторы управления
  7. Укажите операторы, используемые для ввода данных с рабочего листа.
  8. Как заменить Arcsin в VBA?
  9. Укажите формулу, которая заменит Arcctg в VBA.

Лабораторная работа № 2.

Условные алгоритмы

Время выполнения

6 часов

Цель работы

Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе условных алгоритмов.

Задачи лабораторной работы

После выполнения данной работы студент должен знать и уметь:

  • знать все операторы, используемые в программах;
  • уметь применять любые из изученных операторов для написания своих модулей;
  • уметь объяснить написанную программу.

Пример 1.

Написать программу вычисления функции пользователя.

Предусмотреть сбойную ситуацию (при y = 0) и в этом случае выдать сообщение об ошибке.

 

Запись программы в виде блок-схемы (рис. 1) и визуальное представление ввода данных и вывода результата (рис. 2):

Рисунок 1. Блок-схема решения задачи

 

Программный код

Function z (x, y)

If y = 0 Then

z = "Ошибка! На ноль делить нельзя!"

ElseIf x > 0 And y > 1 Then

z = x + y

ElseIf x < = 1 And y <> 0 Then

z = x / y

End If

End Function

 

Рисунок 2. Ввод исходных данных в процессе выполнения программы

 

Пример 2. Написать программу вычисляющую значение Z

 

Программный код

Sub Условия()

Dim x, y, Z As Double

x = Range("A2").Value

y = Range("B2").Value

If x > 0.1 And y > 0.1 Then

Z = (x - y) ^ x

ElseIf x < 0.1 And y < 0.1 Then

Z = Sin(x)

ElseIf x = 0.1 And y = 0 Then

If y = 0 Then

MsgBox "Ошибка! Деление на ноль!"

Else: Z = (x * x) / y

End If

End If

Cells(2, 4).Value = Z

End Sub

 

Рассмотрим результат работы программы при разных значениях x и y (рис. 3, 4, 5).

Рисунок 3. Результат вычисления функции y= sin(x) при x<0.1 и y<0.1

 

Рисунок 4. Результат вычисления функции y= (x - y)x при x>0.1 и y>0.1

 

Рисунок 5. Результат вычисления функции y=x2/y при x=0.1 и y=0

Видеоурок по выполнению заданий лабораторной работы http://informatics.ssga.ru/practics/lab-29 .

 

Варианты заданий

Задание 1. Составить блок-схему и написать программу вычисления функции пользователя

Задание 2. Составить блок-схему и функцию пользователя согласно условию задачи.

1. Составить блок-схему и функцию пользователя для определения премии торговому агенту от суммы совершенной им сделки. Если объем сделки до 3000 рублей, то премия 1.5 %; если объем до 10000, то – 3 %; если выше 10000, то – 5 %. Предусмотреть проверку корректности данного «объем сделки».

2. Составить блок-схему и разработать функцию пользователя для вычисления годовой процентной ставки контракта по кредиту, взятого на определенный срок при известных сумме долга и сумме, подлежащей возврату. Используйте формулу:

где P – сумма кредита, S – сумма, подлежащая возврату, Т – срок кредита.

Предусмотреть проверку корректности данных.

Для проверки и отладки программы используйте следующие исходные данные: Т = 4 месяца, Р = 200 000, S = 210 000.

3. Составить блок-схему и разработать функцию пользователя для вычисления надбавки к стипендии по результатам сессии. Размер стипендии составляет 2 МРОТ (минимальный размер оплаты труда). Если три экзамена сданы на "5", то надбавка составляет 50 %, если есть одна "4" (при остальных "5"), то надбавка составит 25 %, если есть хотя бы одна "2", то стипендия не назначается, т. е. равна "0".

4. Составить блок-схему и разработать функцию пользователя для расчета суммы вклада с начисленным процентом в зависимости от вида вклада: до востребования – 2 %, праздничный – 5 %, срочный – 3 %.

Для проверки и отладки программы используйте данные для всех видов вкладов.

5. Составить блок-схему и разработать функцию пользователя для расчета реальной доходности с учетом налога на прибыль, которая вычисляется по формуле:

где i – годовая процентная ставка, g - налог на прибыль, выраженный в процентах, h - годовой темп инфляции, вычисляемый по формуле:

h=(1+h1/12)12- 1, где h1/12 – месячный темп инфляции.

Предусмотреть проверку корректности данных.

Для проверки и отладки программы используйте следующие исходные данные: i =60 %, h1/12 =3 %, g =25 %.

6. Составить блок-схему и разработать функцию пользователя расчета надбавки к окладу в зависимости от стажа работы сотрудников предприятия. Если стаж работы меньше 5 лет, то надбавка составляет 0 %, если стаж от 5 до 10 лет, то надбавка – 5 %, если стаж больше 10 лет, то надбавка – 10 %.

7. Составить блок-схему и разработать функцию пользователя определения комиссионных менеджеру по продажам от объема проданного товара. Если объем продажи до 8 000 рублей, то комиссионные 6 %; если объем до 16 000 рублей, то – 8 %; если объем до 32 000 рублей, то – 10 %; если выше 32 000, то – 12 %. Для обозначения ограничений объема продажи используйте константы.

8. Составить блок-схему и разработать функцию пользователя для расчета премиальных, выплачиваемых рабочему, размер выплаты которых определяется в зависимости от оклада и процента перевыполнения нормы выработки:

  • Ниже 100% - премия не назначается, т. е. равна нулю,
  • 100% - премия 20% от оклада,
  • 101-110% - премия 30% от оклада,
  • Выше 110% - премия 40% от оклада.

9. Составить блок-схему и разработать функцию пользователя, определяющую площадь треугольника по его сторонам по следующей формуле:

где a, b, c – стороны треугольника, р – полупериметр:

Предусмотреть проверку корректности данных.

10. Составить блок-схему и разработать функцию пользователя возвращающую большее из трех значений с указанием имени переменной.

11. Составить блок-схему и разработать функцию пользователя возвращающую меньшее из трех значений с указанием имени переменной.

12. Составить блок-схему и разработать функцию пользователя, возвращающую сумму первой и третьей по величине значений.

 

13. Составить блок-схему и разработать функцию пользователя, вычисляющую стоимость потребляемой энергии компанией в зависимости от установленной расценки и количества потребляемой энергии:

Первые 240 кВт/час: 1,62руб. за кВт/час,

Следующие 300 кВт/час: 2,10руб. за кВт/час,

Свыше 540 кВт/час: 2,76руб. за кВт/час.

Для обозначения тарифов в процедуре использовать константы.

14. Составить блок-схему и разработать функцию пользователя начисления премии сотрудникам малого предприятия в зависимости от стажа работы и объема продажи товаров. Если стаж работы меньше 2 лет и объем продажи больше 80 000руб., то премия составляет 1.5 %. Если стаж от 2 до 5 лет, а объем продажи больше 100 000 руб., то премия – 5 %, если стаж больше 5 лет, а объем продажи выше 100 000 руб., то премия – 7 %, в остальных случаях - премия – 1 % .

15. Составить блок-схему и разработать функцию пользователя начисления процента удержания у работников завода от начисленной заработной платы и количества иждивенцев по следующему правилу:

  • при количестве иждивенцев более трех – 0 %;
  • при трех иждивенцев – 5 %;
  • при двух иждивенцев – 10 %;
  • при одном иждивенце – 12 %;
  • если нет иждивенцев – 14 %.

Содержание отчета

  1. Цель работы, условие задачи
  2. Алгоритм в виде блок-схемы.
  3. Исходный текст программы.
  4. Вводимые данные и результаты.
  5. Фрагменты экрана с диалоговыми окнами Excel.
  6. В программе предусмотреть сбойные ситуации (деление на ноль, извлечение квадратного корня из отрицательного числа и т. д.).
  7. Результат работы программы должен иметь наглядный вид.

Вопросы для защиты работы

  1. Какая конструкция у оператора повтора?
  2. Какие операторы разветвления Вы знаете?
  3. Чем заканчивается оператор IF, если в ветке «да» несколько операторов?
  4. Как выглядит полная форма оператора IF?
  5. Как выглядит оператор IF, если в ветке «нет» отсутствуют операторы?

 

Лабораторная работа № 3.

Время выполнения

8 часов

Цель работы

Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе циклических алгоритмов.

Задачи лабораторной работы

После выполнения данной работы студент должен знать и уметь:

  • знать все операторы, используемые в программах;
  • уметь применять любые из изученных операторов для написания своих модулей;
  • уметь объяснить написанную программу.

Пример 1.

В массиве чисел М(10) очистить клетки с нулевыми значениями.

 

Запись программы в виде блок-схемы (рис. 1) и визуальное представление ввода данных и вывода результата (рис. 2):

Рисунок 1. Электронная таблица с исходными данными

 

 

Рисунок 2. Результат работы программы

 

Пример 2.

Выявить, есть ли в массиве число 10? Если есть, на каком месте оно стоит (известно, что число может встретиться несколько раз).

 

Программный код

Sub Число()

Dim A As Variant

Dim i, k As Integer

i = 1

k = 0

A = Range("A1:A10")

For i = 1 To 10

If A(i, 1) = 10 Then

MsgBox ("Номер ячейки, содержащей число 10 - " & i)

k = k + 1

End If

Next i

MsgBox ("Число 10 встретилось следующее количество раз - " & k)

End Sub

 

Пример 3.

Вычислить произведение ряда:

 

Программный код

Sub Main()

Dim x, n, res As Double

x = 3

n = 4

res = 1

For i = 2 To n

res = res * (i * x / (2 * i - 1))

Next i

MsgBox "res=" & CStr(res)

End Sub

Private Sub CommandButton4_Click()

Dim x, n, res As Double

x = Cells(36, 1)

n = Cells(36, 2)

res = 1

For i = 2 To n

res = res * (i * x / (2 * i - 1))

Next i

Cells(38, 2) = res

End Sub

 

Визуальное представление ввода данных и вывода результата (рис. 3):

Рисунок 3. Результат работы программы

 

Пример 4.

Найти максимальное значение из значений элементов последовательности x1, x2, …, x20 (одномерного массива), используя оператор do while…loop

 

Программный код

Private Sub CommandButton5_Click()

Dim x(20) As Double

Dim res, res1 As Double

i = 1

res = 0

Do While i < 20

x(i) = Cells(44 + i, 1)

If x(i) > res Then res = x(i)

i = i + 1

Loop

Cells(47, 4) = res

End Sub

 

Визуальное представление ввода данных и вывода результата (рис. 4):

 

Рисунок 4. Результат работы программы

 

Пример 5.

Задан двумерный массив F(4 to 85, 2 to 6). Найти сумму элементов этого массива.

 

Программный код

Private Sub CommandButton1_Click()

Dim f(6) As Integer

For j = 4 To 8

res = 0

For i = 2 To 6

f(i) = Cells(j, i)

res = res + f(i)

Next i

Cells(j, 7) = res

Next j

End Sub

 

Пример 6.

Найти в процедуре сумму в каждом столбце.

 

Программный код

Sub kol(ByRef x() As Integer, ByVal n As Integer, ByVal m As Integer)

Dim i, j, k(2) As Integer

For j = 0 To m

k(j) = 0

For i = 0 To n

k(j) = k(j) + x(i, j)

Next i

MsgBox "k(j)=" & CStr(k(j))

Next j

End Sub

Sub commandbutton1_click()

Dim i, j, n, m, x(4, 2) As Integer

Dim k(2) As Integer

n = 4

m = 2

For i = 0 To n

For j = 0 To m

x(i, j) = Cells(i + 1, j + 1)

Next j

Next i

kol x, n, m

End Sub

 

Пример 7.

В процедуре найти сумму элементов 1 и 3 строки и записать их на место элементов 1 строки.

 

Программный код

Sub kol(ByRef x() As Integer, ByVal n As Integer, ByVal m As Integer, k() As Integer)

Dim i, j As Integer

For j = 0 To m

x(1, j) = x(1, j) + x(3, j)

Next j

End Sub

Sub commandbutton1_click()

Dim i, j, n, m, x(4, 4) As Integer

Dim k(2) As Integer

n = 4

m = 4

For i = 0 To n

For j = 0 To m

x(i, j) = Cells(i + 1, j + 1)

Next j

Next i

kol x, n, m, k

For j = 0 To m

For i = 0 To n

Cells(i + 7, j + 1).Value = x(i, j)

Next i

Next j

End Sub

Варианты заданий

Задание 1. Разработать алгоритм решения задачи и составить программу согласно варианта.

  1. Определить порядковые номера нулей в массиве.
  2. Все отрицательные элементы массива заменить нулями. Выдать сообщение о количестве таких замен.
  3. Найти порядковый номер минимального числа в массиве.
  4. Найти значение и координаты первого по порядку положительного элемента в массиве.
  5. Найти количество единиц в массиве.
  6. Каких чисел в массиве больше: положительных или отрицательных? (массив может содержать нулевые значения).
  7. Исходные данные: В таблице 10 строк. Первый столбец – фамилия работника, второй – стаж работника.
  8. По стажу работника определить, к какой группе он относится, если 1 группа – стаж до 3-х лет, 2 группа – до 5 лет, 3 группа – до 10 лет, 4 группа – свыше 10 лет.
  9. Найти сумму диагональных элементов блока ячеек, состоящего из 5 строк и 5 столбцов.
  10. Двадцати переменным массива присвоить одно и то же значение, равное наибольшему из них.
  11. Дан массив чисел. В клетке С1 записано некоторое число. Определить порядковый номер этого числа в массиве. Если в массиве такого числа нет, выдать об этом сообщение.
  12. Просуммировать положительные и отрицательные числа в массиве. Записать полученные суммы в ячейки В1 и В2. (в массиве могут быть нулевые значения).
  13. В клетку А1 записать число, если количество положительных элементов массива больше количества отрицательных. В противном случае записать в клетку А1 любой текст.
  14. Найти сумму положительных элементов массива, имеющих индекс 3, 5, 7 и т.д.
  15. В блоке ячеек записана матрица чисел. Ячейки с отрицательными значениями закрасить синим цветом, с положительными – красным, с нулями – желтым.

 

 

Задание 2. По заданным значениям a, x и n найти сумму ряда.

 

Задание 3. Решить задачу для своего варианта на одномерный массив двумя способами: с данными на рабочем листе и вводимыми по тексту программы.

  1. Вычислить сумму элементов, стоящих на чётных местах в последовательности х (20), используя оператор цикла do_loop until
  2. Вывести на печать номера элементов, попавших в диапазон (а, b) для последовательности а(30), используя оператор цикла for_next.
  3. Вывести на печать количество элементов массива А1, А2, … А20, попавших в интервал [2, 5] и их сумму, используя оператор цикла do_loop while.
  4. Вывести на печать номера элементов последовательности Х(20), значения которых равны заданному числу С, используя оператор цикла for_next.
  5. Вычислить произведение элементов, стоящих на четных местах в последовательности Х(20), используя оператор цикла do while_loop.
  6. Найти количество элементов последовательности А(20), значения которых равны нулю, используя оператор цикла do_loop until.
  7. Вывести на печать номера и значения положительных элементов последовательности Х(20), используя оператор цикла do until_loop.
  8. Вывести на печать номера с отрицательными значениями элементов для последовательности Х(20), используя оператор цикла for_next.
  9. Найти минимальное значение из значений элементов последовательности А1, А2,…, А20, используя оператор цикла do_ loop while.
  10. Найти минимальное значение из значений элементов последовательности Х1, Х2, … Х20, используя оператор цикла do_loop until.
  11. В последовательности Х(20) вывести на печать номера элементов, значения которых равны t, используя оператор цикла do until_loop.
  12. Найти количество отрицательных элементов в массиве С1, С2,…, С20, используя оператор цикла do until_loop.
  13. Дана последовательность Х(10). Найти сумму отрицательных элементов и вывести на печать номера этих элементов, используя оператор цикла do_loop while.
  14. Вычислить произведение элементов, стоящих на нечетных местах в последовательности Х(20), используя оператор цикла do while_loop.
  15. Дана последовательность Х1, Х2, …, Х20. Заменить в ней отрицательные значения элементов на их квадраты. Вывести на печать полученную последовательность, используя оператор цикла do while_loop.

Задание 4. Решить задачу для своего варианта на двумерный массив двумя способами: с данными на рабочем листе и вводимыми по тексту программы.

  1. Задан массив А(6,5). Найти номер строки и номер столбца с минимальным значением.
  2. Задан массив А(4,5). Найти минимальное значение.
  3. Задан массив х(5,5). Найти сумму отрицательных значений в каждой строке.
  4. Задан массив х(5,5). Найти сумму положительных значений в каждом столбце.
  5. Задан массив с(5,5) и число а. Найти количество элементов, равных по значению а.
  6. Задан массив с(5,5) и число а. Найти сумму элементов, равных по значению а.
  7. Задан массив х(5,5) и число а. Найти номера строк и столбцов элементов, равных по значению а.
  8. Задан массив х(5,5) и интервал (а,b). Найти номера строк и столбцов элементов, попавших по значению в этот интервал.
  9. Задан массив х(5,5) и интервал х[а,b]. Найти количество элементов, попавших по значению в этот интервал.
  10. Задан массив х(5,5) и интервал х[а,b]. Найти сумму элементов, попавших по значению в этот интервал.
  11. Задан массив А(6,4). Найти номер строки и номер столбца с максимальным значением.
  12. Задан массив А(4,5). Найти максимальное значение.
  13. Задан массив А(6,3). Найти номер строки и номер столбца с максимальным значением в каждом столбце.
  14. Задан массив А(5,5). Найти номер строки и номер столбца с максимальным значением в каждой строке.
  15. Задан массив А(4,5). Найти максимальное значение в каждой строке.

Задание 5. Решить задачи по условию 3 и 4 задания с использованием подпрограмм.

Содержание отчета

  1. Цель работы, условие задачи
  2. Алгоритм в виде блок-схемы.
  3. Исходный текст программы.
  4. Вводимые данные и результаты.
  5. Фрагменты экрана с диалоговыми окнами Excel.
  6. Результат работы программы должен иметь наглядный вид.

Вопросы для защиты работы

  1. Как описываются массивы переменных?
  2. Сколько операций цикла DO Вы знаете?
  3. Как выглядит оператор цикла FOR?
  4. Указать вид оператора DO, который выполняется, пока условие дает истину.
  5. Указать вид оператора DO, который выполняется, пока условие дает ложь.
  6. Можно ли прервать выполнение оператора FOR принудительно?

 

 

Программирование на VBA в MS Excel

Лабораторная работа № 1.

Линейные алгоритмы

Время выполнения

4 часа

Цель работы

Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе линейных алгоритмов.


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 2387; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.183 с.)
Главная | Случайная страница | Обратная связь