elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Problemas con Pascal?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Problemas con Pascal?  (Leído 3,473 veces)
¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
¿Problemas con Pascal?
« en: 13 Febrero 2011, 16:56 pm »

Al parecer como no existe ningun tema... que se especifique en pascal, y como yo he tenido muchos problemas con el... entonces decidi abrir este tema...porque primero que nada me a estado gustando programar en pascal y quiero aprender mas, y por lo mismo hice esto... entonces si alguien tiene problemas entre todos (me incluyo yo) lo solucionaremos.

Pero am. por mientras quiero ser el primero  :silbar: ya que ya abri muchos temas sobre esto entonces ya no abrire mas y pondre mis problemas aqui :(
espero que me puedan ayudar. :(...

Código
  1. procedure EstadoE18;
  2. var
  3.  c : char;
  4. begin
  5. {$ifdef DEBUG}
  6.  writeln(stderr,'Estado E18');
  7. {$endif}
  8.  Avanzar;
  9.  c := Leer;
  10. {como pongo el caracter '}
  11.  if c in '''' then   //Mi problema esta aqui
  12.  begin
  13.    S := S + c;
  14.    Avanzar;
  15.    c := Leer;
  16.    EstadoT19;
  17.  end;

En parte de mi codigo de un automata que ando haciendo... lo que quiero esque en el momento en que me lea el caracter '    , me envie a un estado T19... pero no me lo leo porque sabemos que ese caracter sirve para que sea referencia a un texto.
Si yo lo pongo:

Código
  1. if c in '''  then   (me pone en rojo igual el then)
Código
  1. if c in '38'  then   (haciendo referencia al ASCII me sale error)

como podria solucionarlo :S ¿?  :(


En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: ¿Problemas con Pascal?
« Respuesta #1 en: 13 Febrero 2011, 17:24 pm »

El operador in se utiliza para trabajar con conjuntos de datos, en tu caso, una simple condición te valdría. El caracter ' es especial en Pascal así que vas a tener que hacer referencia a él mediante su número ascii.

Pienso que algo como esto, te debería valer:

Código
  1. If c = #38 then
  2. begin
  3.  
  4. end;

Saludos.


En línea

¡Micronet!

Desconectado Desconectado

Mensajes: 159



Ver Perfil
Re: ¿Problemas con Pascal?
« Respuesta #2 en: 17 Febrero 2011, 15:47 pm »

Código
  1. function CientoFloat(s:string): real;
  2. var
  3. v: real;
  4. i: integer;
  5. d: integer;
  6. Num1: integer;
  7. c: integer;
  8. Extra: integer;
  9. begin
  10.       v:=0;  d:=0;  c:=length(s);  Extra:=0;
  11.       while (c<=(lenght(s)+1)) do
  12.       begin
  13.       for i:=1 to length (s) do
  14.            begin
  15.                 if s[i] in ['0'..'9','-'] then
  16.                    d:= ord(s[i])-48;
  17.                    Num1:=Num1+d;
  18.            end;
  19.            v:=exp(Num1*ln(Extra));
  20.            Extra:=Num1;
  21.            c:=c+1;
  22.       end;
  23. CientoFloat := v;
  24. end;
(lo modifique jeje vi uno de mis errores :S)

Aqui tengo el codigo de mi 13e-4 para poder hacer esta funcion lo que hice fue dividir en dos mi cadena... pero me sale error se supone que cuando encuentre los 2 numeros tanto el de la izquierda como el de la derecha deberia de funcionar no ¿? :/

Código
  1. Uses math;
  2.  
  3. Procedure dofrexp(Const X : extended);
  4.  
  5. var man : extended;
  6.    exp: longint;
  7.  
  8. begin
  9.  man:=0;
  10.  exp:=0;
  11.  frexp(x,man,exp);
  12.  write(x,' has ');
  13.  Writeln('mantissa ',man,' and exponent ',exp);
  14. end;
  15.  
  16.  
  17. begin
  18. //   dofrexp(1.00);
  19.   dofrexp(1.02e-1);
  20.   dofrexp(1.03e-2);
  21.   dofrexp(1.02e1);
  22.   dofrexp(1.03e2);
  23. end.


Disculpen... como utilizaria la matiza :S esque no le entiendo a esta matiza :/
« Última modificación: 17 Febrero 2011, 16:04 pm por ¡Micronet! » En línea


"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pascal, MZ y un proyecto
Ingeniería Inversa
Leithold 0 3,793 Último mensaje 7 Julio 2003, 07:16 am
por Leithold
Pascal o C « 1 2 3 »
Programación General
SpuTniK. 29 17,276 Último mensaje 25 Julio 2010, 20:50 pm
por IDarknightI
problemas con el strtoint en pascal
Programación General
¡Micronet! 5 6,029 Último mensaje 3 Febrero 2011, 00:16 am
por Khronos14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines