Problem Analisis ChartPAC
Adaptada por el Prof. Miguel Vélez Rubio
De presentación del Prof. Nelliud D. Torres
Definición
• El PAC se utiliza para poder organizar las ideas al momento de resolver un problema de programación.
• Nos permite clasificar el problema en cuatro áreas importantes.
• Ayuda al programador a crear más rápidamente el código que se necesita para poder resolver un problema.
EJEMPLO DE UN PACGIVEN DATA OUTPUT
Variables:
Constantes:
FORMULAS STEPS
GIVEN DATAGIVEN DATA OUTPUT
Variables:
Constantes:
FORMULAS STEPS
Aqui indicamos las variables y constantes que necesitamos en el programa para proveer los datos de entrada que permitirán resolver el problema.
FORMULASGIVEN DATA OUTPUT
Variables:
Constantes:
FORMULAS STEPS
Aqui indicamos las fórmulas que se necesitan para resolver el problema.
OUTPUTGIVEN DATA OUTPUT
Variables:
Constantes:
FORMULAS STEPS
En “Output” indicamos aquellos mensajes y/o variables que van a salir en pantalla o papel.
STEPSGIVEN DATA OUTPUT
Variables:
Constantes:
FORMULAS STEPS
Aquí se van a poner los pasos que van a resolver el problema. Se debe detallar lo más posible. (Algoritmo)
EJEMPLO DE UN PROBLEMA
Se desea un programa que solicite al usuario el nombre del empleado, seguro social, horas trabajadas y salario por hora. El descuento de income tax es .058 y del seguro social es .063 (están dados). Una vez se calcule el sueldo bruto, se tienen que hacer los descuentos que apliquen y calcular el sueldo neto. Al final el programa mostrará en pantalla el nombre del empleado, su sueldo bruto , el total de sus deducciones y su sueldo neto.
Recomendación para trabajarlo
Aunque en las próximas transparencias se presentan las partes explicadas según el orden visual, yo (Miguel Vélez Rubio) recomiendo trabajar el PAC en el siguiente orden:
• Identificar primero que nada todo lo de “Output”• Preguntarse qué necesita para poder obtener esos
resultados que le piden para poder identificar los datos de “Input” y ver que datos están dados
• Plantearse todas las fórmulas necesarias para obtener esos resultados y luego depurarlas antes de escribirlas
• Construir el algoritmo asegurándose incluir todo lo de “Input” a principio mediante expresiones como Obtener datos…, todos los cálculos con expresiones como Calcular… y otras necesarias, y todo lo de “Output” con expresiones como Mostrar o Imprimir…
Primera Parte
Determinar las variables y constantes que se van a utilizar en el problema. Hay que utilizar las reglas de nombres de variables discutidas. El problema claramente establece los datos que el usuario debe proveer. Comenzamos por definir las variables.
Primera Parte - Variables
Datos que debe proveer el usuario y los posibles nombres de variables para cada uno:
Dato solicitado Nombre de Variable
Nombre Empleado nombreEmpleado
seguro social seguroSocial
horas trabajadas horasTrabajadas
salario por hora salarioPorHora
Primera Parte - VariablesGIVEN DATA OUTPUT
Variables:nombreEmpleado : String
seguroSocial : String
horasTrabajadas : real
salarioPorHora : real
Constantes:
FORMULAS STEPS
Ponemos las variables en su respectiva área.
Primera Parte - Constantes
En el problema se puede concluir fácilmente que existen dos constantes que podemos definir en esta primera parte. No siempre se pueden determinar todas las variables y constantes en el primer intento. Recuerde que esta tabla es una guía que le ayuda a resolver el problema. Según el programador va adquiriendo experiencia, dejará de necesitar esta herramienta.
Primera Parte – Constantes (2)
Las constantes que vamos a utilizar son las siguientes:
descuento de income tax
descuento de seguro socialSegún las reglas para poner nombres de constantes discutidas en clase, deben quedar así:
DESCUENTO_INCOME_TAX = .058
DESCUENTO_SEGURO_SOCIAL = .063
Primera Parte - Constantes (3)GIVEN DATA OUTPUT
Variables:nombreEmpleado
seguroSocial
horasTrabajadas
salarioPorHora
Constantes:DESCUENTO_INCOME_TAX : real .058
SEGURO_SOCIAL : real .063
FORMULAS STEPS
Ponemos las constantes en su lugar.
Segunda Parte - FÓRMULAS
Determinar las fórmulas que se necesitan para poder resolver el problema. Esto puede ser dificil y existe la posibilidad de que se tenga que revisar. Lo primero que tenemos que cotejar es cuales son los datos que al final le vamos a mostrar al usuario. Para este problema es el nombre, sueldo bruto, total de deducciones y sueldo neto.
Segunda Parte - FÓRMULAS (2)
El nombre del empleado no se utiliza en las fórmulas, de modo que no se considera. El salario bruto nos indica que tenemos que hacer una fórmula. Por conocimiento previo sabemos que el sueldo bruto se calcula multiplicando las horas trabajadas por el salario por hora del empleado. La fórmula debe quedar así:salarioBruto = horasTrabajadas * salarioPorHora
Segunda Parte - FÓRMULAS (3)Lo segundo que se pide es el total de deducciones. Sabemos por la narrativa del problema que es el income tax y el seguro social. Tambien tenemos los porcientos que vamos a utilizar. En este caso, necesitamos calcular las dos deducciones y luego sumarlas para poder obtener el total de deducciones. Haciendo referencia a nuestro conocimiento de las matemáticas, las fórmulas deben quedar así:deducIncomeTax = salarioBruto * DESCUENTO_INCOME_TAXdeducSeguroSocial = salarioBruto * DESCUENTO_SEGURO_SOCIAL
Y para calcular el total de deducciones:totalDeducciones = deducIncomeTax + deducSeguroSocial
Segunda Parte - FÓRMULAS (4)Lo último que se pide es el sueldo neto. También por conocimiento previo, sabemos que el sueldo neto es el sueldo bruto menos las deducciones. Usando eso de base, la fórmula debe quedar así:
salarioNeto = salarioBruto - totalDeducciones
Ya completamos las fórmulas que de primera intención, entendemos se necesitan para resolver el problema. Cotejar lo que se desea de “Output” es buena idea para determinar las fórmulas pero no es el único factor determinante.
Segunda Parte - FÓRMULAS(5)GIVEN DATA OUTPUT
Variables:nombreEmpleado
seguroSocial
horasTrabajadas
salarioPorHora
Constantes:DESCUENTO_INCOME_TAX = .058
SEGURO_SOCIAL = .063
FORMULAS STEPS
salarioBruto = horasTrabajadas * salarioPorHora
deducIncomeTax = salarioBruto * DESCUENTO_INCOME_TAX
deducSeguroSocial = salarioBruto * DESCUENTO_SEGURO_SOCIAL
totalDeducciones = deducIncomeTax + deducSeguroSocial
salarioNeto = salarioBruto - totalDeducciones
Ponemos las fórmulas explicadas anteriormente.
Tercera Parte - OUTPUT
Ahora necesitamos indicar aqui lo que se le va a mostrar al usuario. Se puede mostrar únicamente el nombre de las variables o constantes, pero lo ideal es que se incluya la instrucción completa ya que facilita crear la instrucción en pseudocódigo o cualquier lenguaje de programación.
Tercera Parte – OUTPUT (2)
Los datos que deseamos mostrar, según la narrativa del problema son:
nombre del empleado, su sueldo bruto , el total de sus deducciones y su sueldo neto.
Como ya tenemos esas variables creadas, procedemos a escribir las intrucciones que las muestren en pantalla. Utilizaremos la instucción DISPLAYLINE para lograr esto.
Tercera Parte – OUTPUT (3)
Los nombres de las variables son:
nombreEmpleadosalarioBrutototalDeduccionessalarioNeto
Al incluir la instrucción de DISPLAYLINE, debe quedar así:
Tercera Parte – OUTPUT (4)
DISPLAYLINE “El nombre del empleado es: ” + nombreEmpleado
DISPLAYLINE “El Salario Bruto es: “ + salarioBruto
DISPLAYLINE “El total de deducciones es: “ + totalDeducciones
DISPLAYLINE “El salario neto es: “ + salarioNeto
Procedemos a incluir estas instrucciones en el cuadro de Output del PAC.
Tercera Parte – OUTPUT (5)GIVEN DATA OUTPUT
Variables:nombreEmpleado
seguroSocial
horasTrabajadas
salarioPorHora
Constantes:DESCUENTO_INCOME_TAX = .058
SEGURO_SOCIAL = .063
DISPLAYLINE “El nombre del empleado es: ” + nombreEmpleado
DISPLAYLINE “El Salario Bruto es: “ + salarioBruto
DISPLAYLINE “El total de deducciones es: “ + totalDeducciones
DISPLAYLINE “El salario neto es: “ + SalarioNeto
FORMULAS STEPS
salarioBruto = horasTrabajadas * salarioPorHora
deducIncomeTax = salarioBruto * DESCUENTO_INCOME_TAX
deducSeguroSocial = salarioBruto * DESCUENTO_SEGURO_SOCIAL
totalDeducciones = deducIncomeTax + deducSeguroSocial
salarioNeto = salarioBruto - totalDeducciones
Ponemos las instrucciones que muestran los datos en pantalla al usuario.
Cuarta Parte - STEPS
Aqui necesitamos enumerar los pasos necesarios para que el problema pueda ser resuelto. Recuerde que cada estudiante puede enumerar una cantidad de pasos diferente o con un orden distinto y lograr el mismo resultado. A continuación se muestra una de las posibles soluciones para esta parte. Como práctica es aconsejable que trate de escribirlos antes de cotejar esta solución para poder comparar.
Cuarta Parte – STEPS (2)
1. Pedir Datos al usuario2. Calcular Sueldo Bruto3. Calcular deducción Seguro Social4. Calcular deducción Income Tax5. Sumar el total de deducciones6. Calcular el sueldo neto al restarle las
deducciones al sueldo bruto7. Mostrar en pantalla los datos8. Stop
Cuarta Parte – STEPS (3)GIVEN DATA OUTPUT
Variables:nombreEmpleado
seguroSocial
horasTrabajadas
salarioPorHora
Constantes:DESCUENTO_INCOME_TAX = .058
SEGURO_SOCIAL = .063
DISPLAY “El nombre del empleado es:” + nombreEmpleado
DISPLAY “El Salario Bruto es: “ + salarioBruto
DISPLAY “El total de deducciones es: “ + totalDeducciones
DISPLAY “El salario neto es: “ + SalarioNeto
FORMULAS STEPS
salarioBruto = horasTrabajadas * salarioPorHora
deducIncomeTax = salarioBruto * DESCUENTO_INCOME_TAX
deducSeguroSocial = salarioBruto * DESCUENTO_SEGURO_SOCIAL
totalDeducciones = deducIncomeTax + deducSeguroSocial
salarioNeto = salarioBruto - totalDeducciones
1. Pedir Datos al usuario
2. Calcular Sueldo Bruto
3. Calcular deducción Seguro Social
4. Calcular deducción Income Tax
5. Sumar el total de deducciones
6. Calcular el sueldo neto al restarle las deducciones al sueldo bruto
7. Mostrar en pantalla los datos
8. Stop
Ponemos los pasos que nos ayudan a resolver el problema.
PAC COMPLETADOGIVEN DATA OUTPUT
Variables:nombreEmpleado
seguroSocial
horasTrabajadas
salarioPorHora
Constantes:DESCUENTO_INCOME_TAX = .058
SEGURO_SOCIAL = .063
DISPLAY “El nombre del empleado es:” + nombreEmpleado
DISPLAY “El Salario Bruto es: “ + salarioBruto
DISPLAY “El total de deducciones es: “ + totalDeducciones
DISPLAY “El salario neto es: “ + SalarioNeto
FORMULAS STEPS
salarioBruto = horasTrabajadas * salarioPorHora
deducIncomeTax = salarioBruto * DESCUENTO_INCOME_TAX
deducSeguroSocial = salarioBruto * DESCUENTO_SEGURO_SOCIAL
totalDeducciones = deducIncomeTax + deducSeguroSocial
salarioNeto = salarioBruto - totalDeducciones
1. Pedir Datos al usuario
2. Calcular Sueldo Bruto
3. Calcular deducción Seguro Social
4. Calcular deducción Income Tax
5. Sumar el total de deducciones
6. Calcular el sueldo neto al restarle las deducciones al sueldo bruto
7. Mostrar en pantalla los datos
8. Stop