algorytm.org

Całkowanie C#



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Forum www.algorytm.org :: Arytmetyka i procedury numeryczne
Witaj Gość   
[Zarejestruj się]  
[Zaloguj się]
Zamieść odpowiedź
 Całkowanie C#

Witam mam problem a mianowicie potrzebuje napisać prostą aplikacje okienkową w C# obliczającą całkę z podanej przez użytkownika funkcji w podanych granicach całkowania i z podaną dokładnością. Na stronie znalazłem algorytmy pozwalające na wykonanie tej czynności. Postanowiłem że dane pobierać będę od użytkownika za pośrednictwem textBox'ów. Wszystko szło dobrze udaje się pobierać granice całkowania oraz jego dokładność. Problem mam z pobranie funkcji i przekazaniem jej do dalszej obróbki. Przyznaje że C# nie jest moją mocną stroną oto mój kod:


[code]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 WindowsFormsApplication1
{
public partial class Form9 : Form
{
double xp = 0;
double xk = 0;
int n = 0;

public delegate double FUNC(double x);

///
/// Oblicza calke metoda prostokatow w przedziale od xp do xk z dokladnoscia n dla funkcji fun
///

/// poczatek przedzialu calkowania
/// koniec przedzialu calkowania
/// dokladnosc calkowania
/// funkcja calkowana
///
private static double calculate(double xp, double xk, int n, FUNC func)
{
double dx, calka;

dx = (xk - xp) / (double)n;

calka = 0;
for (int i = 1; i <= n; i++)
{
calka += func(xp + i * dx);
}
calka *= dx;

return calka;
}

//funkcja dla ktorej obliczamy calke
private static double func(double x)
{
return (x * x * x) + 2 * (x * x) - x + 13;
//return Convert.ToDouble(textBox4.Text);
}


public Form9()
{
InitializeComponent();
}

private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
xp = 0;
xk = 0;
n = 0;
}

private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text=="" || textBox2.Text=="" || textBox3.Text=="")
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
}
else
{
FUNC function = new FUNC(func);
xp = Convert.ToDouble(textBox1.Text);
xk = Convert.ToDouble(textBox2.Text);
n = Convert.ToInt32(textBox3.Text);

textBox5.Text = Convert.ToString(calculate(xp, xk, n, function));
}
}
}
}[/code]
Cytuj
Zamieść odpowiedź Strona # 
Szybka odpowiedź

Kod:    


Powered by ccBoard