Порядок выполнения работы. 1. Открыть в бригадной папке созданный на предыдущей лабораторной работе Excel – документ с именем “max2_my” и подготовить для текущей работы копию этого
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(ByValx 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. Завершить работу щелчком ЛКМ на пункте «Завершение сеанса < имя группы>».
Содержание отчета Отчет должен содержать: · номер, название и цель работы; · краткую теоретическую часть, включающую описание форматов строчного и блочного условных операторов, возможности вложенности одного условного оператора в другой; изложены основные понятия, связанные с использованием вспомогательных подпрограмм и главной подпрограммы; определение статусов параметров, задающих условия передачи этих параметров из главной подпрограммы во вспомогательную и обратно; · результаты выполнения работы согласно заданию, выданному преподавателем, а именно, текст составленных программ с пояснениями к ним, структуру окна формы задачи, описание действий по выполнению программ, результаты выполнения программы; · заключение по работе.
Контрольные вопросы
1. Определение разветвляющегося алгоритма. Пример. 2. Что такое логические операции, их назначение? Приведите примеры. 3. Синтаксис условного оператора «если…то». Формы записи условного оператора. 4. Сколько строк кода может следовать за операторами ThenилиElse?
|