Москва 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: