Pascal/Turbo Pascal - Ayuda URGENTE EXAMEN!!

 
Vista:

Ayuda URGENTE EXAMEN!!

Publicado por Lovers (5 intervenciones) el 23/02/2006 23:47:06
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


IMPORTANTE!: Todas las opciones deben ejecutarse hasta que el usuario le indique al programa que quiere salir.

-----------------------------------------------
URGENTE PORFAVOR
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 URGENTE EXAMEN!!

Publicado por micropais (209 intervenciones) el 24/02/2006 07:48:02
como no sé lo que realmente quieres ,prueba este programa .
la funcion capitalizar convierte a mayusculas el primer caracter de una cadena
y el resto a minusculas , este programa tambien hace lo contrario.
la funcion x_capitalizar convierte la primera letra de cada palabra a minusculas
y el resto del texto a mayusculas .
cambia x_capitalizar por capitalizar si es lo que necesitas .

saludos y no os presenteis todos con el mismo examen.

______________________________________________________

{
la funcion x_capitalizar usa la funcion mayusculas

minusculas convierte una cadena a minusculas
* mayusculas convierte una cadena a mayusculas
capitalizar convierte el primer caracter de una cadena a MAY
* X_capitalizar convierte el primer caracter de una cadena a minusculas

}

var cadena:string;

function minusculas(cadena:string):string;
var a:integer;
begin
for a:=1 to length (cadena) do
begin
if cadena[a] in ['A'..'Z'] then cadena[a]:=chr(ord(cadena[a])+32);
end;
minusculas:=cadena;
end;

function mayusculas(cadena:string):string;
var a:integer;
begin
for a:=1 to length (cadena) do
begin
if cadena[a] in ['a'..'z'] then cadena[a]:=chr(ord(cadena[a])-32);
end;
mayusculas:=cadena;
end;

function capitalizar(cadena:string):string;
var a:integer;
begin
cadena[1]:=upcase(cadena[1]);
for a:=1 to length(cadena) do
begin
if cadena[a]=' ' then (cadena[a+1]):=upcase(cadena[a+1]);
capitalizar:=cadena;
end;
end;

function x_capitalizar(cadena:string):string;
var a:integer;
caracter:char;
begin
cadena:=mayusculas(cadena); { todo a minusculas }

if (cadena[1] in ['A'..'Z']) then
cadena[1]:=chr(ord(cadena[1])+32); { primer caracter a min }
{ recorremos el bucle desde el segundo caracter hasta el final de la cadena }
{ si encontramos un caracter espacio, es nuestro separador de palabras }
{la siguiente letra, es el comienzo de una palabra la convertimos a minuscula}
{ siempre y cuando no sea tambien un caracter separador }
for a:=2 to length(cadena)do
begin
if cadena[a]=' ' then
begin
if (cadena[a+1]<>' ') then
(cadena[a+1]):=chr(ord(cadena[a+1])+32);
end;
end;
x_capitalizar:=cadena;
end;

{***************** AQUI COMIENZA EL PROGRAMA PRINCIPAL *********************}
begin

writeln('introducca una cadena de caracteres y ser  canvertida ');
writeln('pulse solo INTRO para SALIR' );

repeat
write('cadena sin convertir:' );
readln(Cadena);
if cadena='' then
begin
writeln('Programa Terminado ');
readln;
halt;
end;
write('cadena convertida :' );
writeln(x_capitalizar(cadena));
readln;
until cadena=''; { repetimos }

END.


______________________________________________________
MICROPAIS
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