FAQ Zaloguj
Szukaj Profil
Użytkownicy Grupy
Zaloguj się, by sprawdzić wiadomości
Rejestracja
jipp calka
Napisz nowy temat   Odpowiedz do tematu
Forum Projekt LBZ Strona Główna » inne » jipp calka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Dita
Administrator



Dołączył: 04 Sty 2007
Posty: 61
Przeczytał: 0 tematów

Pomógł: 1 raz

Skąd: Wiecie

 Post Wysłany: Pią 7:53, 24 Cze 2011    Temat postu: jipp calka

#include <cstdlib>
#include <iostream>
using namespace std;
class Wzor;
class Zmienna;
class Stala;
class Suma;
class Iloczyn;

class Wzor
{
public:
virtual Wzor* prim()=0;
virtual void pokaz()=0;
};

class Wzor2
{
public:
virtual Wzor2* calka()=0;
virtual void pokaz()=0;
};
class Stala : public Wzor
{
public:
float c;
Wzor* prim() {return new Stala(0);};
void pokaz(){cout<<c;};
Stala(float a){c=a;};
};

class Zmienna : public Wzor
{
public:
char nazwa;
void pokaz(){cout<<nazwa;};
Zmienna(char n){nazwa=n;};
Wzor* prim(){return new Stala(1);};
};
class Zmienna2 : public Wzor2
{
public:
char n;
int mn;
int wykl;
void pokaz()
{
if(wykl==1)
{
if(mn==1){cout<<n;}
else {cout<<mn<<n;}
;}

else
{
if(mn==1){cout<<n<<"^"<<wykl;}
else {cout<<mn<<"("<<n<<"^"<<wykl<<")";}
};

};
Zmienna2(int mnoznik, char nazwa, int wykladnik){mn=mnoznik; n=nazwa; wykl=wykladnik;};
Wzor2* calka()
{
n='x';
wykl++;

if(wykl==1)
{
if(mn==1){cout<<n;}
else {cout<<mn<<n;}
;}

else
{
if(mn==1){cout<<n<<"^"<<wykl<<"/"<<wykl;}
else {cout<<mn<<"("<<n<<"^"<<wykl<<")/"<<wykl;}
};
};
};

class Stala2 : public Wzor2
{
public:
int c;
char n;
void pokaz(){cout<<c;};
Stala2(int a){c=a;};
Wzor2* calka()
{
n='x';
return new Zmienna2(c,n,1);
};

};
class Suma2 : public Wzor2
{
public:
Wzor2* f;
Wzor2* g;
void pokaz()
{
f->pokaz();
cout<<"+";
g->pokaz();

};
Suma2(Wzor2* w1, Wzor2* w2){f=w1; g=w2;};
Wzor2* calka()
{
Wzor2*p; Wzor2*q;
p=f->calka();
q=g->calka();
return new Suma2(p,q);
};

};

class Suma : public Wzor
{
public:
Wzor* f;
Wzor* g;
void pokaz()
{
cout<<"(";
f->pokaz();
cout<<"+";
g->pokaz();
cout<<")";
};
Suma(Wzor* w1, Wzor* w2){f=w1; g=w2;};
Wzor* prim()
{
Wzor*p; Wzor*q;
p=f->prim();
q=g->prim();
return new Suma(p,q);
};
};

class Iloczyn : public Wzor
{
public:
Wzor*f;
Wzor*g;
void pokaz()
{
cout<<"(";
f->pokaz();
cout<<"*";
g->pokaz();
cout<<")";
};
Iloczyn (Wzor*w1, Wzor*w2){f=w1; g=w2;};
Wzor* prim()
{
Wzor*p;
Wzor*q;
p=new Iloczyn(f->prim(),g);
q=new Iloczyn(f, g->prim());
return new Suma(p,q);
};

};

class Iloczyn2 : public Wzor2
{
public:
Wzor2*f;
Wzor2*g;


void pokaz()
{
cout<<"(";
f->pokaz();
cout<<" * ";
g->pokaz();
cout<<")";
};
Iloczyn2 (Wzor2*w1, Wzor2*w2){f=w1; g=w2;};

Wzor2* calka()
{
Wzor2*p;
Wzor2*q;
p=new Iloczyn2(f->calka(),g);
q=new Iloczyn2(f, g->calka());
return new Suma2(p,q);

};

};


int main()
{
int a,b,s;

char x;
x='x';
int zmienna;
int zmienna2;
Wzor*p;
Wzor2*c;
cout<<"Wybierz: \n Pochodna nr 1 \n Calkowanie nr 2"<<endl;
cin>>zmienna;
switch( zmienna )
{
case 1:
{
cout<<"Wybierz: Pochodna"<<endl;
cout<<" Suma(Zmienna+Stala) nr 1"<<endl;
cout<<" Iloczyn(Zmienna+Stala) nr 2"<<endl;
cout<<" Zmienna nr 3"<<endl;
cout<<" Stala nr 4"<<endl;
cin>>zmienna2;
switch ( zmienna2 )
{
case 1:
{
cout<<"podaj stala"<<endl;
cin>>s;
p=new Suma(new Zmienna(x), new Stala(s));
p->pokaz();
cout<<endl;
(p->prim())->pokaz();
cout<<endl;
}
break;
case 2:
{
cout<<"podaj stala"<<endl;
cin>>s;
p=new Iloczyn(new Zmienna(x), new Stala(s));
p->pokaz();
cout<<endl;
(p->prim())->pokaz();
cout<<endl;
}
break;
case 3:
{
p=new Zmienna(x);
p->pokaz();
cout<<endl;
(p->prim())->pokaz();
cout<<endl;
}
break;
case 4:
{
cout<<"podaj stala"<<endl;
cin>>s;
p=new Stala(s);
p->pokaz();
cout<<endl;
(p->prim())->pokaz();
cout<<endl;
}
break;
}
break;
case 2:
{
cout<<"Wybierz: Całkowanie"<<endl;
cout<<" Suma(Zmienna+Stala) nr 1"<<endl;
cout<<" Iloczyn(Zmienna+Stala) nr 2"<<endl;
cout<<" Zmienna nr 3"<<endl;
cout<<" Stala nr 4"<<endl;
cin>>zmienna2;
switch ( zmienna2 )
{
case 1:
{
cout<<"podaj mnoznik i wykladnik oraz stala"<<endl;
cin>>a>>b>>s;
c=new Suma2(new Zmienna2(a,x,b), new Stala2(s));
c->pokaz();
cout<<endl;
(c->calka())->pokaz();
}
break;
case 2:
{
cout<<"podaj mnoznik i wykladnik oraz stala"<<endl;
cin>>a>>b>>s;
c=new Iloczyn2(new Zmienna2(a,x,b), new Stala2(s));
c->pokaz();
cout<<endl;
(c->calka())->pokaz();
}
break;
case 3:
{
cout<<"podaj mnoznik i wykladnik"<<endl;
cin>>a>>b;
c=new Zmienna2(a,x,b);
c->pokaz();
cout<<endl;
(c->calka())->pokaz();
}
break;
case 4:
{
cout<<"podaj stala"<<endl;
cin>>a;
c=new Stala2(a);
c->pokaz();
cout<<endl;
(c->calka())->pokaz();
}
break;

}
break;
}
}

}

system("PAUSE");
return EXIT_SUCCESS;
}


Post został pochwalony 0 razy
 Powrót do góry »
Zobacz profil autora
Wyświetl posty z ostatnich:   
Forum Projekt LBZ Strona Główna » inne » jipp calka
Napisz nowy temat   Odpowiedz do tematu Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach




Solaris phpBB theme/template by Jakob Persson
Copyright © Jakob Persson 2003

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group