miércoles, 13 de marzo de 2019

Estructura Repetitiva

Estructuras Repetitivas

Las estructuras repetitivas se utilizan cuando se quiere que un conjunto de instrucciones se ejecuten un cierto número finito de veces, por ejemplo, escribir algo en pantalla cierta cantidad de veces, mover un objeto de un punto a otro cierta cantidad de pasos, o hacer una operación matemática cierta cantidad de veces. Se les llama bucle o ciclo a todo proceso que se repite cierto número de veces dentro de un pseudocódigo o un programa y las estructuras repetitivas nos permiten hacerlo de forma sencilla.
FOR (PARA)
Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de veces, y de modo automático controla el número de iteraciones o pasos.
desde
WHILE (MIENTRAS)
Repite el cuerpo del bucle mientras se cumpla una determinada condición.
mientras
DO- WHILE (HACER MIENTRAS)
La estructura HACER MIENTRAS cumple la misma función que la estructura MIENTRAS. La diferencia está en que la estructura  MIENTRAS comprueba la condición al inicio y repetir lo hace al final. Es por ello que la estructura HACER MIENTRAS se ejecuta por lo menos una vez.
hacermientas


Estructura Selectiva

Estructuras Algorítmicas Selectivas
Las utilizamos cuando en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir.
El diagrama de flujo es expresado como un rombo
Se dividen en:
  • Simples
Imagen
(permite que el flujo del programa siga por un camino especifico, si se cumple una condición, luego se continua con la secuencia normal del programa.)
  • Dobles
Imagen
(Permite que el flujo del programa se bifurque por dos ramas diferentes en el punto de la toma de decisión(es), Si al evaluar la condición (o condiciones) el resultado es Verdadero, entonces se sigue por un camino especifico y se ejecuta(n) cierta(s) operación(es). Por otra parte, si el resultado es falso entonces se sigue por otro camino y se ejecuta(n) otra(s) operaciones.
  • Secuencial
Imagen
(Permite que el flujo del programa se bifurque por dos ramas diferentes en el punto de la toma de decisión(es), y luego se continué con la secuencia normal del programa realizando otra toma de decisión(es) sucesivamente según lo necesite el programa)
  • Anidada
Imagen
(Permite que el flujo del programa se bifurque por dos ramas diferentes en el punto de la toma de decisión(es), pero dentro del proceso a seguir, sea el resultado de la condición (verdadero o falsa) se ejecute otra toma de decisión(es) dentro de la misma ramificación inicial; es decir una decisión dentro de una nueva decisión y así continué con el flujo normal del programa.)
LENGUAJE ALGORÍTMICO ESTRUCTURA SELECTIVA (SI ENTONCES)
Imagen
Ejemplo No 1.
Dado un numero entero determine si es par.
Imagen
(Estructura selectiva simple)
En lenguaje Algorítmico:
Imagen
Ejemplo No 2
Dado el sueldo de un empleado determine, su nuevo sueldo según la siguiente información:
  • si gana igual o mas de 1000 tiene un incremento del 10% si no sera del 15%.
ejemplo1


Algoritmos Secuencial

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma: 



Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: 

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. 


El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella: 

Asignación 

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: 

  • Simples: Consiste en pasar un valor constante a una variable (a 15)
  • Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a  a + 1)
  • Acumulador: Consiste en usarla como un sumador en un proceso (a  a + b)
  • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4).
En general el formato a utilizar es el siguiente: 

< Variable >      <valor o expresión >

El símbolo      debe leerse “asigne”. 

Escritura o salida de datos 

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: 


Lectura o entrada de datos 

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: 


DECLARACION DE VARIABLES Y CONSTANTES 

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es.

Contador:   ENTERO 
Edad, I:   ENTERO 
Direccion :    CADENA_DE_CARACTERES 
Salario_Basico :    REAL 
Opcion :    CARACTER 

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres. 

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor. 

CONSTANTE Pi 3.14159 
CONSTANTE Msg “Presione una tecla y continue” 
CONSTANTE ALTURA 40 

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. 

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos: 

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. 


Ejemplo 2: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.




Diagrama de flujo y pseudocódigo

Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución, es decir , viene a ser la representación simbólica o pictórica de un procedimiento administrativo.
Luego, un diagrama de flujo es una representación gráfica que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u áreas de su estructura organizativa.
Son de gran importancia ya que ayudan a designar cualquier representación gráfica de un procedimiento o parte de este. En la actualidad los diagramas de flujo son considerados en la mayoría de las empresas como uno de los principales instrumentos en la realización de cualquier método o sistema.
A continuación se incluyen dos representación power point , del procedimiento para organizar el evento de una boda, como  ejemplo practico de la utilización de los diagramas de flujo en cualquier proceso o actividad.

