Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie_po_informatike_Chast1_Word.doc
Скачиваний:
86
Добавлен:
10.02.2015
Размер:
25.57 Mб
Скачать

Порядок выполнения работы

1. Открыть в бригадной папке созданный на предыдущей лабораторной работе Excel – документ с именем “max2_my” и подготовить для текущей работы копию этого документа по команде Файл/Сохранить как, задав для копии имя “max3_my”.

2. Запустить редактор VBA. Результат: открытие окон и формы ранее созданного проекта.

3. Оставить имя проекта «Проба_If», но изменить свойством “Caption” заголовок формы на «Выбор максимума из трех чисел».

4. Дополнить форму надписью «Ввод с» (с – латинская буква) и текстовым полем для ввода значения переменной «с» с именем «Text4». Задать в этом поле, например, значение 15.

Примечание. Если в форме свободного места для дополнительных объектов нет, то следует сместить ранее созданные объекты, возможно уменьшив их размеры.

5. Дополнить текст подпрограммы, используя возможность копирования фрагментов текста:

  • в инструкцию Dim вставить описание переменной «с» и изменить в этой инструкции и далее по тексту имя результата на “max3”;

  • вставить строку с оператором присваивания переменной «с» числового значения из поля “Text4”;

  • вставить строку со вторым условным оператором без ветви “Else” для переприсваивания переменной “max3” значения переменной «с», если выполняется соответствующее условие.

Примечание. Для рационального использования поля редактирования с текстом подпрограммы (чтобы весь текст был виден в этом поле) можно воспользоваться следующими двумя возможностями размещения текста:

  1. логически единую, но длинную строку инструкции Dim (или другой инструкции внутри оператора), выходящую, возможно, за правую границу поля, можно разместить на две строки (и более), обозначив перенос; для этого нужно после запятой (разделителя списка описаний переменных) или по тексту другой инструкции вставить пробел, знак подчерк, а далее, нажав клавишу Enter, перенести остаток текста строки на следующую строку поля (для наглядности рекомендуется сместить перенесенный текст вправо под аналогичные элементы списка описаний переменных);

  2. для размещения всего текста на виду в поле редактирования по вертикали можно размещать в одной строке поля по несколько коротких записей операторов, разделяя их внутри строки двоеточием (в конце строки перед следующей строкой операторов двоеточие не ставить).

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

7. Скопировать в бригадную папку:

- в вычислительном центре из папки Х:\Программы каф. ПМ и САПР\Наумов\VBA,

- на кафедре ПМ и САПР из папки Х:\Naumov\VBA файлы max2.xls и max3_func.xls.

8. Открыть сначала файл max2.xls, а в нем – программную реализацию проекта вывода максимального из 2-х чисел с помощью структурированной программы, состоящей из главной (командной, вызывающей) подпрограммы с именем «CmdРешение» и вспомогательной (вызываемой, содержащей описание выполняемых действий) подпрограммы с именем «Анализ».

9. Ознакомиться с содержанием программы «Выбор максимального числа из двух чисел с помощью структурированной программы, состоящей из главной и вспомогательной подпрограмм»

Вспомогательная подпрограмма (описание)

Private Sub Анализ (Byval x As Integer, └┘–

Byval y As Integer, └┘–

ByRef r As Integer)

If x>y Then

r = x

Else

If x<y Then Вложенный оператор

r = y

Else Блок из 2-х операторов

МsgBox “числа равные”: r = x

End If

End If

End Sub

Главная подпрограмма

Private Sub CmdРешение_ Click ()

Dim a As Integer, b As Integer, └┘–

maximum2 As Integer

a = CInt (Text1.Text)

b = CInt (Text2.Text)

Анализ a, b, maximum2 Вызов вспомогательной подпрограммы

Text3.Text= maximum2

End Sub

Пояснения.

В главной подпрограмме помещен вызов вспомогательной подпрограммы с именем «Анализ». После имени следует список фактических параметров: «а» и «b» – входные данные, «maximum2» – результат анализа.

