Тема: Составление программ разветвляющейся структуры. Использование управляющей структуры IF…Then.
Цель: Научиться составлять простейшие программы на языке VBA, организовывать ввод-вывод данных, обмен информацией между VBA и рабочими листами Excel, использовать оператор If…Then.
Время: 80 мин.
Задание: Решить задачу согласно варианта, организовав ввод данных и вывод результата в диалоговые окна или в ячейки рабочего листа Excel.
Л
Элизабет Бунин. Excel Visual Basic для приложений. M.: Восточная книжная компания, 1996.
итература:
Содержание отчёта:
-
Ответы на вопросы, поставленные в пунктах описания последовательности выполнения работы.
-
Блок-схема алгоритма и текст программы.
-
Выводы по работе (что изучили, чему научились).
Варианты задания:
-
Составить программу, которая спрашивает имя и здоровается с его обладателем, если введённое имя принадлежит автору программы.
-
На плоскости расположена окружность радиуса R с центром в начале координат. Ввести заданные координаты точки и определить, лежит ли она на окружности. Результат присвоить символьной переменной. Решить задачу при R=2 для точек с координатами (0; 2), (-1.5; 0.7), (1; 1), (3; 0).
Считать, что точка с координатами x, y лежит на окружности радиуса R, если
, где e – точность, с которой осуществляется проверка на равенство (можно принять e = 10-5).
-
Заданы координаты двух точек. Определить, лежат ли они на одной окружности с центром в начале координат. Результат присвоить символьной переменной. Задачу решить для точек с координатами (0; 2), (2; 0); (1; 3), (2, 2). Проверку на равенство осуществлять с точностью e = 10-5.
-
Заданы площади круга S1 и квадрата S2. Определить, поместится ли квадрат в круге. Задачу решить при 1) S1 = 70, S2 = 36.74; 2) S1 = 0.86, S2 = 0.64
-
Заданы площади круга S1 и квадрата S2. Определить, поместится ли круг в квадрате. Задачу решить при 1) S1 = 3.2, S2 = 3.5; 2) S1 = 3.2, S2 = 4; 3) S1 = 6, S2 = 9.
-
Написать программу, которая бы спрашивала сокращённое имя, а печатала полное (например, Гриша – Григорий) для трёх Ваших друзей. Ввод незнакомого имени должен вызывать сообщение типа: «Я с Вами не знаком». Необходимые данные задать самостоятельно.
-
Составить программу для определения подходящего возраста кандидатуры для вступления в брак, используя следующее соображение: возраст девушки равен половине возраста мужчины плюс 7, возраст мужчины определяется соответственно как удвоенный возраст девушки минус 14. Данные для проверки работы программы задать самостоятельно. (Совет: в начале выполнения программы на экране должен появиться вопрос: «Мужчина или женщина?». Введите МУЖ или ЖЕН. В зависимости от ответа после ввода возраста выводятся соответствующие рекомендации.)
-
В киоске продаётся газета стоимостью 40 копеек и журнал стоимостью 1 грн. 50 коп. Составить программу, которая спрашивает о желании покупателя (журнал или газета?), принимает деньги (сумма денег вводится с клавиатуры), печатает причитающуюся сдачу или выдаёт сообщение о недостаточности полученной суммы. Исходные данные задать самостоятельно.
-
Составить программу, контролирующую знание закона Ома. Обучаемый вводит формулу закона Ома в строковую переменную, которая далее сравнивается с правильным ответом, хранящимся в строковой константе.
(Совет: перед вводом формулы на экране должно появиться точное указание о том, в каком виде и с использованием каких обозначений нужно осуществлять ввод формулы. Например, такое: «Формулу вводить без пробелов. Использовать обозначения: I – сила тока, U – напряжение, R – сопротивление. Выразить I через U и R.» )
-
Написать программу вычисления значения функции
-
Написать программу выбора наименьшего из трёх чисел. Исходные данные задать самостоятельно. Числа должны вводиться с клавиатуры. Результат вывести в виде: «Наименьшее из чисел …, …, … - число …».
-
Написать программу выбора наибольшего из трёх чисел. Исходные данные задать самостоятельно. Числа должны вводиться с клавиатуры. Результат вывести в виде: «Наибольшее из чисел …, …, … - число …».
-
Н аписать программу вычисления значения функции
-
Логической переменной b присвоить значение true, если числа x и y равны, и значение false иначе. X и y вводить с клавиатуры, результат вывести в виде: «Утверждение, что x = y - … (вместо многоточия подставляется false или true)» .
-
Даны числа a1, b1, c1 и a2, b2, c2. Определить точки пересечения прямых, описываемых уравнениями a1x + b1y = c1 и a2x + b2y = c2 , либо сообщить, что прямые совпадают, не пересекаются или вовсе не существуют. Исх. д. задать самостоятельно.
-
Даны числа a, b и c (a 0). Найти вещественные корни уравнения ax4 + bx2 + c = 0. Если корней нет, то сообщить об этом. Исходные данные задать самостоятельно.
-
Найти корни квадратного уравнения ax2 + bx + c = 0, где а 0. Исходные данные задать самостоятельно. Учесть, что если а = 1 или дискриминант (D) = 0, то существует только один корень уравнения, если D < 0, то вещественных корней нет.
-
Даны произвольные числа a, b и c. Определить, можно ли построить треугольник с такими длинами сторон. Если треугольник прямоугольный, равнобедренный или равносторонний, то сообщить об этом. Исходные данные ввести с клавиатуры.
-
Для заданного числа a найти корень уравнения f(x) = 0, где
Исходные данные выбрать самостоятельно.
-
Н аписать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Н аписать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Н аписать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Написать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
-
Н аписать программу вычисления значения функции
Исходные данные выбрать самостоятельно.
Последовательность выполнения работы:
-
Выделите исходные данные для решения задачи.
-
Представьте задачу в виде формул, соотношений и ограничений.
-
Разработайте алгоритм решения задачи. В данной работе он будет иметь вид, изображенный на рис.1.
-
Запустите Excel, откройте окно редактора VBA для написания программы.
-
Выполните команду: [Сервис][Макрос][Редактор Visual Basic], затем [Вставка][Модуль].
-
Наберите текст программы, оформив его в виде процедуры:
Sub Имя_процедуры ()
… (текст программы)
End Sub
Предусмотрите вывод исходных данных и результата в ячейки рабочего листа Excel.
-
Сохраните рабочую книгу Excel в своём каталоге на сервере как файл пр18.xls, покажите работу преподавателю и выключите компьютер.
Пример решения задачи:
Задача № 1.
Найти значения функции
Область определения функции Y: x ]-;0[ ]0;1[ ]1; [.
Начало
Да
Да
Нет
Y=(Sin(x))^3
X0 And X1
С оответственно, блок - схема алгоритма решения задачи выглядит следующим образом:
Ввод X
X<0
Y=Exp(x)/(x-1)
Вывод Y
Конец
Нет
Функция не определена
Рисунок 1.
Словесное описание алгоритма:
-
Начало.
-
Ввод значения переменной X.
-
Если Х < 0, то значение переменной Y вычисляется по формуле: Y = (Sin(x))^3, после чего – переход к пункту 5 (печать Y).
-
Если X > 0, то значение переменной Y будет вычисляться по формуле: Y = Exp(x) / (x-1). Но функция Y(x) = Exp(x) / (x-1) не определена в точке X = 1. Кроме этого, по условию, функция Y(x) не определена в точке X = 0. Поэтому, если X 1 и X 0, Y рассчитывается по вышеуказанной формуле ( Y = Exp(x) / (x-1) ) и переход к пункту 5. Иначе выводится сообщение «В этой точке функция Y не определена», после этого – переход к пункту 6 (конец программы).
-
Вывод на экран значения Y.
-
Конец.
Текст программы:
Sub Example_2()
x = InputBox ("Введите X: ")
If x < 0 Then
y = Sin(x) ^ 3
ElseIf x <> 0 And x <> 1 Then
y = Exp(x) / (x - 1)
Else
MsgBox ("При X = " & x & " функция Y не определена")
GoTo Метка
End If
MsgBox ("X = " & x & " Y = " & y)
Метка:
End Sub
Метка нужна для того, чтобы не появлялось сообщение X = … Y = … в том случае, когда функция Y не определена.
З адача № 2. Найти корни квадратного уравнения ax2+bx+c=0.
Рисунок 2.
Sub zad2()
a = Val(InputBox("a="))
b = Val(InputBox("b="))
c = Val(InputBox("c="))
D = b ^ 2 - 4 * a * c
If D < 0 Then
MsgBox ("Вещественных корней нет ")
Else
MsgBox ("X1 = " & (-b – Sqr (D) / (2 * a) & Chr (10) & "X2 = " & (-b + Sqr (D) / (2 * a))
End If
End Sub
0>
Достарыңызбен бөлісу: |