Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace D_19_INT1_SzałataSzymon
  8. {
  9.     class Program
  10.     {
  11.         static void GJ(int n, double[,] A)
  12.         {
  13.             int r;
  14.             int variable = n + 1;
  15.             double max, p;
  16.  
  17.             for (int k = 0; k < n; k++)
  18.             {
  19.                 max = A[k, k];
  20.                 r = k;
  21.  
  22.                 for (int i = k; i < n; i++)
  23.                 {
  24.                     if (Math.Abs(A[i, k]) > Math.Abs(max))
  25.                     {
  26.                         max = A[i, k];
  27.                         r = i;
  28.                     }
  29.                 }
  30.  
  31.                 if (max == 0)
  32.                 {
  33.                     Console.WriteLine("Macierz układu osobliwa...");
  34.                     return;
  35.                 }
  36.                 else
  37.                 {
  38.                     for (int j = k; j < variable; j++)
  39.                     {
  40.                         double pomoc = A[k, j];
  41.                         A[k, j] = A[r, j];
  42.                         A[r, j] = pomoc;
  43.                     }
  44.  
  45.                     for (int j = k; j < variable; j++)
  46.                     {
  47.                         A[k, j] = A[k, j] / max;
  48.                     }
  49.  
  50.                     for (int i = 0; i < n; i++)
  51.                     {
  52.                         if (i != k)
  53.                         {
  54.                             p = A[i, k];
  55.  
  56.                             for (int j = k; j < variable; j++)
  57.                             {
  58.                                 A[i, j] = A[i, j] - p * A[k, j];
  59.                             }
  60.                         }
  61.                     }
  62.                 }
  63.  
  64.             }
  65.         }
  66.         static double Sum1(double[,] t, int n, double x)
  67.         {
  68.             double suma = 0;
  69.             for (int i = 0; i < n; i++)
  70.             {
  71.                 suma += t[i, n] * Math.Pow(x, i);
  72.             }
  73.             return suma;
  74.         }
  75.  
  76.         static double Sum2(int n, double x, double[] An)
  77.         {
  78.             double p = An[n - 1];
  79.             for (int i = n - 2; i >= 0; i--)
  80.             {
  81.                 p = p * x + An[i];
  82.             }
  83.             return p;
  84.         }
  85.         static void Main(string[] args)
  86.         {
  87.             int n = 5;
  88.             double[] Xi = { 1.5, 2, 2.5, 3.5, 3.8, 4.1 };
  89.             double[] Yi = { 2, 5, -1, 0.5, 3, 7 };
  90.             double[,] tab = new double[n + 1, n + 2];
  91.  
  92.             for (int i = 0; i < n + 1; i++)
  93.             {
  94.                 tab[i, 0] = 1;
  95.                 tab[i, n + 1] = Yi[i];
  96.             }
  97.  
  98.             for (int i = 0; i < n + 1; i++)
  99.             {
  100.                 for (int j = 1; j < n + 1; j++)
  101.                 {
  102.                     tab[i, j] = Xi[i] * tab[i, j - 1];
  103.                 }
  104.             }
  105.  
  106.  
  107.             GJ(n + 1, tab);
  108.            
  109.  
  110.             double x = 1;
  111.  
  112.             double[] An = new double[n + 1];
  113.  
  114.             for (int i = 0; i < An.Length; i++)
  115.             {
  116.                 An[i] = tab[i, n + 1];
  117.             }
  118.  
  119.  
  120.             string help;
  121.             do
  122.             {
  123.                 Console.WriteLine("Wpisz wartość od 1.5 do 4.1 ( 0 = wyjście z pętli)");
  124.                 help = Console.ReadLine();
  125.                 x = Convert.ToDouble(help);
  126.                 Console.WriteLine("Wartość: " + Sum2(n + 1, x, An));
  127.  
  128.             } while (x != 0);
  129.             Console.ReadLine();
  130.         }
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement