Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detectar tipo de dato introducido por teclado (https://www.clubdelphi.com/foros/showthread.php?t=80971)

isarmiento 28-09-2012 13:14:30

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 :)

cloayza 28-09-2012 15:45:31

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

ecfisa 28-09-2012 16:49:15

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.

roman 28-09-2012 17:22:42

Cita:

Empezado por ecfisa (Mensaje 445705)
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

isarmiento 28-09-2012 17:53:31

Cita:

Empezado por cloayza (Mensaje 445700)
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

ecfisa 28-09-2012 18:16:02

Cita:

Empezado por roman (Mensaje 445709)
Y, ¿qué números serían MIL y VIL?

// Saludos

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

Saludos.

roman 28-09-2012 18:22:06

Creo que está mejor este conversor, que detecta números inválidos.

// Saludos

isarmiento 29-09-2012 09:04:04

Cita:

Empezado por isarmiento (Mensaje 445716)
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 :)


La franja horaria es GMT +2. Ahora son las 23:18:00.

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