Se trata de una muy útil herramienta para poder entender correctamente las diferentes fases de cualquier proceso y su funcionamiento , y , por tanto , permite comprenderlo y estudiarlo para tratar de mejorar sus procedimientos.
Son importantes los diagramas de flujo en toda organización y departamento, ya que permite la visualización de las actividades innecesarias y verifica si la distribución del trabajo esta equilibrada, es decir, bien distribuida en las personas, sin sobre cargo para algunas mientras otros trabajan con mucha holgura.
Los diagramas de flujo son importantes para el diseñador por que le ayudan en la definición, formulación, análisis y solución del problema. El diagrama de flujo ayuda al análisis a comprender el sistema de información de acuerdo con las operaciones de procedimientos incluidos, le ayudara analizar esas etapas, con el fin tanto de mejorarlas como de incrementar la existencia de sistemas de información para la administración.
Para ayudar a su comprensión por cualquier persona de la organización , se utilizan distintas formas de interpretación, a través de dibujos, de símbolos de ingeniería, de figuras geométricas, etc. , que transmitan una indicación de lo que se quiere representar.




Falso lenguaje (o pseudocodigo), se utiliza para plantear una idea de codigo, pero dicho Algoritmo tiene que se lo mas parecido al lenguaje de programacion a utilizar y tiene que estar en nuestro idioma
El pseudocódigo es una forma de escribir los pasos que va a realizar un programa de la forma más cercana al lenguaje de programación que vamos a utilizar posteriormente. Es como un falso lenguaje, pero en nuestro idioma, en el lenguaje humano y en español.

El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizara para la codificación del mismo. 

Características que debe tener un Pseudocodigo:
  • Se puede ejecutar en un ordenador
  • Es una forma de representación sencilla de utilizar y de manipular. 
  • Facilita el paso del programa al lenguaje de programación. 
  • Es independiente del lenguaje de programación que se vaya a utilizar. 
  • Es un método que facilita la programación y solución al algoritmo del programa. 


Todo documento en pseudocódigo debe permitir la descripción de: 

  • Instrucciones primitivas. 
  • Instrucciones de proceso.  
  • Instrucciones de control. 
  • Instrucciones compuestas. 
  • Instrucciones de descripción. 
  • Estructura a seguir en su realización: 
    Cabecera. de un pseudocodigo: 
    • Programa. 
    • Modulo. 
    • Tipos de datos. 
    • Constantes. 
    • Variables. 


    Cuerpo De Pseudocodigo. 
    • Inicio. 
    • Instrucciones. 
    • Fin.

    Palabras Reservadas Para hacer un Pseudocodigo.

    algoritmo nombre: Marca el comienzo de un algoritmo y le adjudica un nombre
    Inicio: Marca el comienzo de un bloque de instrucciones
    fin: Marca el final de un bloque de instrucciones

    variables
    nombre_var es tipo_de_datos: Declaración de variables. Indica el identificador y el tipo de las variables que se van a usar en el algoritmo

    constantes
    nombre_const = expresión :Declaración de constantes. La expresión se evalúa y su resultado se asigna a la constante. Este valor no puede modificarse a lo largo del programa.
    leer (variable): Entrada de datos. El programa lee un dato desde un dispositivo de entrada (si no se indica otra cosa, el teclado), asignando ese dato a la variable
    escribir (variable): Salida de datos. Sirve para que el programa escriba un dato en un dispositivo de salida (si no se indica otra cosa, la pantalla).
    variable = expresión: Asignación. La expresión se evalúa y su resultado es asignado a la variable

    si (condición) entonces
    inicio
    acciones-1
    fin
    si_no
    inicio
    acciones-2
    fin
    Instrucción condicional doble. El ordenador evaluará la condición, que debe ser una expresión lógica. Si es verdadera, realiza las acciones-1, y, si es falsa, las acciones-2.Instrucción condicional simple. Es igual pero carece de la rama “si_no”, de modo que, si la expresión de falsa, no se realiza ninguna acción y la ejecución continúa por la siguiente instrucción

    según (expresión) hacer
    inicio
    valor1: acciones-1
    valor2: acciones-2
    valor3: acciones-N
    si_no: acciones-si_no
    fin

    Instrucción condicional múltiple. Se utiliza cuando hay más de dos condiciones posibles (verdadero o falso) . Se evalúa la expresión, que suele ser de tipo entero, y se busca un valor en la lista valor1, valor2,… valorN que coincida con ella, realizándose las acciones asociadas al valor coincidente.Si ningún valor de la lista coincide con la expresión del “según”, se realizan las acciones de la parte “si_no”.

    mientras (condición) hacer
    inicio
    acciones
    fin

    Bucle mientras. Las acciones se repiten en tanto la condición, que debe ser una expresión lógica, sea verdadera. La condición se evalúa antes de entrar al bloque de acciones, de modo que pueden no ejecutarse ninguna vez.

    repetir
    inicio
    acciones
    fin
    mientras que (condición)

    Bucle repetir. Las acciones se repiten en tanto que la condición, que debe ser una expresión lógica, sea verdadera. Se parece mucho al anterior, pero la condición se evalúa al final del bucle, por lo que éste se ejecuta, como mínimo, una vez.

    para variable desde expr-ini hasta expr-fin hacer
     inicio
     acciones
     fin

    Bucle para. Se evalúa la expresión expr-ini, que debe ser de tipo entero, y se asigna ese valor a la variable. Dicha variable se incrementa en una unidad en cada repetición de las acciones. Las acciones se repiten hasta que la variable alcanza el valor expr-fin.

    Software Recomendado Para Hacer Pseudocodigo.
     PSeInt
    PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.