Пример выполнения задания




Лабораторная работа № 11

Тема: Разработка линейных программ

Общие сведения (дополнительно см. теорию)

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

Синтаксис всех выражений одинаков:

<операнд> знак_операции <операнд>

В качестве операндов в выражениях могут использоваться константы, переменные, функции и другие выражения. Математические функции, используемые в языке Visual Basic приведены в табл. 1.

Кроме этого, необходимо помнить всегда об одной из особенностей работы с формой и другими объектами в среде VB6: числовые данные вводятся в программу и выводятся в объекты и на форму в символьном виде. Поэтому при вводе данные должны переводиться из символьной формы в числовую с помощью функции Val(C), а при выводе - переводиться из числовой формы в символьную с помощью функции Str(N) или Str$(N).

Таблица 1 Математические функции
Функция Описание
Abs(N)[1] Вычисляет абсолютное значение числа N
Atn(N)[2] Вычисляет арктангенс числа N. Значение аргумента должно находиться в интервале от – ¥ до + ¥
Cos(N) Вычисляет косинус аргумента.
Exp(N) Возвращает число е, возведенное в указанную степень
Int(N) Возвращает целое число, меньшее или равное N как для положительных, так и для отрицательных чисел
Log(N) Вычисляет натуральный логарифм аргумента
Round(N[, дес]) Возвращает число, округленное к заданному числу десятичных знаков
Sgn(N) Возвращает знак числа: 1, если N>0; 0, если N=0; -1, если N<0
Sin(N) Вычисляет синус угла
Sqr(N) Вычисляет корень квадратный из аргумента
Tan(N) Вычисляет тангенс угла
Val(C) Преобразует аргумент строкового типа в число

Arcsin(x)=arctg(x / Sqr(1-x2))

Ввод данных осуществляется с помощью оператора Let:

Let <имя переменной> = <выражение>

Let a=2

Let b1=Sin(x)+exp(x)

Оператор LET может быть опущен, поэтому выражения

Let A= Sqr(x)+ Log(x) и A= Sqr(x)+ Log(x) эквивалентны.

 

Вывод данных осуществляется с помощью метода Print.

Метод Print выводит данные на форму. Синтаксис метода Print:

Print "Комментарий"; <список выражений>

Комментарии делают понятным пользователю, что выводится на экран методом Print. В качестве выражений могут использоваться константы, переменные, функции и выражения:

Print x, y

Print “х=”;х, “y=”;y

Print “Значение функции Sin(x) при x = “;x;” равно ”;Sin(x)

При использовании в качестве разделителя символа “;” значения выводятся без пробела, при использовании в качестве разделителя символа “,” значения выводятся в разных зонах.

В методе Print могут использоваться функции Tab(N) и Spc(N). Здесь N – число знакомест:

Print “х=”;х; Tab(20); “y=”;y

Результат:

1.754 3,564354

Print “х=”;х; Spc(20); “y=”;y

Результат:

1.754 3,564354

При использовании функции Tab отсчет символов ведется от края формы, а при использовании функции Spc – от текущего положения курсора.

Если в конце оператора Print стоят символы разделители, то курсор ввода остается в текущей строке и следующий оператор Print будет выводить информации с этой позиции. Если символы-разделители в конце оператора Print отсутствуют, то курсор переводится на следующую строку.

Позиционирование точки вставки можно осуществлять также с помощью операторов CurrentX, CurrentY. Оператор CurrentX задает расстояние до точки вставки по горизонтали, а CurrentY – по вертикали от края формы. Расстояния задаются в твипах. Например: CurrentX=500: CurrentY=200.

Результаты вычислений можно вывести также в окно Immediate оператором Debug.Print. Здесь Debug – объект для отладки программы, Print – метод данного объекта. Например: Debug.Print “Объем куба = ”,V

Функция InputBox позволяет вводить данные в режиме диалога. Синтаксис функции:

<переменная>=InputBox(“Сообщение”, “Заголовок окна”, X, Y, Справка, Подсказка)

X и Y здесь координаты верхнего левого угла окна диалога. Например:

sA= InputBox(“Введите Фамилию”, “Список студентов”,,1500,500).

iA = Val(InputBox(“Введите значение аргумента”, “Вычисление функции”)

В первом примере переменная символьного типа, во втором примере переменная числовая целого типа.

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

Синтаксис команды:

MsgBox “Сообщение”, <Состав кнопок>, “Заголовок окна”, Файл справки, Подсказка

Задание

1. Запишите выражения по правилам языка Visual Basic. Данные вводите с помощью оператора Let.

2. Определите и запишите область определения функции.

3. Напишите текст программы и вычислите значение функции при произвольном значении аргумента из области определения функции. Результаты выводить в форму с использованием Метода Print (или объекта Debug и его метода Print: Debug.Print(<список элементов>)) и функций Tab, Spc или операторов CurrentX, CurrentY.

4. Изобразите схему алгоритма.

Примечание: если области определения функции в целом не существует, проанализируйте отдельно числители и знаменатели и решите задачу по частям. Укажите для каждой части область определения функции.

Варианты заданий

№ вар Y =
 
 
 
 
 
 
 
 
 
 
     

Пример выполнения задания

Пример 3.4.1. Вычислить выражение:

(3.1.1) Решение.

1.Запись выражения по правилам языка Visual Basic:

y=(exp(2*x+3)+log(3*x^2+1)/log(10))/(sqr(5*sin(x))-atn(x^2))+atn(x/sqr(1-x^2))

2. Определение области допустимых значений аргумента:

Функция e2x+3 не накладывает никаких ограничений на значение аргумента.

У функции lg(3x2+1) значение аргумента должно быть больше 0, то есть, 3х2+1>0. Так как х2 будет положительным при любом значении х, то областью определения х будет вся числовая ось.

Для функции : функция Sin(х) – периодическая, ее значение должно быть больше или равено нулю, следовательно значение х должно быть расположено в интервалах [kp, k1p], где k четные члены натурального ряда и 0, а k1 – нечетные члены натурального ряда чисел.

У функции arctg(x2) нет ограничения на значение аргумента, функция принимает значение 0 при х=k2p, где k2 - любое целое число или 0. Но знаменатель в выражении (3.1.1) не должен быть равен нулю. Следовательно, х может принимать значения из интервалов kp< х< k1p.

Для функции arcsin(x) аргумент должен находиться в интервале -1<= x<=1. Окончательно получаем: 0<x<=1

Текст программы:

Private Sub Form_Click()

x=0.5

y=(EXP(2*x+3)+LOG(3*x^2+1)/LOG(10))/(SQR(5*sin(x))- _

ATN(x^2))+ATN(x/sqr(1-x^2))

PRINT “x=”x, “y=”y

Debug.Print “x=”;x;Spc(20);"y=";y

End Sub

Результат: х=0.5 y=42.60272

----------------------------------------------------------------------------

Private Sub Form_Click()

x=Val(InputBox(“Введите значение х ”, “Вычисление функции”))

y=(EXP(2*x+3)+LOG(3*x^2+1)/LOG(10))/(SQR(5*sin(x))- _

ATN(x^2))+ATN(x/sqr(1-x^2))

MsgBox “x= ” & Str(x) & VbCr & “y=” & Str(Round(y,2))

End Sub

Результат: х=0.5 y=42.60272

Контрольные вопросы

1. Что такое линейная программа? Изобразите схему алгоритма линейной программы.

2. Напишите арифметические функции языка Visual Basic.

3. Напишите тригонометрические и обратные тригонометрические функции языка Visual Basic.

4. Как вычисляется логарифм функции по произвольному основанию?

5. Приведите формат оператора Let и дайте пояснение.

6. Приведите формат метода Print и дайте пояснение.

9. Назовите функции и методы используемые для управления выводом информации на форму.

10. Изобразите схему алгоритма программы и поясните принцип работы программы по этой схеме.

 


[1] N – переменная числового типа, С –переменная строкового типа

[2] В тригонометрических функциях аргумент измеряется в радианах. Для пересчета радианов в градусы надо умножить значение аргумента на 180/p. Для пересчета градусов в радианы следует умножить аргумент на p/180. Точное значение p вычисляется по формуле p=4Atn(1). VB6 имеет только одну обратную тригонометрическую функцию Atn(x). Другие обратные тригонометрические функции вычисляются через Atn(x) с помощью функций преобразования.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: