Delphi - Separar letras de una palabra

 
Vista:

Separar letras de una palabra

Publicado por pamelita (1 intervención) el 29/03/2009 04:42:59
Hola a todos, tengo un problema, estoy comenzando a programar con delphi y me pidieron un programa que separe de una palabra ingresada(por consola) cuales y cuantas consonantes y vocales tiene, un ejemplo, torre, indique 3 consonantes y 2 vocales e indique cuales son.
Creo que el indicar cuales son vocales y consonantes no sera un problema, el problema que si veo es que no se como separar las letras de una palabra para poder analizarlas por separado, ejemplo
t
o
r
r
e

como puedo realizar esto, de antemano muchas gracias! :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Separar letras de una palabra

Publicado por eva (484 intervenciones) el 29/03/2009 22:56:21
recorre la palabra con un bucle de 1 a longutud de palabra (length)
saca cada palalabra con copy(palabra, posición, 1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Separar letras de una palabra

Publicado por E.T. (1244 intervenciones) el 30/03/2009 18:42:30
Crea una nueva aplicación de consola, en la ventana de codigo borra todo y pon este codigo, todo tal y como está

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils, classes, Windows;

var flag, flag2:boolean;
letras:TStringList;
cantidad:array of integer;
VoCon:array[1..2]of integer;
palabra:string;
i:integer;

const
vocales=['a','e','i','o','u','A','E','I','O','U','á','é','í','ó','ú','Á','É','Í','Ó','Ú','ü','Ü'];

procedure menu;
begin
Writeln('Insertar palabra - 1');
Writeln('Salir - 2');
Writeln('');
end;

procedure resultado;
begin
Writeln('Resultado:');
Writeln('');
Writeln(' Vocales - '+inttostr(VoCon[1]));
Writeln(' Consonantes - '+inttostr(VoCon[2]));
Writeln('');
for i:= 0 to letras.Count-1 do begin
Writeln(' '+letras[i]+' - '+inttostr(cantidad[i]));
end;
Writeln('');
end;

begin
flag:=true;
letras:=TStringList.Create;
repeat
menu;
palabra:='';
Readln(palabra);
if palabra = '1' then begin
letras.Clear;
SetLength(cantidad, 0);
VoCon[1]:=0;
VoCon[2]:=0;
palabra:='';
// flag2:=false;
Writeln('Escribe una palabra');
Writeln('');
Readln(palabra);
if length(palabra)>0 then begin
for i:=1 to length(palabra) do begin
if palabra[i]<>' ' then
if letras.IndexOf(palabra[i])>=0 then begin
inc(cantidad[letras.IndexOf(palabra[i])]);
end else begin
SetLength(cantidad, length(cantidad)+1);
cantidad[length(cantidad)-1]:=1;
letras.Add(palabra[i]);
end;
if palabra[i]in vocales then
inc(voCon[1])
else if palabra[i]<>' ' then
inc(voCon[2]);
end;
resultado;
end;
end else
flag:=false;
until flag=false;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar