Este documento presenta tres algoritmos que usan diferentes estructuras de repetición (DO...WHILE, FOR y WHILE) para calcular el sueldo de empleados u obtener el promedio de números. Cada algoritmo define una clase Empleado o Numero con métodos para establecer y obtener datos, y una clase Ejecuta que contiene el bucle principal para procesar múltiples objetos creados de la clase principal.
1. Diseño de algoritmos OO usando la Repetición Do… while En este punto se utiliza la estructura de repetición DO ..WHILE en pseudocódigo, misma que es aplicada conjuntamente con el diagrama de clases y los conceptos de la programación orientada a objetos, es decir, en el diseño de algoritmos orientada a objetos, esto es, en el diseño de algoritmos OO. Ejemplo: Elaborar un algoritmo que calculé e imprima el sueldo de varios empleados, cada empleado se tratara en forma similar al problema ya estudiado con anterioridad. A continuación se presenta el algoritmo de solución.
3. Algoritmo CALCULAR SUELDO de varios Empleados Clase Empleado Declaraciones Datos nombreEmp: Cadena horasTrab: Entero cuotaHora: Real Sueldo: Real Método establecerNombreEmp(nom: Cadena) a. nombreEmp= nom Fin Método establecerNombreEmp 3. Método establecerHorasTrab(horasTr: Entero) a. horasTrab= horasTr Fin Método establecerHorasTrab
4. 4. Método establecerCuotaHora(cuotaHr: Real) a. cuotaHora=CuotaHr Fin Método establecerCuotaHora 5. Método calcularSueldo() a.sueldo = horasTrab * cuotaHora Fin del Método calcularSueldo 6. Método obtenerNombreEmp(): Cadena a. returnnombreEmp Fin Método obtenerNombreEmp 7. Método obtenerSueldo():Real a. return sueldo Fin Método obtenerSueldo Fin Clase Empleado
5. Clase EjecutaEmpleado Método principal a. Declaraciones Variables nomEmp: Cadena hrsTra: Entero cuoHr: Real desea: Caracter b. do 1. Declarar, crear e iniciar objeto Empleado objEmpleado= new Empleado() 2. solicitar Nombre, número de hrs trabajadas y cuota por hora. 3. Leer nomEmp, hrsTra, cuoHr 4. Establecer objEmpleado. establecerNombreEmp(nomEmp) objEmpleado. establecerHorasTrab(hrsTra) objEmpleado. establecerCuotaHora(cuoHr) 5. Calcular objEmpleado.CalcularSueldo() 6. Imprimir objEmpleado.obtenerNombreEmp() objEmpleado.obtenerSueldo() 7. Preguntar “Desea procesar otro empleado(S/N)? 8. Leer desea c. while desea = “S” Fin Método principal Fin clase Ejecutaempleado Fin
6. Diseño de algoritmos OO usando la Repetición for En este punto se utilizara la estructura de repetición FOR en pseudocódigo misma que se aplica conjuntamente con le diagrama de clases y los conceptos de la programación OO, es decir , en el diseño de algoritmos orientada a objetos. Ejemplo: Elaborar un algoritmo que lea los 20 números y calcule e imprima el promedio de dichos números. A continuación se presentan el algoritmo de la solución.
8. Algoritmo promedio de 20 números Clase Numero Declaraciones Datos numero: Entero 2. Método establecerNumero(nu: Entero) a. numero = nu Fin Método establecerNumero 3. Método obtenerNumero() a. return numero Fin Método obtenerNumero Fin Clase Numero
9. Clase EjecutaNumero Método principal a. Declaraciones Variables i, num, sumatoria:entero Promedio:Real b. sumatoria = 0 c. for (i=1; i<20; i++) 1. Declarar, crear e iniciar objeto Numero objNumero= new Numero() 2. solicitar numero 3. Leer num 4. Establecer objEmpleado. establecerNumero(num) 5. sumatoria = sumatoria+ objnumero.obtenerNumero() d. ENDFOR e. promedio = sumatoria / 20 f. Imprimir promedio Fin Método principal Fin clase EjecutaNumero Fin
10. Diseño de algoritmos OO usando la Repetición while En este punto se utiliza la estructura de repetición while en pseudocódigo, misma que es aplicada conjuntamente con el diagrama de clases y los conceptos de la programación orientada a objetos, es decir, en el diseño de algoritmos orientados a objetos. Ejemplo: Elaborar un algoritmo que permita procesar varios empleados, igual al primer ejemplo del primer punto (DO..WHILE), por cada empleado se leen los datos: nombre del empleado, numero de horas trabajadas y cuota por ahora; y se imprime el nombre y sueldo. A continuación se presenta el algoritmo de la solución.
12. Algoritmo CALCULAR SUELDO de varios Empleados Clase Empleado Declaraciones Datos nombreEmp: Cadena horasTrab: Entero cuotaHora: Real Sueldo: Real Método establecerNombreEmp(nom: Cadena) a. nombreEmp= nom Fin Método establecerNombreEmp 3. Método establecerHorasTrab(horasTr: Entero) a. horasTrab= horasTr Fin Método establecerHorasTrab
13. 4. Método establecerCuotaHora(cuotaHr: Real) a. cuotaHora=CuotaHr Fin Método establecerCuotaHora 5. Método calcularSueldo() a. sueldo = horasTrab * cuotaHora Fin del Método calcularSueldo 6. Método obtenerNombreEmp(): Cadena a. returnnombreEmp Fin Método obtenerNombreEmp 7. Método obtenerSueldo():Real a. return sueldo Fin Método obtenerSueldo Fin Clase Empleado
14. Clase EjecutaEmpleado Método principal a. Declaraciones Variables nomEmp: Cadena hrsTra: Entero cuoHr: Real desea: Caracter b. preguntar “¿Desea procesar empleado(S/N)?” c. Leer desea d. while desea = “S” 1. Declarar, crear e iniciar objeto Empleado objEmpleado= new Empleado() 2. solicitar Nombre, número de hrs trabajadas y cuota por hora.
15. 3. Leer nomEmp, hrsTra, cuoHr 4. Establecer objEmpleado.establecerNombreEmp(nomEmp) objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecerCuotaHora(cuoHr) 5. Calcular objEmpleado.CalcularSueldo() 6. Imprimir objEmpleado.obtenerNombreEmp() objEmpleado.obtenerSueldo() 7. Preguntar “Desea procesar otro empleado(S/N)?” 8. Leer desea e.ENDWHILE Fin Método principal Fin clase Ejecutaempleado Fin