Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekz_informat (1).docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
223.77 Кб
Скачать

1.Разработка программ в приложениях Microsoft Office. VBA предст. собой среду пр-ния, разработанную спец. для созд. макросов в других прилож-ях. Макрос-это набор инструкций,которые сообщают программе какие действия следует выполнить,чтобы достичь опред цели. Он объединяет все эти инструкции в одноми сценарии,кот. Затем можно вызвать с помощью команды меню,кнопки панели инструментов или комбинации клавиш. С помощью языка VBA можно почти сразу начать создавать полезные макросы. Данное свойство выгодно отличает VBA от других языком прог-рования. 3 важнейшие понятия vb:экранная форма,программный модуль и программный проект.экр ф-это графическое представление окна win..прог модуль-это хранящийся в отд.файле прогр.код.(расшир.bas)прогр.проект.-это набор создаваемых файлов.проекту необходима стадщия отладки, состоящей в поиске и устранении ошибок. В любой разрабатываемой программе могут присутствовать различные ошибки. наиболее характерные ошибки принято условно подразделять на три типа: ошибки компиляции, ошибки выполнения и логические ошибки.Ошибки при компиляции возник. в неправильно составленных программных конструкциях. К ним могут относиться нарушения правил языка VBA нарушения правил грамматики или пунктуации ..Ошибки при выполнении проявляются на стадии выполнения программы после успешной компиляции. К таким ошибкам, как правило, относятся недопустимые математ. операции деление на ноль. Логические ошибки обусловлены нарушением логики решения той или иной задачи. После того, как написан код программы, необходимо провести компиляцию. Это можно сделать с меню Debug. Некоторые из этих ошибок обнаруживаются V B при заверш.набора строки с инструкцией в редакторе кода и нажатием клавишу <Enter>. Строка, в которой сод. ошибка, выделяется красным , и на экране отображ. диалоговое окно о возможной причине, вызвавшей ошибку.В языке VBA ввод значения переменной x можно осуществить с помощью функции InputBox, например: x = InputBox(“Введи значение x”)Вывод в специальное окно экрана можно реализовать оператором MsgBox, например: MsgBox (x)Можно осуществить ввод и вывод, используя лист Excel. Ячейки листа имеют имена Cells(i,j), где i – номер строки, j – номер столбца. Напри-мер, ввод значения переменной x из ячейки А1 выглядит в программе так: x = Cells(1,1), а вывод результата – значения x в ячейку, напр, С2 (третий столбец) реализуется так: Cells(2,3) = x.

2.Простые типы данных языка программирования Basic for Applications, их назначение Тип данных (тип переменной) обуславливает то, как хранятся и обрабатываются данные. Значение переменной - это данные, которые в ней хранятся. Типы переменных и объём памяти, которую они занимают. Поскольку Visual Basic может сам определить тип переменной по ее значению (см.Variant), то тип переменной можно не объявлять (не указывать). Однако, объявление переменных является правилом хорошего тона программирования а так же позволяет избежать некоторых ошибок в программе, таких как неодинаковое написание имени переменной в разных местах программы, несоблюдения типов данных в вычислениях. Переменную объявляют в начале окна кода или в начале процедуры с помощью оператора Dim такой записью: Dim Имя_переменной As Тип_переменной

Тип(описание)-разм.-диапазон знаков

Byte-1 byte-0 to 255

Boolean

(логический)-2 bytes- True or false

Integer(целее знач)-2 bytes-32,768 to 32,767

Long-4 bytes--2,147,483,648 to 2,147,483,647

Double-8 bytes-дробное число

Date(дата,время)-8 bytes-1.01.0100-31.12.9999

Object(сод.и ссылается на объекты,такие как элементы управления и формы)-4 bytes- любой указатель объекта

Single,вещественный-4 bytes-число с плавающей точкой обычной точности

String(строка символов)-длина строки-1-65400

Переменная типа Variant может принимать любой тип в зависимости от хранящегося в ней значения, однако, занимает больше памяти. Если переменная не была объявлена, то она имеет тип Variant.Для присвоения значения служит оператор присваивания, которым является знак равно (=).

Пример(вычиление площади треуг.по ф. Герона)

Dim a As Single,b As Single,c As Single

Private Sub Комманда1_Click()

Dim p As Single

a=CSng(InputBox(“Введите а”))

b=CSng(InputBox(“Введите b”))

c=CSng(InputBox(“Введите c”))

p=(a+b+c)/2

s=Sqr(p*(p-a)*(p-b)*(p-c))

Текст1.Text=”s’’+CStr(s)

EndSub------для ввода данных в программу здесь исп. стандартную ф-ию Inputbox.Так как Vb автоматич. Приписывает этой инф-ции тип String,то для перевода текстовой строки в число исп.ф-ию CSng.

3 Разветвляющиеся алгоритмы и их реализация на VBA.. Для реализации алгоритма с ветвлением необходим оператор условия. Его конструкция может иметь одну или несколько строк. Одна строка: If условие Then группа операторов 1 [Else группа операторов 2] Несколько строк:

If условие Then

Группа операторов 1

[Else

Группа операторов 2 ]

End If

If условие1 Then

Группа операторов 1

[Elseif условие2 Then

Группа операторов 2

Else

Группа операторов 2]

End If

Квадратные скобки не ставятся, а лишь показывают то, что находящееся между ними содержимое можно опустить в случае ненадобности.

Работает этот оператор следующим образом:

1. Проверяется условие

2. Если условие истинно, то исполняется группа операторов 1

3. Если условие ложно, то исполняется группа операторов 2

В качестве условия может быть использовано любое логическое выражение со знаком > (больше), < (меньше), = (равно), > = (больше либо равно), < = (меньше либо равно). Например: If x>0 Then MsgBox "Число положительное" Else MsgBox "Число отрицательное" End If

Также в качестве условия можно использовать переменную или арифметическое выражение. Если его результат будет равен 0, то это расценивается как "ложь", остальные значения - "истина": If a Then MsgBox "Не равно 0" Else

Н-р,

4. Назначение и способы реализации на vba циклов со счетчиком. Синтаксис оператора for..

Цикл означает повторяющийся набор действий.Эти циклы используются тогда, когда число повторений известно заранее – количество шагов задано, например, 20, 100, N, или

может быть вычислено как результат какого-либо выражения до исполнения

цикла. Параметром в цикле является счетчик шагов.

Счетчик (это значение специально выделенной переменной) может изменяться на единицу с каждым шагом или получать некоторое заданное приращение, например, 0.15. Цикл тогда исполняется до тех пор, пока значение счетчика не достигнет указанного в заголовке цикла значения. Общий вид оператора:

For Счетчик = Начальное значение To конечное значение [Step Шаг].

Операторы тела цикла (выполняются несколько раз) …

Next Счетчик

Пример 1:

For i=1 To 10

Msgbox(i)

Next i

По умолчанию шаг равен 1.

Пример 2:

For i=1 To 10 Step 2

Msgbox(i)

Next i

Такой цикл повторится 5 раз. Переменная i будет принимать значения от 1 до 10 с шагом 2, то есть 1, 3, 5, 7, 9. Эти числа будут выведены пользователю в диалоговых окнах.

Если не видим смысла дальнейшей работы счетчика(когда напр. I>верх границы)мы исп.Exit For,т.е выход.(между For и MsgBox If x>100 ниже Exit for)

5. Назначение и способы реализации на VBA циклов «с предусловием» и «постусловием..Циклы с условием используются в тех случаях, когда повторяющиеся действия нужно выполнять только при определенных условиях. Количество итераций не определено и в общем случае может быть равно нулю (в частности, для циклов с предусловием).

VBA предлагает пользователям несколько управляющих структур для организации циклов с условием:

- Четыре вида циклов Do..Loop, которые различаются типом проверяемого условия и временем выполнения этой проверки;

- Непрерываемый цикл While … Wend.

Цикл Do While … Loop - типичный цикл с предусловием. Условие проверяется до того, как выполняется тело цикла. Цикл продолжает свою работу, пока это <условие> выполняется (т.е. имеет значение True). Так как проверка выполняется в начале, то тело цикла может ни разу не выполниться.

Формат цикла Do While … Loop:

Do While <условие>

<блок операторов>

Loop

Оператор Do … Loop While предназначен для организации цикла с постусловием. Условие проверяется после того, как тело цикла, будет выполнено хотя бы один раз. Цикл продолжает свою работу, пока <условие> остается истинным.

Формат цикла Do … Loop While:

Do

<блок операторов>

Loop While <условие>

Циклы Do Until … Loop и Do … Loop Until являются инверсиями ранее рассмотренных циклов с условием. В общем случае они работают аналогично, за исключением того, что тело цикла выполняется при ложном условии (т.е. <условие>=False).

Формат цикла Do Until … Loop:

Do Until <условие>

<блок операторов>

Loop

Формат цикла Do … Loop Until:

Do

<блок операторов>

Loop Until <условие>

Цикл While … Wend также относится к циклам с условием. Данный оператор полностью соответствует структуре Do While … Loop.

Формат цикла While … Wend:

While <условие>

<блок операторов>

Wend

Отличительной особенностью этого оператора является невозможность принудительного завершения (прерывания) тела цикла (оператор Exit Do не работает в цикле While … Wend).

Для досрочного завершения итерации и выхода из цикла применяется оператор Exit. Этот оператор применим в любой циклической структуре, кроме While ... Wend. Общий синтаксис использования Exit для прерывания цикла таков:

<начало_цикла>

[<блок операторов 1>]

Exit (For | Do)

[<блок операторов 2>]

[Exit (For | Do)]

...

<конец_цикла>

При выполнении оператора Exit цикл прерывается, и управление передается оператору, следующему за оператором <конец_цикла>. В теле цикла может присутствовать несколько операторов Exit.

Пример. Вычислить сумму чисел от 0 до 100.

Решение 1. С помощью цикла Do While … Loop

Dim x As Double, s As Double

x = 0

s = 0

Do While x <= 100

s = s + x

x = x + 1

Loop

5..MsgBox ("s=" + Str(s))

Решение 2. С помощью цикла Do … Loop Until

Dim x As Double, s As Double

x = 0

s = 0

Do

s = s + x

x = x + 1

Loop Until x > 100

MsgBox ("s=" + Str(s))

Решение 3. С помощью цикла For … Next

Dim x As Double, s As Double

s = 0

For x = 0 To 100

s = s + x

Next x

MsgBox ("s=" + Str(s))

Решение 4. С помощью цикла While … Wend

Dim x As Double, s As Double

x = 0

s = 0

While x <= 100

s = s + x

x = x + 1

Wend

MsgBox ("s=" + Str(s))

6. Программирование задач, требующих сочетания цикла и ветвления. Примеры.

Программа для нахождения максимального значения массива.

Sub Кнопка( ) Dim n As Integer ‘Размер массива Dim a( ) As Integer ‘Это наш рабочий массив Dim i As Integer, MX As Integer, iMX AS Integer n=cells(1,1) ReDim a(1 to n) For i=1 to n a(i)=Int(10-20*Rnd):cells(i,2)=a(i) Next i MX =a(1): iMX=1 ’ iMX - Порядковый номер максимального элемента  For i=2 to n —-------------цикл If a(i)>MX then —----------ветвление MX=a(i) iMX=i Cells(1,3)=iMX:Cells(1,4)=MX End if Next i End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]