Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace pgrabo68247
- {
- class Program
- {
- static int pg_silnia(int pg_n_1)
- {
- //rekurencyjne wpisanie silni
- if (pg_n_1 == 0) return 1;
- else return pg_n_1 * pg_silnia(pg_n_1 - 1);
- }
- static void Main(string[] args)
- {
- //Przypisanie typu danych
- String pg_odp;
- float pg_X, pg_EPS, pg_Y, pg_b;
- int pg_n, pg_w, pg_index_1, pg_index_2;
- float pg_Xd, pg_h, pg_Xg;
- float[,] pg_tab;
- do
- {
- //Wypisanie metryki programu
- Console.WriteLine("\n\t\tProgram dla zadania pierwszego. Wybierz jedną z opcji:" +
- "\n\t1.Określenie wartości funkcji w podanym punkcie wartości zmiennej" +
- "\n\tniezależnej X i przy określonej dokładności EPS " +
- "\n\t2.Tablicowanie funkcji w podanym przedziale [Xd,Xg] z krokiem h i" +
- "\n\tprzy określonej dokładności EPS.");
- start:
- Console.Write("\n\tWybierz 1 lub 2: ");
- pg_w = Convert.ToInt16(Console.ReadLine());
- switch (pg_w)
- {
- case 1:
- //Wczytywanie danych
- Console.Write("\n\tPodaj wartość zmiennej niezależnej X: ");
- pg_X = Convert.ToSingle(Console.ReadLine());
- //Wczytanie dokładności obliczeń
- do
- {
- Console.Write("\n\tPodaj dokładność obliczeń EPS: ");
- pg_EPS = Convert.ToSingle(Console.ReadLine());
- if ((pg_EPS <= 0) || (pg_EPS >= 1))
- {
- Console.Write("\n\tERROR: Dokładność obliczeń musi spełniać warunek: " +
- "\n\t0 < EPS < 1");
- Console.Write("\n\tWprowadz dokładnośc obliczeń jeszcze raz.");
- }
- } while ((pg_EPS <= 0) || (pg_EPS >= 1));
- //Sprawdzenie warunków funkcji
- if (pg_X < -1)
- {
- pg_n = 0;
- //do
- // {
- pg_Y = (float)Math.Pow(-1, pg_n) * (float)Math.Pow(pg_X, 2 * pg_n + 1) / pg_silnia(2 * pg_n + 1);
- Console.Write("\n\tWartość dla podanego X wynosi: {0}", pg_Y);
- // pg_n++;
- // } while (pg_n <= 15);
- }
- if ((pg_X <= 1) && (pg_X >= -1))
- {
- pg_n = 1;
- //do
- //{
- pg_Y = (float)Math.Pow(-1, pg_n) * (float)Math.Pow(pg_X, pg_n) / pg_silnia(2 * pg_n);
- Console.Write("\n\tWartość dla podanego X wynosi: {0}", pg_Y);
- // pg_n++;
- // } while (pg_n <= 15);
- }
- if (pg_X > 1)
- {
- pg_n = 1;
- do
- {
- //wczytanie zmiennej b
- Console.Write("\n\tPodaj wartość zmiennej b(b>0): ");
- pg_b = Convert.ToSingle(Console.ReadLine());
- if (pg_b <= 0)
- Console.Write("\n\tERROR: b musi być większe od zera.");
- } while (pg_b <= 0);
- // do
- // {
- pg_Y = (float)Math.Pow(Math.Log(pg_b), pg_n) * (float)Math.Pow(pg_X, pg_n) / pg_silnia(pg_n);
- Console.Write("\n\tWartość dla podanego X wynosi: {0}", pg_Y);
- // pg_n++;
- //} while (pg_n <= 15);
- }
- break;
- case 2:
- //Wczytanie zmiennych
- Console.Write("\n\tPodaj dolną wartość zmiennej niezależnej X: ");
- pg_Xd = Convert.ToSingle(Console.ReadLine());
- do
- {
- Console.Write("\n\tPodaj górną wartość zmiennej niezależnej X: ");
- pg_Xg = Convert.ToSingle(Console.ReadLine());
- if (pg_Xg <= pg_Xd)
- Console.Write("\n\tGórna wartość X musi być większa od dolnej !! ");
- } while (pg_Xg <= pg_Xd);
- Console.Write("\n\tPodaj h: ");
- pg_h = Convert.ToSingle(Console.ReadLine());
- do
- {
- //wczytanie zmiennej b
- Console.Write("\n\tPodaj wartość zmiennej b(b>0) dla x>0: ");
- pg_b = Convert.ToSingle(Console.ReadLine());
- if (pg_b <= 0)
- Console.Write("\n\tERROR: b musi być większe od zera.");
- } while (pg_b <= 0);
- //Wczytanie dokładności obliczeń
- do
- {
- Console.Write("\n\tPodaj dokładność obliczeń EPS: ");
- pg_EPS = Convert.ToSingle(Console.ReadLine());
- if ((pg_EPS <= 0) || (pg_EPS >= 1))
- {
- Console.Write("\n\tERROR: Dokładność obliczeń musi spełniać warunek: " +
- "\n\t0 < EPS < 1");
- Console.Write("\n\tWprowadz dokładnośc obliczeń jeszcze raz.");
- }
- } while ((pg_EPS <= 0) || (pg_EPS >= 1));
- //Obliczenia i dodawanie do tablicy
- pg_index_1 = 0;
- pg_index_2 = 0;
- pg_tab = new float[pg_index_1, pg_index_2];
- do
- {
- if (pg_Xd < -1)
- {
- pg_n = 0;
- pg_Y = (float)Math.Pow(-1, pg_n) * (float)Math.Pow(pg_Xd, 2 * pg_n + 1) / pg_silnia(2 * pg_n + 1);
- pg_tab[pg_index_1, pg_index_2] = pg_Xd;
- pg_tab[pg_index_1, pg_index_2 + 1] = pg_Y;
- pg_index_1++;
- pg_index_2++;
- pg_Xd = pg_Xd + pg_h;
- }
- if ((pg_Xd <= 1) && (pg_Xd >= -1))
- {
- pg_n = 1;
- pg_Y = (float)Math.Pow(-1, pg_n) * (float)Math.Pow(pg_Xd, pg_n) / pg_silnia(2 * pg_n);
- pg_tab[pg_index_1, pg_index_2] = pg_Xd;
- pg_tab[pg_index_1, pg_index_2 + 1] = pg_Y;
- pg_index_1++;
- pg_index_2++;
- pg_Xd = pg_Xd + pg_h;
- }
- if (pg_Xd > 1)
- {
- pg_n = 1;
- pg_Y = (float)Math.Pow(Math.Log(pg_b), pg_n) * (float)Math.Pow(pg_Xd, pg_n) / pg_silnia(pg_n);
- pg_tab[pg_index_1, pg_index_2] = pg_Xd;
- pg_tab[pg_index_1, pg_index_2 + 1] = pg_Y;
- pg_index_1++;
- pg_index_2++;
- pg_Xd = pg_Xd + pg_h;
- }
- } while (pg_Xd <= pg_Xg);
- break;
- default:
- Console.Write("\n\tERROR: wciśnij 1 lub 2!\n");
- goto start;
- }
- Console.Write("\n\tCzy chcesz powtarzać szukanie liczby doskonałej? (T/N): ");
- pg_odp = Console.ReadLine().ToUpper();
- } while (pg_odp == "T");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement