Индивидуальное задание №3
Постановка задачи
Создать форму, программный код которой позволяет протабулировать функцию и сумму этого ряда на заданном диапазоне, с шагом, задаваемым пользователем, вычислить относительную и абсолютную погрешность.
Входные данные:
exp, start, finish, step– аргумент функции, вещественное число (Double).
Выходные данные:
x- значение заданной функции от которой зависит результат вычисления, вещественное число (Double).
fx, s, abc, otn –вычисленные значения заданной функции зависимые от условия выбора пользователем, вещественные числа (Double).
Создание интерфейса
На Рисунок 7 представлен интерфейс формы для решения задания № 3.
Рисунок 7 –Интерфейс формы для задания № 3
Разработка блок-схемы
На Рисунок 8 представлен алгоритм решения задачи в виде блок-схемы.
Рисунок 8– Блок-схема к заданию №3
Разработка программного кода
Далее представлен разработанный программный код. Реализации алгоритма решения задания №3 в соответствии алгоритмом, представленном в виде блок-схемы на соответствует процедура button1_Click().
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Л_4_ИндЗадания
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
double start, finish, step, exp, s, a, fx = 0, abc, otn;
int n;
exp = Convert.ToDouble(textBox1.Text);
start = Convert.ToDouble(textBox2.Text);
finish = Convert.ToDouble(textBox3.Text);
step = Convert.ToDouble(textBox4.Text);
textBox5.Text = " x" + "\t" + " f(x)" + "\t" + " s" + "\t" + " Абс. / Отк." + "\r\n";
for (double x = start; x <= finish; x += step)
{
s = 1.000;
a = 2*x/2;
n = 0;
while (Math.Abs(a) > exp)
{
s += a;
n++;
a *= ((Math.Pow(n, 2) + 2 * n + 2) / (Math.Pow(n, 3) + Math.Pow(n, 2) + n + 1)) * (x / 2);
}
fx = (Math.Pow(x, 2) / 4 + x / 2 + 1) * Math.Exp(x / 2);
abc = Math.Abs(s - fx);
otn = abc / s;
textBox5.Text += Convert.ToString(x) + "\t" + fx.ToString("F4") + "\t" + s.ToString("F4") + "\t" + abc.ToString("F4") + "\t" + otn.ToString("F4") + "\r\n";
}
}
private void button2_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.Show();
this.Close();
}
}
}
На Рисунок 9 представлен результат вычислений.
Рисунок 9– Пример выполнения задания № 3
Вывод
В данной лабораторной работе по изучению использования операторов цикла были рассмотрены примеры реализации приложений с разветвляющейся структурой на языке программирования C#. Был создан и протестирован многооконный проект, каждая форма которого была предназначена для решения одной задачи из индивидуальных заданий по варианту №10. Основные этапы разработки проекта и результаты выполнения описаны и представлены в виде скриншотов в пояснительной записке.
