Лабораторные работы по информатике
  • Регистрация
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса)

Лабораторная работа Разработка линейных программ.

Цель работы: познакомиться со средой программирования и приобрести навыки в записи выражений по правилам языка Visual Basic, анализа области определения функций. Познакомиться со способами ввода/вывода информации (операторы Let, Print, функции Tab(N), Spc(N), операторы CurrentX, CurrentY, метод Print объекта Debug, функции InputBox и MsgBox).

Время – 4 часа

Литература: Л1 с. 177 – 182, 243 - 249, Л2 с. 136 – 143, с. 190 – 203, Л3. 20 - 42

Общие сведения.

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

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

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

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

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

Таблица 3.4.1

Математические функции

Функция

Описание

Abs(N)[В. Л.1] [1]

Вычисляет абсолютное значение числа N

Atn(N)[2]

Вычисляет арктангенс числа N. Значение аргумента может находиться в интервале от – ¥ до + ¥[В. Л.2] 

Cos(N)

Вычисляет косинус аргумента

Exp(N)

Возвращает число е, возведенное в указанную степень

Fix(N)

Возвращает целое число, меньшее или равное N для положительных чисел и большее или равное N для отрицательных чисел

Int(N)

Возвращает целое число, меньшее или равное N как для положительных, так и для отрицательных чисел

IIf(усл., V1,V2)

Условная функция, возвращает результат согласно выражения V1, если условие истинно и согласно выражения V2, если условие ложно

Log(N)

Вычисляет натуральный логарифм аргумента

Rnd(N)

Возвращает случайное число в интервале от 0 до 1. При N<0 возвращает определенное число, зависящее от N; при N=0 – псевдослучайное число; при N>0 – новое случайное число

Round(N[, дес])

Возвращает число, округленное к заданному числу десятичных знаков

Sgn(N)

Возвращает знак числа: 1 , если N>0; 0 , если N=0; -1, если N<0

Sin(N)

Вычисляет синус угла

Sqr(N)

Вычисляет корень квадратный из аргумента

Tan(N)

Вычисляет тангенс угла

Val(C)

Преобразует аргумент символьного типа в число

В языке программирования Visual Basic нет логарифма по основанию 10, а также нет обратных тригонометрических функций. Поэтому полезно запомнить формулы, по которым можно вычислять логарифм по произвольному основанию и обратные тригонометрические функции:

(3.4.1)

(3.4.2)

(3.4.3)

(3.4.4)

Ввод данных осуществляется с помощью оператора 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.  Исследуйте функцию на отрезке [0,1]. Напишите текст программы и вычислите значение функции при произвольном значении аргумента из области задания функции. Результаты выведите на форму с использованием функций Tab, Spc или операторов CurrentX, CurrentY.

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

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

5. Повторите задание по п. 1-3. Данные вводите с помощью окна диалога InputBox, а результаты выведите на экран с помощью команды MsgBox.

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

1

q = -512,38 × 10-3 ; h = 2,941 × 105

2

q = -0,258 × 10-3 ; h = 51,334 × 105

3

q = -512,38 × 10-5 ; h = 0,558 × 105

4

q = 41,548 × 10-4 ; h = -52,333 × 106

5

q = -325,57 × 10-2 ; h = 6,278 × 10-4

6

q = -512,38 × 10-5 ; h = 0,558 × 105

7

q = 1,782 × 10-3 ; h = -25,782 × 10-5

8

q = 7,385 × 102 ; h = 1,78495 × 10-8

9

r = -1,7×10-5 ; s = 2,8×10-6

10

r = 1,2×10-4 ; s = -3,2×10-5

11

r = -4,5×10-8 ; s = 1,2×10-5

12

r = 1,87×10-4 ; s = 23,4×10-5

13

h= 1,23.10-3; q=14,58.10-5

14

h= 3,76.10-4; q=24,17.10-5

15

h= 1,28.10-3; q=57,34.10-5

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

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

(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, (k+1)p], где k четные члены натурального ряда и 0.

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

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

Окончательно получаем: функция определена на интервале 0<x<=1

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

REM Линейная программа

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.  Как вычисляются обратные тригонометрические функции arccos(x), arcsin(x), arcctg(x)?

6.  Какие ограничения на значение аргумента накладываются при использовании встроенных функций языка Visual Basic?

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

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

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

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

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

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

 [В. Л.1] N – числовая переменная, С – строковая переменная, [n] – параметр, заключенный в квадратные скобки необязательный.

 [В. Л.2] В тригонометрических функциях угол задается в радианах. Для пересчета радианов в градусы надо умножить значение в радианах на 180/p. Для пересчета градусов в радианы угол в градусах надо умножить на p/180. Число p приблизительно равно 3.141593, точное значение можно вычислить по формуле p=4*Atn(1)

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство