Kalkulačka – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kalkulačka – Delphi – Fórum – Programujte.comKalkulačka – Delphi – Fórum – Programujte.com

 

raddino0
Návštěvník
26. 12. 2010   #1
-
0
-

Ahoj,
pokoušim se napsat v kalkulačce to, aby to umělo vyřešit příklad z Editu ( do Editu napíšu: 1+5*2 a když kliknu na = zobrazí se 11). Potřebuju trochu postrčit, jak to řešit. Zatim sem udělal takový pokusný řešení, ale nějak nevim jak dál.

procedure TForm1.Button20Click(Sender: TObject);

var pocetznaku,I,T,vysledek: integer;
cifra: string;
operand:char;
begin
pocetznaku:=Edit1.GetTextLen;
for I := 1 to pocetznaku do
begin
case Edit1.Text[I] of
'1' .. '9' : cifra:=cifra+Edit1.Text[I];
'+' : begin operand:='+'; T:=StrToInt(cifra); cifra:='0'; end;
end;
end;
vysledek:=T + StrToInt(cifra);
Label1.Caption:=IntToStr(vysledek);
Edit1.Text:=' ';
end;


Je to zatim nástřel, předpokládam, že to dělam složitě a špatně. Prosím o nějakou radu co změnit, co upravit a jak dál pokračovat. Stačí rada, zkusim si to napsat sám.

Nahlásit jako SPAM
IP: 78.80.28.–
liborb
~ Redaktor
+18
Guru
27. 12. 2010   #2
-
0
-

Nesmíš zapomínat na to, že je cosi jako priorita operátorů, pokud budeš chtít umět i závorky, tak ty ti to taky trochu zesložití a v neposlední řadě taky můžu zadat:

1 + 2 +   3
apod. Prostě vstup od uživatele musíš procházet několikráte a neustále něco kontrolovat :).

V prvním průchodu bych zkontroloval závorky - testovací proměnná na začátku 0, za každou levou závorku inkrementace, za každou pravou závorku dekrementace, hodnota nesmí klesnou pod 0 a na konci musí být 0

V druhé průchodu bych odstranil všechny bílé znaky (mezery, tabulátory apod.)

Následně bych začal tvořit strom výpočetních operací, protože ten se na to dobře hodí.

No a nakonec průchodem stromu vypočítat výsledek :)

Nahlásit jako SPAM
IP: 78.80.52.–
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, 3 hosté

Podobná vlákna

Kalkulacka — založil tomas

Kalkulacka — založil mravenec

Kalkulačka — založil Lukáš

Kalkulačka — založil anajkaa@seznam.cz

Kalkulačka — založil Anakin

 

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