PRÁCTICA 056

Publicado por Unknown en 23:01
Bueno, ayer asistí con algunos compañeros a la Acreditación de la Carrera de Computación, celebrada en la sede San Carlos. Estuvo bastante interesante todo lo que dijeron sobre el TEC y sobre el futuro de la carrera. Después de la acreditación dieron un coctel. Me tomé varias copitas de un ponche, y luego en residencia practicando para el próximo exámen, lo que surgió como una idea bastante simple luego se convirtió en un ejercicio bastante complejo.

Se trata de lo siguiente la función recibe un número entero positivo, y un rango, y luego invierte ese rango.

Ejemplo

invertir_ponche(2,5,123456789)
>> 154326789

invertir_ponche(4,8,123456789)
>> 123876549

Recibe como ya se explicó arriba 3 argumentos, ini, fin, n

Luego invierte el rango desde ini a fin. El problema parece bastante simple, no sé si es que me afectó el ponche, pero he terminado haciendo casi una progra... necesitando 7 funciones para el resultado final.



Para desarrollar esta función tuve que hacer muchas correcciones, por el asunto de las posiciones y el invertir que había que hacerle a varios rangos. El problema cuenta con las siguientes funciones:

1- contardigitos(n)
2- invertir(n)
3- averiguar_por_posicion(p,n)
4- armar_con_posiciones (ini,fin,n)
5- eliminar_por_posicion(p,n)
6- insertar_en_posicion(new,p,n)
7- ponche_de_acreditacion_computacion(ini,fin,n)

Resolví el problema con esas funciones, contando con el siguiente razonamiento:

Suponiendo que tenemos un número 123456789, y queremos invertir el rango desde el 3 al 7, para que nos quede 127654389, se procede de la siguiente forma:

Se extrae el rango que se quiere invertir = 34567
Se cuenta el número de dígitos de ese rango = 5
Se eliminan 5 veces el número que se encuentre en la posición 3.
Número original = 123456789
Se elimina = 12456789
Se elimina = 1256789
Se elimina = 126789
Se elimina = 12789
Se elimina = 1289

Quedandonos 1289 como número

Ahora invertimos el rango que habíamos extraído, 76543

y ahora insertamos el rango invertido en la posición 3 (que era la posición ini) del número formado por los dígitos restantes, quedándonos el resultado final:

127654389

----------------------------------------------

Bueno esto es la función de celebración de que nuestra carrera de computación ha sido acreditada.

0 Respuestas a 'PRÁCTICA 056'

Publicar un comentario