ЗОТФ-ЗФ / 4.6. Программирование алгоритмов итеративных циклических структур / Оформление 4.6
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ
Кафедра информатики
Лабораторная работа
по теме: «4.6. Программирование алгоритмов итеративных циклических структур»
Задание
Формализация и уточнение задания
Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности. Очевидно, что выражение для n-го члена заданной последовательности имеет вид:
an=(-1)n * (x2n/2n!)
Тогда формула для (n+1) члена последовательности имеет вид:
an+1=(-1)n+1 * (x2(n+1)/2(n+1)!) = (-1)n+1 * (x2n+2/(2n+2)!)
Отсюда получаем:
q = an+1/an = (-1)n+1 * (x2n+2/(2n+2)!) * (2n!/(-1)n * x2n
q = (-1) * (x2/(2n+1)(2n+2))
Графический интерфейс
Таблица элементов
Имя объектов
|
Свойство |
Значение свойства |
Form1 |
Text |
Тема 4.6. Программирование алгоритмов итеративных циклических структур |
Label1 |
Name |
Label1
|
Text |
Исходные данные |
|
ForeColor |
Maroon |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
Label2 |
Name |
Label2 |
Text |
X= |
|
ForeColor |
Черный |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
Label3 |
Name |
Label3 |
Text |
E= |
|
ForeColor |
Черный |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
Label4 |
Name |
Label4 |
Text |
N= |
|
ForeColor |
Черный |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
Label5 |
Name |
Label5 |
Text |
Таблица полученных значений |
|
ForeColor |
Maroon |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
Label6 |
Name |
Label6 |
Text |
Проверка с помощью встроенной функции: |
|
ForeColor |
Maroon |
|
Font |
Book Antiqua; 14,25pt; style=Bold |
|
TextBox1 |
Name |
TextBox1 |
ForeColor |
Черный |
|
Font |
Microsoft Sans Serif, Обычный, 8 пунктов |
|
TextBox2 |
Name |
TextBox2 |
ForeColor |
Черный |
|
Font |
Microsoft Sans Serif, Жирный, 8 пунктов |
|
TextBox3 |
Name |
TextBox3 |
ForeColor |
Черный |
|
Font |
Microsoft Sans Serif, Жирный, 8 пунктов |
|
TextBox4 |
Name |
TextBox4 |
ForeColor |
Черный |
|
Font |
Microsoft Sans Serif, Жирный, 8 пунктов |
|
ListBox1 |
Name |
ListBox1 |
ForeColor |
Черный |
|
Font |
Microsoft Sans Serif, Жирный, 8 пунктов |
|
Button1 |
Name |
Button1 |
Text |
Вычислить |
|
Font |
Comic Sans MS; 15pt; style=Bold |
|
Button2 |
Name |
Button2 |
Text |
Повторить |
|
Button3 |
Name |
Button3 |
Text |
Выход |
Программный код
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
'Функция ввода исходных данных из TextBox
Function vvod(ByVal tb As TextBox) As Double
Return CDbl(Val(tb.Text))
End Function
'Функция ввода исходных данных из TextBox
Function vvod_int(ByVal tb As TextBox) As Integer
Return CInt(Val(tb.Text))
End Function
'Функция вывода данных в TextBox
Sub vivod(ByVal text As Double, ByRef tb As TextBox)
tb.Text = CStr(text)
End Sub
Public Sub Reshenie(ByRef X As Double, ByVal Eps As Double, ByRef n As Integer)
Dim z, minus As String
Dim a, sum As Double
Dim ListIndex As Integer
z = " "
sum = 1
ListIndex = 1
a = (-1) * (X ^ 2) / 2
ListBox1.Items.Add(z)
' Начало цикла Do Until... Loop
Do Until Abs(a) < Eps
z = " "
sum = sum + a
n = n + 1
a = (-a * (X ^ 2)) / ((2 * n + 1) * (2 * n + 2))
If a < 0 Then minus = "" Else minus = Space(1)
z = z + Space(15) + "|" + Space(6) + Format(n, "0000") + Space(6) + "|" + Space(5) + "|" + minus + Format(a, "00.0000000") + Space(6) + "|" + Space(6) + Format(sum, "00.00000000") + Space(6) + "|"
ListBox1.Items.Add(z)
Loop
' Вывод результата проверки
vivod(Cos(0.6), TextBox3)
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim x As Double
Dim eps As Double
Dim n As Integer
'Присваиваем значения текстовых полей переменным
X = vvod(TextBox1)
Eps = vvod(TextBox2)
n = vvod_int(TextBox4)
'Переход в блок решения задачи
Reshenie(X, eps, n)
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
'Очистка
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
ListBox1.Items.Clear()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Application.Exit()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
Блок-схема
~