UT 2: Diagramas de Flujo. 1.- Resolución de...

22
UNIVERSIDAD TECNOLÓGICA NAIONAL FACULTAD REGIONAL TUCUMÁN Ingeniería Electrónica Informática I 1R2 : Guía de Estudios - Año 2013 31 UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora La resolución de cualquier problema, desde los simples a los más complicados, en Informática comprende el desarrollo sistemático de los pasos siguientes : - ANALISIS DEL PROBLEMA: Permite definir objetivos a alcanzar , conocimientos necesarios e identificar soluciones posibles. - DISEÑO DE ALGORITMO : Se define a un algoritmo como una secuencia de instrucciones que se ejecutan en forma secuencial (paso a paso) , incluyendo las decisiones lógicas correspondientes. En especial se utilizan los conceptos de Descendencia (Top-Down) y Refinamiento por Pasos. - DIAGRAMA DE FLUJO : Es la representación gráfica de algoritmos. Favorece la relación Programa - Máquina y es muy utilizado en la Programación Convencional (BASIC, FORTRAN). También se utiliza, en lugar de diagrama de Flujo, los Diagramas de Chapin. - SEUDOCODIGO : Es un Lenguaje de Especificación de Algoritmos. Se concentra en la Lógica y Estructuras de Control sin preocuparse de las reglas de un Lenguaje de Programación. Favorece la relación Programa - Hombre. Se utiliza en la Programación Estructurada. - CODIFICACIÓN : Consiste en pasar las instrucciones de un programa realizado en Diagrama de Flujo o Seudocódigo a un Lenguaje reconocido por la Computadora. En nuestro caso el Lenguaje a estudiar es el “ C “. - CARGA DEL PROGRAMA : Es la acción de escribir o inroducir por intermedio del teclado de la EN COMPUTADORA Computadora el conjunto de instrucciones que componen un programa elaborado en D.F. o en Seudocódigo. - EJECUCION Y VALIDACION : Introducido un programa en la Computadora , se procede a DEL PROGRAMA comprobar si realiza las acciones para las que ha sido creado. - DEPURACION : Comprobado que el programa funciona correctamente, con resultados dentro de lo esperado , se procede a mejorar su prestación. Esta mejora puede consistir en agregar funciones, cambiar algunas instrucciones para hacerlo más efectivo, hacerlo de aplicación más general , dar diferentes formatos a las salidas, etc.

Transcript of UT 2: Diagramas de Flujo. 1.- Resolución de...

Page 1: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

31

UT 2: Diagramas de Flujo.

1.- Resolución de problemas con Computadora

La resolución de cualquier problema, desde los simples a los más complicados, en Informática comprende

el desarrollo sistemático de los pasos siguientes :

- ANALISIS DEL PROBLEMA: Permite definir objetivos a alcanzar , conocimientos necesarios e

identificar soluciones posibles.

- DISEÑO DE ALGORITMO : Se define a un algoritmo como una secuencia de instrucciones que

se ejecutan en forma secuencial (paso a paso) , incluyendo las

decisiones lógicas correspondientes.

En especial se utilizan los conceptos de Descendencia (Top-Down)

y Refinamiento por Pasos.

- DIAGRAMA DE FLUJO : Es la representación gráfica de algoritmos. Favorece la relación

Programa - Máquina y es muy utilizado en la Programación

Convencional (BASIC, FORTRAN).

También se utiliza, en lugar de diagrama de Flujo, los Diagramas

de Chapin.

- SEUDOCODIGO : Es un Lenguaje de Especificación de Algoritmos. Se concentra en

la Lógica y Estructuras de Control sin preocuparse de las reglas de

un Lenguaje de Programación.

Favorece la relación Programa - Hombre. Se utiliza en la

Programación Estructurada.

- CODIFICACIÓN : Consiste en pasar las instrucciones de un programa realizado en

Diagrama de Flujo o Seudocódigo a un Lenguaje reconocido por la

Computadora. En nuestro caso el Lenguaje a estudiar es el “ C “.

- CARGA DEL PROGRAMA : Es la acción de escribir o inroducir por intermedio del teclado de la

EN COMPUTADORA Computadora el conjunto de instrucciones que componen un

programa elaborado en D.F. o en Seudocódigo.

- EJECUCION Y VALIDACION : Introducido un programa en la Computadora , se procede a

DEL PROGRAMA comprobar si realiza las acciones para las que ha sido creado.

- DEPURACION : Comprobado que el programa funciona correctamente, con

resultados dentro de lo esperado , se procede a mejorar su

prestación. Esta mejora puede consistir en agregar funciones,

cambiar algunas instrucciones para hacerlo más efectivo,

hacerlo de aplicación más general , dar diferentes formatos a las

salidas, etc.

Page 2: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

32

- ALMACENAMIENTO / : Se llama así al acto de guardar la información / programas en la

DOCUMENTACION memoria interna (disco duro ) de la Computadora , en memoria

externa como Diskettes ó en impresiones en papel.

El almacenamiento permite respaldar el programa original ante

cualquier accidente .Los accidentes pueden ocurrir por diferentes

razones y en distintos lugares, algunos de los cuales pueden ser :

borrado del programa , acciones de virus , incorrecto

funcionamiento del Sistema Operativo ,desperfectos en Hardware

,etc.

Relacionado con el Almacenamiento de un programa está la

necesidad de Documentar los elementos que se han utilizado para

su elaboración , como es el caso del Análisis de Sistema realizado

y los manuales que indican el manejo operativo de los programas.

2.- Partes de un Problema

Para solucionar cualquier problema en Informática debemos contemplar la existencia de ENTRADA de

Datos, PROCESO donde se ejecutan las instrucciones y se establecen las condiciones vinculantes y por

último SALIDAS en donde se presentan los RESULTADOS.

Ejemplo: realizar el promedio de los números 5 , 3 y 13.

ENTRADA PROCESO SALIDA (Resultados)

Datos : 5,3,13 - Realizar Suma : ( 5+3+13 ) Suma = 21

- Realizar Promedio : (21/3) Promedio = 7

En general existen dos grandes tipos de problemas:

- Problemas de Se desarrolla su solución en forma secuencial. Es el caso del

Evaluación Ejemplo anterior.

- Problemas de El Resultado por SI ó NO es producto de una Condición a

Decisión satisfacer.

Ejemplo: Analizar si un número es + ó -

3.- Algoritmo

Es una lista de instrucciones para efectuar o ejecutar paso a paso algún proceso incluyendo las decisiones

lógicas correspondientes.

Page 3: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

33

Cada persona ante el planteo de un problema puede solucionarlo de diferentes maneras y con un grado de

detalle que también varía en función del enfoque particular, forma de pensar y actuar que difiere entre las

personas.

Ejemplo :

Cual es el proceso a seguir cuando se LEE un Libro ?

- Leer las sucesivas palabras de un renglón.

- Leer las sucesivas palabras de los sucesivos renglones.

- Leer las sucesivas palabras de los sucesivos renglones de las sucesivas páginas.

Como se observa es importante definir el grado de detalle a alcanzar para completar el proceso. En un

Algoritmo se cumple la secuencia establecida para cualquier procesamiento

ENTRADA ALGORITMO SALIDA

(Datos) (Proceso) (Información Resultante)

Las propiedades que caracterizan a un Algoritmo son :

- Secuencial : debe indicar el orden de realización de cada paso.

- Definido : considerar todas las alternativas y sin existir ambigüedades.

- General : la solución tiene que ser GLOBAL y NO particular para un caso específico

- Finito en : al tener un determinado Números de ordenes precisas, su ejecución dura

Tiempo y un tiempo finito. Esto permite reducir tiempos y costos.

Tamaño

4.- Diseño de un Algoritmo

La elaboración de Algoritmos para resolución de problemas por medio de una Computadora, con distintos

grados de complejidad y volumen de datos , requieren la utilización de conceptos y metodologías que

permiten una solución clara y eficiente.

1- DISEÑO DESCENDENTE ( TOP - DOWN DESIGN)

Un problema principal, de cierta complejidad , se divide en Subprogramas más simples, y a su vez

estos en otros más simples.

2- REFINAMIENTO POR PASOS ( STEPWISE REFINEMENT)

A partir de un Algoritmo Principal se realiza un mayor detalle de cualquier instrucción en

forma particular o de la totalidad del Algoritmo.

Page 4: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

34

Planteado el Algoritmo se procede a utilizar las llamadas Herramientas de Programación como son, entre

otras, el Diagrama de Flujo y Seudocódigo como paso previo a la Codificación o pasaje de las

instrucciones del Algoritmo a las instrucciones reconocidas por la Computadora. En la etapa de

Codificación se traduce el Algoritmo escrito, por ejemplo en instrucciones de Seudocódigo a las

instrucciones de un Lenguaje de Programación, como el Lenguaje C, y que son reconocidas por la

Computadora.

Ejemplo: “Calcular la Longitud y Superficie de un Círculo “

Este ejemplo simple demuestra como un problema principal se resuelve por partes o módulos. A cada parte

se le da un tratamiento específico, con las necesarias interrelaciones entre las diferentes partes y

considerando la solución integral del problema. Las ventajas de resolver los problemas en informática, de la

manera indicada, se observa con mayor claridad en problemas complejos, con grandes cantidades de datos,

numerosos procesos y diferentes tipos de salidas.

Superficie y

Longitud de

un Círculo

Entrada de Cálculo de Cálculo de Salida

Datos Superficie Longitud (Resultados)

Radio S=PI * R^2 L=2PI * R

Datos Superf. Long.

El Diseño Descendente tiene las ventajas siguientes:

- El Problema se entiende con facilidad si se divide en partes simples llamadas

“MODULOS”

- Modificar “MODULOS” es fácil.

- La comprobación del problema es Simple.

Un segundo Ejemplo en el cual se destacan las propiedades de Descendencia y Refinamiento por Pasos es el

indicado a continuación: “ Que hacer para ver una película.......... “ ?

- El primer paso es realizar un Algoritmo General:

Page 5: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

35

- Ir al Cine

- Comprar una Entrada

- Ver la Película “--”

- Regresar a Casa

- El paso siguiente es elaborar un Algoritmo con mayor grado de detalle utilizando Seudocódigo y

los conceptos de Descendencia y Refinamiento:

1- INICIO

2- Ver la Cartelera de cines

3- SINO proyectan la película “...........” ENTONCES decidir otra

actividad

SI Hay cola ENTONCES ponerse en ella

MIENTRAS Haya personas delante suyo HACER

Avanzar la cola

SI existen asientos disponibles ENTONCES

Comprar una Entrada

Encontrar el asiento dado (A)

MIENTRAS proyectan la película HACER

Ver la película

SINO protestar

4- Abandonar el Cine

5- Volver a casa

6- FIN

Si bien se pueden hacer diferentes tipos de algoritmos y con distintos grados de detalles para solucionar el

problema planteado, el anterior es un ejemplo de una de lsa soluciones posibles.

En caso de necesitar un mayor detalle de alguna parte del Algoritmo desarrollado se realiza el Refinamiento.

Este consiste en tomar una instrucción, como la indicada con (A) , y elaborar un programa que permita una

mayor precisión de la acción , en este caso “encontrar el asiento “.

(A) 1- INICIO

2- Caminar hasta llegar a la primera FILA DE ASIENTOS

3- REPETIR

Comparar Nro. de FILA con Nro. impreso en el Billete

SI no son iguales, ENTONCES pasar a la FILA siguiente

HASTA QUE se localice la FILA correcta

4- MIENTRAS el Nro. de Asiento no coincida con el Nro. de Billete

Page 6: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

36

HACER avanzar a través de la FILA al siguiente ASIENTO

5- Sentarse en el ASIENTO

6- FIN

OBSERVAR:

En los ejemplos desarrollados se destacan el uso de algunas instrucciones que cumplen con distintas

funciones dentro del programa. De acuerdo a las funciones para las que se colocan en el programa se

identifican como Instrucciones de tipo Selectivas, Repetitivas o Iteración por citar las más comunes. A

lo largo de la guía se completarán las demás instrucciones.

Selectivas: permiten tomar una decisión si una condición es satisfecha o no. Se las conoce como

instrucciones selectivas o condicionales puesto que la respuesta Afirmativa o Negativa (SI / NO) a una

condición determinada genera una acción o conjunto de acciones.

SI (Condición) ENTONCES (Acción 1) SINO (Acción 2)

Repetitivas: Son las instrucciones que repiten una Acción o Conjunto de Acciones una o varias veces.

Las estructuras que repiten la ejecución de una secuencia de instrucciones durante un número determinado

de veces se llaman Bucles. El hecho de repetir reiteradas veces una Secuencia de Instrucciones o una

Instrucción se denomina Iteración.

Se han utilizado dos tipos de instrucciones Repetitivas:

MIENTRAS (Condición) HACER (Acciones) : Mientras se cumpla la Condición Hacer o

Ejecutar Acciones o Instrucciones

REPETIR (Acciones) HASTA (Condición) : Repetir las Acciones o Instrucciones Hasta que

se cumpla la Condición.

La característica común para ambos tipos de instrucciones Repetitivas es la de ITERAR - FIN -

ITERAR

5.- Principios de la Programación Estructurada

La elaboración de algoritmos y/o programas se efectuarán en base a los Principios de la Programación

Estructurada. Los mismos incorporan un conjunto de técnicas y elementos que posibilitan la elaboración de

programas ordenados, fáciles de hacer, de seguir y eficientes por el uso de la menor cantidad de

instrucciones posibles lo que se traduce en menor tiempo de procesamiento del Computador.

Estos principios permiten utilizar:

- Diseño Descendente y Refinamiento por Pasos

- Recursos Abstractos

- Estructuras Básicas: - Secuenciales

Page 7: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

37

- Selectivas : - Simples

- Dobles

- Triples

- Múltiples

- Repetitivas (Iteración)

En 1960 Böhm y Jacopini demostraron que un Programa Propio puede escribirse con 3 tipos de Estructuras

Básicas (Teorema de la programación Estructurada).

Las características de un Programa Propio son:

- Tiene un solo punto de entrada y uno de salida para Control o Fin del

programa.

- Existen caminos desde la Entrada a la Salida que pueden seguirse y

