Forum » Programiranje » Java-pomoč
Java-pomoč
Terminator ::
Bi znal kdo te spodnje vrstice pretvoriti iz C++ v Javo?
class Evaulator
{
private:
Scanner* scanner;
protected:
bool E(double& vred)
{
double tempVred;
bool ok= T(tempVred);
return ok && EE(tempVred,vred);
}
bool EE(double inVred, double& vred)
{
if(scanner->currentToken().getLexem()=="+" || scanner->currentToken().getLexem()=="-")
{
if(scanner->currentToken().getLexem()=="+")
{
scanner->nextToken();
double tempVred;
bool ok=T(tempVred);
return ok && EE(inVred + tempVred, vred);
}
else
{
scanner->nextToken();
double tempVred;
bool ok=T(tempVred);
return ok && EE(inVred - tempVred, vred);
}
}
vred=inVred;
return true;
}
bool T(double& vred)
{
double tempVred;
bool ok = F(tempVred);
return ok && TT(tempVred,vred);
}
bool TT(double inVred, double& vred)
{
if(scanner->currentToken().getLexem()=="*" || scanner->currentToken().getLexem()=="/")
{
if(scanner->currentToken().getLexem()=="*")
{
scanner->nextToken();
double tempVred;
bool ok = F(tempVred);
return ok && TT(inVred * tempVred, vred);
}
else
{
scanner->nextToken();
double tempVred;
bool ok = F(tempVred);
return ok && TT(inVred / tempVred, vred);
}
}
vred=inVred;
return true;
}
bool F(double& vred)
{
if(scanner->currentToken().getTip()==1)
{
vred=(double)atoi(scanner->currentToken().getLexem().c_str());
scanner->nextToken();
return true;
}
else
{
if(scanner->currentToken().getLexem()=="(")
{
scanner->nextToken();
bool zac=E(vred);
if(zac && scanner->currentToken().getLexem()==")")
{
scanner->nextToken();
return true;
}
else
{return false;}
}
else
{return false;}
}
}
public:
Evaulator(Scanner* aScanner)
{
scanner=aScanner;
scanner->nextToken();
}
bool Parse(double& vred)
{
return E(vred) && scanner->sc_end();
}
};
#endif
HVALA ZA POMOČ!
class Evaulator
{
private:
Scanner* scanner;
protected:
bool E(double& vred)
{
double tempVred;
bool ok= T(tempVred);
return ok && EE(tempVred,vred);
}
bool EE(double inVred, double& vred)
{
if(scanner->currentToken().getLexem()=="+" || scanner->currentToken().getLexem()=="-")
{
if(scanner->currentToken().getLexem()=="+")
{
scanner->nextToken();
double tempVred;
bool ok=T(tempVred);
return ok && EE(inVred + tempVred, vred);
}
else
{
scanner->nextToken();
double tempVred;
bool ok=T(tempVred);
return ok && EE(inVred - tempVred, vred);
}
}
vred=inVred;
return true;
}
bool T(double& vred)
{
double tempVred;
bool ok = F(tempVred);
return ok && TT(tempVred,vred);
}
bool TT(double inVred, double& vred)
{
if(scanner->currentToken().getLexem()=="*" || scanner->currentToken().getLexem()=="/")
{
if(scanner->currentToken().getLexem()=="*")
{
scanner->nextToken();
double tempVred;
bool ok = F(tempVred);
return ok && TT(inVred * tempVred, vred);
}
else
{
scanner->nextToken();
double tempVred;
bool ok = F(tempVred);
return ok && TT(inVred / tempVred, vred);
}
}
vred=inVred;
return true;
}
bool F(double& vred)
{
if(scanner->currentToken().getTip()==1)
{
vred=(double)atoi(scanner->currentToken().getLexem().c_str());
scanner->nextToken();
return true;
}
else
{
if(scanner->currentToken().getLexem()=="(")
{
scanner->nextToken();
bool zac=E(vred);
if(zac && scanner->currentToken().getLexem()==")")
{
scanner->nextToken();
return true;
}
else
{return false;}
}
else
{return false;}
}
}
public:
Evaulator(Scanner* aScanner)
{
scanner=aScanner;
scanner->nextToken();
}
bool Parse(double& vred)
{
return E(vred) && scanner->sc_end();
}
};
#endif
HVALA ZA POMOČ!
Sergio ::
erm, in kaj tebi preprecuje, da bi zadevo napisal v javi?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Terminator ::
Ovira me to, da Java ne podpira prenosa po referrenci!Pa nasploh neznanje jezika Java.
Gundolf ::
V bistvu java podpira LE prenos po referencah Razen pri elementarnih tipih.
Ti kar zacni prevajati kodo in poslji vprasanje, ko se ti bo kaj realnega zataknilo. Ker zares upam da ti nihce tu ne bo sel tega prevajati.
Ti kar zacni prevajati kodo in poslji vprasanje, ko se ti bo kaj realnega zataknilo. Ker zares upam da ti nihce tu ne bo sel tega prevajati.
CCfly ::
V C++ obstaja razlika med pointerji in referencami. Java ima s tega stališča samo reference in elementarne tipe.
"My goodness, we forgot generics!" -- Danny Kalev
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# davčno potrjevanjeOddelek: Programiranje | 4408 (3877) | windigo |
» | [Java] Podatkovni tipOddelek: Programiranje | 3831 (3483) | piki12 |
» | [java] Osnovna vprašanjaOddelek: Programiranje | 2636 (1643) | killa bee |
» | vector::iterator problemi, brisanje podatkov iz vektorjaOddelek: Programiranje | 1135 (986) | mn |
» | Casovni problem v C/C++Oddelek: Programiranje | 1258 (1159) | sid_dabster |