#include #include typedef struct komp_broj { float Re; float Im; } KompleksniBroj; KompleksniBroj PomnoziBrojeve(KompleksniBroj c1, KompleksniBroj c2) { // (a,b)*(c,d) = (a*c-b*d, a*d+b*c) // c1.Re = a, c1.Im = b, c2.Re = c, c2.Im = d KompleksniBroj rez; rez.Re = c1.Re*c2.Re - c1.Im*c2.Im; rez.Im = c1.Re*c2.Im + c1.Im*c2.Re; return rez; } KompleksniBroj PomnoziBrojeve1(KompleksniBroj c1, KompleksniBroj c2) { // I. (a+b)*(c+d) = ac + ad + bc + bd // II. a*c // III. b*d // (a,b)*(c,d) = (II-III, I-II-III) KompleksniBroj rez; float I = (c1.Re+c1.Im) * (c2.Re+c2.Im); // (a+b)*(c+d) float II = c1.Re*c2.Re; // a*c float III = c1.Im*c2.Im; // b*d rez.Re = (II - III); rez.Im = (I-II-III); return rez; } int main(int argc, char *argv[]) { KompleksniBroj c1, c2; printf("Unesite dva kompleksna broja:\n"); scanf("%f+%fi", &c1.Re, &c1.Im); scanf("%f+%fi", &c2.Re, &c2.Im); printf("C1: %6.2f + %6.2fi\n", c1.Re, c1.Im); printf("C2: %6.2f + %6.2fi\n", c2.Re, c2.Im); KompleksniBroj rez = PomnoziBrojeve(c1, c2); printf("C1*C2: %6.2f + %6.2fi\n", rez.Re, rez.Im); KompleksniBroj rez1 = PomnoziBrojeve1(c1, c2); printf("C1*C2: %6.2f + %6.2fi\n", rez1.Re, rez1.Im); system("PAUSE"); return 0; }