Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Структурный подход к разработке алгоритмов и программ на VBAСодержание книги
Поиск на нашем сайте В современном структурном программировании алгоритмы представляют как некоторые структуры, состоящие из отдельных базовых (т. е. основных) элементов. Доказано, что сколь угодно сложный алгоритм может быть представлен комбинацией трех базовых структур: следование, ветвление, цикл. Ниже приводится использование этих структур на простых примерах. Следование Составить блок-схему алгоритма и программу вычисления площади круга (рис. 4.2).
Sub Proc1() Dim r as single, s as single Const pi as single = 3.14159 r=cells(2,1) s=pi*r^2 cells(2,2)=s End Sub 1. Объявлены переменные r и s, как вещественные. 2. Объявлена константа pi, как вещественная со значением 3.14159. 3. Вводится значение переменной r из ячейки текущего листа EXCEL. 4. Переменной s присваивается вычисленное значение. 5. Выводится значение переменной s в ячейку текущего листа EXCEL.
Ветвление Составить блок-схему алгоритма и программу вычисления функции:
Sub blok2() Dim a as single, y as single a=Cells(2,1) If a<0 Then y=Sqr(abs(a)) Else y=tan(a) End If Cells(2,2)=y End Sub Повторение (цикл) Повторениереализуется с использованием циклических алгоритмов. В VBA имеются большие возможности для реализации циклов. Покажем использование трёх из них на одном примере программирования конкретной задачи (рис. 4.4, 4.5, 4.6). Пример. Составить блок-схему алгоритма и программу вычисления суммы n чисел натурального ряда. S =1+2+3+…. + n Для решения используем оператор цикла с предварительной проверкой условия.
Sub Blok4() Dim S!, i%, n% n=Cells(2,1) S=0 i=1 Do While i<=n S=S+i i=i+1 Loop cells(3,3)=S End Sub Тот же пример реализуем с использованиемоператора цикла с постусловием.
Sub Blok3() Dim S!, i%, n% n=Cells(2,1) s=0 i=1 Do S=S+i i=i+1 Loop While i<=n cells(2,3)=S End Sub Тот же пример с использованием оператора цикла с параметром.
Sub Blok5() Dim S%, i%, n% n=Cells (2,1) S=0 For i=1 to n step 1 S=S +i Next i Cells (4,3)=S End Sub Примеры программ на VBA Пример 1. Написать программу по блок-схеме (рис. 4.7).
Рис. 4.7. Блок-схема к примеру 1 Option Explicit Function f!(x!) f = x ^ 2 - 5 End Function Sub prog1() Dim a!, b!, e!, h!, x!, fa!, fx!, i% a = InputBox("a=") b = InputBox("b=") e = InputBox("e=") h = (b + a) / 2: x = a: fa = f(x): i = 1 Do While Abs(h) > e x = x + h fx = f(x) Cells(i, 1) = x Cells(i, 2) = fx i = i + 1 If f(a)*f(x) < 0 Then x = x - h Else fa = fx End If h = h / 2 Loop Cells(1, 4) = x: Cells(1, 5) = fx End Sub
Рис. 4.8. Окна программы и результатов Пример 2. Написать программу по блок-схеме (рис. 4.9).
Option Explicit Function f!(x!) f = x ^ 2 End Function Sub dopblok1() Dim x!, dx!, e!, d1!, d2!, i% x = InputBox("x=") dx = InputBox("dx=") e = InputBox("e=") d2 = (f(x + dx) - f(x)) / dx i = 1 Do d1 = d2 dx = dx / 2 d2 = (f(x + dx) - f(x)) / dx Cells(i, 1) = d1 Cells(i, 2) = d2 i = i + 1 Loop While Abs(d1 - d2) > e MsgBox ("d2=") & d2 End Sub
Рис. 4.10. Окна программы и результатов
Операции с массивами Пример 3. В одномерном массиве а(n) найти максимальный по значению элемент и указать его номер (рис. 4.11).
Рис. 4.11. Размещение массива в ячейках Excel Блок-схема алгоритма приведена на рис. 4.12.
Рис. 4.12. Блок-схема алгоритма нахождения максимального по значению элемента и его порядкового номера Текст программы: Option Explicit Option Base 1 Sub progmass() Dim a!(), Nrowa%, i%, AMax!, NMax%, n% n = Cells(1, 2) ReDim a(n) 'Ввод элементов вектора For i = 1 To n a(i) = Cells(i + 1, 4) Next i AMax = a(1) NMax = 1 For i = 2 To n If a(i) > AMax Then AMax = a(i) NMax = i End If Next i Cells(8, 1) = AMax Cells(8, 3) = NMax End Sub
Пример 4. В двумерном массиве A (nrow, ncoln) подсчитать количество положительных, отрицательных и нулевых элементов (рис. 4.13).
Рис. 4.13. Размещение массива в ячейках Excel
Блок-схема алгоритма приведена на рис. 4.14. Выбор идентификаторов для переменных и их типов: · A! (nrow%, ncoln%); · npol %, notr %, nnul %; · j %, i % – рабочие переменные.
Рис. 4.16. Блок-схема алгоритма нахождения количества положительных, отрицательных и нулевых элементов Текст программы: Option Explicit Option Base 1 Sub matr() Dim A!(), nrow%, i%, ncoln%, j %, npol%, notr %, nnul % nrow = Cells (2, 1) ncoln = Cells (2, 2) ReDim A(nrow, ncoln) For i = 1 To nrow For j = 1 To ncoln A(i, j) = Cells (i + 1, j + 2) Next j Next i npol = 0 notr = 0 nnul = 0 For i = 1 To nrow For j = 1 To ncoln If A(i, j) > 0 Then npol = npol + 1 ElseIf A(i, j) = 0 Then nnul = nnul + 1 Else notr = notr + 1 End If Next j Next i Cells(3, 2) = npol Cells(4, 2) = notr Cells(5, 2) = nnul End Sub
|
||||||||||||||
|
Последнее изменение этой страницы: 2021-04-04; просмотров: 212; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.006 с.) |