Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. struct urojone
  6. {
  7.    int a[2];
  8.    int b[2];
  9. }uro;
  10.  
  11.  
  12. void wybor(int *rodzaj)
  13. {
  14.  
  15.     printf("Program wykonuje podstawowe operacje arytmetyczne na liczbach zespolonych\n");
  16.     printf("Jesli chcesz dodac liczby zespolone nacisnij 1\nJesli chcesz odejmowac liczby zespolone nacisnij 2\nJeœli chcesz pomnozyc liczby zespolone nacisnij 3\nJeœli chcesz podzielic liczby zespolone nacisnij 4\n");
  17.     scanf("%d", &*rodzaj);
  18.  
  19. }
  20.  
  21. void liczby(struct urojone *s)
  22. {
  23.  
  24.     printf("Podaj liczbe rzeczywista do 1 liczby zespolonej\n");
  25.     scanf("%d", &s->a[0]);
  26.     printf("Podaj liczbe urojona do 1 liczby zespolonej\n");
  27.     scanf("%d", &s->a[1]);
  28.  
  29.     printf("Podaj liczbe rzeczywista do 2 liczby zespolonej\n");
  30.     scanf("%d", &s->b[0]);
  31.     printf("Podaj liczbe urojona do 2 liczby zespolonej\n");
  32.     scanf("%d", &s->b[1]);
  33.  
  34.     printf("Twoja pierwsza liczba zespolona: %d %dj\n",uro.a[0],uro.a[1]);
  35.     printf("Twoja druga liczba zespolona: %d %dj\n",uro.b[0],uro.b[1]);
  36.  
  37. }
  38. void dodawanie(int wynik[2])
  39. {
  40.     wynik[0]=uro.a[0]+uro.b[0];
  41.     wynik[1]=uro.a[1]+uro.b[1];
  42. }
  43.  
  44. void odejmowanie(int wynik[2])
  45. {
  46.     wynik[0]=uro.a[0]-uro.b[0];
  47.     wynik[1]=uro.a[1]-uro.b[1];
  48. }
  49.  void mnozenie(int wynik[2])
  50.  {
  51.      int j=-1;
  52.      wynik[0]=uro.a[0]*uro.b[0]+(uro.a[1]*uro.b[1]*j);
  53.      wynik[1]=uro.a[0]*uro.b[1]+uro.a[1]*uro.b[0];
  54.  
  55.      //printf("\n\n%d %dj", wynik[0], wynik[1]);
  56.  }
  57.  
  58.  void dzielenie(int wynik[2])
  59.  {
  60.     int j=-1;
  61.     wynik[0]=(uro.a[0]*uro.b[0]+(uro.a[1]*(uro.b[1]*(-1))*j))/(pow(uro.b[0],2)-pow(uro.b[1],2)*j);
  62.     wynik[1]=(uro.a[0]*(uro.b[1]*(-1))+uro.a[1]*uro.b[0])/(pow(uro.b[0],2)-pow(uro.b[1],2)*j);
  63.  
  64.  }
  65. void obliczenia(int rodzaj, int wynik[2])
  66. {
  67.     if(rodzaj == 1)
  68.     {
  69.         dodawanie(wynik);
  70.     }
  71.     if(rodzaj == 2)
  72.     {
  73.         odejmowanie(wynik);
  74.     }
  75.     if(rodzaj == 3)
  76.     {
  77.         mnozenie(wynik);
  78.     }
  79.     if(rodzaj == 4)
  80.     {
  81.         dzielenie(wynik);
  82.     }
  83.  
  84. }
  85.  
  86. int main()
  87. {
  88.     int rodzaj;
  89.     int wynik[2];
  90.     wybor(&rodzaj);
  91.     liczby(&uro);
  92.     obliczenia(rodzaj,wynik);
  93.  
  94.     printf("Wynik wynosi %d %dj",wynik[0],wynik[1]);
  95.  
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement