Тема 4.6. Лабораторная работа
Тема 4.6. Лабораторная работа
«Программирование алгоритмов итеративных
циклических структур»
Цель данной лабораторной работы состоит в освоении формализации при решении задач на компьютере, а также в изучении средств, приемов и получении практических навыков разработки, написания и отладки проектов, использующих итеративные циклические структуры.
Вопросы, подлежащие изучению
1. Алгоритмы организации итеративных циклических структур: цикл с предусловием; цикл с постусловием.
2. Базовые алгоритмы, использующие итеративные циклические структуры: алгоритм вычисления суммы (или произведения) членов бесконечной последовательности; алгоритмы вычислений по итеративным формулам.
3. Оператор, реализующий выполнение итеративного цикла, Do/Loop и его основные конструкции: Do While…Loop; Do Until…Loop; Do...Loop While…; Do…Loop Until…; Do... Exit Do…Loop.
4.6.2. Задание
1. Выбрать вариант задания из таблицы 4.6-1 по усмотрению преподавателя.
2. Провести формализацию поставленной задачи.
3. Составить схему алгоритма решения поставленной задачи.
4. Разработать интерфейс пользователя. В этом интерфейсе предусмотреть отображение на форме номера итерации и значения вычисляемого члена бесконечной последовательности или корня уравнения.
5. Написать программный код процедур пользователя в соответствии со схемами алгоритмов. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных.
6. Написать программный код проекта. Событийная процедура должна содержать только операторы вызова пользовательских (общих) процедур.
7. Выполнить созданный проект.
8. Получить решение.
9. Обосновать правильность полученных результатов на заранее разработанных тестах.
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.
|
| Вычислить sh 0.3 с точностью до ε = 0.00005, воспользовавшись разложением в ряд:
Сравнить результат со значением, полученным с помощью встроенной функции для вычисления ex, используя соотношение:
|
18)
| Вычислить корень уравнения x-0.5(sinx2-1)=0 с точностью ε = 0.001, воспользовавшись итерационной формулой:
Проверить правильность решения подстановкой найденного корня в уравнение.
|
| Вычислить 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)
| Пусть Дано действительное число e> 0. Найти первый член , для которого выполнено условие .
|
28)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
p2/6-1.
|
29)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
p/4
|
30)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
3/4.
|
31)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат): 1/4.
|
| Вычислитьс точностью ε = 0.0001, воспользовавшись разложением в ряд: .
Сравнить результат со значением, полученным с помощью соответствующей встроенной функции при x=0.5.
|
33)
| Даны действительные числа x, e (x≠ 0, e> 0). Вычислить с точностью e:
|
34)
| Даны действительные числа x, e (x≠ 0, e> 0).Вычислить с точностью e:
|
35)
| Дано действительное b< 0. Последовательность а1, а2, …образована по следующему закону: a1=b; ak=(ak-1+1)/(1-sin2k), k=2, 3, ….
Найти первый неотрицательный член последовательности.
|
Содержание отчета
1. Тема и название работы.
2. Задание на разработку проекта и вариант задания.
3. Формализация задания.
4. Разработка приложения
4.1. Графический интерфейс пользователя;
4.2. Таблица свойств объектов;
4.3. Схемы алгоритмов решаемой задачи;
4.4. Программный код с использованием процедур.
5. Результаты выполнения проекта.
6. Доказательство правильности работы программы.
4.6.5. Пример выполнения задания-1
1. Тема и название работы
Программирование алгоритмов итеративных циклических структур – Вычисление с точностью ε =10-5 корня заданного уравнения.
2. Задание на разработку проекта и вариант задания
Создать проект Проект-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.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
| Конец
|
Разработка схемы алгоритма
Схема алгоритма нахождения корня уравнения представлена на рис. 4.6-2.
Рис. 4.6-2
Установка свойств объектов
Свойства объектов управления разработанной формы приведены в таблице 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
| Стоп
|
Разработка схемы алгоритма
Схемы алгоритмов представлены на рис. 4.6-6.
Рис. 4.6-6
Тема 4.6. Лабораторная работа
«Программирование алгоритмов итеративных
циклических структур»
Цель данной лабораторной работы состоит в освоении формализации при решении задач на компьютере, а также в изучении средств, приемов и получении практических навыков разработки, написания и отладки проектов, использующих итеративные циклические структуры.
Вопросы, подлежащие изучению
1. Алгоритмы организации итеративных циклических структур: цикл с предусловием; цикл с постусловием.
2. Базовые алгоритмы, использующие итеративные циклические структуры: алгоритм вычисления суммы (или произведения) членов бесконечной последовательности; алгоритмы вычислений по итеративным формулам.
3. Оператор, реализующий выполнение итеративного цикла, Do/Loop и его основные конструкции: Do While…Loop; Do Until…Loop; Do...Loop While…; Do…Loop Until…; Do... Exit Do…Loop.
4.6.2. Задание
1. Выбрать вариант задания из таблицы 4.6-1 по усмотрению преподавателя.
2. Провести формализацию поставленной задачи.
3. Составить схему алгоритма решения поставленной задачи.
4. Разработать интерфейс пользователя. В этом интерфейсе предусмотреть отображение на форме номера итерации и значения вычисляемого члена бесконечной последовательности или корня уравнения.
5. Написать программный код процедур пользователя в соответствии со схемами алгоритмов. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных.
6. Написать программный код проекта. Событийная процедура должна содержать только операторы вызова пользовательских (общих) процедур.
7. Выполнить созданный проект.
8. Получить решение.
9. Обосновать правильность полученных результатов на заранее разработанных тестах.
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.
|
| Вычислить sh 0.3 с точностью до ε = 0.00005, воспользовавшись разложением в ряд:
Сравнить результат со значением, полученным с помощью встроенной функции для вычисления ex, используя соотношение:
|
18)
| Вычислить корень уравнения x-0.5(sinx2-1)=0 с точностью ε = 0.001, воспользовавшись итерационной формулой:
Проверить правильность решения подстановкой найденного корня в уравнение.
|
| Вычислить 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)
| Пусть Дано действительное число e> 0. Найти первый член , для которого выполнено условие .
|
28)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
p2/6-1.
|
29)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
p/4
|
30)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат):
3/4.
|
31)
| Вычислить приближенное значение бесконечной суммы с точностью ε =0, 0001 (справа от суммы дается ее точное значение, с которым можно сравнить полученный результат): 1/4.
|
| Вычислитьс точностью ε = 0.0001, воспользовавшись разложением в ряд: .
Сравнить результат со значением, полученным с помощью соответствующей встроенной функции при x=0.5.
|
33)
| Даны действительные числа x, e (x≠ 0, e> 0). Вычислить с точностью e:
|
34)
| Даны действительные числа x, e (x≠ 0, e> 0).Вычислить с точностью e:
|
35)
| Дано действительное b< 0. Последовательность а1, а2, …образована по следующему закону: a1=b; ak=(ak-1+1)/(1-sin2k), k=2, 3, ….
Найти первый неотрицательный член последовательности.
|
Содержание отчета
1. Тема и название работы.
2. Задание на разработку проекта и вариант задания.
3. Формализация задания.
4. Разработка приложения
4.1. Графический интерфейс пользователя;
4.2. Таблица свойств объектов;
4.3. Схемы алгоритмов решаемой задачи;
4.4. Программный код с использованием процедур.
5. Результаты выполнения проекта.
6. Доказательство правильности работы программы.
4.6.5. Пример выполнения задания-1
1. Тема и название работы
Программирование алгоритмов итеративных циклических структур – Вычисление с точностью ε =10-5 корня заданного уравнения.
2. Задание на разработку проекта и вариант задания
Создать проект Проект-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, так как она возвращает только одно значение – вычисленный корень уравнения.
Разработка приложения
Популярное: