miércoles, 20 de mayo de 2015

Unidad 5. Las instrucciones

5.1. Objetivos del tema.

Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto tipo dentro de un programa, y que esas variables generan o creamos con ellas expresiones.
Ahora, una vez que tenemos expresiones, hay que utilizarlas para algo, las expresiones pueden ir de forma aislada o formar parte de las instrucciones de un programa.

5.2. Introducción.

Un programa se construye a base de escribir una serie de instrucciones propias del lenguaje que utilizamos y con el fin de poder llegar a que ese programa realice la labor para la cual se ha diseñado.
Las instrucciones de un lenguaje de programación son las que nos permiten crear la estructura del programa.
En los programas vamos creando bloques con las instrucciones, de forma que a base de ir sumando bloques llegamos a construir un programa más o menos complejo.
El mejor ejemplo podríamos verlo en un edificio.
Un edificio se construye a base de ir añadiendo ladrillos, muchos ladrillos, que se apoyan unos en otros.
Un programa se puede ver como algo similar.
Pero un edificio se sustenta sobre una estructura.
A nivel de programación, esa estructura se basa en los procedimientos y funciones que escribimos en el programa, y esos procedimientos, funciones y métodos, los llenamos de instrucciones.

5.3. Instrucciones.

La secuencia de instrucciones escritas en un orden lógico, que indican las operaciones a realizar para resolver un problema, es lo que denominamos programa.
Las instrucciones sin las expresiones en la mayoría de los casos no tienen razón de ser.

1    Símbolos.

En un tema anterior pusimos los símbolos más utilizados en los organigramas.
Cada uno de esos símbolos se traduce en una instrucción en un programa.

                  Inicio o final de programa, procedimiento, función o método.

                      Condición dentro de un programa, se convierte en un

                                      If condición then acción else acción.
                                      Si se cumple la condición entonces hacemos y sino se cumple hacemos esto otro.

                      Este rectángulo normalmente albergará operaciones de cálculo, expresiones.

                                      A = A + B

                  Entrada de datos por teclado, es la forma de recabar información del usuario.


                      Visualizar datos en el monitor, de esa forma podemos ofrecer información al usuario.

                      Imprimir el dato en la impresora del sistema.


                 Realizar una entrada o salida de datos desde o hacia un dispositivo, que no se especifica de forma explicita.

                     Realizar una entrada o salida de datos desde o hacia un dispositivo que es de acceso direccionable, normalmente un disco duro.

                      Conector dentro de página, la flecha apunta a un símbolo que está en la misma página.

                            Conector fuera de página, la flecha apunta a un símbolo que está fuera de la pagina actual.

2    Estructuras.

Cuando creamos un programa, creamos una estructura que se va ejecutando de forma lineal y en determinados momento necesitamos tomar decisiones, o hacer que algo se repita.

Con las instrucciones podemos crear esos tres tipos de posibilidades,

Ejecución lineal o secuencial.
Ejecución alternativa, tomar una decisión.
Ejecución repetitiva.

3    Lineal, secuencial.

Si volvemos a los ejercicios que realizamos al principio, aunque aun no hayamos utilizado ningún lenguaje, podremos ver como de forma instintiva hemos utilizado instrucciones de forma lineal con expresiones.

Cada símbolo del organigrama, o cada línea del seudo código es una instrucción.
La estructura que se ha utilizado en esos ejercicios es una estructura lineal.

La imagen que tenemos a la derecha es un ejemplo de estructura secuencial, si nos fijamos en los símbolos del organigrama, veremos que no hay ninguna acción de repetición, no hay ninguna flecha que vuelva hacia arriba a un punto por el que ya hemos pasado.

Tampoco hay ningún punto en el que se divida el programa entre dos posibilidades después de una pregunta.

4    Alternativas.

En la imagen de la izquierda podemos observar como hay una decisión y la posibilidad de que se ejecute una u otra rama del  programa, eso es una estructura alternativa.

Las estructuras alternativas pueden tener dos salidas, cuando cumple, la derecha y cuando no cumple la izquierda.

La parte de no se cumple, la izquierda, es optativa, es decir, no hay porque escribir una acción cuando una condición no se cumple, a lo mejor solo nos piden que visualicemos los números primos, entonces si un número no es primo pasaremos al siguiente y ya está, no hay por que hacer nada.

En un organigrama, cuando se usa un símbolo de decisión, es decir un “Si el número es primo”, la salida de la derecha siempre es la que indicará la acción que se ejecutará cuando se cumpla la condición, salvo que se indique mediante texto lo contrario.

Estas instrucciones pueden estar anidadas, unas dentro de otras.

En el ejemplo podemos observar como dentro de la pregunta de “Tiempo mayor que 180”, hay a su vez otra condición en la que preguntamos por “Resto mayor que cero”.

Y se podrían seguir anidando condiciones.






5    Repetitivas.

Las estructuras repetitivas, permiten que se pueda ejecutar una parte del programa un número determinado de veces.
Cuantas veces nos han dicho, mientras no te comas la merienda, no iras con tus amigos a jugar al balón, - bueno ahora es a la PlayStation-, o aquello de hasta que no te ordenes la habitación, no sales.
Pues hemos nombrado los dos tipos base de estructura repetitiva que existen, mientras y hasta.

Mientras se cumple una condición.
Repite hasta que se cumple una condición


Una estructura repetitiva esta formada  por una serie de instrucciones que están escritas en el interior de otra instrucción que permite que esas instrucciones se ejecuten un número determinado de veces, mientras se cumple una condición, o hasta que se cumpla una condición.

Si observamos las imágenes veremos que en una la condición que controla cuando se ejecuta el bucle, está al principio y en la otra está al final.

La diferencia permite que en un caso, mientras, While, solo se ejecuta las instrucciones del interior del bucle si la condición se cumple al llegar al bucle.

En el caso del hasta, Repeat, las instrucciones del interior del bucle se ejecutarán siempre al menos una vez, ya que la condición se analiza al final.

Los bucles mientras y repite, pueden usarse indistintamente, pero evidentemente el motivo de su existencia es porque no siempre se pueden sustituir uno por el otro.
En los bucles, se realiza aquellas acciones que nos sean necesarias en el programa, pero una de las situaciones habituales es la de realizar operaciones donde se cuentan, o se incrementan valores.
En los dos ejemplos que vemos a continuación, podemos observar como en los dos casos se realiza la misma acción, que es la de visualizar unos valores que van de diez a veinte.

 
Sin embargo, si observamos los dos ejemplos, veremos como hay diferencias en el de la izquierda, el número uno, la acción de incremento del contador, se realiza después de la acción de visualizar la variable X,  mientras que en la de la derecha, el número dos, es al revés.

SI seguimos observando los ejemplos, podemos ver como en un caso el valor inicial de X es diez, y en el otro nueve.

Si seguimos observando, veremos que las condiciones de salida del bucle cambian, en un caso por igual a veinte y en otro por ser mayor que veinte.

En el primer caso cuando X vale veinte en la condición de salida, ese número todavía no ha sido visualizado.
En el segundo caso, cuando X vale veinte en la condición de salida, ese número ya ha sido visualizado, esos son los matices.

La programación está llena de matices y “tonterías de éste tipo”, pero es esa la diferencia entre que funcione correctamente o no.
Un programa no puede ir bien para el noventa por ciento de los valores, si no para el cien por cien de los mismos.
Traducción, en un bucle lo importante es siempre:

Con que valores o condiciones empiezas,
En que momento realizas la progresión,
Cuando realizas la acción que te interesa en el bucle
En que momento abandonas el bucle, condición de salida.

Si estas condiciones las tenemos presentes, el uso de los bucles carece de problemas.
Lo siguiente es tener presente en que momento hay que utilizar de forma obligatoria un bucle While o un bucle Repeat.

Con el tiempo veremos que el más utilizado acaba siendo el mientras, pues casi siempre nos interesa tener controlado que se cumpla determinada condición antes de entrar en el bucle.

Otro matiz, si en un bucle Repite la condición es hasta que “sea de color verde” en un bucle mientras la condición se invierte y será mientras “sea de color verde”.

Aunque nadie se lo creerá, con lo que hemos visto, a nivel de creación de la estructura de un programa, no hay nada más que explicar, eso les da una idea, por un lado de lo sencillo que es hacer un programa, y de lo importante que es tener hasta aquí claro todo lo que se ha visto.

Evidentemente que la programación no es solo lo que se ha visto, todavía quedan temas por ver, muchos temas, pero en realidad, para crear un programa, no hace falta nada más de lo que se ha visto.
El resto de temas pendientes de ver se apoya en lo visto, de ahí la importancia de tener claro todo lo visto.

No hay comentarios:

Publicar un comentario