que pasan por todas partes del programa.

- Todas las instrucciones son ejecutables y no existen lazos infinitos.

Elementos Básicos de un Programa:

Los elementos imprescindibles para elaborar un programa y que además, son comunes a cualquiera tipo

de Lenguaje de Programación son los siguientes :

- Tipos de Instrucciones: - Entrada / Salida Inicio / Fin

- Asignación

- Lectura

- Escritura

- Bifurcación: Salto hacia Adelante / Atrás

- Identificadores: Nombre de variables y contantes.

- Caracteres Especiales: Coma, apóstrofes, etc.

- Datos: Enteros, Reales,

- Constantes

- Variables

- Expresiones: - Aritméticas

- Lógicas

- Otros Elementos: - Bucles

- Contadores

- Acumuladores

- Interruptores o Banderas

- Estructuras: Secuenciales, Selectivas, Repetitivas

- Estructuras de Datos

- Instrucciones de graficación:

- Instrucciones de Interacción con Base de Datos/Archivos.

Page 8: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

38

- Uso de Funciones/Subprogramas.

- ,etc.

Este listado no es limitativo y puede ampliarse o adaptarse en función de las particularidades y

potencialidades de cada Lenguaje de Programación ( C++, PASCAL, BASIC , FORTRAN,etc).Estos

elementos se desarrollarán a medida que se avance con los temas y ejemplos de programación.

6.- Diagrama de Flujo

Para elaborar un programa reconocido por la máquina ,a partir de un algoritmo ,debemos utilizar una series

de herramientas que facilitan la tarea y permiten aproximarnos al Lenguaje de Programación C. Dentro del

conjunto de herramientas disponibles se encuentra el Diagrama de Flujo que posibilita tener una visión

gráfica , simple y directa , de como trabaja el programa diseñado.

“ El Diagrama de Flujo es un esquema para representar graficamente un Algoritmo ” y dispone de una seria

de símbolos gráficos que representan instrucciones o acciones dentro de un programa. La manera de trabajar

de un programa elaborado con Diagrama de Flujo está más de acuerdo con la Programación Convencional

(BASIC, FORTRAN) que con la Progamación Estructurada (C , PASCAL).

El Diagrama de Flujo se utilizará en el transcurso de esta monografía porque facilita la elaboración gráfica

de soluciones a los problemas planteados y ayuda a comprender el funcionamiento de las instrucciones

básicas de la programación estructurada.

SIMBOLOS MAS USADOS

Impresión por Impresión por Inicio I Fin F

Impresora Pantalla

Decisión B = 5 Decisión A : 0

(producto de una ? SI (producto de una

comparación lógica ) NO comparación aritmética)

Empezar Parar Conector 1 Conector A

Dentro de Fuera de

Página 1 Página

Entrada de Orden /

de Datos/ Ejecución /

Información Proceso

A

A

Page 9: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

39

Entrada manual

Por teclado

Las características más importantes del Diagrama de Flujo son:

- Es similar a los programas escritos en Lenguaje de Máquina aunque pueden hacerse tareas más

complicadas. Su ejecución es Secuencial, algunas Instrucciones permiten alterar la marcha normal

y “ Saltar ” a otra instrucción distinta, repetir bloques de instrucciones y según el resultado de

una condición determinada escoger distintas instrucciones para ejecutar.

- Favorece la relación programa - máquina.

- Una desventaja notable es cuando estamos en presencia de un programa grande ( cientos o miles

de instrucciones ) es difícil descubrir la Estructura general y para un desconocido Saber “ que

hace “ ese programa.

- Hace mucho uso de las instrucciones de “ Salto a “ ó “ Ir al Punto ”

- Algunos lenguajes como el BASIC se dicen “Estructurados“, porque las instrucciones de

Repetición y Selección se ejecutan directamente sin especificar Saltos.

- Las instrucciones se escriben en forma Secuencial.

- La Independencia y Flexibilidad para descomponer la programación en “ Subrutinas “

o diferentes partes es menor que en un Lenguaje Estructurado.

7.- Pseudocódigo

Es un “Lenguaje de Especificación de Algoritmos “ creado para facilitar la tarea de programación como una

herramienta que aproxima al hombre a la forma de trabajar de una Computadora, facilitando el diálogo

Programa - Hombre.

Es la base de los llamados Lenguajes Estructurados, haciendo uso directo de los principios de la

Programación Estructurada de Descendencia y Refinamiento por Pasos tiene una serie de ventajas con

respecto a la Programación Convencional

Las características más destacables del Lenguaje Estructurado son las siguientes:

- No hace uso de las instrucciones “ Ir al punto “.( se debe limitar su uso en casos imprescindibles)

- Se parte de un planteo General del programa para recién ir a los detalles.

- Favorece la relación Programa - Hombre.

- Las variables se definen en función de su real uso y No como el BASIC que únicamente trabaja

Page 10: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

40

con números y caracteres.

- Se dividen los problemas en módulos, coincidiendo con el Diseño Descendente y Refinamiento

por Pasos.

- En la Programación Estructurada se realizan los programas en base a pautas lógicas que llevan a

la solución más simple y directa.

A partir del estudio de las Estructuras Básicas de la Programación Estructurada se elaborarán ejemplos o

problemas aplicando simultáneamente Diagrama de Flujo y Seudocódigo. Dichos ejemplos son

demostrativos de estas Estructuras y sirven de referencia para aplicaciones con dificultad creciente.

8.- Tipos de Estructuras

8.1.- Estructura Secuencial

Las acciones se ejecutan Secuencialmente una a continuación de otra , y en cada acción existe una Entrada y

una Salida.

INICIO

Acción 1

Acción 2 ACCIONES

Acción 3

FIN

- - - - - - - -

- - - - - - - -

Un ejemplo simple de Estructura Secuencial es el siguiente:

Page 11: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

41

Ejemplo A) : Realizar un algoritmo que efectúe la Suma y el Producto de dos variables ( ó números)

I 1 - INICIO

A , B 2 - LEER A , B

3 - S A+B

S A + B

P A x B 4 - P A*B

5 - ESCRIBIR S, P

6 - FIN

F

En este Ejemplo de Estructura Secuencial no hay ninguna condición a ser satisfecha puesto que se nos pide

realizar la Suma y el Producto de dos Variables sin requerir una determinada cantidad de valores para cada

variable. Por lo tanto es un caso sin instrucciones de tipo condicional que podrían producir una repetición

del Proceso.

Este Ejemplo permite incorporar el concepto de algunos elementos considerados anteriormente.

Las instrucciones utilizadas en Diagrama de Flujo y Seudocódigo tienen el significado siguiente :

1.- INICIO Indica el comienzo del algoritmo.

2.- LEER A, B Permite ingresar por teclado los valores de las variables A y B.

3.- S A + B A medida que introducimos valores de A y B se los Suma y al resultado se

asigna a la variable S. La acción de Asignar se indica con la Flecha y

significa almacenar el valor correspondiente en la posición de memoria

que se reserva para guardar la variable S. La acción de asignar es destructiva

puesto que si existiera algún valor de una variable antes de realizar la operación

este se borrará y en su lugar se guarda el último valor de la variable.

Otras variantes de asignación se verán en ejemplos más generales.

4.- P A* B Al producto de A por B se lo asigna en la variable P.

5.- ESCRIBIR S, P Esta instrucción imprime por Impresora los resultados de Sumar y Multiplicar

dos variables.

6.- FIN Indica el final del algoritmo.

S , P

Page 12: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

42

8.2.- Estructuras Selectivas ó Alternativas

Se utilizan para decisiones lógicas ó toma de decisiones a partir de una Condición. En Seudocódigo se

representan con las palabras :

IF - THEN - ELSE ó SI - ENTONCES - SINO

Pueden ser:

- Simples

- Dobles

- Múltiples

SIMPLES: La sintaxis o forma de escribir una instrucción condicional simple en Seudocódigo es :

CONDICION NO SI ( CONDICION ) ENTONCES : ? MODULO A

SI

MODULO A [ Fin de la Estructura Condicional Simple ]

Se evalúa la condición por medio de una comparación de tipo lógica. A partir de la respuesta Afirmativa o

por SI se realiza una Tarea o se ejecutan las instrucciones del Módulo A , si la respuesta es Negativa o por

NO , no se ejecuta ninguna Acción o Instrucción y se continúa con la Ejecución del resto de las

Instrucciones que tenga el programa fuera de este ciclo.

Page 13: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

43

Ejemplo B): Realizar un Programa que Sume 10 números.

I 1 - INICIO

2 - C 0

3 - S 0

S 0 4 - LEER X

C 0 5 - C C+1

6 - S S+X

X 7 - SI C = 10 ENTONCES Ir a 8)

7.1 - SINO Ir a 4)

C C+1

S S+X 8 - ESCRIBIR C , S

9 - FIN

C = 10

NO ? SI

En forma general este programa efectúa la suma de una cantidad determinada de Números (10) y se detiene

el Proceso al terminar con la suma de esa cantidad de números. El elemento de control para detener o

finalizar la ejecución del programa es la cantidad de Números, de manera que cuando se ingresen los 10

números el bucle termina, se sale del mismo, se imprime el valor de C y S y se finaliza con la ejecución del

programa.

Para poder finalizar con el ciclo de trabajo al ingresar los 10 números pedidos debemos introducir una

Variable de Control de la cantidad de números que se ingresan, para el caso del ejemplo es la variable C.

Esta variable tiene la función de Contador o sea que a medida que introducimos valores de la variable X ,

C se incrementa según se ingresa un valor de X. Por lo tanto su incremento es fijo y para este caso es de a

una unidad por ciclo de trabajo o por cada vez que se ingresa un dato X por teclado.

De manera que C = CONTADOR es una Variable utilizada para CONTAR y se caracteriza porque

su INCREMENTO O DECREMENTO es siempre una cantidad CONSTANTE en cada CICLO o

ITERACION.

El significado de cada una de las instrucciones de este algoritmo es el siguiente:

C , S

F

Page 14: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

44

1 - INICIO - Instrucción que indica el Comienzo del proceso o ejecución del programa.

2 - C 0 - Instrucción de asignación. Por ser una operación de suma la que está relacionada

se asigna a la variable C un 0 con el fin de reservar una posición de memoria

para almacenar los valores que resulten de Incrementar la variable C en una

cantidad fija de 1 por cada ciclo de trabajo como se indica en la instrucción 5).

Si fuera una operación de producto se asigna un 1 a la variable correspondiente

puesto que así como a la Suma agregarle un 0 no influye en el resultado ,

multiplicar por 1 tampoco altera el producto.

Como vamos a estudiar un Lenguaje estructurado como el “ C “ el símbolo de

asignación a utilizar es la Flecha , dejando el símbolo = como operador de

igualdad.

3 - S 0 - Instrucción de asignación. Se asigna un 0 para reservar una posición de

memoria para la variable S

4 - LEER X - Instrucción con la que se Ingresan por teclado los 10 valores de la variable X

objeto de la Suma que se pide.

5 - C C+1 - Variable Contadora de cantidad de números ingresados , se incrementa en una

cantidad fija coincidente con cada ciclo de trabajo o valor de X introducido.

6 - S S+X - A medida que introducimos valores de la variable X se incrementa la variable

suma S en función de dichos valores.Esta variable actúa como

ACUMULADOR puesto que se utiliza para almacenar la SUMA de los valores

de X.

La variable suma S = ACUMULADOR se incrementa o decrementa una

cantidad VARIABLE , dependiendo del VALOR que toma X.

7 - SI C = 10 ENTONCES Ir a 8) - Instrucción de tipo Condicional Lógica. Si la respuesta a la

Condición lógica es SI es porque el contador C es igual a la

cantidad de números (10) que se debían sumar, se termina el

Bucle o Ciclo de Trabajo que efectúa la operación de sumar

números y se va a la instrucción 8)

7.1 - Ir a 4) - Si la respuesta es Negativa, no se ejecuta ninguna instrucción

y automáticamente se va a la instrucción 4) , se continua con

el Ciclo de Trabajo hasta completar el ingreso de los 10

números que se deben sumar.

8 - ESCRIBIR C , S - Finalizado el ingreso de los 10 números puesto como condición para

sumarlos se termina con el Bucle y se Imprime por Pantalla los valores

resultantes de C y S.

9 - FIN - Finaliza la ejecución del programa.

Page 15: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

45

DOBLES: La sintaxis o forma de escribir una instrucción condicional doble en Seudocódigo es :

NO

CONDICION SI ( Condición ) ENTONCES :

?

MODULO A SI MODULO A

SINO :

MODULO B MODULO B

[Fin de la Estructura Condicional Doble ]

Cualquiera sea la respuesta por SI o NO se realiza una Acción, Tarea o el conjunto de Acciones de un

Módulo.

Ejemplo C ) : Programa que Suma números y se detiene al introducir un 0.

DIAGRAMA DE FLUJO SEUDOCODIGO

I 1 - INICIO

SUMA 0 2 - SUMA 0

3 - LEER X

X

4 - SI X=0 ENTONCES Escribir SUMA

4.1 - Ir a 6)

X = 0 SI

?

“SUMA” 5 - SINO SUMA SUMA + X

NO

5.1 - Ir a 3)

SUMA SUMA + X

F 6 - FIN

Es un programa que suma números y se detiene el proceso cuando introducimos un Cero (0).

El valor 0 que asignamos a la variable X , actúa como un elemento de Control de Ejecución , puesto que

el programa finaliza su ejecución cuando tiene este valor , caso contrario el programa continúa con su

ejecución normal.

Page 16: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

46

El valor 0 que damos a la variable X se conoce como BANDERA o PALABRA CLAVE. Se puede dar

cualquier otro valor numérico teniendo precaución que no sea un número común o fácil de conocer (

Ejemplo -9999).

Los valores de una variable puesta como Palabra Clave pueden ser Numéricos y Alfanuméricos (Letras ,

caracteres especiales y números no operables aritméticamente) dependiendo del tipo de programa.

1 - INICIO - Instrucción que indica el comienzo del proceso o ejecución del programa.

2 - SUMA 0 - Instrucción de asignación.

3 - LEER X - Instrucción con la que se ingresan los valores de la variable X.

4 - SI X= 0 ENTONCES ESCRIBIR SUMA - Instrucción de tipo condicional lógica. Si la

Respuesta es Afirmativa o SI se termina el Bucle

4.1 Ir a 6) o Ciclo de Trabajo que efectúa la operación

Sumar números, transfiriendo el Control del

Programa a la instrucción siguiente. Esta

instrucción imprime por Pantalla el resultado de

Sumar Números y se termina la Ejecución del

programa, acción indicada por 6 - FIN.

5 - SINO SUMA SUMA + X - Si la respuesta es NO continuamos introduciendo valores de

la variable X distintos de 0 y se realiza la Suma de dichos

valores acumulando en la variable SUMA. La acción de

5.1- Ir a a 3) volver a ingresar valores de X se indican con Ir a 3).

6 - FIN - Fin de la ejecución del programa.

TRIPLE :

> D : 0 < SI (Condición 1 ) ENTONCES

? MODULO A1

= SINO SI (Condición 2) ENTONCES

MODULO MÓDULO MODULO MÓDULO A2

A1 A2 A3

SINO SI (Condición 3) ENTONCES

MODULO MÓDULO A3

B

MODULO B

[ Fin de la Estructura Condicional Triple ]

Page 17: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

47

MULTIPLE:

Evalúa una Expresión de tipo Aritmética que Puede tomar valores distintos desde 1 a n.

(1,2,3,4,...n) .Según cual valor se elija se produce una de las acciones posibles.

1 CONDICION

2 ?

3 4 n

ACCION 1 ACCION 2 ACCION 3 ACCION 4 ACCION n

8.3.- Estructuras Repetitivas (Ciclos de Iteración)

Controla y hace ejecutar una tarea tantas veces como el programa lo requiera. Posee un bloque de decisión

que controla el número de veces que debe ejecutarse un Ciclo de Trabajo ó Bucle, razón por la que

cumplido el mismo se produce el llamado Corte de Control.

Existen dos instrucciones típicas dentro de las estructuras repetitivas:

- WHILE - DO o MIENTRAS - HACER

- REPEAT - UNTIL o REPETIR - HASTA QUE

MIENTRAS - HACER:

La evaluación de la condición lógica va al comienzo del Ciclo. Si el resultado de la evaluación lógica es

Positivo se realizan acciones o se ejecutan las instrucciones del Módulo A; si el resultado es Negativo no se

ejecutan acciones , continuando con la ejecución normal del Programa.

Page 18: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

48

La sintaxis de esta instrucción es:

Condición NO MIENTRAS ( Condición ) HACER

Lógica

? MODULO A

MODULO B

SI

MODULO A

Modifica la

condición lógica [ Continúa con la ejecución normal del programa ]

Cuando el resultado de la evaluación lógica es Positivo se ejecuta el Módulo A mientras se cumpla con la

condición. Como la ejecución de las instrucciones del Módulo A ocasiona la modificación de la condición

lógica, producido el cambio de la misma se devuelve el control del programa y se continúa con la ejecución

normal del programa.

Ejemplo D): Sumar números Negativos

I

1 - INICIO

S 0 2 - S 0

3 - LEER X

X

4 - MIENTRAS X < 0 HACER

4.1 - S S + X

4.2 - LEER X

X < 0

? NO 5 - ESCRIBIR S

SI 6 - FIN

S S + X F

S

Page 19: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

49

En este ejemplo se realiza la Suma de números que son negativos. El proceso de condicionalidad se realiza

con la instrucción MIENTRAS - HACER ,contemplando únicamente el ingreso de números negativos ,

deteniéndose el Bucle o Ciclo de Trabajo cuando se ingresa un número que no sea negativo.

1 - INICIO - Instrucción que indica comienzo del Programa.

2 - S 0 - Instrucción de asignación por la que se reserva una posición de memoria

para los valores de la variable Acumuladora S.

3 - LEER X - Instrucción que permite el ingreso inicial de datos desde el teclado y es

necesaria para la evaluación de X en la instrucción condicional siguiente.

4 - MIENTRAS X < 0 HACER - Instrucción Repetitiva, es la encargada de realizar la Suma

de Números X mientras se cumpla la condición que sean

negativos. De no cumplirse con la condición

automáticamente el control del programa se transfiere a la

Instrucción 5).

4.1 - S S + X - Esta Instrucción hace que la suma de los valores de X se guarden en la

variable acumuladora S y se efectúa dentro del Ciclo de Trabajo

mientras los números sean negativos.

4.2 - LEER X - Se coloca nuevamente esta Instrucción para continuar evaluando la

condición de X < 0 para otros valores de X.

5 - ESCRIBIR S - Imprime por Impresora el valor definitivo de la variable S.

6 - FIN - Fin de ejecución del programa.

REPETIR - HASTA ( REPEAT - UNTIL ) :

La evaluación de la condición lógica va al Final del Ciclo y para que continúe el Ciclo la condición lógica

debe ser Falsa. El Ciclo se ejecuta por lo menos una vez , razón por la que se debe tener seguridad en al

aplicación de esta instrucción.

El paso de una instrucción WHILE - DO a una REPEAT - UNTIL es posible si se invierte la

Condición. Por ejemplo, si en un programa la condición es A < B en el otro será A > B.

Page 20: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

50

La sintaxis de esta instrucción es:

MODULO A REPETIR

Modifica la Condición MODULO A

lógica

HASTA QUE ( Condición )

Condición NO

Lógica

?

SI [ Continúa con la Ejecución del Programa ]

El Ejemplo que se da a continuación es idéntico al B) , la diferencia está en que se desarrolla con la

Instrucción REPETIR - HASTA.

Ejemplo E): Realizar un programa que Sume 10 números.

I 1 - INICIO

2 - C 0

C 0 3 - S 0

S 0 4 - REPETIR

4.1 - LEER X

X 4.2 - C C + 1

4.3 - S S + X

C C + 1

S S + X 5 - HASTA QUE C = 10

6 - ESCRIBIR S

NO C = 10

? SI

7 - FIN

F

S

Page 21: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

51

Para solucionar el problema planteado “ realizar un programa que Sume 10 números “ , se utiliza

la Instrucción repetitiva REPETIR - HASTA QUE o REPEAT - UNTIL en Inglés.

El elemento de control es la Variable C que actúa como Contador indicando en cada Ciclo de

Trabajo o Bucle la cantidad de números ingresados , cuando dicha cantidad sea igual a 10 termina la

ejecución del Ciclo y se transfiere la ejecución del programa o el control del mismo a la instrucción

correspondiente que para nuestro caso es la 6).Dentro del Ciclo de Trabajo y a continuación de la

instrucción que cuenta la cantidad de datos ingresados se encuentra la instrucción encargada de efectuar la

Suma de los valores ingresados , dicha instrucción es la representada por S ( instrucción 4.3 ) en la que se

acumulan los valores de la variable X ingresados.

Se debe recordar que la Estructura Repetitiva ejecuta siempre un primer Ciclo de Trabajo y recién evalúa la

Condición Lógica.

1 - INICIO - Instrucción que indica el comienzo del programa.

2 - C 0 - Instrucción de asignación, reservando una posición de memoria para guardar

los valores de variable C.

3 - S 0 - Idem a la 2) para la variable suma S.

4 - REPETIR - Estructura repetitiva, es la encargada de efectuar el Ciclo de Trabajo en el

que se encuentran las acciones siguientes :

Leer los valores de la variable X ingresados por teclado con la instrucción 4.1

, Contar la cantidad de valores ingresados con la instrucción 4.2 , y Sumar los

valores ingresados con la instrucción 4.3.

4.1- LEER X

4.2 - C C + 1

4.3 - S S + X

5 - HASTA QUE C = 10 - El Ciclo de Trabajo termina cuando el Contador C es igual a 10 o cantidad

de datos previstos de ingresar y sumar. El Control del programa se

transfiere a la instrucción siguiente.

6 - ESCRIBIR S - Imprime por impresora el valor de S que es la encargada de sumar los 10

números ingresados.

7 - FIN - Finaliza la ejecución del programa.

Este ejemplo permite utilizar la Estructura REPETIR - HASTA QUE sin ninguna duda, pero se verá con

otros casos que hay que tener cuidado con su uso , puesto que esta instrucción siempre ejecuta un ciclo de

trabajo al margen de si la condición se satisface o no. Como ejemplo de esto último, " realizar un algoritmo

que sume números positivos " utilizando la instrucción REPETIR - HASTA QUE.

Page 22: UT 2: Diagramas de Flujo. 1.- Resolución de …ecaths1.s3.amazonaws.com/informaticar/462655523.UT2-14.pdf · UT 2: Diagramas de Flujo. 1.- Resolución de problemas con Computadora

UNIVERSIDAD TECNOLÓGICA NAIONAL – FACULTAD REGIONAL TUCUMÁN

Ingeniería Electrónica – Informática I – 1R2 : Guía de Estudios - Año 2013

52

En las Estructuras Selectivas y Repetitivas pueden existir anidamientos de estructuras. Este tema se

verá con detalle en el tratamiento del Lenguaje C.

Las Instrucciones indicadas en los ejemplos como Ir a ) se han puesto con fines de dar una mayor

claridad a los algoritmos básicos vistos pero con el desarrollo del Lenguaje C se tenderá a no

utilizarlas o darle un uso muy restringido.

Bibliografía Recomendada:

" Fundamentos de Programación - Algoritmos y Estructuras de Datos " de Luis Joyanes Aguilar.

Ing. Juan C. Colombo

11/04/14