You are on page 1of 5

EJEMPLO DE DESARROLLO - PSEUDOCODIGO Ejemplo 1.

En una empresa que brinda mantenimiento a PCs se han clasificado a las maquinas de acuerdo al numero de desperfectos que estas presentan. Si la PC no tiene ninguna falla es tipo A, si la PC tiene 3 fallas se le considera tipo B y si la PC tiene mas de 3 fallas es tipo C. Escribir un algoritmo para implementar este proceso, No se sabe cuantas PCs se evaluaran en un da, el algoritmo debe preguntar si se desea continuar y terminar el ingreso N. Asimismo al finalizar se debe mostrar por pantalla las estadsticas porcentuales correspondientes a la evaluacin de ese da. Ejemplo del reporte a mostrar: TIPO A B C TOTAL DE COMPUTADORAS 33 24 5 PORCENTAJE 52.33% 38.71% 8.06%

Anlisis Del Problema: En este problema se utilizara el mtodo LeeProcesaNumFallas() , el cual lee el numero de fallas de cada computadora y simultneamente procesa este dato, realiza la clasificacin correspondiente al numero de fallas, calcula las estadsticas solicitadas y finalmente muestra el mensaje correspondiente. Asimismo se utiliza el mtodo MuestraEstadisticas(). Los contadores ContA, ContB y ContC deben ser inicializados en cero.

Clase Solucin Del Problema: Clase Inspector Atributos: NumFallas Mtodos: LeeProcesaNumFallas() MuestraEstadisticas()

Implementacin en Pseudocodigo: CLASE INSPECTOR { // Atributos entero NumFallas entero TipoA entero TipoB entero TipoC //Mtodos Inspector() { NumFallas = 0 TipoA = 0 , TipoB = 0 , TipoC = 0 } LeeProcesoNumFallas( ) { caracter Rpta = Mientras (Rpta < > N y Rpta < > n) Escribe (Ingrese el numero de fallas) Leer ( NumFallas) Si ( NumFallas = 0) TipoA <- TipoA + 1 Sino Si ( NumFallas <= 3) TipoB TipoB + 1 Sino TipoC TipoC + 1 FinSi FinSi Escribe ( Desea Continuar S/N? ) Leer (Rpta) FinMientras } MuestraEstadisticas() { entero Total. Total TipoA + TipoB +TipoC Escribir ( ESTADISTICAS ) Escribir ( TIPO TOTAL DE COMPUTADORAS PORCENTAJE ) Escribir (-----------------------------------------------------------------------------------) Escribir ( A , TipoA , TipoA * 100 / Total ) Escribir ( B , TipoB , TipoB * 100 / Total ) Escribir ( C , TipoC , TipoC * 100 / Total ) } }

En Proceso: Inspector Oscar nuevo Inspector() Oscar. LeeProcesaNumFallas() Oscar.MuestraEstadisticas() Fin. Ejemplo 2. Una financiera tiene 3000 clientes, ha decidido premiar a su staff de 30 vendedores. Escribir una solucin que permita, saber quien es el ejecutivo con el mayor nmero de contratos conseguidos pues recibir un Bono especial de $ 500 dlares como premio. Adems se otorgara otros premios al resto del personal segn la siguiente tabla: Numero de contratos conseguidos Mas de 100 Menos de 50 pero mas de 10 Menores de 100 y mayores o iguales a 50 Bono ($) 200 50 100

Determinar el Monto total en dlares que desembolsara la financiera en concepto de bonos. Anlisis Del Problema: En este problema se utilizara el mtodo ProcesaDatos() , para leer el nombre de los vendedores de la Financiera y el numero de contratos que han colocado, determinando al ejecutivo que obtendra el premio, tambien se procesara todos los casos por los cuales la financiera otorgara por bonos, obteniendo el total del importe en bonos. Asimismo se utiliza el mtodo MuestraResultados().

Clase Solucin Del Problema: Clase BonosFinanciera Atributos: NomVendedorGanador NumContratosGanador TotalEnBonos Mtodos: ProcesaDatos() MuestraResultados()

Implementacin en Pseudocodigo: CLASE BonosFinanciera { // Atributos Cadena NomVendedorGanador Entero NumContratosGanador Real TotalEnBonos //Mtodos BonosFinanciera() { NumContratosGanador 0 TotalEnBonos 0 } ProcesoDatos( ) { cadena Nombre Entero NumContrato entero i Para i desde 1 hasta 30 Escribe (Ingrese el nombre del vendedor: , i ) Leer (Nombre) Escribe (Ingrese numero de contratos ) Leer ( NumContrato) Si ( NumContratos > NumContratosGanador) NumContratosGanador <- NumContratos NomVendedorGanador <- Nombre FinSi. Si ( NumContratos > 10 y NumContratos < 50 ) TotalEnBonos = TotalEnBonos + 50 FinSi Si ( NumContratos > = 50 y NumContratos < 100 ) TotalEnBonos = TotalEnBonos + 100 FinSi Si ( NumContratos >= 100 ) TotalEnBonos = TotalEnBonos + 200 FinSi FinPara }

MuestraResultados() Cadena NomVendedorGanador Entero NumContratosGanador Real TotalEnBonos Escribir ( EL EJECUTIVO GANADOR ES : , NomVendedorGanador ) Escribir (EL TOTAL DE CONTRAROS SON: ,NumContratosGanador ) Escribir (EL TOTAL A DESEMBOLSAR POR LA FINANCIERA ES: ) Escribir ( TotalEnBonos ) }

} //Fin de la clase. En Proceso: BonosFinanciera Financiera nuevo BonosFinanciera () Financiera.ProcesaDatos() Financiera .MuestraResultados() Fin.

You might also like