En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro.
Ejemplo 1.
Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.
Solución.
Lo primero que hay que determinar es si el trabajador trabajó horas extras o no. Encontrar las horas extras de la siguiente forma:
Horas extras = horas trabajadas - 40
En caso que sí trabajó horas extras:
Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras -8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8
De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras.
Finalmente, pago total que recibirá el trabajador será:
Pago = pago * hora normal * 40 + pago por horas extras.
Si no trabajó horas extras tendremos:
Pago = pago por hora normal * horas trabajadas.
Datos de salida: Pago.
Datos de entrada: número de horas trabajadas y pago por hora normal.
Definición de variables:
ht = horas trabajadas het = horas extras que exceden de 8
ph = pago por hora normal phe = pago por horas extras
he = horas extras pt = pago que recibe el trabajador
Algoritmo:
Inicio
Leer (ht, ph)
Si ht >40 entonces
He ¬ ht - 40
Si he > 8 entonces
Het ¬he - 8
Phe ¬ph * 2 * 8 + ph * 3 * het
Sino
Phe ¬ ph * 2 * he
Fin_si
Pt ¬ph * 40 + phe
Sino
Pt ¬ ph * ht
Fin_si
Escribir (pt)
Fin
Ejemplo 2.
Dados los datos A, B y C que representan números enteros diferentes, construir un algoritmo para escribir estos números en forma descendente. Este es un ejemplo de los algoritmos conocidos como de Lógica Pura, ya que poseen muchas decisiones y muchas bifurcaciones.
Salida: A, B y C ordenados descendentemente.
Entradas: A, B y C.
La dinámica del problema es comparar dos números a la vez para conocer cuál es el mayor.
1. Cómo programar aplicaciones Cliente/Servidor en Visual Basic Visual Basic nació como un lenguaje sencillo de programación, ideal para iniciarse... [17/09/04] |
14.881 | ||||
2. Aprende Photodraw PhotoDraw es una herramienta gráfica que permite trabajar con gráficos e imágenes... [21/05/02] |
27.207 | ||||
3. Aprende Word Este curso está destinado a los principiantes. A todos aquellos que necesitan una... [27/09/05] |
5.184 |