Задание №2. Итерационные циклы.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФИЛИАЛ ФГБОУВО«НИУ «МЭИ»В Г. СМОЛЕНСКЕ
Кафедра менеджмента и информационных технологий в экономике
Направление 09.03.03«Прикладная информатика»
Профиль
«Прикладная информатика в топливно-энергетическом комплексе»
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА
по дисциплине «Информатика и программирование»
Вариант 27
Студент
группы ИТЭК-17 _____________________________________Р.В. Солдатенков
(подпись, дата)
Руководитель
к. т. н., доцент ______________________________________А.Ю.Пучков
(подпись, дата)
Смоленск 201
Содержание
Задание №1. Циклические алгоритмы. Табулирование функций. 3
Схема алгоритма для задания №1. 3
Разработка программы для задания №1. 3
Тестирование программызадания №1. 4
Задание №2. Итерационные циклы. 7
Схема алгоритма для задания №2. 7
Разработка программы для задания №2. 8
Тестирование программы задания №2. 9
Задание №3. Подпрограммы. Обработка массивов. 11
Схема алгоритма для задания №3. 11
Разработка программы для задания №3. 12
Тестирование программы задания №3. 13
Задание 4. Многомодульные приложения. 15
Схема алгоритма для задания №4. 15
Разработка программы для задания №4. 16
Тестирование программы для задания №4. 17
Список литературы.. 19
Задание №1. Циклические алгоритмы. Табулирование функций.
Задание.Составитьалгоритмипрограммувычислениязначенийфункцииy(x) в K равноотстоящих друг от друга точках при изменении x на отрезке[x1;x2]. Значения K, x1, x2, А вводится при работе программы.
|
|
Математическое описание решения. Для данной задачи математическое описание присутствует в тексте задания.
Схема алгоритма.В соответствии с заданием разработан алгоритм, схема которого отражена блок-схемой на рисунке 1.1
Рисунок 1.1 – Блок-схема алгоритма задания №1
Разработка программы. Разработка программы проводилась на языке высокого уровня CSharp. Список идентификаторов для программы, разрабатываемой в соответствии с алгоритмом, отраженном на рисунке 1.1, представлен в таблице 1.1[1].
Таблица 1.1 – Список идентификаторов для задания №1
№ | Наименование переменой и её смысл | Наименование переменной в алгоритме | Наименование переменной в программе |
1 | Число K | K | K |
2 | Число А | А | А |
3 | Шаг измерения h | h | h |
4 | Аргумент х | х | х |
5 | Начало отрезка х1 | х1 | х2 |
6 | Значение функции y | y | y |
7 | Символьная переменная H | H | H |
8 | Символьная переменная В | В | В |
Текст программы представлен на рисунке 1.2 [2]
private void button1_Click(object sender, EventArgs e)
{
double x1 = Double.Parse(textBox1.Text);
double x2 = Double.Parse(textBox2.Text);
|
|
double A = Double.Parse(textBox4.Text);
double x;
double y;
int K = Int32.Parse(textBox3.Text);
double h;
string H;
h = Math.Abs((x2 - x1) / (K));
H = Convert.ToString(h);
String B = "Не является корнем уравнения";
label3.Text = H;
for (x = x1; x <= x2; x += h )
{
if (x < 0)
{ y = (A - 8 * A) / Math.Pow(x, 2) + 4 * Math.Pow(A, 2);
listBox1.Items.Add(y);
}
else
{
y = Math.Pow(Math.Pow((Math.Pow(A, 1.0 / 3) - Math.Pow((Math.Pow((x - A), 2)), 1.0 / 3)), 3), 1.0 / 2);
if (y > 0)
{
listBox1.Items.Add(y);
}
else
{
listBox1.Items.Add(B);
}
}
}
Рисунок 1.2 – Текст программы на языке CSharp для задания №1
Тестирование программы. Тестирование является процессом прогона программы на различных входных данных с целью обнаружения в ней ошибок.
Результаты тестирования отражены в таблице 1.2. Вид окна с результатами работы программы на некотором наборе исходных данных показан на рисунке 1.3.
Таблица 1.2 – Результаты тестирования программы задания № 1
№ теста | Тестовые воздействия
| Результат программы
| ||||
Ожидаемый результат | Результат, выданный программой | |||||
1 | Ввод числовых данных
| Вводимые данные являются малыми числами из диапазона 10-13 до 10-37 | Корректное вычисление функции | Функция вычисляется корректно | ||
Вводимые данные являются большими числами из диапазона 10-13 до 10-37 | Корректное вычисление функции | Функция вычисляется корректно | ||||
Вводимые данные обращают знаменатель в ноль | Выдача сообщения об ошибке | Выдача сообщения об ошибке | ||||
2
| Некорректный ввод данных | Вводимые данные являются буквами | Выдача сообщения об ошибке | Выдача сообщения об ошибке | ||
Число х не введено | Программа продолжает запрашивать ввод данных | Программа продолжает запрашивать ввод данных | ||||
Вместо разделительной точки введена запятая | Корректное вычисление функции | Выдача сообщения об ошибке |
Проведенное тестирование показало корректную работу программы на предложенных тестовых наборах входных данных, а выявленные ошибки были исправлены путем введения в программу дополнительных проверок.
Рисунок 1.3 – Форма выполнения и результат работы программы
Задание №2. Итерационные циклы.
Задание.Составитьалгоритминаписатьпрограмму вывода таблицы значений функции f(x) на отрезке [a, b] с шагом h. Функция f(x) представлена в таблице 2 в виде формулы, а также в виде бесконечного ряда. Суммируя члены ряда можно получить примерно такое же значение f(x), что и рассчитанное по формуле. Чем больше членов ряда суммируется, тем точнее вычисляется f(x), то есть тем ближе получается значение к рассчитанному по формуле. Сложениечленовряда выполнять дотехпор, поканебудетдостигнутазаданнаяточность ε = |fпоформуле(х) - fпо ряду (х)|.
|
|
Математическое описание задачи.Для данной задачи математическое описание присутствует в тексте задания.
Схема алгоритма.В соответствии с заданием разработан алгоритм, схема которого отражена блок-схемой на рисунке 2.1
Рисунок 2.1 – Блок-схема алгоритма задания №2
Разработка программы. Разработка программы проводилась на языке высокого уровня CSharp. Список идентификаторов для программы, разрабатываемой в соответствии с алгоритмом, отраженном на рисунке 2.1, представлен в таблице 2.1 [1]. Текст программы на языке CSharp представлен на рисунке 2.2 [2].
Таблица 2.1 – Список идентификаторов для задания №2
№ | Наименование переменой и её смысл | Наименование переменной в алгоритме | Наименование переменной в программе |
1 | Начало отрезка х1 | х1 | х1 |
2 | Конец отрезка х2 | х2 | х2 |
3 | Шаг изменения h | h | h |
4 | Вводимая точность измерения E | E | E |
5 | Сумма элементов ряда S | S | S |
6 | Значение функции Pr | Pr | Pr |
7 | Хранилище для решений ряда dS | dS | dS |
8 | Высчитанная точность расчёта E | E | e1 |
9 | Переменная x | x | x |
10 | Количество итераций n | n | n |
private void button1_Click(object sender, EventArgs e)
{
double x1 = double.Parse(textBox1.Text);
double x2 = Double.Parse(textBox2.Text);
double h = Double.Parse(textBox3.Text);
double e1;
double E = Double.Parse(textBox4.Text);
doublePr = 0.0; // Значение функции
double S = 0.0; // Сумма элементов ряда
int n;
doubledS; // Хранилищедляряда
for (double x = x1 + h; x <= x2; x += h)
{
n = 1;
do
{
S += Math.Round((4 * Math.Pow(x, 4 * n + 1)) / (4 * n + 1), 3);
dS = Math.Round( (4 * Math.Pow(x, 4 * n + 1)) / (4 * n + 1),3);
n++;
}
while (Math.Abs(dS) > E);
Pr = Math.Round(2 * Math.Atan(x) - 4 * x + Math.Log((1 + x) / (1 - x)), 3);
e1 = Math.Abs(Pr - S);
listBox1.Items.Add(string.Format("n = {0}; x = {1}; S = {2}; Pr = {3}; E = {4} ",n,Math.Round(x,3),Math.Round(S,3),Math.Round(Pr,3),Math.Round(e1,4)));
}
}
Рисунок 2.1 – Текст программы на языке CSharp для задания №2
Тестирование программы. Тестирование является процессом прогона программы на различных входных данных с целью обнаружения в ней ошибок.
Результаты тестирования отражены в таблице 2.2. Вид окна с результатами работы программы на некотором наборе исходных данных показан на рисунке 2.3.
Таблица 2.2 – Результаты тестирования программы задания № 2
№ теста | Тестовые воздействия
| Результат программы
| ||
Ожидаемый результат | Результат, выданный программой | |||
1 | Ввод числовых данных
| Вводимые данные являются малыми числами из диапазона 10-13 до 10-37 | Корректное вычисление функции | Функция вычисляется корректно |
Вводимые данные являются большими числами из диапазона 10-13 до 10-37 | Корректное вычисление функции | Функция вычисляется корректно | ||
Вводимые данные обращают знаменатель в ноль | Выдача сообщения об ошибке | Выдача сообщения об ошибке | ||
2 | Некорректный ввод данных | Вводимые данные являются буквами | Выдача сообщения об ошибке | Выдача сообщения об ошибке |
Число х не введено | Программа продолжает запрашивать ввод данных | Программа продолжает запрашивать ввод данных | ||
Вместо разделительной точки введена запятая | Корректное вычисление функции | Выдача сообщения об ошибке |
Проведенное тестирование показало корректную работу программы на предложенных тестовых наборах входных данных, а выявленные ошибки были исправлены путем введения в программу дополнительных проверок.
Рисунок 2.3 – Форма выполнения и результат работы программы
Дата добавления: 2018-06-27; просмотров: 286; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!