Pink: Ovšem nesmíme zapomenout na zbytek - ty červíky (pokud je nesezobli kosi) ;-))
oprava k programu:
//u class souhrn:
friend operator<<(ostream &o, souhrn s)
{
return o<<"{"<<s.jab<<","<<s.hr<<","<<s.oh<<","<<s.cer<<"}";
}
friend souhrn operator+(souhrn a,souhrn b)
{
return souhrn(a.jab+b.jab,a.hr+b.hr,a.oh+b.oh,a.cer+b.cer);
}
//priklad 2:
souhrn priklad2=( jablka(1)+hrusky(2.5) )+( ohryzky(1)+cervi(2) );
oprava k oprave:
friend ostream& operator<<
zoo: měla jsem to zkoučet opačně, jabko mělo díry po červech
Ale nééééé, dívčí, inak je to. Hrušky jsou obávaný středověký mučicí nástroj. A kerej vodsouzenej byl krapátko hodnej, dostal ji s dírkou - a tou mohl dýchat. Ostatek líčít nemusím, žežene? :-)
Zkoušela jsem to brutálním fortelem, ale to jabko do hrušky ne a ne nacpat.
Helča, ale to nesmíš brát hrušku bez dírky! Znáš přeci rozdíl mezi hruškou s dírkou a hruškou bez dírky? :-)
Proc problem resit jednoduse, kdyz to jde i slozite?
Nejdrive si definujeme datovy typ vysledku, a to strukturu
obsahujici jablka, hrusky, ohryzky a cervy. Pouzijeme k tomu
treba jazyk C:
typedef struct jabkaHruskyOhryzkyCervi
{
int jabka;
double hrusky;
int ohryzky;
int cervi;
} jhoc;
Nasledujici konstanta je resenim prvniho prikladu:
const jhoc priklad1={2,3.0,0,0};
a nasledujici resenim druheho:
const jhoc priklad2={1,2.5,1,2};
To vsak neni vsechno, pratele. Dalsim prijemnym zeslozitenim
prikladu je pouziti (ne)primocare se nabizejicich principu
objektove orientovaneho programovani (OOP). Nadefinujeme
objekty typu "jablko", "hruska", "ohryzek", "cerv", a "souhrn".
Definujeme pro ne tez operator scitani a vysledek pak
nechame na pocitaci. Zde je program:
#include <iostream>
class jablka
{
int pocet;
public:
int poc() {return pocet;}
jablka(int x) {pocet=x;}
jablka operator+(jablka y) {return jablka(pocet+y.pocet);}
souhrn operator+(hrusky y) {return souhrn(pocet,y.poc(),0,0);}
souhrn operator+(ohryzky y) {return souhrn(pocet,0,y.poc(),0);}
souhrn operator+(cervi y) {return souhrn(pocet,0,0,y.poc());}
}
class hrusky
{
double pocet;
public:
double poc() {return pocet;}
hrusky(double x) {pocet=x;}
hrusky operator+(hrusky y) {return hrusky(pocet+y.pocet);}
souhrn operator+(jablka y) {return souhrn(y.poc(),pocet,0,0);}
souhrn operator+(ohryzky y) {return souhrn(0,pocet,y.poc(),0);}
souhrn operator+(cervi y) {return souhrn(0,pocet,0,y.poc());}
}
class ohryzky
{
int pocet;
public:
int poc() {return pocet;}
ohryzky(int x) {pocet=x;}
ohryzky operator+(ohryzky y) {return ohryzky(pocet+y.pocet);}
souhrn operator+(hrusky y) {return souhrn(0,y.poc(),pocet,0);}
souhrn operator+(jablka y) {return souhrn(y.poc(),0,pocet,0);}
souhrn operator+(cervi y) {return souhrn(0,0,pocet,y.poc());}
}
class cervi
{
int pocet;
public:
int poc() {return pocet;}
cervi(int x) {pocet=x;}
cervi operator+(cervi y) {return cervi(pocet+y.pocet);}
souhrn operator+(hrusky y) {return souhrn(0,y.poc(),0,pocet);}
souhrn operator+(ohryzky y) {return souhrn(0,0,y.poc(),pocet);}
souhrn operator+(jablka y) {return souhrn(y.poc(),0,0,pocet);}
}
class souhrn
{
int jab;
int hr;
int oh;
int cer;
public:
souhrn(int j,int h,int o,int c)
: jab(j),hr(h),oh(o),cer(c)
{}
friend operator<<(ostream &o, souhrn s)
{
return o<<"{"<<jab<<","<<hr<<","<<oh<<","<<cer<<"}";
}
}
int main(void)
{
souhrn priklad1=jablka(2)+hrusky(3); //reseni prikladu 1
cout<<priklad1; //tisk
souhrn priklad2=jablka(1)+hrusky(2.5)+ohryzky(1)+cervi(2);
cout<<priklad2; //tisk
return 0;
}
vysledek je jako vzdy - bramborovej salat.
K danemu problemu nelze korektne ppristupovat bez patricneho teoretickeho aparatu. Je treba nejdrive vybudovat uplnou axiomatickou teorii zabyvajici se scitanim biologickych entit. Vysledna entita musi byt bezpodminecne grupa se vsemi dusledky z toho plynoucimi. Definici jednotlivych operaci je nutno dusledne promyslet.
Priklady: Scitani zalozime na bazi geneticke, cili kombinovani DNA. Pokud bychom uspeli v tomto problemu, ziskame vydatnou publicitu pro Pismaka, nebot bude velmi jednoduche predvidat vlastnosti vyslednych hybridu. Dnes se to resi takzvanou metodou kanadskych devorubcu (pro anglictinare: brute-force approach).
Pokud bychom vyuzili behavioralistickeho pristupu, lze snadno determinovat jednani a volni reakce pokusnych subjektu (lidi treba) na danou kombinaci entit. To by melo obrovsky vyznam pro marketing, telemarketing a reklamu vubec. Bylo by tak mozne optimalizovat naklady spojene s reklamni kampani ("ne, plysovy medvidek tam byt nesmi").
Lze zajiste danou grupu vybudovat i jinak, toto nechavam Vam, vazeni kolegove. Jen pripominam: dva nejdulezitejsi imperativy pro praci vedce (a divnovedce vubec) jsou korektnost a dukaz.
První příklad je jednoduchý:
2 jabka + 3 hrušky = 5 ovocných plodů
v rozvinutém příkladu by řešením mohl být 1 ovocný salát, ovšem vegetariánům nepřístupný.
1 celé jabko + 2 červi + 1 jablečný ohryzek se stopkou + 2 celé zelené hrušky + 1 horní polovina žluté hrušky = x
1 celé jablko můžeme vykrátit s ohryzkem a dostaneme tak 1 jablko bez ohrzyku a stopky (a pochopitelně i bez "bubáka")
tím se zbavíme jednoho přebytečného divnomatematického výrazu
dále bych postupoval podle Kirschner-Oswaldova diferenciálního kritéria pro jablka a hrušky
nezdržuji čtenáře celým postupem, který se může i lehce zkušenému divnomatematikovi zamotat hlavu a rovnou přejdu k závěrečné úpravě:
2 červi + 3,5 jablečnodužinozelenohruškožlutohruškoohryzků = x
červy teď můžeme jednodušše otrávit nějakým přípravkem na hubení červů, což již konečně vede ke kýženému výsledku:
x = 3,5 jablečnodužinozelenohruškožlutohruškoohryzků
jistě nejden divnomatematik by byl spokojen s tímto výsledkem, leč zapomněli jsme určit obor, ve kterém má daná rovnice řešení
x = 3,5 jablečnodužinozelenohruškožlutohruškoohryzků
v intervalu <-7 jahod; +3,14 banánů>
:o)
Není nad (po)řádnou substituci :)
hele a co to ještě trošku zderivovat? :o))
(1 jablko + 2 červi) + 1 jablečný ohryzek se stopkou = 1 celé jablko + 2 červi (musíme brát v potaz část jablka červy sežranou, proto jedno celé jablko)
1 jablko + 2 červi + 2 zelené hrušky + horní polovina žluté hrušky = (pro zjednodušení přehodíme) = (1 jablko + 2 zelené hrušky + horní žlutá polovina) + 2 červi
tj. jedna celá porce dvoubarevného ovocného pyré s masovou přílohou...
toto jest má hypotéza...
:-)
Když dva celí červi posunou jedno jablko o čtvrt celého ohryzku a o půl průměrného červa během polovice doby, kdy červ líhne /sebe/, kdy si toho všimnou v hrušce, jestliže její horní zelená část rovná se v čase zahájení akce třem čtvrtinám jablečné stopky, zní můj laický dotaz? :-o