Москва 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
Алгоритм: