Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2012
Avatar de isarmiento
isarmiento isarmiento is offline
Registrado
NULL
 
Registrado: sep 2012
Posts: 5
Poder: 0
isarmiento Va por buen camino
Smile Detectar tipo de dato introducido por teclado

Hola a todos y gracias de nuevo por ayudarme

Soy nueva en Delphi y nos han dejado un trabajo de convertir entre tipos Numero, Palabra y Romano...

Es en consola,

Mi programa debe responder a 3 casos... ejemplo:

1.si la persona digita--> 1 ... mi programa debe responder--> I y uno
2.si la persona digita--> I ... mi programa debe responder--> 1 y uno
3.si la persona digita--> uno ... mi programa debe responder--> 1 y I

me ha ido bien con crear las funciones para convertir los datos...

el problema que tengo es que necesito hacer que mi programa sepa que tipo de valor se ha introducido por teclado,
si es un numero, si es palabra o numero romano... para llamar a las funciones específicas...

Les agradecería mucho cualquier ayuda....

Buenas vibras a todos
Responder Con Cita
  #2  
Antiguo 28-09-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
A ver si esto te ayuda...

Código Delphi [-]
program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;


var
   value:String;
   entero:Integer;

function IsRoman(Value:String):Boolean;
var
  I: Integer;
begin
     Result:=True;
     for I := 1 to Length(Value) do
     begin
         if Not CharInSet(UpCase(Value[i]),['I','V','X','L','C','D','M'])  then
         begin
              Result:=False;
              Exit;
         end;
     end;
end;

function IsNumber(Value:string):Boolean;
var
   NumVal:Integer;
begin
     Result:=TryStrToInt(Value, NumVal);
end;

begin
      try
         write('Ingrese valor        :');
         Readln(value);
         if IsNumber(Value) then
            writeln('Ingreso un número    :'+Value)
         else if IsRoman(Value) then
            writeln('Ingreso número romano:'+Value)
         else
            writeln('Ingreso una palabra  :'+Value);

         readln;
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
end.

Saludos cordiales
Responder Con Cita
  #3  
Antiguo 28-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.


La consigna del ejercicio resulta confusa o debe faltar algún dato en ella. Por que así expuesta, no sería posible distinguir a las palabras "MIL" o "VIL" de los números romanos por ejemplo.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 28-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ecfisa Ver Mensaje
La consigna del ejercicio resulta confusa o debe faltar algún dato en ella. Por que así expuesta, no sería posible distinguir a las palabras "MIL" o "VIL" de los números romanos por ejemplo.
Y, ¿qué números serían MIL y VIL?

// Saludos
Responder Con Cita
  #5  
Antiguo 28-09-2012
Avatar de isarmiento
isarmiento isarmiento is offline
Registrado
NULL
 
Registrado: sep 2012
Posts: 5
Poder: 0
isarmiento Va por buen camino
Thumbs up

Cita:
Empezado por cloayza Ver Mensaje
A ver si esto te ayuda...

Código Delphi [-]
program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;


var
   value:String;
   entero:Integer;

function IsRoman(Value:String):Boolean;
var
  I: Integer;
begin
     Result:=True;
     for I := 1 to Length(Value) do
     begin
         if Not CharInSet(UpCase(Value[i]),['I','V','X','L','C','D','M'])  then
         begin
              Result:=False;
              Exit;
         end;
     end;
end;

function IsNumber(Value:string):Boolean;
var
   NumVal:Integer;
begin
     Result:=TryStrToInt(Value, NumVal);
end;

begin
      try
         write('Ingrese valor        :');
         Readln(value);
         if IsNumber(Value) then
            writeln('Ingreso un número    :'+Value)
         else if IsRoman(Value) then
            writeln('Ingreso número romano:'+Value)
         else
            writeln('Ingreso una palabra  :'+Value);

         readln;
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
end.

Saludos cordiales

Muchas gracias por responder.... uso delphi 2007 y me manda un error en el System.SysUtils ... dice "[Fatal Error] Project2.dpr(8): File not found: 'System.SysUtils.dcu'"

sabes que puede ser?? gracias <3
Responder Con Cita
  #6  
Antiguo 28-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por roman Ver Mensaje
Y, ¿qué números serían MIL y VIL?

// Saludos
Veo que ya he olvidado como se escribía 49 en números romanos... (Conversor de numeros romanos)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 28-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que está mejor este conversor, que detecta números inválidos.

// Saludos
Responder Con Cita
  #8  
Antiguo 29-09-2012
Avatar de isarmiento
isarmiento isarmiento is offline
Registrado
NULL
 
Registrado: sep 2012
Posts: 5
Poder: 0
isarmiento Va por buen camino
Thumbs up

Cita:
Empezado por isarmiento Ver Mensaje
Muchas gracias por responder.... uso delphi 2007 y me manda un error en el System.SysUtils ... dice "[Fatal Error] Project2.dpr(8): File not found: 'System.SysUtils.dcu'"

sabes que puede ser?? gracias <3
Gracias por la ayuda <3

Ya lo he resuelto
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Detectar si ha sido removido Raton/Teclado fide_uci API de Windows 2 07-02-2009 16:46:09
como detectar multiples teclas en un mensaje de teclado alquimista API de Windows 4 06-01-2009 21:22:49
Tipo de dato MaMu OOP 1 15-12-2008 07:12:58
Tipo de Dato BetoAlonso Varios 11 09-12-2007 00:30:01
detectar CUALQUIER actividad en el teclado: keydown pvizcay Varios 3 04-07-2006 02:30:29


La franja horaria es GMT +2. Ahora son las 17:10:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi