7925


enum MetodyCalkowania { Prostokatow = 1, Trapezow = 2 }

static void Main(string[] args)

{

double a = 0, b = 1;

uint n = 10;

MetodyCalkowania metoda =

MetodyCalkowania.Prostokatow;

char c;

do

{

Console.WriteLine("Przedział całkowania: <{0}; {1}>", a, b);

Console.WriteLine("Liczba podziałów: {0}", n);

Console.WriteLine("Metoda całkowania: {0}", metoda);

Console.WriteLine("-----");

Console.WriteLine("A - Zmiana przedziału");

Console.WriteLine("B - Zmiana liczby podziałów");

Console.WriteLine("C - Zmiana metody całkowania");

Console.WriteLine("D - Policz całkę");

Console.WriteLine("K - Koniec");

c = Console.ReadKey(true).KeyChar;

switch (c)

{

case 'a':

case 'A':

do

{

if (a > b)

{

Console.Write("Początek musi być mniejszy od końca: ");

}

Console.Write("Podaj początek przedziału: ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("Podaj koniec przedziału: ");

b = Convert.ToDouble(Console.ReadLine());

}

while (a > b);

break;

case 'b':

case 'B':

Console.Write("Podaj liczbę podziałów: ");

n = Convert.ToUInt32(Console.ReadLine());

if (n == 0) throw new Exception("Liczba podziałów musi być większa od zera");

break;

case 'c':

case 'C':

int m = 1;

do

{

if (m != 1)

{

Console.Write("Naciśnij 1 lub 2 : ");

}

Console.WriteLine("Podaj metodę liczenia całki: ");

Console.WriteLine("\t1-Metoda prostokątów");

Console.WriteLine("\t2 - Metoda trapezów: ");

m = Convert.ToInt32(Console.ReadLine());

}

while (!(m == 1 || m == 2));

metoda = (MetodyCalkowania)m;

break;

case 'd':

case 'D':

double suma = 0;

double dx = (b - a) / n;

double x = a;

switch (metoda)

{

case MetodyCalkowania.Prostokatow:

for (int i = 0; i < n; i++)

{

x += dx;

suma += x * x * x * (x + 1) + 2;

}

suma *= dx;

break;

case MetodyCalkowania.Trapezow:

for (int i = 1; i < n; i++)

{

x += dx;

suma += x * x * x * (x + 1) + 2;

}

suma += (a * a * a * (a + 1) +

b * b * b * (b + 1) + 4) / 2;

suma *= dx;

break;

}

Console.Write("Przybliżona wartość całki funkcji f(x) w przedziale <{0}; {1}> wynosi: {2}", a, b, suma);

Console.ReadKey(true);

break;

}

}

while (!(c == 'K' || c == 'k'));

Console.ReadLine();

}

}

}



Wyszukiwarka

Podobne podstrony:
7925
7925
7925
praca-magisterska-wa-c-7925, Dokumenty(2)
7925
7925
7925
7925
7925
7925
7925

więcej podobnych podstron