segundo parcial diciembre 2021

segundo parcial diciembre 2021

de Virginia Andrea Alonzo Perez -
Número de respuestas: 1
Ejercicio 2
Solución procedure crearPalindromo (var cadena : TCadena ) ;
var i : 1 . . N ;
begin
 i f cadena . tope <= N div 2 then
 begin
for i := 1 to cadena . tope do
cadena . cars [ cadena . tope+i ] := cadena . cars [ cadena . tope−i+ 1];
cadena . tope := cadena . tope ∗ 2
end
end ;
No entiendo como completa el arreglo "cadena . cars [ cadena . tope+i ] := cadena . cars [ cadena . tope−i+ 1];
cadena . tope := cadena . tope ∗ 2"
Muchas gracias
En respuesta a Virginia Andrea Alonzo Perez

Re: segundo parcial diciembre 2021

de Luis Sierra -
hola virginia,

realiza una ejecución a mano del programa, por ejemplo usando el primer caso que aparece en el ejercicio.

i = ?, cadena.cars = |‘a’|‘b’|‘c’|?|?|?|?|?|, cadena.tope = 3
i = 1, cadena.cars = |‘a’|‘b’|‘c’|?|?|?|?|?|, cadena.tope = 3
i = 1, cadena.cars = |‘a’|‘b’|‘c’|'c'|?|?|?|?|, cadena.tope = 3 (porque cadena.tope+i = 4 y cadena.tope-i+1 = 3)
i = 2, cadena.cars = |‘a’|‘b’|‘c’|'c'|?|?|?|?|, cadena.tope = 3
i = 2, cadena.cars = |‘a’|‘b’|‘c’|'c'|'b'|?|?|?|, cadena.tope = 3 (porque cadena.tope+i = 5 y cadena.tope-i+1 = 2)
...

completa la ejecución. si te quedan dudas, vuelve a preguntar.

saludos

luis