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;