• Sábado 20 de Abril de 2024, 08:31

Autor Tema:  Problemilla Con Practica...  (Leído 2322 veces)

Yelz

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problemilla Con Practica...
« en: Lunes 19 de Noviembre de 2007, 23:44 »
0
Estoy atascado con una practica en la que me dan 2ristras y tengo que buscar la palabra de mayor tamaño en una ristra, por ejemplo :

''Programacion 668FFg''
''abcdefghijklmnñopqrstu''
y el resultado seria:

''rogramacion''

-y lo único que consigo sacar es esto, que estoy seguro de que está fatal...

with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;

function Palabra_Mayor (Alfabeto, Palabras : in Unbounded_String)
                        return Unbounded_String is
   Palabras_Aux, Pal : Unbounded_String;
   P : Natural;
begin
   Palabras_Aux := Palabras & " ";
   P := Index (Palabras_Aux, " ");
   while P /= 0 and P > 0 loop
      Pal := Unbounded_Slice (Palabras_Aux, 1, P - 1);
      Palabras_Aux := Unbounded_Slice (Palabras_Aux, P + 1,
      length(Alfabeto));
   end loop;
   return Pal;
end Palabra_Mayor;


-- El programa principal es el siguiente:

with Text_Io, Ada.Strings.Unbounded, Palabra_Mayor;
use  Text_Io, Ada.Strings.Unbounded;

procedure Prueba is
   Alfabeto: Unbounded_String := To_Unbounded_String("abcdefghijklmnopqrstuvwxyz");
   Pal_Mayor, Palabras: Unbounded_String;
begin
   Palabras := To_Unbounded_String("Mi código es el 324TM8paq");
   Pal_Mayor := Palabra_Mayor(Alfabeto, Palabras);
   Put("Alfabeto:   ");
   Put_Line(To_String(Alfabeto));
   Put("Palabras:   ");
   Put_Line(To_String(Palabras));
   Put("Palabra mayor:   ");
   Put_Line(To_String(Pal_Mayor));
end Prueba;