procedure EstadoT2;
var
c : char;
begin
{$ifdef DEBUG}
writeln(stderr,'Estado T2');
{$endif}
Avanzar;
c := Leer;
while c in ['a'..'z'] do
begin
S := S + c;
Avanzar;
c := Leer;
end;
strtoint (const S: string): LongInt; //Problema aqui 57 / 19
writeln('Token ID reconocido: ', S);
end;
Disculpen esque en devpascal no me reconoce esa funcion me dice
57 / 19 automa~1.pas
Fatal: Syntax error, ) expected but identifier S found
y
tambien este error
57 / 20 automa~1.pas
Error: Illegal expression
y segun yo esta bien como lo quiero transformar... o esta mal :/ ¿?
ya que lo que quiero es imprimir la constante en entero.
Estas usando mal la función. Sería algo así:
var
Numero: integer;
Cadena: string;
begin
Cadena:= '14';
Numero:= StrToInt(Cadena);
end;
En FreePascal y en Delphi la función StrToInt está declarada en la unidad SysUtils. Debes tener en cuenta, que si intentas convertir una cadena de texto a integer vas a producir un error. Para ese caso puedes usar la función TryStrToInt().
Saludos.
Cita de: Khronos14 en 2 Febrero 2011, 15:39 PM
Estas usando mal la función. Sería algo así:
Gracias khronos14 oye disculpa otras 2 preguntas.
procedure EstadoT3;
var
c : char;
Numero : integer;
begin
{$ifdef DEBUG}
writeln(stderr,'Estado T3');
{$endif}
Avanzar;
while c in ['0'..'7'] do
begin
S := S + c;
Avanzar;
c := Leer;
end;
case c of
'x': EstadoT4;
else
end;
Numero:= OctToInt(S); {error aqui 175/12}
writeln('Token OP reconocido: ', Numero);
end;
Disculpa este error me sale para pasar de octal a entero.
175 / 12 avanze~1.pas Error: Identifier not found OCTTOINT
lo que veo esque no estoy ingresando un numero octal si no una cadena, entonces estoy intentando pasar de una cadena a octal pero no me funciona entonces como seria pasar eso ¿? si se puede saber
entonces tambien intetne usar el octtoint(08) intentando usar un numero y tampoco me funciono me salio el error de el identificador no encontrado.
Hola ¡Micronet!, la función OctToInt no existe o al menos no está definida en el estándar de Pascal. Si buscas por google encontrarás algo como esto:
function OctToInt(Value: string): Longint;
var
i: Integer;
int: Integer;
begin
int := 0;
for i := 1 to Length(Value) do
begin
int := int * 8 + StrToInt(Copy(Value, i, 1));
end;
Result := int;
end;
Esta función te convertiría un número octal, almacenado como cadena, a integer.
Saludos.
Cita de: Khronos14 en 2 Febrero 2011, 19:28 PM
Hola ¡Micronet!, la función OctToInt no existe o al menos no está definida en el
Gracias... am am y ya para dejarte de molestar crees que me puedas ayudar con los hexadecimales. ¿?
tambien los tengo en una cadena. :-[
porque tambien me dijieron que tengo que usar el HextoInt.
59 / 12 avanze~1.pas Error: Identifier not found HEXTOINT
e igual me sale error :/ el mismo.
HexToInt tampoco forma parte del estándar de Pascal. En programación, más que en cualquier otro tema, google es un gran amigo ;D
Saludos.