Upload
jorge-gamez
View
677
Download
1
Embed Size (px)
Citation preview
Algoritmos y Programas – Año 2012
Práctica de Repaso Objetivos: • Repasar los conceptos aprendidos en las Prácticas anteriores.
1) Programar en Python un algoritmo recursivo que permita hacer la división por restas sucesivas.
0 si (b > a) division(a, b) division(a-b, b) + 1 si (b <= a)
2) Implemente una solución recursiva que permita invertir un número.
Ejemplo: Entrada: 123 Salida: 321
n si (n < 10) invertir(int n)
(n modulo10) + invertir (n : 10) x 10 si (n => 10)
3) Programar un algoritmo recursivo que permita sumar los dígitos de un número.
Ejemplo: Entrada: 123 Resultado:6
n si (n == 0) sumar_dig (int n)
sumar_dig (n : 10) + (n modulo10) si (n > 0)
4) Sea:
Algoritmo de Euclides:m.c.d. (a , b) = m.c.d. (b , a mod b) si b>0m.c.d. (a , b) = a si b=0Ejemplo: m.c.d. (57, 23) = m.c.d. (23, 11) = m.c.d. (1,0) = 1
Implemente en Python una versión recursiva del Algoritmo de Euclides.
5) Provea un TAD cuya funcionalidad sea resolver para cálculos vectoriales tridimensionales, para ello se debe proveer las siguientes operaciones:
• sumaVectorial: toma dos vectores y los suma elemento a elemento.
Algoritmos y Programas – Año 2012
• productoDeUnEscalar: toma un vector y un numero escalar y retorna otro vector cuyos elementos son el resultado del producto del escalar por el elemento del vector original.
• productoVectorial : toma dos vectores y calcula el producto vectorial de acuerdo al siguiente criterio:
• productoEscalar: toma dos vectores y retorna un numero con el producto escalar, de acuerdo al siguiente criterio
Algoritmos y Programas – Año 2012
6) (A entregar) Se desea modelar una empresa, la cual posee un nombre, una breve descripción de la misma y un grupo de empleados. La empresa posee de cada empleado la siguiente información: su nombre y apellido completos, su DNI, su edad, su sueldo, el puesto y la antigüedad dentro de la empresa. Los puestos ( de mayor a menor ) pueden ser: Presidente, Gerente General, Gerente de Departamento, Jefe de Departamento y Empleado, de los cuales Presidente solo puede haber uno.Para este ejercicio piense con que estructuras de datos se pueden modelar la empresa y los empleados, y realice las funciones que al menos resuelvan los siguientes problemas:
Para un Empleado:• nuevoEmpleado: Crear un nuevo empleado.• nombreEmpleado: Retorna el nombre completo del empleado.• dniEmpleado: Retorna el dni del empleado.• edadEmpleado: Retorna la edad del empleado.• sueldoEmpleado: Retorna el sueldo del empleado.• puestoEmpleado: Retorna el puesto del empleado.• antiguedadEmpleado: Retorna la antigüedad del empleado.
Para la Empresa: • nuevaEmpresa: Crear una empresa nueva.• agregarEmpleado: Agrega un nuevo empleado a la empresa.• nombreEmpresa: Retorna el nombre de la empresa.• descripcionEmpresa: Retorna la descripción de la empresa.• empleadosEmpresa: Retorna los empleados de la empresa. • cantidadDeEmpleados: Retorna cuantos empleados tiene la empresa.• buscarEmpleadoPorDni: Retorna el empleado que posee ese dni.• buscarPresidente: Retorna el empleado que tiene el puesto de presidente.• buscarEmpleadoConMasAntiguedad: Retorna el empleado con la mayor
antigüedad. • * buscarEmpleadosQueGananMasDelPromedio: Retorna el promedio de los
sueldos de la empresa y una lista de empleados que ganen más que ese promedio.• retirarPresidente: se debe eliminar al Presidente de la nómina de empleados y
ascender al empleado de mayor antigüedad, duplicándole el sueldo.• * compararEmpresas: recibe 2 empresas y retorna si la suma de los sueldos de la
primer empresa es mayor que los de la segunda o no.• * fusionarEmpresas: recibe 2 empresas y crea una nueva con los empleados de las 2
empresas y los nombres y descripciones concatenadas. Tener en cuenta que solo puede haber 1 solo presidente, el de mayor antigüedad, el otro pasa a ser Gerente General.
Aquellos items con * son opcionales para incrementar nota.
Algoritmos y Programas – Año 2012
Gráficamente: