3 лаба
.docxФедеральное агентство связи
Ордена Трудового Красного Знамени
федеральное бюджетное образовательное учреждение высшего образования
«Московский Технический Университет Связи и Информатики»
(МТУСИ)
Кафедра Информатики
Лабораторная работа № 3
Тема:
«Структура VB-программ и процедуры. Средства программирования алгоритмов линейной структуры»
Вариант 00
Выполнил:
Великий студент
-----
Москва 0000
Цель: выполнения данной лабораторной работы состоит в получении практических навыков разработки, написания и отладки последовательных программ с использованием процедур, а также в изучении средств отладки.
Реализация 1-го задания – три проекта в одном решении:
Задание на разработку задачи:
Создайте приложение (решение), состоящее из трех проектов для вычисления арифметического выражения:
h = (208 * Log10(x) + x ^ 2) / (Abs(x - y ^ 2) - Exp(-y))
k=h; l=[h];q=fix(h);n=int(h)
S1=q;S=n
В каждом проекте для вычисления заданного арифметического выражения необходимо реализовать одну из следующих процедур: процедуру-функцию с формальными параметрами, процедуру-подпрограмму с формальными параметрами и процедуру без параметров (передача данных в соответствующем проекте будет осуществляться через глобальные объекты).
Формализация и уточнение задания:
Для формализации и уточнения задания запишите арифметическое выражение на языке программирования:
h = В соответствии с требованиями задания разобьем решение задачи на несколько отдельных задач и создадим три процедуры пользователя, вычисляющие заданное арифметическое выражения: процедуру-функцию func() с двумя формальными параметрами, необходимыми для вычисления выражения и передающимися по значению как входные аргументы; процедуру-подпрограмму proc1() с тремя формальными параметрами, из которых два необходимы для вычисления выражения и передаются по значению как входные аргументы и один является результатом и передается по ссылке; процедуру-подпрограмму proc2() без параметров, в которой два необходим для вычисления выражения аргумента, а результат передаются через глобальные объекты.
Элементы, разрабатываемых проектов в одном решении:
Графический интерфейс пользователя:
Разработайте форму каждого проекта
Схемы алгоритмов процедур:
Разработайте схемы алгоритмов трех процедур и событийную процедуру
Рис.1.Схема алгоритма процедуры функция func()
Рис.2. Схема алгоритма процедуры подпрограмма proc1()
Рис.3. Схема алгоритма процедуры proc2()
Рис 4.Схема алгоритма решаемой задачи:
5.3.1)
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Function func(ByVal x As Double, ByVal y As Double) As Double
Dim h As Double
h = (208 * Log10(x) + x ^ 2) / (Abs(x - y ^ 2) - Exp(-y))
func=h
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x, y, h, q, n As Double, k As Single, l As Integer
Dim s, s1 As String
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
h=func(x,y)
k = CSng(h)
l = CInt(h)
q = Fix(h)
n = Int(h)
s1 = CStr(q)
s = CStr(n)
TextBox3.Text = CStr(h)
TextBox4.Text = CStr(k)
TextBox5.Text = CStr(l)
TextBox6.Text = CStr(q)
TextBox7.Text = CStr(n)
TextBox8.Text = s1 + s
TextBox9.Text = CStr(n + q)
End Sub
End Class
5.3.2)
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Sub proc(ByVal x As Double, ByVal y As Double, ByRef h As Double)
h = (208 * Log10(x) + x ^ 2) / (Abs(x - y ^ 2) - Exp(-y))
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim x, y, h, q, n As Double, k As Single, l As Integer
Dim s, s1 As String
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
proc(x, y, h)
k = CSng(h)
l = CInt(h)
q = Fix(h)
n = Int(h)
s1 = CStr(q)
s = CStr(n)
TextBox3.Text = CStr(h)
TextBox4.Text = CStr(k)
TextBox5.Text = CStr(l)
TextBox6.Text = CStr(q)
TextBox7.Text = CStr(n)
TextBox8.Text = s1 + s
TextBox9.Text = CStr(n + q)
End Sub
End Class
5.3.3)
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Dim x, y, h As Double
Sub proc()
h = (208 * Log10(x) + x ^ 2) / (Abs(x - y ^ 2) - Exp(-y))
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim q, n As Double, k As Single, l As Integer
Dim s, s1 As String
x = Val(TextBox1.Text)
y = Val(TextBox2.Text)
proc()
k = CSng(h)
l = CInt(h)
q = Fix(h)
n = Int(h)
s1 = CStr(q)
s = CStr(n)
TextBox3.Text = CStr(h)
TextBox4.Text = CStr(k)
TextBox5.Text = CStr(l)
TextBox6.Text = CStr(q)
TextBox7.Text = CStr(n)
TextBox8.Text = s1 + s
TextBox9.Text = CStr(n + q)
End Sub
End Class
6) выполнения проекта
7) Проверка результата
Реализация 2-го задания:
5.1.2) форма 2
5.2.2) схема алгоритма
Рис 1Схема алгоритма решаемой задачи
5.3.4) Код решаемой задачи
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Sub proc1(ByVal UGOL1 As Double, ByVal UGOL2 As Double, ByRef UGOL3 As Double)
UGOL3 = 180 - UGOL1 - UGOL2
End Sub
Sub proc2(ByVal Storona As Double, ByVal UGOL1 As Double, ByVal UGOL3 As Double, ByRef TOR As Double)
TOR = Storona * (Sin(UGOL1) / Sin(UGOL3))
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim alpha, gamma, C, beta, A, B As Double 'локальные обьекты
C = Val(TextBox1.Text)
alpha = Val(TextBox2.Text)
beta = Val(TextBox3.Text)
proc1(alpha, beta, gamma) ' Вызов процедуры 1
proc2(C, alpha, gamma, A) ' Вызов процедуры 2
proc2(C, beta, gamma, B)
TextBox4.Text = CStr(A)
TextBox5.Text = CStr(gamma)
TextBox6.Text = CStr(B)
End Sub
End Class
6) Результат
7) Проверка
У равностороннего треугольника все стороны равны и углы по 60 градусов