miércoles, 13 de marzo de 2019

algoritmos repetitivos

Es todos los algoritmos realizados hasta este punto, cada instrucción se ha ejecutado sólo una vez ya sea en forma secuencias o en forma selectiva. Sin embargo, con frecuencia, cierto tipo de problemas requieren de la ejecución reiterada o repetida de un grupo de instrucciones.
Por ejemplo, el programa que califica los exámenes de ingreso a la Universidad consta básicamente de un grupo de instrucciones que califican sólo una prueba. Luego, si deseamos procesar todos los exámenes, agregaremos algunas instrucciones el número de veces que sea necesario para procesar la totalidad de los exámenes.
Para la ejecución repetida de un conjunto de instrucciones, los lenguajes de programación ofrecen una variedad de sentencias o códigos, los que se denominan estructuras repetitivas, estructuras iterativas o simplemente bucles.

Tipos de estructuras repetitivas

En forma indistinta se utiliza estructuras repetitivas, estructura iterativa o bucle para referirse a la repetición de un proceso un número fijo o variable de veces.
En el desarrollo de los procesos iterativos se distinguen los siguientes tipos de bucles.
  • Bucles variable:
  • Estructura Repetir Hasta que
  • Estructura Mientras Hacer
  • Bucles fijos
  • Estructura Para
Toda estructura repetitiva tiene las siguientes partes.
  • Inicialización, en la cual se asigna valores iníciales a las variables que intervienen en el test de salida.
  • Actualización, en la que se actualizan las variables que intervienen en el test de salida.
  • Instrucción de proceso, parte del bucle en el que se escriben las instrucciones que se deben repetir.
  • Test de salida, es la que se controla si el bucle continua o se sale del bucle.

Bucles variables

Son estructuras repetitivas en las que no se conoce el número de veces que se ejecutarán las instrucciones que se encuentran dentro del bucle. Por ejemplo, si se trata se contar el numero de dígitos de un número entero positivo no sabemos cuántos dígitos tendrá el número; consiguientemente no se sabe cuantas veces se realizara el proceso de contar. Otro ejemplo es el número de clientes que debe atender un cajero de banco, quien no sabe a priori cuantas personas existen e cola para ser atendidos.

Bucles fijos

Son estructuras repetitivas en que se conoce a priori el número de veces que se ejecutaran las instrucciones que se encentran dentro del bucle. Ejemplo si se trata de ingresar 5 notas a priori se sabe que se debe leer repetidamente 5 notas; consiguientemente el proceso de leer se repetirá 5 veces.
 

Algoritmos selectivos

Algoritmos secuenciales
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.