Issuu on Google+

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Programación

REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación, sino que la descripción pueda servir fácilmente para su transformación en un programa, es decir, su codificación. Los métodos usuales para representar un algoritmo son: • • •

Diagrama de Flujo. Diagrama estructurado o N – S (Nassi Schneiderman). Pseudocódigo.

Diagrama de Flujo Un diagrama de flujo es una de las técnicas de representación de algoritmos más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente. Un diagrama de flujo es un diagrama que utiliza los símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar. Los símbolos más utilizados en un diagrama de flujo son: Símbolos

Nombre Terminal

Función Representa el inicio y fin de un algoritmo. Puede representar también una parada o interrupción del algoritmo.

Entrada / Salida

Sirve para cualquier ingreso de datos desde los periféricos de entrada o muestra información en algún periférico de salida. Cualquier tipo de operación que pueda originar cambio de valor, formato o posición, operaciones aritméticas, etc.

Proceso

no

Decisión

Empleado cuando el programa debe tomar una decisión con dos salidas posibles (si, no) dependiendo del valor de una condición lógica.

Decisión múltiple

En función del resultado de la comparación se seguirá uno de los diferentes caminos de acuerdo con dicho resultado.

Conector

Sirve para enlazar dos partes cualesquiera de un organigrama. Se refiere a la conexión en la misma página del diagrama. Indica el sentido de ejecución de las operaciones.

si

Línea de flujo

Línea conectora Sirve de unión entre dos símbolos.

1

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Símbolo

Asignatura: Fundamentos de Programación

Nombre Conector

Función Conexión entre dos puntos del organigrama situado en páginas diferentes.

Subrutina o Procedimiento Pantalla

Es un módulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa al terminar, al programa principal. Se utiliza en ocasiones en lugar del símbolo e E/S

Impresora

Se utiliza en ocasiones en lugar del símbolo e E/S

Teclado

Se utiliza en ocasiones en lugar del símbolo e E/S

Comentario

Se utiliza para añadir comentarios al programa.

Tabla 1: Operadores Aritméticos

Los símbolos más utilizados en un diagrama de flujo son: a. b. c. d. e. f.

inicio/fin. proceso. decisión. conectores. entrada/salida. dirección del flujo.

Primer algoritmo con un diagrama de flujo Para conocer como se resuelve un problema mediante el diagrama de flujo, resolveremos un ejemplo: Ejemplo 1: El diagrama de flujo siguiente representa la resolución de nuestro primer programa que deduce el área y perímetro de un rectángulo, sabiendo que su base y altura tienen los valores 8cm y 2cm respectivamente. 01 02

05

03

06

04

07

2

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Programación

Explicación de nuestro primer algoritmo Lo primero que debemos hacer para realizar un algoritmo, es analizar el problema; reconocer las variables que representarán a los datos de entrada, dentro del proceso de cálculo y los datos de salida, que vamos a utilizar, procesar y encontrar. Análisis Para este ejemplo hemos identificado nuestras variables a trabajar: a. b. c. d.

base altura área perímetro

= = = =

b h a p

Todo algoritmo se debe comenzar con un inicio y finalizar con un fin, para ello se utilizará el símbolo terminal. Para lograr explicar con mayor claridad nuestro algoritmo, hemos incluido número de línea. Donde la explicación por línea es la siguiente: ●

La línea 01, se utiliza el símbolo terminal junto con la palabra inicio que representa el comienzo del algoritmo.

La línea 02, se utiliza el símbolo proceso donde a las variables b y h se le asignan los números 8 y 2 respectivamente.

La línea 03, se utiliza el símbolo proceso donde primero se realiza la operación b * h y segundo, el resultado de esta operación se asigna a la variable a (área).

La línea 04, se utiliza el símbolo conector de página, donde sirve para enlazar dos partes cualesquiera en la misma página del diagrama. Para poder enlazar los conectores podemos utilizar números o símbolos diferentes a los utilizados en el algoritmo.

La línea 05, se utiliza el símbolo proceso donde primero se realiza la operación 2 * (b + h) y segundo, el resultado de esta operación se asigna a la variable p (perímetro).

La línea 06, se utiliza el símbolo entrada/salida, en este caso este símbolo representa la salida de la información obtenida por el algoritmo: el área y el perímetro.

La línea 07, se utiliza el símbolo terminal junto con la palabra fin que representa el fin del algoritmo.

Nota: El diagrama de flujo nos da una idea del orden de ejecución de las actividades en el tiempo. Primero cargamos los datos de entrada, luego hacemos las operaciones necesarias y por último mostramos los resultados. Ejemplo 2: El diagrama de flujo del ejemplo anterior también se puede llevar acabo sin el uso de conectores de página o de páginas diferentes, en el siguiente diagrama se muestra cómo sería. Pero para este ejemplo haremos una variación en nuestro ejemplo. En el ejemplo 1, los datos de la base y altura eran conocidos 8cm y 2cm. En este ejemplo los datos de la base y altura, no se conocen y se solicitan para resolver el problema; para solicitar los datos de entrada utilizaremos el símbolo entrada/salida.

3

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Programación

