Москва 2011
Московский Технический Университет Связи и Информатики
Кафедра вычислительной математики и программирования
Лабораторная работа
По дисциплине информатика
Тема 4.5. Лабораторная работа «Программирование алгоритмов регулярных циклических структур»
Выполнил : студент
Студент БИН 1105
Стреляев Пётр Владимирович
Москва 2011
Цельданной работы состоит в получении навыков разработки проектов, использующих алгоритмы регулярных циклических структур и освоении стандартного элемента управления ListBox.
Задание
1. Выбрать вариант задания из таблицы 4.5-1 по усмотрению преподавателя.
1. Провести формализацию поставленной задачи.
2. Составить схему алгоритма решения поставленной задачи.
3. Разработать интерфейс пользователя
4. Написать программный код процедур пользователя в соответствии со схемами алгоритмов. Использовать в качестве параметра цикла переменную целого типа. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных.
5. Написать программный код проекта. Событийная процедура должна содержать только операторы вызова пользовательских (общих) процедур.
6. Подготовить тесты для контрольного решения задачи.
7. Выполнить созданный проект.
8. Получить решение.
9. Обосновать правильность полученных результатов на заранее разработанных тестах для всех ветвей программы.
Интерфейс:
Таблица свойств объектов:
Объект | Свойство | Значение свойства |
Form1 | Text | Тема 4.5. Программирование алгоритмов регулярных циклических структур |
Label1 | Text | Начальное значение |
Label2 | Text | Конечное значение |
Label3 | Text | Шаг |
TextBox1 | Для ввода начального значения | |
TextBox2 | Для ввода конечного значения | |
TextBox3 | Для ввода шага | |
ListBox1 | Для вывода значений | |
Button1 | Text | Выполнить |
Button2 | Text | Конец |
Алгоритм:
Resh(n,st,x)
___
I=1,n
Нет Да
x < 0
y = 0.1
Да Нет
(0 < x) & (x < 2)
y = R1(x) y = R2(x)
sn = sn + " | " + CStr(i)
sx = sx + " | " + CStr(x)
sy = sy + " | " + Format(y, "0.00")
x = x + st
Вывод
sn,sx,sy
Конец rech()
Начало
R1(x) R2(x) x = vvod(TextBox1)
pg2 = vvod(TextBox2)
Return Exp(x - 2) Return Log(x)
st = vvod(TextBox3)
Конец Конец
R1 R2 n = CInt(Fix((pg2 - x) / st) + 1)
resh(n, st, x)
Конец
Код программы:
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
Function vvod(ByVal t As TextBox) As Double
Return Val(t.Text)
End Function
Sub vivod(ByVal t As TextBox, ByVal z As Double)
t.Text = Format(z, "00.0000")
End Sub
Function R1(ByVal x As Double) As Double
Return Exp(x - 2)
End Function
Function R2(ByVal x As Double) As Double
Return Log(x)
End Function
Sub resh(ByVal n As Integer, ByVal st As Double, ByVal x As Double)
Dim i As Integer
Dim y As Double
Dim sx, sy, sn As String
Dim z As String = ""
Dim z1 As String = "-----------------------"
sn = "| n = |"
sx = "| x = |"
sy = "| y = |"
For i = 1 To n
If ((0 < x) And (x < 2)) Then
y = R1(x)
ElseIf (x > 2) Then
y = R2(x)
Else
y = 0.1
End If
sn = sn + " | " + CStr(i)
sx = sx + " | " + CStr(x)
sy = sy + " | " + Format(y, "0.00")
x = x + st
z1 = z1 + "----------"
Next
ListBox1.Items.Add(z1)
ListBox1.Items.Add(z)
ListBox1.Items.Add(sn)
ListBox1.Items.Add(z1)
ListBox1.Items.Add(z)
ListBox1.Items.Add(sx)
ListBox1.Items.Add(z1)
ListBox1.Items.Add(z)
ListBox1.Items.Add(sy)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, pg2, st As Double
Dim n As Integer
x = vvod(TextBox1)
pg2 = vvod(TextBox2)
st = vvod(TextBox3)
n = CInt(Fix((pg2 - x) / st) + 1)
resh(n, st, x)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Application.Exit()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
ListBox1.Items.Clear()
End Sub
End Class
Excel: