Москва 2011

Московский Технический Университет Связи и Информатики

Кафедра вычислительной математики и программирования

Лабораторная работа

По дисциплине информатика

Тема 4.6. Лабораторная работа

«Программирование алгоритмов итеративных
циклических структур»

Выполнил : студент

Студент БИН 1105

Стреляев Пётр Владимирович

Москва 2011

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

Задание

1. Выбрать вариант задания из таблицы 4.6-1 по усмотрению преподавателя.

2. Провести формализацию поставленной задачи.

3. Составить схему алгоритма решения поставленной задачи.

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

2. Написать программный код процедур пользователя в соответствии со схемами алгоритмов. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных.

3. Написать программный код проекта. Событийная процедура должна содержать только операторы вызова пользовательских (общих) процедур.

4. Выполнить созданный проект.

5. Получить решение.

6. Обосновать правильность полученных результатов на заранее разработанных тестах.

Интерфейс:

Таблица свойств обьектов:

Объект Свойство Значение свойства
Form1 Text Тема 4.6. Программирование алгоритмов итеративных циклических структур
Label1 Text Е=
Label2 Text Х0=
Label3 Text Тема 4.6. Программирование алгоритмов регулярных циклических структур
TextBox1 Для ввода E
TextBox2 Для ввода X
TextBox3 Для вывода (Ln(x+1/x-1))
TextBox4 Для вывода приблизительного значения  
ListBox1 Для вывода приблизительных значений
Button1 Text Выполнить
Button2 Text Конец
Button3 Text Заново

Код программы:

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 vivodList(ByVal Z As String)

ListBox1.Items.Add(Z)

End Sub

 

Function qq(ByVal n As Integer, ByVal x As Double) As Double

Return ((2 * n + 1) * x ^ (2 * n + 1)) / ((2 * (n + 1) + 3) * x ^ (2 * (n + 1) + 3))

End Function

 

Sub resh(ByVal x As Double, ByVal ee As Double)

Dim sum, xx, ln As Double

Dim n As Integer

Dim st As String

ln = Log((x + 1) / (x - 1))

TextBox3.Text = CStr(ln)

n = 1

sum = 0

xx = 2 / x

st = "номер итерации| x | сумма | q | |E - x| |"

vivodList(st)

st = " "

vivodList(st)

st = "--------------------------------------------------------------"

vivodList(st)

Do

sum = sum + xx

st = "| " + CStr(n) + " | " + CStr(Format(xx, "0000.0000000000")) + " | " + CStr(Format(sum, "0000.0000000")) + " | " + CStr(Format(qq(n, x), "0000.00000000")) + " | " + CStr(Format(((qq(n, x)) * xx), "0000.00000000"))

vivodList(st)

n = n + 1

xx = (qq(n, x)) * xx

Loop While (xx > ee)

End Sub

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim x, Ee As Double

Ee = vvod(TextBox1)

x = vvod(TextBox2)

resh(x, Ee)

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 = ""

ListBox1.Items.Clear()

 

End Sub

End Class 4

Алгоритм: