Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Лабораторная работа по теме Тема 4

Работа добавлена на сайт samzan.ru: 2016-06-20


Лабораторная работа по теме

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

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

4.6.1. Вопросы, подлежащие изучению

  1.  Алгоритмы организации итеративных циклических структур:  цикл с предусловием; цикл с постусловием.
  2.  Базовые алгоритмы, использующие итеративные циклические структуры: алгоритм вычисления суммы (или произведения) членов бесконечной последовательности; алгоритмы  вычислений по итеративным формулам.
  3.  Оператор, реализующий выполнение итеративного цикла, Do/Loop и его основные конструкции: Do WhileLoop; Do UntilLoop; Do...Loop While…;                           DoLoop  Until… ; Do... Exit   Do…Loop.

4.6.2. Задание

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

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

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

  1.  Разработать интерфейс пользователя. В этом интерфейсе предусмотреть отображение на форме номера итерации и значения  вычисляемого  члена бесконечной последовательности или корня уравнения.
  2.  Написать программный код процедур пользователя в соответствии со схемами алгоритмов. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных.
  3.   Написать программный код проекта. Событийная  процедура должна содержать только операторы вызова пользовательских (общих) процедур.
  4.  Выполнить созданный проект.
  5.  Получить решение.
  6.  Обосновать правильность полученных результатов на заранее разработанных тестах.

4.6.3. Варианты задания

          Таблица 4.6-1


1)

Вычислить с точностью ε = 0.00001 константу Эйлера (основание натурального логарифма), воспользовавшись разложением в ряд:

Сравнить результат со значением,  полученным с помощью  соответствующей встроенной  функции.

2)

Вычислить и вывести  те члены последовательности,

значения которых больше ε = 0.001 при x = 0.2.

3)

Вычислить arctg(x) с точностью ε = 0.0001,   воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции при x=1.5.

4)

Вычислить с точностью ε = 0.00001  значение функции  при x = 2, воспользовавшись  рекуррентной формулой:

.

Сравнить результат со  значением, полученным с помощью соответствующей встроенной функции.

5)

Вычислить константу         с точностью до ε = 0.00001, воспользовавшись разложением  в ряд:

Сравнить результат со значением,  полученным с помощью соответствующей встроенной функции.

6)

Вычислить с точностью ε  = 0.00001 значение функции

при x = 2, воспользовавшись формулой:

Сравнить результат со значением, полученным с помощью соответствующей встроенной  функции

7)

Вычислить sin 0.5 с точностью ε = 0.0001, воспользовавшись

разложением в ряд:

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

8)

Вычислить  с точностью ε = 0.00001,   воспользовавшись разложением в ряд: 

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

9)

Вычислить cos 0.6 с точностью ε = 0.00001,   воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции.

10)

Вычислить с точностью ε  = 0.0001 корень уравнения ,  воспользовавшись формулой: .

Проверить правильность решения подстановкой найденного корня в уравнение.

11)

Вычислить и вывести те члены последовательности,

значения которых по модулю больше ε  = 0.001 при x = 0.5.

12)

Вычислить при |x|<1   с точностью до ε = 0.0001, воспользовавшись разложением  в ряд:

Сравнить результат со значением,  полученным с помощью соответствующей встроенной функции.

13)

Вычислить корень уравнения с точностью   ε=0.0001, воспользовавшись итерационной формулой

Проверить правильность решения подстановкой найденного корня в уравнение.

14)

Вычислить значение  с точностью ε = 0.00001 , воспользовавшись представлением в виде в виде цепной дроби:

Значение дроби равно пределу числовой последовательности, члены которой вычисляются по рекуррентной формуле до достижения заданной точности

.

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

15)

Вычислить и вывести те члены последовательности,

значения которых по модулю больше ε = 0.001 при x = 0.3.

16)

Вычислить ln(x) с точностью ε = 0.0001,   воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции при x=1.5.

17

Вычислить sh 0.3 с точностью до ε= 0.00005, воспользовавшись разложением в ряд:     

Сравнить результат  со значением, полученным с помощью  встроенной  функции для вычисления   ex,  используя соотношение:

18)

Вычислить корень уравнения  x-0.5(sinx2-1)=0 с точностью           ε = 0.001, воспользовавшись итерационной формулой:

Проверить правильность решения подстановкой найденного корня в уравнение.

19

Вычислить ln(2) с точностью  ε = 0.001,  воспользовавшись представлением в виде ряда:   

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции.

20)

Вычислить с точностью ε = 0.00001 корень уравнения

воспользовавшись итерационной формулой

Проверить правильность решения подстановкой.

21)

Вычислить ch 0.7 с точностью до ε = 0.00005, воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью встроенной функции, используя соотношение:

22)

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается выражение для проверки полученного результата):

  (для |x|<1 сумма равна    )

23)

Вычислить при |x|>1  с точностью до ε = 0.0001, воспользовавшись разложением  в ряд:    

Сравнить результат со значением,  полученным с помощью соответствующей встроенной функции.

24)

Вычислить ln(x+1) с точностью ε = 0.0001,   воспользовавшись разложением в ряд:

Сравнить результат со значением, полученным с помощью

соответствующей встроенной функции при x=0.5.

25)

Вычислить и вывести те члены последовательности,

 , значения,  которых больше  ε  = 0.01, при x = 0.6.

26)

Найти наименьшее целое положительное n, при котором:

27)

Пусть Дано действительное число >0. Найти первый член , для которого выполнено условие .

28)

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):

                        2/6-1.

29)

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):  

                  /4

30)

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):                            3/4.

31)

Вычислить приближенное значение бесконечной суммы с точностью ε=0,0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):              1/4.

32

Вычислить  с точностью ε = 0.0001,   воспользовавшись разложением в ряд: .

Сравнить результат со значением, полученным с помощью соответствующей встроенной функции при x=0.5.

33)

Даны действительные числа x,  (x≠0, >0). Вычислить с точностью :

34)

Даны действительные числа x,  (x0, >0). Вычислить с точностью :

35)

Дано действительное b<0. Последовательность а1, а2, …образована по следующему закону: a1=b; ak=(ak-1+1)/(1-sin2k), k=2, 3, … .

Найти первый неотрицательный член последовательности.

 

4.6.4. Содержание отчета

  1.  Тема и название  работы.
  2.  Задание на разработку проекта и вариант задания.
  3.  Формализация задания.
  4.  Разработка приложения
  5.  Графический интерфейс пользователя;
  6.  Таблица свойств объектов;
  7.    Схемы алгоритмов решаемой задачи;
  8.    Программный код с использованием процедур.
  9.  Результаты выполнения проекта.
  10.  Доказательство правильности работы программы.

4.6.5. Пример выполнения задания-1

  1.  Тема и название работы

      Программирование алгоритмов итеративных циклических структур – Вычисление с точностью ε=10-5 корня заданного уравнения.

  1.  Задание на разработку проекта и вариант задания

Создать проект   Проект-4-6-1-Лаб для вычисления с точностью ε=10-5 корня уравнения f(x)=x3-2x2+x-3=0,  воспользовавшись   итерационной формулой

Проверить правильность решения подстановкой найденного корня в уравнение.

Составить схему алгоритма и написать программный код в соответствии с заданием. Если необходимо, предварительно провести формализацию.

3. Формализация и уточнения задания

Вычислим производную  f’(x)=3x2-4x+1. Обозначим x – текущее приближение к  корню, a – предыдущее приближение, f – значение функции f(x) для предыдущего значения, p – значение производной f'(x) для предыдущего значения, i – номер итерации, совпадающий с номером текущего приближения к корню уравнения,  y – значение функции  f(x)  для найденного с заданной точностью корня уравнения.

Будем считать, что заданная точность ε обеспечена, если модуль разности между текущим и предыдущим значениями корня меньше точности ε, то есть для нашего случая    |x-a|<ε.

Для решения поставленной задачи необходимо реализовать процедуру Sub Kop( ), которая в качестве входных параметров получает начальное значение x0=2.2 и точность ε=10-5, и возвращает  найденный корень xl. Эта процедура для вычисления корня по заданной формуле должна использовать две  процедуры Function: одна – Funy(),  вычисляющая значение f(x), а другая – Fproiz( )– значение производной этой функции f’(x). Заметим, что процедуру Sub Kop( )можно было оформить как Function, так как она возвращает только одно значение – вычисленный корень уравнения.

4. Разработка приложения

  1.  Разработка графического интерфейса пользователя

     Разработанная форма интерфейса пользователя приведена на рис. 4.6-1.

      

      Рис. 4.6-1

  1.  Установка свойств объектов

Свойства объектов управления разработанной формы должны быть приведены в    таблице    4.6-2.

         Таблица 4.6-2

Объект

Свойство

Значение свойства

Form1

Text

Тема 4.6. Программирование алгоритмов итеративных циклических структур

Label1

Name

Label1

Text

Вычисление корня уравнения f(x)=x^3-2x^2+x-3=0

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 10 пунктов

Label2

Name

Label2

Text

E=

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Label3

Name

Label3

Text

X0=

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Label4

Name

Label4

Text

Итерация

ForeColor

Черный

Font

Microsoft Sans Serif,  Обычный, 8 пунктов

Label5

Name

Label5

Text

Приближенный корень

ForeColor

Черный

Font

Microsoft Sans Serif,  Обычный, 8 пунктов

Label6

Name

Label6

Text

Решение x=  y=

ForeColor

Черный

Font

Arial,  Жирный, 12 пунктов

TextBox1

Name

TextBox1

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Обычный, 8 пунктов

TextBox2

Name

TextBox2

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

TextBox3

Name

TextBox3

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

TextBox4

Name

TextBox4

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

ListBox1

Name

ListBox1

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

ListBox2

Name

ListBox2

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Button1

Name

Button1

Text

Выполнить

Button2

Name

Button2

Text

Конец

  1.  Разработка схемы алгоритма

Схема алгоритма нахождения корня уравнения представлена на   рис. 4.6-2.

    Рис. 4.6-2

  1.     Написание программного кода с использованием процедур

 Программный код решаемой задачи  представлен на рис. 4.6-3.

Option Strict On

Option Explicit On

Imports System.Math

Public Class Form1

   

  'Функция ввода исходн. данных из  TextBox

   Function vvod(ByVal T As TextBox) As Double

       Return Val(T.Text)

   End Function

  'Процедура  вывода вещественного результата  в TextBox

   Sub vivod(ByVal Z As Double, ByVal T As TextBox)

       T.Text = CStr(Z)

   End Sub

   'Процедура  вывода вещественного результата  в ListBox

   Sub vivodList(ByVal Z As Double, ByVal LB As ListBox)

       LB.Items.Add(CStr(Z))

   End Sub

   ' Процедура  вывода целого результата  в ListBox

   Sub vivodListint(ByVal Z As Integer, ByVal LB As ListBox)

       LB.Items.Add(CStr(Z))

   End Sub

   'процедура-Function, вычисляющая производную

   Public Function FProiz(ByVal x As Double) As Double

       Dim p As Double

       p = 3 * x ^ 3 - 4 * x + 1

       Return p

   End Function

'процедура-Function, вычисляющая заданную функцию

   Public Function Funy(ByVal x As Double) As Double

       Dim f As Double

       f = x ^ 3 - 2 * x ^ 2 + x - 3

       Return f

   End Function

  ' Процедура решения задачи поиска корня

   Public Sub Kop(ByVal E As Double, ByVal x0 As Double, _

                  ByRef xe As Double)

       Dim x, a As Double

       Dim i As Integer

       i = 0 : x = x0

       Do

           a = x : x = a - Funy(a) / FProiz(a) : i = i + 1

           vivodListint(i, ListBox1)

           vivodList(x, ListBox2)

       Loop Until Abs(x - a) < E

       xe = x

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button2.Click

       End

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button1.Click

       Dim EE, x0x0, xn, y As Double

       EE = vvod(TextBox1)

       x0x0 = vvod(TextBox2)

       Kop(EE, x0x0, xn)

       vivod(xn, TextBox3)

       y = Funy(xn)

       vivod(y, TextBox4)

   End Sub

End Class

 Рис. 4.6-3

  1.  Выполнение проекта и получение результатов

Выполним проект на компьютере и получим следующий результат, приведенный на              рис. 4.6-4.     

Рис. 4.6-4     

  1.  Доказательство правильности работы программ

Значение функции при подстановке корня в уравнение  f(x)= 0.00012315320113. Это говорит о том, что значение функции f(2.17457839205816)=0.00012315320113 близко к нулю.


4.6.6. Пример выполнения задания-2

  1.  Тема и название  работы:

Программирование алгоритмов итеративных циклических структур – Вычисление членов заданной последовательности,  значения  которых по модулю больше заданного числа.

  1.  Задание на разработку проекта и вариант задания

Создать проект  Проект-4-6-2-Лаб для вычисления и отображения на экране тех членов  последовательности

 ,

значения  которых по модулю больше =0.0001, при x=1.5.

  1.  Формализация и уточнение задания

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

Очевидно, что выражение для n-го члена заданной последовательности имеет вид:

.

Тогда формула для (n+1) члена последовательности имеет вид:

      Имея в виду, что (n+1)!=n! ∙ (n+1), получим

       Откуда получаем  следующую рекуррентную  формулу

  -начальный член последовательности при n=1.

  1.  Разработка приложения
  2.  Разработка графического интерфейса пользователя

    Разработанная форма интерфейса пользователя приведена на рис. 4.6-5.

  

  Рис. 4.6-5

  1.  Установка свойств объектов

 Свойства объектов управления разработанной формы приведены в таблице  4.6-3.

                    Таблица 4.6-3

Объект

Свойство

Значение свойства

Form1

Text

Тема 4.6. Пример 2.

Label1

Name

Label1

Text

E=

ForeColor

Синий

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Label2

Name

Label2

Text

X=

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Label3

Name

Label3

Text

Задание:

ForeColor

Красный

Font

Microsoft Sans Serif,  Жирный, 10 пунктов

Label4

Name

Label4

Text

Вычислить все члены, заданной последовательности,

значения которых по модулю больше 0.0001

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

TextBox1

Name

TextBox1

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 10 пунктов

TextBox2

Name

TextBox2

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

ListBox1

Name

ListBox1

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

ListBox2

Name

ListBox2

Text

ForeColor

Черный

Font

Microsoft Sans Serif,  Жирный, 8 пунктов

Button2

Name

Button2

Text

Вычислить значения

Button1

Name

Button1

Text

Стоп

  1.  
    Разработка схемы алгоритма

Схемы алгоритмов представлены на рис. 4.6-6.

  Рис. 4.6-6

  1.  Написание программного кода с использованием процедур

  Программный код решаемой задачи представлен на рис. 4.6-7.

Option Strict On

Option Explicit On

Imports System.Math

Public Class Form1

   'Функция ввода исходн. данных из  TextBox

   Function vvod(ByVal T As TextBox) As Double

       Return Val(T.Text)

   End Function

   ' Процедура  вывода вещественного  результата  в ListBox

   Sub vivodList(ByVal Z As Double, ByVal LB As ListBox)

       LB.Items.Add(CStr(Z))

   End Sub

   ' Процедура вывода целого результата в ListBox

   Sub vivodint(ByVal Z As Integer, ByVal LB As ListBox)

       LB.Items.Add(CStr(Z))

   End Sub

   ' Процедура выч-я и вывода членов послед-ти с зад. точн.

   Private Sub Pos(ByVal x As Double, ByVal E As Double)

       Dim n As Integer

       Dim a As Double

       a = x – 1 :  n = 1

       Do While a > E

           vivodint(n, ListBox1)

           vivodList(a, ListBox2)

           a = a * (x - 1) / (n + 1)

           n = n + 1

       Loop

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button1.Click

       End

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, _

           ByVal e As System.EventArgs) Handles Button2.Click

       Dim EE, x0, y As Double

       EE = vvod(TextBox1)

       x0 = vvod(TextBox2)

       Pos(x0, EE)

   End Sub

End Class

      Рис. 4.6-7

  1.  Выполнение проекта и получение результатов

      Выполним проект на компьютере и получим следующий результат, приведенный на                       рис. 4.6-8.     

     

      Рис. 4.6-8

  1.  Доказательство правильности работы программ

Все выведенные значения последовательности больше 0.0001.


4.6.7. Контрольные вопросы по теме

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

  1.  Что  представляет собой итеративный цикл?
  2.  Что представляет собой цикл с  предусловием?
  3.  Что представляет собой цикл с постусловием?
  4.  Что представляют собой циклы  Do и  каковы   их разновидности?
  5.  Что такое рекуррентная формула?
  6.  В чем отличие организации регулярных и итеративных циклов?
  7.  Какой оператор предназначен в языке VB для организации    итеративных циклов?
  8.  В чем отличие использования в операторе  Do конструкции While и  Until?
  9.  Каким образом можно выйти из цикла до его завершения?
  10.  Как определяется число повторений операторов тела цикла в итеративной  циклической структуре?
  11.  Какие операторы могут находиться в теле цикла оператора Do…Loop?
  12.  Сколько раз могут выполняться операторы тела цикла Do…Loop?  
  13.  Какой оператор используется для программирования циклических алгоритмических  структур с неизвестным числом повторений?
  14.  Какова алгоритмическая структура цикла итеративного типа?
  15.  Что за оператор Do While…Loop?
  16.  Что за оператор Do Until…Loop?
  17.  Что за оператор Do …Loop While?
  18.  Что за оператор Do …Loop Until?
  19.  Сколько раз будет выполняться тело цикла, если при программировании  циклической структуры используется оператор  Do While…Loop?
  20.  Сколько раз будет выполняться тело цикла, если при программировании  циклической структуры используется оператор   Do …Loop  While?
  21.  Сколько раз будет выполняться тело цикла, если при программировании  циклической структуры используется оператор  Do …Loop  Until?
  22.  Какие алгоритмы можно реализовать с использованием итеративных циклических  структур?
  23.  Что записывается после ключевых слов While или Until в операторе итеративного  цикла?




1. Контрольная работа должна иметь следующую структуру; титульный лист; оглавление; основная часть
2. Тамбовский государственный технический университетФГБОУ ВПО ТГТУ Утверждаю Председатель Ме
3. 336 Экономическая плотность тока Проводники Экономическая
4. 032014 Программа тура 11 дней - 10 ночей Дни
5. Курсовая работа- Організація і методика аудиту грошових коштів
6. а и материальности
7. Цифровые системы передачи вар
8. Контуры будущего общества и менеджмента 2
9. О свободе печати В настоящей заметке я намерен говорить об одном из самых больных и насущных вопросов наш
10. ЛИЧНОСТНОГО БЛАГОПОЛУЧИЯ ЧЕЛОВЕКА Развитие регионов всегда рассматривается с точки зрения совокупност
11. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата сільськогосподарських наук Київ ~
12. 069 мкм с твердым телом рубином получено в 1960 г
13. положила начало академическому исследованию политического консультирования
14. на тему- Мировая экономика- структура и основные субъекты Преподаватель- кан
15. Le escrlt црвен румен багряный багровый crimson purpur
16. ЛИЧНЫЕ МЕСТОИМЕНИЯ (PERSONAL PRONOUNS).html
17. а Пленум ЦК КПСС который положил начало реформам в России
18. Тематический словарьсправочник - Под ред
19. Тема ’1. Поняття господарського процесуального права Навчальна мета- опрацювати систему базових понять т.html
20. петербургский государственный университет путей сообщения Кафедра Основания и фундаменты