Pascal/Turbo Pascal - Ayuda con 1 ejercicio de pascal

   
Vista:

Ayuda con 1 ejercicio de pascal

Publicado por Matias (6 intervenciones) el 06/05/2009 08:49:06
Hola que tal, necesito ayuda con el siguiente ejercicio en pascal:

Por ejemplo que lea una frase desde teclado ingresada por el usuario y que me invierta palabra por palabra por ejemplo:

Ingresa: Hoy es un lindo dia

y que me muestre: yoh se nu odnil aid
osea que de vuelta palabra por palabra, y no toda la frase.

yo lo resolvi de una forma pero meda vuelta toda la frase y no palabra por palabra

osea a mi me muestra: aid odnil nu se yoh.

Gracias desde ya.

veran que soy principiante xD
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 1 ejercicio de pascal

Publicado por Martin (74 intervenciones) el 06/05/2009 11:04:12
No parece dificil. ¡Ya veras!.
Haz de crear dos variables tipo STRING (una para la cadena que escribirás y la otra de orden invertido: CadCorrecta y CadInvertida). La CadInvetida la inicias a vacia (''). Otra variable de tipo entero. Y ahora el código fuente:
VAR
CadCorrecta, CadInvertida : string;
I : integer;

begin
write('Introduce la cadena: ');
readln(CadCorrecta);
CadInvertida := '';

for i := length(CadCorrecta) downto 1 do
begin
CadInvertida := CadInvertida+CadCorrecta[i];
write(CadInvertida)
end
end.

Espero haberte ayudado.
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

RECTIFICACION

Publicado por martin (74 intervenciones) el 07/05/2009 01:10:57
Perdona por el herror en el código fuente. Fijate a que hora me he dado cuenta.
Bien; es el siguiente:

VAR
CadCorrecta,CadInversa : string;
i : integer;

begin
write('Introduce la frace: ');
readln(CadCorrecta);
CadInversa := '';

for i := length(CadCorrecta) downto 1 do
cadInversa := cadInversa+CadCorrecta[i];
writeln;
writeln('CadInversa)
end.
Este codigo fuente lo he probado y funciona correctamente,
Siento lo ocurrido.
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:gracias martin pero no sale todavia

Publicado por Matias (1 intervención) el 06/05/2009 19:49:54
osea Yo lo habia hecho parecido al tuyo sacandole el begin que esta abajo del for i. y me hacia lo siguiente

por ejemplo:
al ingresar : matias daniel
me imprime: leinad saitam
mientras que tendria que imprimir: saitam leinad

Con ese begin lo que me hace es deletrear desde la ultima palabra hacia la primera

me dijeron que quizas con dos for i se pueda pero todavia no me sale.

Igualmente muchas gracias martin por perder un poquito de tu tiempo y ayudarme seguire tratando.
saludos

A este ejercicio me lo tomaron en un parcial y el tipo no me aprobó porque me daba vuelta desde la ultima palabra hacia la primera =s
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

NO ENTENDÍ LA CONSULTA

Publicado por martin (74 intervenciones) el 07/05/2009 02:36:24
No se como he podido cometer tales herrores. Es un algoritmo facil. Creo que no entedí la consulta.
Se dice que 'a la de tres va la vencía o vencida'.
Este codigo fuente lo he provado y da lo que pides:

VAR
CadCorrecta, CadInvertida : string;
i : integer;

BEGIN
write('Introduce el texto: ');
readln(cadCorrecta);
CadInversa := ''; {la iniciamos a cadena vacia}

REPEAT
For i := pos(' ',CadCorrecta)-1 downto 1 do
cadInvertida := cadInvertida+CadCorrecta[i]; {invierte la primera palabra del texto}
CadInvertida := CadInvertida + ' '; {añadimos un espacio a la palabra que acabamos de invertir}
Delete(CadCorrecta,1,pos(' ',cadCorrecta)); {elimina la 1ª palabra del texto y el espacio que le sigue}
UNTIL pos(' ',CadCorrecta) = 0 {siempre quedará la última palabra del texto, para ello con otro FOR la invertimos y despues la agregamos al texto}
For i := length(CadCorrecta) downto 1 do
CadInvertida := CadInvertida+CadCorrecta[i];

writeln;
writeln('La frase invertida es: ',CadInvertida)
end.
Espero que sea lo que pides
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:MUCHAS GRACIAS MARTIN AHORA SI FUNCIONA

Publicado por Matias (6 intervenciones) el 07/05/2009 04:51:28
MUCHAS GRACIAS MARTIN SOS UN GENIO JEJE AHORA SI FUNCIONA RE BIEN, LA VERDAD TE AGRADEZCO MUCHISIMO POR PERDER UN RATITO DE TU TIEMPO AYUDANDOME.

SALUDOS MASTER.
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