- •Лабораторная работа №2 Ввод/вывод данных
- •Создание, выполнение, сохранение процедур
- •Ввод кода с клавиатуры
- •Создание процедуры с именем “Начaло_vba”, в которой на экран выводится сообщение "Начинаем работать с vba".
- •Выполнение процедуры
- •Сохранение процедуры
- •Щёлкнуть правой кнопкой мыши на элементе ЭтаКнига.
- •Выполнение процедуры
- •Сохранение процедуры
- •Получение контекстно-зависимой справки vba
- •Адресация ячеек в vba Excel
- •Вывод сообщений и ввод данных
- •Функция MsgBox
- •Упражнение 1. Вывод сообщений на экран
- •Объединение текстовых строк
- •Упражнение 2. Объединение текстовых строк
- •Ввод данных
- •Ввод данных в диалоге с клавиатуры. Функция InputBox
- •Метод InputBox
- •Упражнение 3. Ввод данных
- •Задания для самостоятельного решения
Упражнение 3. Ввод данных
Изучите функцию InputBox.
Вставьте в модуль Module1 процедуру ФункцияInputBox.
Выполните процедуру ФункцияInputBox.
Вставьте в модуль Module1 процедуру Пример.
Выполните процедуру Пример.
Изучите метод InputBox.
Вставьте в модуль Module1 процедуру ФункцияInputBox2.
Выполнить процедуру ФункцияInputBox2.
Вставьте в модуль Module1 процедуру Пример2.
Выполните процедуру Пример2.
Проанализируйте результаты выполнения процедур.
Контрольное упражнение к лабораторной работе №2
Подсчитать площадь S треугольника со сторонами a, b, c по формуле Герона:
S=
где p = (a + b + c) / 2, a = 3, b = 4, c = 5.
Ввод/вывод данных осуществлять двумя способами:
На экран должны выводиться запросы вида «Введите значение a», «Введите значение b», «Введите значение c». Вывод результата представить в виде «Площадь треугольника равна» <значение S>.
Для вычисления корня квадратного использовать функцию VBA sqr:
S = sqr(p * (p - a) * (p - b) * (p - c))
Вводить данные в таблицу Excel, выводить результат тоже в таблицу Excel.
В этом способе данные вводятся в ячейки таблицы Excel непосредственно, без использования VBA. Для использования этих данных в качестве исходных в процедуре VBA можно ссылаться на ячейки с введёнными данными. Например, для присвоения значения переменной R значения ячейки A5 на текущем рабочем листе можно использовать инструкцию R=Cells(5,1) или инструкцию R=Range(“A5”) (смотри п.4 – Адресация ячеек).
Задания для самостоятельного решения
Решение линейных задач
Напишите программу для расчёта двух формул. Предварительно подготовьте тестовый пример с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй). Значение параметров тригонометрических функций должны задаваться пользователем в градусах.
Отчет оформить на бумаге формата А4 в формате Ms Word, руководствуясь в оформлении работы правилами и придерживаясь следующей последовательности:
1). Условие задачи;
2). Формализация задачи (если требуется);
3). Таблица имен;
4). Блок-схема программы;
5). Текст программы;
6). Таблица трассировки;
7). Результаты и выводы.
Список стандартных математических функций приведён в «Приложение 1. Стандартные функции VBA». Для вычисления функций, отсутствующих в библиотеке, требуется их выразить через существующие. Пример решения и оформления линейной задачи приведен в приложении 2.
Варианты заданий
Вариант 1
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Вариант 11
Вариант 12
Вариант 13
Вариант 14
Вариант 15
Вариант 16
Вариант 17
Вариант 18
Вариант 19
Вариант 20
Приложение 1
Стандартные математические функции
функция |
Значение |
Abs (число) |
Возвращает абсолютное значение (модуль) аргумента |
Atn (число) |
Возвращает арктангенс аргумента (в радианах) |
Cos (число) |
Возвращает косинус аргумента. Число задается в радианах |
Ехр (число) |
Возвращает результат возведения экспоненты в степень аргумента |
Fix (число) |
Возвращает целую часть аргумента |
Int (число) |
Возвращает целую часть аргумента |
Log (число) |
Возвращает результат натуральный логарифм аргумента |
Rnd (число) |
Возвращает случайное число |
Round (число, число) |
Округляет дробное значение первого аргумента до указанного во втором аргументе количества цифр после запятой |
Sgn (число) |
Возвращает -1, если число меньше 0; 0, если равно 0; и 1, если больше 0 |
Sin (число) |
Возвращает синус аргумента |
Sqr (число) |
Возвращает квадратный корень аргумента (аргумент должен быть больше 0) |
Tan (число) |
Возвращает тангенс аргумента (в радианах) |
Приложение 2
Примеры решения и оформления задач
Выполнить свой вариант задания и оформить работу письменно, руководствуясь в оформлении работы правилами и придерживаясь следующей последовательности:
1). Условие задачи;
2). Формализация задачи (если требуется);
3). Таблица имен;
4). Блок-схема программы;
5). Текст программы;
6). Таблица трассировки;
7). Результаты и выводы.
Отчет оформлять на бумаге формата А4.
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МОРСКОГО И РЕЧНОГО ФЛОТА ИМ. АДМИРАЛА С.О.МАКАРОВА
КАФЕДРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И ИНФОРМАТИКИ
Лабораторная работа № 1
Линейный вычислительный процесс.
Вычисление математических выражений
Вариант № 100
Работу выполнила
студентка гр. СП-11
Примерная Елена
Работу принял
доцент кафедры ВСиИ
Неклюдова С.А.
Санкт-Петербург
2015
Условие задачи
Напишите программу для расчёта двух формул. Предварительно подготовьте тестовые примеры по второй формуле с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй). Значение параметров тригонометрических функций должны задаваться пользователем в градусах.
Таблица имен
Имя объекта в задаче |
Имя объекта в программе |
Тип объекта |
Содержательный смысл |
m |
m |
вещественное число |
исходное данное |
n |
n |
вещественное число |
исходное данное |
x |
x |
вещественное число |
исходное данное |
|
z1 |
вещественное число |
расчетная переменная |
|
z2 |
вещественное число |
расчетная переменная |
Б
лок-схема
алгоритма
1
3
2
5
4
Трассировочная таблица
№ шага |
№ блока на блок-схеме |
Результаты вычислений |
1 |
1 |
Ввод m=1.5, n=-2.2, x=-3.5 |
2 |
2 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
Вывод z1=0155, z2=0155 |
|
|
5 |
Конец |
К
од
программы
' LAB1_v100 Линейный вычислительный процесс
' Расчёт по формулам
'
Option Explicit
Sub LAB1_v100()
Dim m As Double, n As Double, x As Double, z1 As Double, z2 As Double
m = InputBox("Введите m")
n = InputBox("Введите n")
x = InputBox("Введите x")
z1 = ((m - 1) * Abs(m / n) ^ (1 / 2) - n + 1) / Abs(4 - x) / _
(Abs(m ^ 3 * n) ^ (1 / 2) + m * n + m ^ 2 - m)
z2 = (Abs(m / n) ^ (1 / 2) - 1) / Abs(4 - x) / m
MsgBox ("z1=" & z1 & vbNewLine & "z2=" & z2)
End Sub
Результаты и выводы
Поскольку результаты трассировки совпали с результатами выполнения программы на компьютере, алгоритм разработан верно.
https://youtu.be/QbQ0afHzi0k
