Ahoj,
poradil by mi někdo jak uložit operátory jako +, -, *, /, div atd. do proměných, Respektlive jaký datový typ použít a jestli vůbec to jde a jestli použít datový typ. V c my šli použít makra ale pascal ( už z něho šílím ). Potřebuju to proto abych mohl pak s operátory provádět permutace a variace.
Díky
Fórum › Pascal
Uložit operátor do proměné
to jsem zkoušel ale možná špatně
var plus : char;
cislo: integer;
begin
plus:='+';
cislo:= 1 plus 2 //to je nesmysl protože plus už je znak a né věc která něco dělá
end.
Možná dělám něco špatně, jestli víš co byl bych rád kdyby jsi mi poradil, ale ani přes ascii hodnotu by to podle mě nešlo protože to pak bude znak. Jsou čísla, pak znaky, řetězce, pole, ale něco do čeho bych mohl uložit + aby fungovalo pořád jako + neznám. V c++ bych použil makra ale. A jelikož potřebuju přechazovat všechny možné operátory mezi sebou, je to moc variací na to abych to napsal ručně.
Tak použij něco takového:
cislo:= eval(1 plus 2)
Musíš si to samozřejmě upravit, pascal už si moc nepamatuju a nevím, jestli má funkci eval nebo jinou.
Podle mě řešíš hovadinu, nicméně nejlépe by se tahla věc řešila pomocí objektů a dědičnosti.
Cisla = object
a,b:real;
x:real;
Procedure Prirad(aa,bb:real); {a:=aa b:=bb}
Procedure Secti; {x:=a+b}
Procedure Odecti; {x:=a-b}
...
end;
PokrocilaCisla = object (cisla)
Procedure Secti {a tady muze byt jina, slozitejsi operace}
...
end;
Pokud tomu dobře rozumim, tak v případě céčka bys zvolil makra, tedy úlohu s operátory by řešil preprocesor a ne kompilátor. Borland, Turbo, Free Pascal i Delphi nabízejí podmíněné překlady, tedy něco ve stylu:
{$DEFINE PLUS}
Cislo := A {$IFDEF PLUS}+{$ELSE}{$IFDEF MINUS}-{$ENDIF}{$ENDIF}B;
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 9 hostů
Podobná vlákna
Photoshop cs5 nelze uložit ani uložit jako... — založil ROCA
Operator - — založil yaqwsx
Operátor -> — založil Adam
Operator<< — založil Gadael
Moderátoři diskuze