Nota: En el ejemplo 1, los valores de b y h se conocen, por ello se utiliza el símbolo proceso. Pero para el ejemplo 2, los valores no se conocen por tanto tienen que ser ingresados, para realizar ello en algoritmos se utiliza el símbolo entrada/salida. Para poner en práctica los nuevos conocimientos adquiridos, resolveremos los siguientes ejemplos: Ejercicios de autocomprobación de aprendizajes Ejemplo 3: Se ingresan por teclado dos números positivos. Calcular la suma, resta, multiplicación, división real, división entera, residuo y promedio de dichos números. Reportar los resultados. Ejemplo 4: Una tienda de ropa exclusiva compra en Lima 50 pantalones blueyín a un costo de S/. 45 y aquí en Chimbote los oferta a S/. 60. ¿Cuánto es la ganancia?. Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de hacerlo revizar sus respuestas con la solución que se presentará en la siguiente sesión.

Diagrama Estructurado o N – S Se trata de un método de representación de algoritmos en forma de bloque compacto. Es un diagrama algo similar a los diagramas de flujo (convencionales) en el que se omiten las flechas, y las figuras que se usan son rectángulos contiguos. La representación del algoritmo se basa en los siguientes puntos: Un programa se representa por un solo diagrama, en el que se incluyen todas las operaciones a realizar para la resolución del problema. La forma de conectar una página con la siguiente es similar al método anterior, es decir, mediante un número o un nombre encerrados en uno de los rectángulos que componen el algoritmo. ● Todo diagrama comienza con un rectángulo que tiene la palabra inicio y al último del algoritmo un rectángulo con la palabra fin. ● Las acciones sucesivas se escriben en rectángulos sucesivos. ●

4

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

● ● ●

Asignatura: Fundamentos de Programación

En un solo rectángulo se pueden escribir diferentes acciones. Un proceso puede ser un subprograma. La lectura del diagrama se hace de arriba hacia abajo.

La forma gráfica de representar un algoritmo en diagrama estructurado o N – S es el siguiente:

Primer algoritmo con un diagrama estructurado o N-S Para conocer cómo se realiza un diagrama estructurado, resolveremos el ejemplo 1 planteado en la parte de diagrama de flujo:

Como se ve en la solución del ejemplo 1, en este diagrama se utilizan sólo rectángulos. Si se dan cuenta, en un diagrama estructurado existe un rectángulo de declaración de variables, donde se colocan las variables que se utilizarán en el algoritmo y a la vez también podemos inicializar variables con sus valores dados. A continuación, la solución del ejemplo 2, de la parte de diagrama de flujo:

Para poner en práctica los nuevos conocimientos adquiridos, resuelvan los ejemplos 3 y 4 de la parte de diagrama de flujo. Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de hacerlo revizar sus respuestas con la solución que se presentará en la siguiente sesión. 5

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Programación

Pseudocódigo El pseudocódigo es una herramienta de programación que nació como un lenguaje en que las instrucciones se escriben en palabras similares al ingles o español, que facilitan tanto la escritura como la lectura de programas. En esencia el pseudocódigo se puede definir como un lenguaje de especificación (descripción) de algoritmos. La ventaja del pseudocódigo es que en su uso, es decir durante la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control, sin preocuparse por las reglas de un determinado lenguaje de programación. La escritura del pseudocódigo exige normalmente la identación (sangría en el margen izquierdo) de diferentes líneas. La línea precedida por // se denomina comentario, que viene hacer información para el programador o el lector del programa, y no realiza ninguna instrucción ejecutable. El uso de pseudocódigo se ha extendido en la comunidad hispana con términos en español como: inicio, fin, leer, escribir, si_entonces_sino, mientras, fin_mientras, etc. Estilo de escritura de algoritmos en pseudocódigo algoritmo nombre_del_programa var

// cabecera // sección de declaraciones

tipo_de_datos : Lista_de_identificadores const Lista_de_identificadores = valor Inicio

// cuerpo del programa

Instrucción 1 Instrucción 2 Instrucción 3 . . . . Instrucción n fin

6

Universidad los Ángeles de Chimbote Facultad de Ingeniería Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Programación

Primer algoritmo con un pseudocódigo Para conocer cómo se realiza un pseudocódigo, resolveremos el mismo ejemplo 1 planteado en la parte de diagrama de flujo: algoritmo Ejemplo 1 var entero : b, h, a, p Inicio b =8 h =2 a = b * h p = 2*(b+h) escribir ( a, p ) fin Como se ve en esta solución del ejemplo 1, en pseudocódigo, se coloca el nombre del algoritmo, en la sección de declaración de variables se escriben a la parte izquierda los tipos de datos y a la derecha las variables que pertenecen a ese tipo de dato. Para este ejemplo solo tenemos el tipo de dato entero. Se tiene un cuerpo del programa donde se escriben todas las instrucciones necesarias para resolver el problema. A continuación la solución del ejemplo 2, de la parte de diagrama de flujo: algoritmo Ejemplo 2 var entero : b, h, a, p Inicio leer (b) leer (h) a = b * h p = 2*(b+h) escribir ( a, p ) fin Para poner en práctica los nuevos conocimientos adquiridos, resolveremos los ejemplos 3 y 4, de la parte de diagrama de flujo. Nota: Hacer uso de un tiempo de 10 minutos para resolver cada ejemplo. Terminado de hacerlo revizar sus respuestas con la solución que se presentará en la siguiente sesión.

7


Representacion gráfica de los algoritmos