Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #include<math.h>
- typedef struct {
- float re; //partea reala
- float im; //partea imaginara
- } complex; //nume structura
- void citire(complex *z,char s[]) { //in s se retine numele numarului complex
- printf("numarul complex %s\n",s);
- printf("partea reala: ");
- scanf("%f",&(*z).re);
- printf("partea imaginara: ");
- scanf("%f",&z->im);
- }
- void afisare(complex z,char s[]) {
- printf("numarul complex %s = ",s);
- if(z.im>=0)
- printf("%.2f+%.2fi",z.re,z.im);
- else
- printf("%.2f%.2fi",z.re,z.im);
- printf("\n");
- }
- void suma(complex x,complex y,complex *z) {
- z->re=x.re+y.re;// sau (*z).re=x.re+y.re
- z->im=x.im+y.im;
- }
- void produs(complex x, complex y,complex *z) {
- z->re=x.re*y.re-x.im*y.im;// sau (*z).re=x.re*y.re
- z->im=x.re*y.im+x.im*y.re;
- }
- complex produs1(complex x, complex y) {
- complex p;
- p.re=x.re*y.re-x.im*y.im;
- p.im=x.re*y.im+x.im*y.re;
- return p;
- }
- float modul(complex z) {
- return sqrt((pow(z.re,2))+pow(z.im,2));
- }
- complex conjugat(complex z) {
- complex a;
- a.re=z.re;
- a.im=-z.im;
- return a;
- }
- complex invers(complex z) {
- complex inv;
- complex zconjugat = conjugat(z);
- complex p;// = produs1(z,zconjugat);
- produs(z,zconjugat,&p);
- inv.re = zconjugat.re/p.re;
- inv.im = zconjugat.im/p.re;
- return inv;
- }
- void main() {
- complex z1,z2,s,p;
- citire(&z1,"z1");
- citire(&z2,"z2");
- printf("\n");
- afisare(z1,"z1");
- afisare(z2,"z2");
- printf("\n");
- suma(z1,z2,&s);
- afisare(s,"z1+z2");
- produs(z1,z2,&p);
- afisare(p,"z1*z2");
- printf("modul lui z1 este %.2f\n",modul(z1));
- printf("modul lui z2 este %.2f\n",modul(z2));
- afisare(invers(z1),"z1 invers");
- afisare(invers(z2),"z2 invers");
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement