Pascal/Turbo Pascal - ayuda con fuente

 
Vista:

ayuda con fuente

Publicado por Lovers (5 intervenciones) el 25/02/2006 00:53:57
Se me pidio el sgte programa

-------------------------------------------------------------
Se necesita un programa que lea desde el teclado una frase y que la revise para convertir a mayúscula la primera vocal de cada palabra que la compone y las demás letras a minúsculas.

TEXTO INTRODUCIDO: ME GUSTA ESTRUCTURA de DATOS

RESULTADO: mE gUsta Estructura dE dAtos
--------------------------------------------------------------------

como se fijan solo la primera vocal de cada palabr adebe estar en mayuscula despues todo los demas letras inlcluyendo las vocales y demas consonantes deben permanecer en minuscula.. validando que la frase s eintroducira o en mayuscula o en minuscula o intercalado. de cualkier manera etc..

entonces tengo el sgte codigo ke para mi deberia funcionar a perfeccion..

necito alguna ayuda de proke este codigo solo funciona para la primera palabra porke de la palabra segunda en adelante de la frase el programa me convierte todas las vocales en mayuscula.. y lo k se necesito es k convierta solo la primera vocal de cada palabra en la frase..

aki esta mi codigo

---------------------------------------------------------------------
BEGIN
repeat
clrscr;
writeln('Instroduzca su frase:');
readln(cad);
for cont := 1 to length(cad) do begin
if cad[cont] <>' ' then
if cad[cont] in ['A'..'Z'] then cad[cont]:=chr(ord(cad[cont])+32);
end;
for cont := 1 to length(cad) do begin
if cad[cont] in ['a','e','i','o','u'] then begin cad[cont]:=chr(ord(cad[cont])-32);
cont := pos(' ',cad); end
end;
clrscr;
writeln(cad);
writeln('Presione TECLA para continuar ESC para terminar');
until readkey=#27;
donewincrt;
END.
---------------------------------------------------------------------------------
podrian decirme cual es le error lo antes psoible porfavor..

GRACIAS avanzadas!!!
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:ayuda con fuente

Publicado por micropais (209 intervenciones) el 25/02/2006 12:37:05
has mirado siquiera Tú mensaje anterior de este mismo foro.
________________________________________________________
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=69&texto=Pascal/Turbo+Pascal&n1=357493&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
________________________________________________________

Si lo que quieres es que te reagan tu programa postea aquí.

SALUDOS
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

RE:ayuda con fuente

Publicado por micropais (209 intervenciones) el 25/02/2006 13:08:43
Corregido y explicado tú código , que tengas suerte en el examen.
_______________________________________________________

{
he mantenido tu código entre corchetes
}

uses crt; { a¤adido para poder usar TP7}
var cad:string; { a¤adido para poder usar TP7}
var cont:byte; { a¤adido para poder usar TP7}

BEGIN
repeat
clrscr;
writeln('Instroduzca su frase:');
readln(cad);

{for cont := 1 to length(cad) do begin
if cad[cont] <>' ' then
if cad[cont] in ['A'..'Z'] then cad[cont]:=chr(ord(cad[cont])+32);
end;{}

{
primer paso convertir TODA la cadena a minusculas , con lo que nos
ahorramos muchos pasos.
}
for cont := 1 to length(cad) do
begin
if cad[cont] in ['A'..'Z'] then cad[cont]:=chr(ord(cad[cont])+32);
end;

{
- segundo paso agregar un espacio en blanco a la cadena para que cuente el
siguiente caracter como comienzo de palabra ó
- segundo paso covertir directamente el primer caracter a mayusculas

- tercer paso recorrer la cadena en busca de los caracteres iniciales de
cada palabra , estos se localizan mediante la busqueda del caracter espacio
ascii 32
}
cad:=' '+cad; {añadimos un ascii 32 al comienzo de la cadena }

for cont := 1 to length(cad) do
begin
{ * ¨por que? a e i o u }
{ if cad[cont] in ['a','e','i','o','u'] then begin cad[cont]:=chr(ord(cad[cont])-32);
cont := pos(' ',cad); end{}

if cad[cont]=' ' then
{ si el caracter es ascii 32 el siguiente es posible comienzo de palabra }
begin
{
recuerda que ahora todos los caracteres estan en minusculas ascii 32 no se
cunta ya que a..z = asscii 97..122
si el siguiente caracter es una letra minuscula entonces convertirla a
mayusculas ya que es el comienzo de una palabra
}
if cad[cont+1] in ['a'..'z'] then cad[cont+1]:=chr(ord(cad[cont+1])-32);
end;

end;

clrscr;
writeln(cad);
writeln('Presione TECLA para continuar ESC para terminar');
until readkey=#27;
{ donewincrt; {no me lo soporta TP}
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