Uložit operátor do proměné – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Uložit operátor do proměné – Pascal – Fórum – Programujte.comUložit operátor do proměné – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
pidgin0
Návštěvník
15. 11. 2009   #1
-
0
-

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

Nahlásit jako SPAM
IP: 83.208.170.–
Reklama
Reklama
crAzY^
~ Moderátor
+10
Grafoman
15. 11. 2009   #2
-
0
-

char

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
pidgin0
Návštěvník
15. 11. 2009   #3
-
0
-

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ě.

Nahlásit jako SPAM
IP: 83.208.170.–
z_moravec
~ Redaktor
+3
Posthunter
15. 11. 2009   #4
-
0
-

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.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Laaca0
Stálý člen
18. 11. 2009   #5
-
0
-

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;

Nahlásit jako SPAM
IP: 193.179.2.–
DOS-u-akbar
Wimby
~ Anonymní uživatel
50 příspěvků
23. 11. 2009   #6
-
0
-

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;

Nahlásit jako SPAM
IP: 78.128.192.–
Laaca0
Stálý člen
23. 11. 2009   #7
-
0
-

Freepascal umí makra taky, viz nápovědu k direktivě {$DEFINE}.

Nahlásit jako SPAM
IP: 188.120.212.–
DOS-u-akbar
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Proměné — založil roman.jaros

Operátor -> — založil Adam

Operator<< — založil Gadael

Operátor << — založil RePRO

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý