(*************************************************************)
(* Esto fue lo que yo entendi de lo que quiere el profe *)
(*************************************************************)
uses crt;
var
c : char;
cadena : string[30] ;
(***************************************************************)
(* Esta funcion recibe como parametro un caracter y retorna *)
(* verdadero si es vocal en caso contrario retorna falso *)
(***************************************************************)
function voca(xx : char): boolean ;
begin
case xx of
'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u' : voca := true ;
else
voca := false ;
end;
end;
(***************************************************************)
(* Esta funcion recibe como parametro una cadena de caracteres *)
(* en cade1 almacena las vocales y en cade2 los caracteres no *)
(* vocales luego concatena cade1 y cade2 y retorna la palabra *)
(* con las vocales al principio *)
(***************************************************************)
function primerovocal(palabra : string): string ;
var
cade1, cade2 : string[30];
i : integer;
begin
cade1 := '';
cade2 := '';
for i := 1 to length(palabra) do
begin
if (voca(palabra[i])) then
begin
cade1 := cade1 + palabra[i];
end
else
begin
cade2 := cade2 + palabra[i];
end;
end;
primerovocal := concat(cade1,cade2);
end;
(**********************************************************)
(* Procedimiento del repita hasta que sea diferente de S *)
(**********************************************************)
procedure inicio;
begin
repeat
clrscr;
writeln('Ingrese una palabra: ');
readln(cadena);
writeln;
writeln('la palabra es: ', cadena);
writeln;
writeln;
writeln('la palabra con la vocales al principio es: ', primerovocal(cadena));
writeln;
writeln;
writeln('Desea introducir otra palabra [S/N] ');
writeln;
c := readkey;
until (upcase(c) <> 'S');
end;
(***********************)
(* Programa principal *)
(***********************)
begin
inicio;
end.