Advertisement
bloowper

Untitled

Nov 20th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.65 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. long double a[4][3],w,wx,wy,wz,x,y,z;
  5. /*
  6. a       b      c      d
  7. a00x + a01y + a02z = a03
  8. a10x + a11y + a12z = a13
  9. a20x + a21y + a22z = a23
  10. */
  11.  
  12.  
  13. void wczytaj() /*funkcja wczytujaca dane do tablicy a o rozmarze 4x3*/
  14. {
  15.     int i=0;
  16.     for(i;i<=3;i++)
  17.     {
  18.         printf("podaj wartość funkcji: \n");
  19.         scanf("%lfx%lfy%lfz=%lf",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
  20.     }
  21. }
  22.    
  23.  
  24.                                         /*opis sposobu wprowadzania danych do funkcji "macierz"                               */
  25. double macierz(double wartosci_kolumny1[/*zostawione puste przekazuje cala wiersz?*/][/* PODAJ numer kolumny do przekazania? */] ,double wartosci_kolumny2[][] ,double wartosci_kolumny3[][])
  26. {   double wartosc_zwracana=0;          /*powyższy komentarz odnosi sie do nastepnych trzech wprowadzen tablic do funkcji     */
  27.     /*
  28.         wk_1 wk_2 wk_3
  29.         wk_1 wk_2 wk_3
  30.         wk_1 wk_2 wk_3
  31.  
  32.         na jakiej zasadzie dziala zostawianie postej komurki we wprowadzaniu danych do funkcji a jak gdy wpiszemy wartosc czy dobrze to rozumiem*/
  33.     /*tutaj jest liczona wartosc danego wyznacnzika*/
  34.     *wartosc_zwracana+=(wartosci_kolumny1[0]*wartosci_kolumny2[1]*wartosci_kolumny3[2]);
  35.     *wartosc_zwracana+=(wartosci_kolumny1[1]*wartosci_kolumny2[2]*wartosci_kolumny3[0]);
  36.     *wartosc_zwracana+=(wartosci_kolumny1[2]*wartosci_kolumny2[0]*wartosci_kolumny3[1]);
  37.     *wartosc_zwracana-=(wartosci_kolumny3[0]*wartosci_kolumny2[1]*wartosci_kolumny1[2]);
  38.     *wartosc_zwracana-=(wartosci_kolumny3[1]*wartosci_kolumny2[2]*wartosci_kolumny1[0]);
  39.     *wartosc_zwracana-=(wartosci_kolumny3[2]*wartosci_kolumny2[0]*wartosci_kolumny1[1]);
  40.  
  41.     return wartosc_zwracana;
  42. }
  43.  
  44. void oblicz_wartosci()
  45. {                      
  46.                                                 /*
  47.                                                 a       b      c      d
  48.                                                 a00x + a01y + a02z = a03
  49.                                                 a10x + a11y + a12z = a13
  50.                                                 a20x + a21y + a22z = a23
  51.                                                 */
  52.  
  53.                                                 /*z jakich kolumn*/
  54.     *w =  macierz(a[][0], a[][1], a[][2]);      /*a b c*/
  55.     *wx = macierz(a[][3], a[][1], a[][2]);      /*d b c*/
  56.     *wy = macierz(a[][0], a[][3], a[][2]);      /*a d c*/
  57.     *wz = macierz(a[][0], a[][3], a[][2]);      /*a b d*/
  58.  
  59.  
  60. }
  61.  
  62. void wyswietl_wartosci_rownania_z_3_niewiadomymi()
  63. {
  64.         if (w != 0)/*gdy w różne od 0 rownanie ma jedno rozwiazanie*/
  65.         {
  66.             x = wx / w; y = wy / w; z = wz / w;
  67.             printf("x=%f y=%f z=%f",x,y,z)
  68.         }
  69.         if (w == 0 && wx == 0 && wy == 0)
  70.         {
  71.             printf("równanie ma nieskonczenie wiele rozwiazan");
  72.         }
  73.         if (w == 0 && (wx != 0 || wy != 0))
  74.         {
  75.             printf("równanie jest sprzezne");
  76.         }
  77.  
  78.        
  79. }
  80.  
  81.  
  82. int main()
  83. {
  84.     wczytaj();
  85.     oblicz_wartosci();
  86.     wyswietl_wartosci_rownania_z_3_niewiadomymi();
  87.  
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement