Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
Лабораторная работа
Тема 4.5: «Программирование алгоритмов регулярных циклических структур»
Выполнил студент
группы ИТ1051
Бахтеев А.С.
Содержание:
1. Условия задания:
Создать приложение для вычисления функции Y согласно приведенной в задании формулы.
Задано: аргумент функции Y X, меняется на отрезке [a;b] с шагом h.
Отрезок [-π;π], шаг h=π/8.
Вычислить: Сумму значений функции y=f(x), заданной формулой:
2. Формализация задания:
На входе приложения рассчитываем все значения, которые принимает переменная X, десятичная часть отделяется от целой при помощи запятой.
На выходе получаем вещественное число Y, рассчитанное по формуле:
И вещественное число, являющееся суммой всех неотрицательных значений функции y=f(x).
3. Блок-схема
4. Windows приложение.
Рис. 4.1.1 «Графический интерфейс»
На рис. 4.1.1 изображен графический интерфейс windows приложения. Кнопка «ВЫЧИСЛИТЬ» запускает вычисления. Кнопка «ВЫХОД» завершает работу программы и закрывает окно приложения.
В списки «Значения X» и «Значения y=f(x)» выводятся числовые значения аргументов функции Y и рассчитанные значения функции Y, дробные части которых отделяются запятой. В текстовом поле «Сумма значений y=f(x) при y >0» выводится результат сложения всех неотрицательных значений функции Y.
Программный код windows интерфейса:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MyLab4_5_win
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
//задаем переменные
double X = -Math.PI;
double Y, sum = 0;
double h = Math.PI / 8;
while (X <= Math.PI) //выполняем пока Х не станет больше Пи
{
listBox1.Items.Add(Math.Round(X, 4));
//добавляем в listBox1 строчку с текщим значением X
//округленным до 4х знаков после запятой
Y = 1 / (X + 2 * Math.PI) - Math.Sin(X);
listBox2.Items.Add(Math.Round(Y, 7));
//рассчитываем и выводим в listBox2 значение функции Y
if (Y > 0)
{
sum = sum + Y;
}
//складываем все значения Y, которые больше нуля
X = X + h;
//добавляем к Х Pi/8
}
textBox1.Text = sum.ToString();
//выводим суммарное значение Y при Y>0
}
}
}
Программный код класса Program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace MyLab4_5_win
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Рис. 4.1.2 «Результаты работы»
На рис. 4.1.2 изображено окно windows приложения, рассчитывающего значение функции Y, согласно рассчитанным значениям аргумента этой функции.
Входящие данные X = -3,1416; …; 3,1416. На выходе значения функции Y = 0,3183099; …; 0,1061033. Сумма положительных значений Y: sum = 7,13974197967466.
5. Доказательство правильности результата
Для краткости посчитаем элементы выборочно.
X = -3,1416;
Y = 1/(-3,1416+2*3,1416) sin(-3,1416) = 0,3183099 (верно)
X = -1,1781;
Y = 1/(-1,1781+2*3,1416) sin(-1,1781) = 0,195883 + 0,92388 = 1,119763 (верно)
X = 0,7854;
Y = 1/(0,7854+2*3,1416) sin(0,7854) = 0,14147 0,7071 = -0,56563 (верно)
sum = 0,3183099 + 0,6656256 + 0,9617547 + 1,1553776 + 1,2122066 + 1,1197625 + 0,8889981 + 0,5524487 + 0,1591549 + 0,1061033 = 7,13974149 (учитывая, что C# округляет значения Y можем считать, что ответ верный и совпадает с результатом программы)
6. Выводы
1. Формализация:
Расчет происходил по формуле:
2. Интерфейс
Для всех форм был создан интерфейс, с полями для ввода и вывода значений.
3. Алгоритм
Для работы был составлен алгоритм решения, составлена блок-схема.
4. Код
В работе был написан код на языке C#, с использованием встроенных функций.
5. Тест
Программа проверена на правильность работы.
Выявленные ошибки в программе устранены.
6. Результат и проверка
Все данные были проверены с помощью ручных вычислений.
X = -3,1416;
Y = 0,3183099;
X = -1,1781;
Y = 1,119763;
X = 0,7854;
Y = -0,56563;
Сумма положительных: 7,13974149