В описании вспомогательной подпрограммы помещен блочный условный оператор. В этой подпрограмме фигурируют формальные параметры, соответствующие фактическим параметрам по месту в списке и типу.

Перед именем каждого формального параметра стоит одно из двух ключевых (служебных) слов: ByVal или ByRef. Эти слова определяют статус параметра, а именно условия передачи параметра в подпрограмму и из нее.

Слово ByVal задает передачу по значению (By Value – посредством значения). Параметры такого статуса являются только входными. На их месте при вызове подпрограммы на выполнение в качестве фактических параметров кроме переменных, имеющих присвоенные им значения, могут стоять непосредственно числа и даже арифметические выражения. Значение переменной, переданной по значению, остается в вызывающей подпрограмме неизменным даже если оно изменялось внутри вызываемой (вспомогательной) подпрограммы.

Слово ByRef задает передачу по ссылке (By Reference – посредством ссылки на адрес в памяти ЭВМ, где прописана (размещена) переменная, являющаяся соответствующим фактическим параметром подпрограммы. Параметры такого статуса являются, как правило, выходными, но через них в вызываемую подпрограмму можно передавать и исходные данные ( текущие значения, изменяемые внутри этой подпрограммы, например, значения времени, изменяемые с заданным шагом при динамических расчетах).

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

В блочном условном операторе блоки операторов, помещенные в его ветвях, размещаются по тексту обязательно в отдельных строках (отдельно от строк, где размещены условия со служебным словом Then и служебное слово Else). В блоке операторов в одной строке могут размещаться несколько операторов, разделенных двоеточием. Блочный оператор завершается служебными словами End If, размещаемыми в отдельной строке.

Для наглядности соответствующие служебные слова If и End If, Then и Else рекомендуется размещать одно под другим, а вложенные блоки смещать по строкам вправо, выравнивая их по левому краю.

10. Выполнить программу из файла max2.xls для любых трех пар неравных чисел.

Далее закрыть этот файл и открыть скопированный ранее в бригадную папку файл max3.func.xls. В этом файле реализован проект вывода максимального из 3-х чисел с помощью структурированной программы, состоящей из главной подпрограммы и вспомогательной подпрограммы – функции с именем “max2”. Эта функция задает выбор максимума из 2-х чисел.

11. Ознакомиться с содержанием программы из файла max3_func.xls:

Выбор максимального из трёх чисел с использованием подпрограммы–функции выбора максимума из двух чисел.

подпрограмма–функция (описание)

Function max2(ByVal x As Integer, └┘–

ByVal y As Integer) As Integer

If x>y Then max2= x Else max2= y

End Function

Главная подпрограмма

Private Sub CmdРешение_ Click ()

Dim a As Integer, b As Integer, └┘–

c As Integer, maximum As Integer

a = CInt(Text1.Text)

b = CInt(Text2.Text)

c = CInt(Text3.Text)

maximum=max2(max2( a, b), c)

Text4.Text= maximum

End Sub

Пояснения.

В главной подпрограмме в конце действий выполняется вывод в поле с именем “Text4” максимального значения из 3-х чисел. Это значение определено с использованием и последовательным вызовом подпрограммы – функции выбора максимума из 2-х чисел.

Из описания этой функции следует, что результат ее выполнения, как и любой функции, связан с ее именем. Тип функции задан в конце заголовка описания функции.

После первого обращения к функции с именем “max2” она имеет значение максимума из значений переменных “a” и “b”. Это значение передается в качестве фактического параметра при втором обращении к функции наряду со значением переменной «с». В итоге получается окончательный результат.

12. Выполнить программу из файла max3_func.xls. Далее закрыть этот файл.

13. В конце работы самостоятельно реализовать проект по варианту, заданному преподавателем.

14. Завершить работу щелчком ЛКМ на пункте «Завершение сеанса <имя группы>».

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