Tuesday, July 31, 2012, 07:09 PM - Delphi
este programa lo que va a hacer es buscar en una palabra la letra o letras que nosotros deseemos pero hay que recordar que no es lo mismo "a" "á" "ä" "à" "A" "À" y todo eso, por lo que podemos buscar en una palabra ñ o vocalesen este programa buscamos "vocales"}
program buscar;
uses
SysUtils;
{creamos una constante del tipo string que contiene las LETRAS QUE QUEREMOS
BUSCAR en este caso buscaremos "vocales" en una palabra string tambien
podemos buscar otras letras como signos de puntuacion ",.;:" incluso podemos buscar espacios " "}
const letras:string = 'aeiouAEIOU';
{declaramos las variables q vamos a utilizar
"pal" que es la variable que contiene a la palabra
a la que le vamos a buscar los que queremos }
function buscar(pal:string):integer;
var c,i:integer;
{"i" es la variable de coontrol y "c" es la variable contador
que aumentara en 1 cada vez que encontremos la letra que queremos}
begin
i:=1;
c:=0;
{la variable i controlara el ciclo repetitivo que va desde la primera letra
de la palabra hasta la ultima la funcion "length" ya esta definida por "Delphi"}
while i<=Length(pal) do
begin
{en este punto hacemos una pregunta la funcion "pos" esta definida por "Delphi"
y esta funcion nos devuelve la posicion en la que esta "pal" dentro de la
constante que declaramos al inicio "letras" por lo que si da como resultado 0
quiere decir que la letra que esta en la posicion "i" dentro de "pal" no
pertenece al grupo "letras" y si da un numero mayor a "0" quiere decir que si
pertenece al grupo por lo que utilizamos la funcion "delete" que esta definida
por "Delphi" que elimina una subcadena dentro de una cadena principal y sumamos
"+1" a la variable "c" que es la que leva la cuenta}
if Pos(pal,letras)>0 then begin
Delete(pal,i,1);
c:=c+1;
end else
begin
i:=i+1;
end;
end;
{al final el resultado es igual a lo que contiene la variable "c"}
buscar:=c;
end;
{programa prinsipal}
var palabra:string;
begin
write('ingrese una palabra ');
readln(palabra);
writeln('la palabra contiene ',buscar(palabra),' vocales');
readln;
end.