ahoj potreboval bych prevest rovnici zadanou do stringu na integer. Podarilo se mi to ale nevim jak to udelat s vicecifernyma cislama vzdy to udela kazde cislo zvlast.
děkuji za napady
Jestli myslíš jenom převod víceciferných čísel, tak na to je v TP standardní příkaz Val, v Deplhi tuším Strtoint nebo tak nějak. Dáš mu číslo zadané jako text a on ti vrátí převedené číslo a kód, podle kterého poznáš, jestli se mu převod povedl nebo tam někde našel chybu (třeba písmeno).
Jestli tou rovnicí myslíš něco jako '12+34*(3/15)', tak to už tak triviální není, ale taky to jde. Pro inspiraci třeba http://mircosoft.mzf.cz/…d/vyrazy.zip .
1. Co si nasel googlem? (google = pascal prevod na cislo NEBO pascal string na integer)
2. Ty jsi jeste nehledal?
Mozna ti ty otazky pripadaji hloupe, ale uz radu let mi je google velmi napomocne pri reseni problemu.
procedure Val(S; var V; var Code: Integer);
Parmeters:
S char sequence; for proper conversion it has to contain ‘+’, ‘-‘, ‘,’, ’.’, ’0’..’9’.
V The result of conversion. If result going to be an Integer then S can't contain ‘,’, ’.’.
C Return the position of the character from S, that interrupt the conversion.
Use cases:
Var Value :Integer;
Val('1234', Value, Code); // Value = 1234, Code = 0
Val('1.234', Value, Code); // Value = 0, Code = 2
Val('abcd', Value, Code); // Value = 0, Code = 1
Free - pascal
http://www.freepascal.org/…trtoint.html
http://www.freepascal.org/…ointdef.html
http://www.freepascal.org/…attostr.html
http://www.freepascal.org/…ttostrf.html
Pascal
http://borlandpascal.wikia.com/…g_operations
http://www.pascal.kaviorek.com/faq_pytanie.php?… - podle toho ma Crt modul prevodni funkci int()
Ja bych to resi Valem tak, ze zkusim provest konverzi a kdyz to vyhodi error code, tak udelam substring 0-code cislo a provedu val jeste jednou.
http://stackoverflow.com/…ng-in-pascal - coz v podstate dela tady ve tretim priklade, jen on vyhledava pozici mezery a tobe pozici rekne code z val()
var
str: string;
sub: string;
spc: Integer;
i: Integer;
begin
str := 'Alpha 257';
spc := Pos(' ', str);
sub := Copy(str, spc + 1, Length(str) - spc);
i := StrToInt(sub);
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku