Witam,
jestem tu pierwszy raz i prosiłbym zeby mi ktos pomógł… potrzebuję algorytm w schemacie blokowym do takiego oto kodu:
#include
#include
#include
#include
#include
struct zmienna {
double re;
double im;
};
void wprowadz(zmienna &l1, zmienna &l2,char znak);
void wyswietl(double suma1, double suma2);
void wyswietl_try_wyk(double &suma1,double &suma2);
void dodawanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak);
void odejmowanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak);
void mnozenie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak);
void dzielenie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak);
void potegowanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak);
int main()
{
textbackground(7);
clrscr();
bool wyjscie=false;
char znak;
double suma1,suma2;
zmienna l1,l2;
char znaki[40]="-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/";
//-------------START SCREN-----------------------------------------------------//
gotoxy(26,2);
textcolor(16);
cprintf("\nKALKUlATOR LICZB ZESPOLONYCH");
gotoxy(28,4);
textcolor(9);
cprintf("\nWykonanie: RAFAL\n");
for(int i=0;i<20;i++)
{
gotoxy(31,12);
textcolor(12);
cprintf("System loading... %c",znaki[i]);
Sleep(100);
}
//--------------------MENU-----------------------------------------------------//
while(!wyjscie){
clrscr();
gotoxy(33,2);textcolor(9); cprintf("\n###...MENU...###");
gotoxy(31,6);textcolor(16); cprintf("\n Wybierz dzia%canie:\n",136);
gotoxy(32,8); cprintf("[+] Dodawanie.");
gotoxy(32,9); cprintf("[-] Odejmowanie.");
gotoxy(32,10); cprintf("[*] Mno%cenie.",190);
gotoxy(32,11); cprintf("[/] Dzielenie.");
gotoxy(32,12); cprintf("[^] Pot%cgowanie.",169);
gotoxy(32,13); cprintf("[k] Koniec.");
gotoxy(32,15); cprintf("Dokonaj wyboru:");
char dzialanie=getch();
clrscr();
switch(dzialanie)
{
case '+':
clrscr();
textcolor(9); cprintf("\nWybra%ce%c dodawanie.",136,152);
wprowadz(l1,l2,znak);
dodawanie(l1,l2,suma1,suma2,znak);
wyswietl(suma1,suma2);
wyswietl_try_wyk(suma1,suma2);break;
case '-':
clrscr();
textcolor(9); cprintf("\nWybra%ce%c odejmowanie.",136,152);
wprowadz(l1,l2,znak);
odejmowanie(l1,l2,suma1,suma2,znak);
wyswietl(suma1,suma2);
wyswietl_try_wyk(suma1,suma2);break;
case '*':
clrscr();
textcolor(9); cprintf("\nWybra%ce%c mno%cenie.",136,152,190);
wprowadz(l1,l2,znak);
mnozenie(l1,l2,suma1,suma2,znak);
wyswietl(suma1,suma2);
wyswietl_try_wyk(suma1,suma2);break;
case '/':
clrscr();
textcolor(9); cprintf("\nWybra%ce%c dzielenie.",136,152);
wprowadz(l1,l2,znak);
dzielenie(l1,l2,suma1,suma2,znak);
wyswietl(suma1,suma2);
wyswietl_try_wyk(suma1,suma2);break;
case '^':
clrscr();
textcolor(9); cprintf("\nWybra%ce%c pot%cgowanie.",136,152,169);
potegowanie(l1,l2,suma1,suma2,znak);break;
case 'k':
wyjscie=true;break;
}
}
}
//-----------------IN----------------------------------------------------------//
void wprowadz(zmienna &l1, zmienna &l2,char znak)
{
textcolor(16);
cprintf("\n\rPodaj pierwsz%c liczb%c w formacie a(+/-)bi: ",165,169);
scanf("%lg %lg %c",&l1.re,&l1.im,&znak);
textcolor(16);
cprintf("\rPodaj drug%c liczb%c w formacie a(+/-)bi: ",165,169);
scanf("%lg %lg %c",&l2.re,&l2.im,&znak);
}
//------------------OUT--------------------------------------------------------//
void wyswietl(double suma1, double suma2)
{
textcolor(16);
cprintf("\n\n\rPosta%c algebraiczna: ",134);
if ((suma2>0)||(suma2==0))
{
cprintf("%0.3lg", suma1);
cprintf("+");
cprintf("%0.3lg", suma2);
cprintf("i");
}
else
{
cprintf("%0.3lg", suma1);
cprintf("%0.3lg", suma2);
cprintf("i");
};
}
void wyswietl_try_wyk(double &suma1,double &suma2)
{
double Pi1,Pi2,Pi3,r,dod;
r=sqrt(suma1*suma1+suma2*suma2); //Modul liczby zespolonej//
textcolor(16);
if ((suma1==0)||(suma2==0))
{cprintf("\n\rBrak postaci trygonometrycznej i wykladniczej.");}
else
{
Pi1=atan(cos(suma1/r));
Pi2=atan(sin(suma2/r));
Pi3=atan(Pi1/Pi2);
if (Pi3>0)
{
cprintf("\n\rPosta%c trygonometryczna: %0.3lg (cos %0.3lg +isin %0.3lg)",134,r,Pi3,Pi3);
cprintf("\n\rPosta%c wykladnicza: e^i*%lg",134,Pi3);
}
else
{
dod=pow(Pi3,2);
cprintf("\n\rPosta%c trygonometryczna: ",134);
cprintf("%0.3lg ",r);
cprintf("(-cos %0.3lg%c ",dod,20);
cprintf("- isin %0.3lg%c)",dod,20);
cprintf("\n\rPosta%c wyk%cadnicza: e^i*(%lg)",134,136,Pi3);
};
}
cprintf("\n\n\rNACISNIJ DOWOLNY KLAWISZ...");
getch();
}
//--------------DZIAŁANIA------------------------------------------------------//
void dodawanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak)
{
cprintf("\n\n\rSuma liczb urojonych: ");
suma1=l1.re+l2.re;
suma2=l1.im+l2.im;
}
void odejmowanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak)
{
cprintf("\n\n\rR%c%cnica liczb urojonych: ",162,190);
suma1=l1.re-l2.re;
suma2=l1.im-l2.im;
}
void mnozenie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak)
{
cprintf("\n\n\rIloczyn liczb urojonych: ");
suma1=(l1.re*l2.re)-(l1.im*l2.im);
suma2=(l1.re*l2.im)+(l2.re*l1.im);
}
void dzielenie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak)
{
cprintf("\n\n\rIloraz liczb urojonych: ");
suma1=((l1.re*l2.re)+(l1.im*l2.im))/((l2.re*l2.re)+(l2.im*l2.im));
suma2=((l2.re*l1.im)-(l1.re*l2.im))/((l2.re*l2.re)+(l2.im*l2.im));
}
void potegowanie(zmienna l1, zmienna l2, double &suma1, double &suma2, char znak)
{
int n;
double Pi1,Pi2,kat,r,p,p1,p2;
double pot_pi,dod;
textcolor(16);
cprintf("\n\rPodaj liczb%c w formacie a(+/-)bi: ",169);
scanf("%lg %lg %c",&l1.re,&l1.im,&znak);
cprintf("\nPodaj stopie%c pot%cgi: ",228,169);
scanf("%i", &n);
r=sqrt(l1.re*l1.re+l1.im*l1.im); //Modul liczby zespolonej//
Pi1=atan(cos(l1.re/r));
Pi2=atan(sin(l1.im/r));
kat=atan(Pi1/Pi2);
pot_pi=kat*n;
p=pow(r,n);
p1=pow(l1.re,n);
p2=pow(l1.im,n);
cprintf("\n\n\rPot%cga stopnia %i wynosi:",169,n);
cprintf("\rPosta%c algebraiczna: ",134);
if ((p2>0)||(p1==0))
{
cprintf("%0.3lg",p1);
cprintf("+");
cprintf("%0.3lg",p2);
cprintf("i");
}
else
{
cprintf("%0.3lg",p1);
cprintf("%0.3lg",p2);
cprintf("i");
};
if (pot_pi>0)
{
cprintf("\n\rPosta%c trygonometryczna: %0.3lg (cos %0.3lg%c + isin %0.3lg%c)",134,p,pot_pi,20,pot_pi,20);
}
else
{
dod=pow(pot_pi,2);
cprintf("\n\rPosta%c trygonometryczna: ",134);
cprintf("%0.3lg ",p);
cprintf("(-cos %0.3lg%c ",dod,20);
cprintf("- isin %0.3lg%c)",dod,20);
};
cprintf("\n\rPosta%c wyk%cadnicza: e^i*%lg",134,136,pot_pi);
cprintf("\n\n\rNACISNIJ DOWOLNY KLAWISZ...");
getch();
}
Jakby ktoś mógłby mi pomóc byłbym bardzo wdzięczny!!
Z góry dziękuje i pozdrawiam