TECNICAS PARA LA FORMULACION DE ALGORITMOS Las técnicas de diseño (top down, bottom-up, warnier orr), nos permitieron visualizar el manejo de datos en un algoritmo, así como el orden que deben llevar las acciones para conseguir un resultado, sin embargo distan de ser algoritmos ya que plantean una idea muy general de la solución de estos. Una vez decidida la técnica de diseño a utilizar, se emplea una técnica de formulación de algoritmos.
Estas técnicas de formulación de algoritmos permiten la solución previa de un problema a su codificación en computadora. computado ra. Es aquí donde se concretizan los conceptos y metodolog metodologías ías vistas anteriormente. Cabe señalar que los algoritmos que se diseñaran están basados únicamente en la técnica de diseño Top down (arriba – abajo) abajo) Las técnicas de formulación de algoritmos son: •
Diagrama de flujo
•
Pseudocódigo
•
Diagrama estructurado (nassi – schneiderman)
5.1 Diagrama Diagrama de Flujo Es una técnica que se basa en el uso de símbolos específicos para cada acción. Estos símbolos se conectan a través de flechas que nos muestran el camino a seguir, es decir, el flujo, de cada acción que realizamos o decisión que se toma.
Aunque existen símbolos completamente
definidos para cada acción, en ocasiones estas varían.
Estos son los símbolos que se utilizan en un diagrama de flujo: Inicio – Fin
Entrada – Salida
NO
Se utiliza para iniciar o terminar un diagrama, en ocasiones representa una parada programa en el algoritmo. Indica cualquier tipo de introducción y salida del diagrama.
Proceso
Cualquier operación que origine un cambio de valor, operación aritmética, cambio en el formato, etc. en la información
Decisión
Realiza la comparación entre dos datos, generalmente a través de una operación lógica y el resultado de esta determina la alternativa a seguir
SI
Decisión Múltiple En función de una comparación alternativa, de acuerdo con el r esultado
Conector
seguirá una
Enlaza dos partes, se utiliza un conector a la salida del diagrama y otro a la entrada
Flujos
Indica la dirección a seguir
Union
Une dos símbolos
Conector
Indica la conexioón entre dos puntos del diagrama en páginas diferente
Subrutina
Llama a un proceso o módulo independiente
Pantalla
Indica que la salida de datos es en el monitor
Impresora
Muestra como salida de datos una impresora
Teclado
Indica que la entrada de datos es el teclado
Recuerde que el símbolo ← asigna valores a una variable Ejemplo 1: Calcular el salario neto de un trabajador en función del número de horas trabajadas, precio de la hora de trabajo y considerando una deducción fija al salario bruto en concepto del 20% de 1 impuestos. Inicio
Leer Nombre, Horas ,Precio
Bruto ←Horas* Precio
Tasa ←0.25 * Bruto
Neto ← Bruto - Tasa
Escribir Nombre, Bruto, Neto
Fin
1
Los ejercicios presentados son tomados del libro Fundamentos de Programación de Luis Joyanes Aguilar
Ejemplo 2: Calcular la suma y el producto de 2 números
Inicio
Leer A
Leer B
Suma ← A + B Producto ← A * B
Escribir S, P
Fin
5.2 Pseudocódigo Es una estructura de codificación muy similar a un lenguaje de programación, sin embargo esta no puede ser ejecutada por la computadora. Es considerado un borrador y su lógica permite una sencilla traducción a otros lenguajes de programación como C ++ , Pascal, etc. Requiere de diseño, estructuras de control y todos los elementos considerados en un algoritmo a utilizarse en computadora. Permite una visualización general del programa terminado. Cuenta con la siguiente estructura: Nombre del Algoritmo variables: nombre y tipo Inicio acción 1 . acción n Fin
Esta es una estructura básica y lineal, en la siguiente unidad se darán a conocer estructuras de conteo y decisión complejas. Ejemplo 1: Algoritmo Salario Variables: calculo: real, salario: real, neto: real, nombre: cadena, horas: real, precio_hora: real, impuesto: real Inicio leer (nombre, horas, precio_hora) salario ← horas * precio_hora impuesto ← 0.20 * salario neto ← bruto – impuesto escribir (nombre, bruto, neto) Fin.
Ejemplo 2: Algoritmo Suma Variables: A: entero, B:entero, Suma: entero, Producto:entero Inicio leer (A,B) Suma ← A + B Producto ← A * B escribir (suma, producto) Fin.
5.3 Diagrama Estructurado (nassi-schneiderman) Se le conoce también como diagrama de Chapin, es una caja de instrucciones, como un diagrama de flujo sin flechas de unión. Las acciones son cajas sucesivas y en una misma caja pueden existir varias acciones, son poco empleados.
Nombre del Algoritmo < Acción 1> < Acción 2> ... < Acción n> Fin Ejemplo 1: Calculo de Salario leer: nombre, horas, precio bruto ← horas * precio_hora impuesto neto
←
←
0.20 * bruto
bruto – impuesto
escribir: nombre, bruto, neto
Ejemplo 2: Suma y Producto de 2 valores leer: A, B suma ← A + B producto
←
A*B
escribir: suma, producto
AUTOEVALUACION UNIDAD V
I. Escriba 3 características de cada técnica de formulación de algoritmos III. Resuelva los siguientes problemas con los 3 tipos de formulación de algoritmos: 1. Cambiar los valores de dos variables numéricas Pseudocódigo Diagrama de Flujo
Algoritmo Cambio Variables: A: entero, B: entero, Aux: entero Inicio
Inicio
Leer A, B
leer (A,B) Aux ← A A←B
Aux ← A A←B B ← Aux
B ← Aux escribir (A, B)
Escribir A, B
fin Diagrama Nassi-Schneiderman Cambio de Valor de 2 variables leer A,B Aux ← A A←B B← Aux Escribir A,B
Fin
2. Calcular el cuadrado de un número Pseudocódigo Algoritmo Cuadrado Variables: num: entero, cuadrado: entero Inicio
Diagrama de Flujo
Inicio
leer (num) cuadrado
←
(num * num)
Leer num
escribir (cuadrado) fin
cuadrado ← num* num
Diagrama Nassi-Schneiderman Cuadrado de un número
Escribir cuadrado
leer num Fin
cuadrado
←
num * num
escribir cuadrado
3. Calcular la conversión de una cantidad de pesos a dólares Algoritmo Cambio variables: pesos: real, dolares: real, tarifa: real Inicio leer (pesos, tarifa) dolares
←
pesos * tarifaç
escribir (pesos, “equivales a “, dolares) fin
Diagrama Nassi-Schneiderman
Diagrama de Flujo
Cambio de dolares Inicio leer pesos, tarifa dolares
←
pesos * tarifa
Leer pesos, tarifa
escribir “pesos, “es igual a”, dolares dolares ← pesos * tarifa
Escribir “pesos, “es iagual a”, dolares”
Fin