Программный код с использованием процедур



Ниже представлен программный код основного проектаCoursework_Shulginova:

 

using System;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

using System.Windows.Forms;

using ClassLibrary1;

 

namespaceCoursework_Shulginova

{

publicpartialclassForm1 : Form

{

public Form1()

   {

InitializeComponent();

   }

//работакнопки "Вычислить"

privatevoid button1_Click(object sender, EventArgs e)

   {

double x, y, sinh;

       x = Vvod(textBox1);

sinh = ClassLibrary1.Class1.MySinh(x);

       y = Func(x);

Vyvod(textBox2, y);

 

}

//функция ввода действительного числа из текстового поля

doubleVvod(TextBox t)

   {

returnConvert.ToDouble(t.Text);

}

//функция вывода действительного числа в текстовом поле

voidVyvod(TextBox t, double z)

   {

t.Text = Convert.ToString(z);

}

//процедура вычисления значения основной функции

publicstaticdoubleFunc(double x)

{

return ClassLibrary1.Class1.MySinh(x) + Math.Tan(x + 1d) - Math.Pow(Math.Tan(2d + (ClassLibrary1.Class1.MySinh(x - 1d))), 2);

}

//функция очистки текстовых полей

voidClear()

   {

       textBox1.Clear();

       textBox2.Clear();

   }

//работа кнопки "Очистить"

privatevoid button2_Click(object sender, EventArgs e)

   {

Clear();

   }

//работакнопки "Выход"

privatevoid button3_Click(object sender, EventArgs e)

{

Close();

   }

 

   }

 

}

 

 

Программныйкодбиблиотекиклассов ClassLibrary1:

 

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

 

namespace ClassLibrary1

{

publicclassClass1

{

publicstaticdoubleMySinh(double x)

   {          

return (Math.Exp(x) - Math.Exp(-x)) / 2d;

}

 

}

}

 

Программный код консольного приложенияConsoleApplication1:

 

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

 

namespace ConsoleApplication1

{

classProgram

{

staticvoid Main(string[] args)

   {

doublex = 0;

conststringINVITE = "Пожалуйста, введитевещественноечислоx - аргументфункцииSinh(x)";

conststring CONTINUE = "Продолжим? (Да/Нет)";

stringanswer = "Да";

do

       {

//Организация ввода данных

Console.WriteLine(INVITE);

string temp = Console.ReadLine();

x = Convert.ToDouble(temp);

 

//Вычисления и вывод результата

Doubleres = 0;

res = Math.Sinh(x);

Console.WriteLine("Результат встроенного метода класса Math: " + res.ToString());

res = ClassLibrary1.Class1.MySinh(x);

Console.WriteLine("Вашрезультат: " + res.ToString());

 

//диалогспользователем

Console.WriteLine(CONTINUE);

answer = Console.ReadLine();

}

while (answer == "Да");

   }

 

}

}

 

Результаты выполнения проекта с доказательством правильности работы программы

Результат работы программы представлен на Рис. 5

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

 

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

В качестве значения входного аргумента (x) было использовано следующее значение: x = 1. Выполним решение и найдем значение заданной функции.

y( ) =

y(1) =  =

=  =

=  =

=  =  =

= 1.17520119364 + (  2.18503986326)  2.18503986326 ×

×  2.18503986326)) = 1.17520119364 2.18503986326

4.77439920404 =  5.78423787366

Решение получено.

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

 

На Рис. 6 представлен результат работы консольного приложения.

В качестве входных данных задана одна переменная x типа double. Для организации диалога с пользователем заданы две именованные строковые константы INVITE и CONTINUE.

Значение гиперболического синуса вычисляется двумя методами: процедурой вычисления гиперболического синуса, оформленной в отдельной библиотеке и методом стандартного класса Math в качестве проверочного метода.

Рис. 6 Результат работы консольного приложения

 

Анализируя полученные результаты, можно сделать вывод, что оба метода на всех исследуемых аргументах дают одинаковые результаты.

 

Выводы

1) Создано приложение на языке C# , которое, при вводе с клавиатуры в текстовое поле аргумента (x), вычисляет значение заданной функции y(x) и выводит конечный результат на экран.

2) Формализовано и уточнено задание.

3) Разработан графический интерфейс, соответствующий требованиям задания.

4) Составлена таблица используемых объектов и их свойств.

5) Разработана блок-схема алгоритма решения задачи.

6) Написан программный код на языке C#. В интегрированной среде разработки VisualStudio 2010 Professionalсоздано решение, включающее в себя 3 проекта: приложение WindowsForms, консольное приложение и библиотеку классов.

7) Работа приложения протестирована (см. Результаты выполнения проекта с доказательством правильности работы программы). Полученные результаты совпадают с результатами, полученными путем математических расчетов вручную.

8) Создана библиотека DLL, в которой по условию задачи была назначена процедура, вычисляющая гиперболический синус. Для проверки правильности работы метода добавлен стандартный метод, вычисляющий значение гиперболического синуса, Math.Sinh (Double).При анализе результатов было выявлено, что оба метода на всех исследуемых аргументах дают одинаковые результаты. Увидеть работу обоих методов можно в консольном приложении проекта.

9) Подготовлен и оформлен настоящий отчет о проделанной работе.

 


Дата добавления: 2018-05-09; просмотров: 483; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!