Problema Con Pascal
Publicado por Programmer Zero (1 intervención) el 28/09/2011 05:10:36
Buenas... Estoy Haciendo Un Programa En pascal que lea una cadena de caracteres (con espacios) del teclado e imprima todas aquellas palabras que tienen mas de 3 vocales entre lineas separadas.
pero solo me funciona con palabras de "4" vocales y si las escribo entre espacios,
Por Ejemplo pongo:
AEIO aeio aei.....Y funciona, pero si intercalo la que no cumple la condicion:
AEIO aei aeio... Imprime la primera y "aei" la cual no deberia imprimirse, sino mas bien la "aeio"
Y no funciona bien con palabras de mas de 4 vocales...
program palabras;
uses crt;
{PROGRAMA PARA ESCRIBIR CADENAS DE MAS DE TRES VOCALES
CON ESPACIOS ENTRE LINEAS}
var palabra: string;
procedure separar (cadena: string);
var i, j, cont, aux, temp: integer;
salida: string;
begin
Salida := '';
cont := 0;
aux := 1;
for i:=1 to Length(cadena) do
if (cadena[i]=#65) or (cadena[i]=#69) or (cadena[i]=#73) or (cadena[i]=#79)
or (cadena[i]=#85) or (cadena[i]=#97) or (cadena[i]=#101) or (cadena[i]=#105)
or (cadena[i]=#111) or (cadena[i]=#117) then
begin
cont := cont + 1;
if cont > 3 then
begin
for j := aux to Length(cadena) do
begin
if (cadena[j] <> #32) then
begin
salida[j] := cadena[j];
write(salida[j]);
end
else
begin
temp := 0;
aux := j + 1;
break;
end;
end;
end;
if (temp = 0) then
begin
cont := 0;
Salida := '';
writeln;
writeln;
temp := 1;
end;
end;
end;
begin
clrscr;
write('Ingrese Una Cadena De Caracteres: ');
readln(palabra);
writeln;
separar(palabra);
readkey;
end.
Gracias De Antemano...
pero solo me funciona con palabras de "4" vocales y si las escribo entre espacios,
Por Ejemplo pongo:
AEIO aeio aei.....Y funciona, pero si intercalo la que no cumple la condicion:
AEIO aei aeio... Imprime la primera y "aei" la cual no deberia imprimirse, sino mas bien la "aeio"
Y no funciona bien con palabras de mas de 4 vocales...
program palabras;
uses crt;
{PROGRAMA PARA ESCRIBIR CADENAS DE MAS DE TRES VOCALES
CON ESPACIOS ENTRE LINEAS}
var palabra: string;
procedure separar (cadena: string);
var i, j, cont, aux, temp: integer;
salida: string;
begin
Salida := '';
cont := 0;
aux := 1;
for i:=1 to Length(cadena) do
if (cadena[i]=#65) or (cadena[i]=#69) or (cadena[i]=#73) or (cadena[i]=#79)
or (cadena[i]=#85) or (cadena[i]=#97) or (cadena[i]=#101) or (cadena[i]=#105)
or (cadena[i]=#111) or (cadena[i]=#117) then
begin
cont := cont + 1;
if cont > 3 then
begin
for j := aux to Length(cadena) do
begin
if (cadena[j] <> #32) then
begin
salida[j] := cadena[j];
write(salida[j]);
end
else
begin
temp := 0;
aux := j + 1;
break;
end;
end;
end;
if (temp = 0) then
begin
cont := 0;
Salida := '';
writeln;
writeln;
temp := 1;
end;
end;
end;
begin
clrscr;
write('Ingrese Una Cadena De Caracteres: ');
readln(palabra);
writeln;
separar(palabra);
readkey;
end.
Gracias De Antemano...
Valora esta pregunta


0