.NET 4.x Рассчитать функцию y(x) в зависимости от введенного параметра А - C#
Формулировка задачи:
Здравствуйте, мне необходима помощь), любая). Мне нужно сделать программку не большую (по учёбе). Которая будет высчитывать значение функции. У меня есть сама функция, и диапазон изменения аргумента x. А так же указаны компоненты для ввода, вывода параметра А, и для вывода показателей.
Функция выглядит так
Диапазон изменения аргумента x[-4 ,2] шаг 0,5
Компоненты для ввода(
ComboBox
) и вывода(DataGredView
) параметра А Компоненты для вывода показателейRichTextBox
Опыт у меня никакой(, хочу научится, помогите чем можете пожалуйста. Т.к. у меня нет никаких примеров подобного рода кода, я хотя бы разберу любой какой вы дадите. Искал по форуму, но не уверен что те ф-ии похожи на мою, а из-за незнания тонкостей опасаюсь напортачить чего и сделать не так. p.s.e
в функции это как я понимаю число Эйлера равное 2.71 (т.к. я заочник у меня нет возможности уточнить у преподавателя, в связи с характером и отношением самого преподавателя))Решение задачи: «.NET 4.x Рассчитать функцию y(x) в зависимости от введенного параметра А»
textual
Листинг программы
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 OmegaV
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "А";
button1.Text = "Рассчитать";
comboBox1.Items.Add("-4");
comboBox1.Items.Add("-1");
comboBox1.Items.Add("3");
comboBox1.SelectedItem = comboBox1.Items[0];
button1.Click+=new EventHandler(button1_Click);
}
void button1_Click(object sender, EventArgs e)
{
int A = int.Parse(comboBox1.Text);
List<double> resultList = new List<double>();
double[] x = { -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2 };
switch (A)
{
case -4:
resultList.AddRange(res1(A,x));
break;
case -1:
resultList.AddRange(res2(A,x));
break;
case 3:
resultList.AddRange(res3(A,x));
break;
}
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Значение х"));
dt.Columns.Add(new DataColumn("Результат"));
for (int j = 0; j < resultList.Count; j++)
{
dt.Rows.Add();
dt.Rows[j].SetField(dt.Columns[0], x[j].ToString());
dt.Rows[j].SetField(dt.Columns[1], resultList[j].ToString());
}
dataGridView1.DataSource = dt;
}
List<double> res1(int A,double[]x)
{
List<double> data = new List<double>();
for(int i=0;i<x.Length;i++)
{
data.Add(A + Math.Log(Math.Pow(x[i], 2)));
}
return data;
}
List<double> res2(int A, double[] x)
{
List<double> data = new List<double>();
for (int i = 0; i < x.Length; i++)
{
data.Add((Math.Pow(x[i], 3) - A) / 10);
}
return data;
}
List<double> res3(int A, double[] x)
{
List<double> data = new List<double>();
for (int i = 0; i < x.Length; i++)
{
data.Add(Math.Pow(Math.E, (x[i] * A)));
}
return data;
}
}
}