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.
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.
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.
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:
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
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
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.
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
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
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:
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
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.
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
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.
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.
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 ]
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.
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
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.
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
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.
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