ESTRUCTURAS DE PROGRAMACION
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción detransferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.
ESTRUCTURA DE PROGRAMACIÓN SELECTIVA
La especificación formal de algoritmos tiene
realmente utilidad cuando el algoritmo requiere una descripción más complicada
que una lista sencilla de instrucciones. Este es el caso cuando existen un
número de posibles alternativas resultantes de la evaluación de una determinada
condición.
Estas estructuras se identifican porque en la
fase de solución del problema existe algún punto en el cual es necesario
establecer una pregunta, para decidir si ciertas acciones d eben realizarse o
no.
Las condiciones se especifican usando
expresiones lógicas. La representación de una estructura selectiva se hace con
palabras en pseudocódigo (if - then - else o en español si - entonces - sino) y
en flujograma con una figura geométrica en forma de rombo.
Las estructuras selectivas o alternativas se
clasifican en:
a) Simples
b) Dobles
c) Compuestas
d) Múltiples
ESTRUCTURAS SELECTIVAS SIMPLES.
Se identifican porque están compuestos únicamente
de una condición. La estructura si - entonces evalúa la condición y en tal
caso:
Si la condición es verdadera, entonces ejecuta
la acción Si (o acciones si son varias).
Si la condición es falsa, entonces no se hace
nada.
Español Inglés
Si <condición> If <condición>
Entonces then
<acción Si> <acción Si>
fin_si endif
Ejemplo 1.
Construir un algoritmo tal, que dado como dato
la calificación de un alumno en un examen, escriba "Aprobado" en caso
que esa calificación fuese mayor que 8.
Salidas: mensaje de aprobado si se cumple la
condición.
Entradas: calificación
Datos adicionales: un alumno aprueba si la
calificación es mayor que 8
Variables:
Cal = calificación
Algoritmo:
Inicio
Leer (cal)
Si cal > 8 entonces
Escribir ("aprobado")
Fin_si
Fin
ESTRUCTURA DE SELECCION DOBLE
Son estructuras lógicas que permiten controlar
la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de
acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no
ambas a la vez, es decir, son mutuamente excluyentes.
Representación pseudocodificada.
Español
Inglés
Si <condición> entonces If <condición> then
<acción S1> <acción S1>
sino else
<acción S2> <acción S2>
Fin_Si
End_if
Entonces, si una condición C es verdadera, se
ejecuta la acción S1 y si es falsa, se ejecuta la acción S2.
Ejemplo 1
Dado como dato la calificación de un alumno en
un examen, escriba "aprobado" si su calificación es mayor que 8 y
"Reprobado" en caso contrario.
Algoritmo:
Inicio
Leer (cal)
Si cal > 8 entonces
Escribir ("aprobado")
Sino
Escribir ("reprobado")
Fin_si
Fin
Ejemplo 2.
Dado como dato el sueldo de un trabajador,
aplicar un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso
contrario, luego imprimir el nuevo sueldo del trabajador.
EXPRESIONES LÓGICAS
Sirven para plantear condiciones o
comparaciones y dan como resultado un valor booleano verdadero o falso, es
decir, se cumple o no se cumple la condición. Se pueden clasificar en simples y
complejas. Las simples son las que usan operadores relacionales y las complejas
las que usan operadores lógicos.
Un ejemplo en el cual usamos el operador
lógico AND sería:
Una escuela aplica dos exámenes a sus
aspirantes, por lo que cada uno de ellos obtiene dos calificaciones denotadas
como C1 y C2. El aspirante que obtenga calificaciones mayores que 80 en ambos
exámenes es aceptado; en caso contrario es rechazado.
En este ejemplo se dan las condiciones
siguientes:
Si (C1 >= 80) y (C2 >= 80) entonces
Escribir ("aceptado")
Sino
Escribir ("rechazado")
Fin_si
Note que también usa operadores relacionales.
Por lo general cuando hay operadores lógicos, éstos van acompañados de
operadores relacionales. Un ejemplo usando el operador lógico OR sería:
Una escuela aplica dos exámenes a sus
aspirantes, por lo que cada uno de ellos obtiene dos calificaciones denotadas
como C1 y C2. El aspirante que obtenga una calificación mayor que 90 en
cualquiera de los exámenes es aceptado; en caso contrario es rechazado.
En este caso se dan las condiciones
siguientes:
Si (C1 >=90) or (C2 >=90) entonces
Escribir ("aceptado")
Sino
Escribir ("rechazado")
Fin_si
La instrucción equivale a OR ya que nos dice
que puede ser en cualquiera de los exámenes no necesariamente en los dos. En el
ejemplo 1 la palabra ambos equivalía a seleccionar la instrucción AND. Si la
instrucción nos dijera que obtenga una nota en cualquiera de los exámenes pero
no en ambos, nos estaría indicando una instrucción XOR que es un tipo de OR
pero exclusivo. Es decir, no puede considerarse el caso en que tenga la misma
nota en los dos exámenes, solo en uno de los dos.
ESTRUCTURAS SELECTIVAS COMPUESTAS
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.
ESTRUCTURA SELECTIVA MULTIPLE
Con frecuencia es necesario que existan más de
dos elecciones posibles. Este problema se podría resolver por estructuras
selectivas simples o dobles, anidadas o en cascada, pero si el número de
alternativas es grande puede plantear serios problemas de escritura y de
legibilidad.
Usando la estructura de decisión múltiple se
evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y
según que elija uno de estos valores en la condición, se realizará una de las n
acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado
camino entre los n posibles.
Esta estructura se representa por un selector
el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará
la acción 2, si toma el valor N realizará la acción N.
Ejemplo 1:
Diseñar un algoritmo tal que dados como datos
dos variables de tipo entero, obtenga el resultado de la siguiente función:
Ejemplo 2.
Dados como datos la categoría y el sueldo de
un trabajador, calcule el aumento correspondiente teniendo en cuenta la
siguiente tabla. Imprimir la categoría del trabajador y el nuevo sueldo.
Definición de variables:
Cate = categoría
Sue = sueldo
Nsue = nuevo sueldo
ALGORITMO
Inicio
Leer (cate, sue)
En caso que cate sea
1: hacer nsue <-- sue * 1.15
2: hacer nsue <-- sue * 1.10
3: hacer nsue <-- sue * 1.08
4: hacer nsue <-- sue * 1.07
Fin_caso_que
Escribir (cate, nsue)
Fin
FUENTES:
https://sites.google.com/site/teccorzo/4-2-estructuras-selectivas-simple-doble-y-multiple
Apuntes De Clase
FUENTES:
https://sites.google.com/site/teccorzo/4-2-estructuras-selectivas-simple-doble-y-multiple
Apuntes De Clase
No hay comentarios.:
Publicar un comentario