Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие2.DOC
Скачиваний:
67
Добавлен:
10.09.2019
Размер:
2.81 Mб
Скачать

Лабораторная работа №22. Программирование алгоритмов линейной структуры

Цель работы: освоение простейших приемов программирования на языке Excel Visual Basic на примере алгоритмов линейной структуры, отработка различных способов ввода данных и вывода результатов.

Решение любой задачи подразделяется на три этапа: ввод данных, обработка данных и вывод результатов.

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

[LET] имя переменной = выражение

В программе, написанной на языке Excel Visual Basic ввод данных можно осуществить тремя способами:

  • Ввод данных непосредственно в программе.

В этом случае в качестве выражения, стоящего в правой части оператора присваивания, используется число( или текст, если данные текстовые).

  • Ввод данных в диалоге (с клавиатуры).

В этом случае в качестве выражения, стоящего в правой части оператора присваивания, используется функция InputBox(приглашение[,заголовок][,по умолчанию][,x позиция] [,y позиция] [,файл справки]). Эта функция имеет один обязательный аргумент – приглашение – это строковое выражение, отображаемое как сообщение в диалоговом окне функции. Аргумент заголовок используется для задания текста, отображаемого в строке заголовка диалогового окна функции InputBox. В окне функции имеется поле ввода, в которое пользователь должен ввести значение. Возвращает функция строковое значение, содержащее текст, введенный в поле ввода. Т.о., переменной, имя которой указано в левой части оператора присваивания, будет присвоено значение, введенное пользователем в поле ввода окна функции InputBox. Для преобразования введенного в поле ввода диалога строкового выражения в формат вещественного числа используется функция Val(строковое выражение).

  • Ввод данных из ячеек таблицы.

В этом случае в качестве выражения, стоящего в правой части оператора присваивания, используется объект WorkSheets(«имя листа»).Range(«адрес ячейки»).Value . Таким образом переменной, имя которой указано в левой части оператора присваивания, будет присвоено значение ячейки, адрес которой указан в правой части оператора.

Вывод результатов можно осуществить следующим образом:

  • Вывод в окне сообщения.

В этом случае используется функция MsgBox(приглашение[,кнопки] [,заголовок] [,файл справки])

  • Вывод в ячейки таблицы.

В этом случае используется следующая конструкция:

WorkSheets(«имя листа»).Range(«адрес ячейки»).Value = выражение

Т.о. значение выражения, стоящего в правой части конструкции, записывается в ячейку таблицы, имя которой указано в левой части.

Задача. Вычислить площадь треугольника по формулам:

где - полупериметр

Для решения задачи:

  1. Создать новую рабочую книгу в Excel

  2. Переименовать рабочий лист в «Работа 1»

  3. Ввести данные в ячейки таблицы согласно образцу:

    A

    B

    C

    D

    E

    F

    1

    Исходные данные

    Вычисление площади

    2

    a=

    4,6

    s1=

    3

    b=

    11,7

    p=

    4

    c=

    8,7

    s2=

    5

    h=

    3

  4. В ячейках Е2:Е4 задать формулы для вычисления s1,p,s2 (Внимание! s1 и s2 – это площадь одного и того же треугольника, вычисленная разными способами).

  5. Выполнить команду Сервис \ Макрос \ Редактор Visual Basic. В появившемся окне Microsoft Visual Basic выбрать пункт Insert (Вставка) операционного меню, а в нем команду Module (в рабочую книгу будет добавлен Модуль1 – Module1)

  6. Ввести следующую программу (Внимание! Во избежание ошибок текст программы должен быть набран в английском регистре, включая символы “ . , : Допускается использование русского шрифта при записи комментариев и текста, заключенного в кавычки в операторах InputBox, MsgBox)

Sub prog1()

ввод исходных данных

a = 4.6: b = 11.7: c = 8.7: h = 3

'вычисление площади по основанию и высоте

s1 = 1 / 2 * b * h

вывод результата в окне сообщения

MsgBox «s1=« & s1

'вычисление площади по формуле Герона

p = (a + b + c) / 2

вывод полупериметра в окне сообщения

MsgBox «p=« & p

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

вывод площади в окне сообщения

MsgBox «s2=« & s2

End Sub

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

  1. Запустить программу на выполнение, установив курсор в любом месте процедуры prog1() и нажав кнопку на панели Visual Basic. Проверить результаты вычислений. Сохранить рабочую книгу.

  2. Скопировать текст программы prog1() после оператора End Sub .

  3. Изменить название процедуры на prog2(). Внести соответствующие изменения в текст программы так, чтобы ввод исходных данных производился с помощью диалога (см. лекцию, функция InputBox). (Внимание! Во избежание ошибок, связанных с различными типами данных в Basic, следует использовать функцию Val в InputBox. Например, a = Val(InputBox(«введите а», «Исходные данные»)). Указанная функция позволяет преобразовать введенное в окно диалога число в формат вещественного числа).

  4. Запустить prog2() на решение и проверить результаты.

  5. Аналогично предыдущему заданию получить еще одну копию текста программы и назвать ее prog3().

  6. Самостоятельно внести соответствующие изменения в текст программы с учетом требования, что исходные данные вводятся из соответствующих ячеек таблицы, и вывод результатов производится в ячейки таблицы F2:F4. Запустить программу на решение.