Sa permita efectuarea unor operatii asupra unor numere complexe

//*Sa se scrie un program in C care sa permita efectuarea unor operatii asupra unor numere complexe. Programul trebuie sa contina definirea tipului de data nr_complex si urmatoarele functii pentru operatiile cu numere complexe:

void citire (nr_complex *rezultat);
void afisare (nr_complex n);
void adunare (nr_complex n1, nr_complex n2, nr_complex *rezultat);
void scadere (nr_complex n1, nr_complex n2, nr_complex *rezultat);
void inmultire (nr_complex n1, nr_complex n2, nr_complex *rezultat);
double modul (nr_complex n);
void conjugat (nr_complex n, nr_complex *rezultat);

Programul trebuie sa contina un meniu cu urmatoarele optiuni:

1. Suma
2. Diferenta
3. Produsul
4. Modulul
5. Conjugatul
0. Exit

La selectarea optiunilor 1, 2 sau 3, aplicatia va citi de la tastatura 2 numere complexe si va afisa rezultatul operatiei corespunzatoare. Pentru optiunile 4 si 5, aplicatia va citi un singur numar complex si va afisa rezultatul operatiei respective.
Meniul se repeta pana cand utilizatorul selecteaza optiunea 0.
*//

#include <stdio.h>
#include <math.h>
#include <conio.h>
typedef struct{
int x;
int y;
}nr_complex;
void citire(nr_complex *c){
printf(“introduceti partea reala a nr\n”);
scanf(“%d”,&(c->x));
printf(“introduceti partea imaginara a nr\n”);
scanf(“%d”,&(c->y));
}
void afisare(nr_complex c){
printf(“%d + %d * i\n”,c.x,c.y);
}
void suma(nr_complex a,nr_complex b,nr_complex *s){
s->x=a.x+b.x;
s->y=a.y+b.y;
}
void diferenta(nr_complex a,nr_complex b,nr_complex *d){
d->x=a.x-b.x;
d->y=a.y-b.y;
}
void produs(nr_complex a,nr_complex b,nr_complex *p){
p->x=a.x*b.x-a.y*b.y;
p->y=a.x*b.y+b.x*a.y;
}
double modul(nr_complex a){
double n;
n=sqrt(a.x*a.x+a.y*a.y);
return n;}
void conjugat(nr_complex a,nr_complex *c){
c->x=a.x;
c->y=-a.y;
}
void main(void){
nr_complex *a,*b,*s;

int opt;
printf(“1: calculeaza suma\n”);
printf(“2: calculeaza diferenta\n”);
printf(“3: calculeaza prodususul\n”);
printf(“4: calculeaza modulul\n”);
printf(“5: calculeaza conjugatul\n”);
printf(“6: exit\n”);
do{
printf(“introduceti optiunea\n”);
scanf(“%d”,&opt);
switch(opt){
case 1:citire(a);afisare(*a);
citire(b);afisare(*b);
suma(*a,*b,s);
printf(“suma este=”);
afisare(*s);
break;
case 2:citire(a);afisare(*a);
citire(b);afisare(*b);
diferenta(*a,*b,s);
printf(“diferenta este=”);
afisare(*s);
break;
case 3:citire(a);afisare(*a);
citire(b);afisare(*b);
produs(*a,*b,s);
afisare(*s);
break;
case 4:citire(a);afisare(*a);
printf(“modulul este %.3f”,modul(*a));
printf(“\n”);
break;
case 5:citire(a);afisare(*a);
printf(“conjugatul este=”);
conjugat(*a,s);
afisare(*s);
break;
case 6:break;
default: printf(“cod incorect\n”);
}
}
while (opt!=6);
}

Ti-a placut acest articol ? Ajuta si pe altii sa il gaseasca folosind linkurile de social media de deasupra comentariilor.

Leave a Reply

Your email address will not be published. Required fields are marked *