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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: