Archivo del sitio

INSTRUCCIONES DE CONTROL DE JAVA


Algoritmos:

Cualquier problema de computación puede resolverse ejecutando una serie de acciones en un orden especifico. Un procedimiento para resolver un problema en terminos de: 1.- las acciones a ejecutar. 2.- el orden en el que se ejecutan estas acciones. El siguiente ejemplo demuestra que es importante especificar de manera correcta el orden en el que se ejecutan las acciones.

Considere el “Algoritmo para levantarse y arreglarse” que sigue un ejecutivo para levantarse de la cama e ir a trabajar: (1) levantarse; (2) quitarse la pijama; (3) bañarse; (4) vestirse; (5) desayunar; (6) transportarse al trabajo.

Esta  rutina logra que el ejecutivo llegue el trabajo bien preparado para tomar decisiones criticas. Al proceso de especificar el orden en el que se ejecutan las instrucciones (acciones) en un programa, se le llama control del programa.

Seudocodigo:

El seudocodigo es un lenguaje informal que ayuda a los programadores a desarrollar algoritmos sin tener que preocuparse por los escritos detalles de la sintaxis del lenguaje Java. El seudocodigo que presentaremos es especialmente útil para desarrollar algoritmos que se convertiran en porciones estructuradas de programas en Java. El seudocodigo es similar al lenguaje cotidiano; es conveniente y amigable con el usuario, aunque no es realmente un lenguaje de programacion de computadoras. Empezaremos a utilizar el seudocodigo en la figura 1 aparece un programa de seudocodigo de ejemplo:

El seudocodico no se ejecuta en las computadoras. En vez de ello, ayuda al programador a “organizar” un programa antes de que intente escribirlo en un lenguaje de programacion como Java.

Instrucción de selección simple if

Los programas utilizan instrucciones de selección paea elegir entre los cursos alternativos de acción. Por ejemplo, suponga que la calificación para aprobar un examen es 60. La instrucción en seudocodigo

Si la calificación del estudiante es mayor o igual a 60

       Imprimir “Aprobado”

determina si la condición “Si la calificación del estudiante es mayor o igual a 60” es verdadera o falsa. Si la condicion es verdadera se imprime “Aprobado”, y se “ejecuta”. Si la condicion es falsa se ignora la instrucción “Imprimir” y se ejecuta.  La instrucción anterior if en seudocodigo puede escribirse en Java de la siguienta manera:

if(calificacionEstudiante >=60)

        System.out.println(“Aprobado”);

Observe que el codigo en Java corresponde en gran medida con el seudocodigo. Esta es una de las propiedades que hace del seudocodigo una herramienta de desarrollo de programas tan util.

La figura 2 muestra la instrucción if de seleccion simple. Esta figura contiene lo que quiza sea el simbolo mas importante en un diagrama de actividad: el rombo o simbolo de decision, el cual indica que se tomara una decision. El flujo de trabajo continuara a lo largo de una ruta determinada por las condiciones de guardia asociadas de ese simbolo, que puedan ser verdaderas o falsas. Cada flecha de transicion que sale un simbolo de decision tiene una condicion de guardia.

La instruccion if es una instruccion de control de una sola entrada/salida. Los diagramas de actividad para las instrucciones de control restantes tambien contienen estados iniciales, flechas de transicion, estados de accion que indican las acciones a realizar, simbolos de decision que indican las decisiones a tomar, y estados finales.

Instrucción de selección soble if… else

La instruccion if de seleccion simple realiza una accion indicada solamente cuando la condicion es verdadera; de no ser asi, se evita dicha acción. La instrucción if… else de seleccion doble permite al programador especificar una accion a realizar cuando la condicion es verdadera, y otra distinta cuando la condicion es falsa. Por ejemplo, la instrucción en seudocodigo:

Si la calificacion del estudiante es mayor o igual a 60

        Imprimir “Aprobado”

Se lo contrario

       Imprimir “Reprobado”

La instrucción anterior if… else en seudocodigo puede escribirse en Java como:

if(calificacion >= 60)

System.out.println(“Aprobado”);

else

System.out.println(“Reprobado”);

La figura 3 muestra flujo de control en la instrucción if… else. Una vez mas, los simbolos en el diagrama de actividad UML representan estados de acción y decisiones.

Instrucciones if… else anidadas

Un programa puede evaluar varios casos colocando instrucciones if … else dentro de otras instrucciones if … else, para crear instrucciones if … else anidadas. Por ejemplo, el siguiente seudocodigo representa una instrucción if … else anidada que imprime A para las calificaciones de examenes mayores o iguales a 90, B para las calificaciones en el rango de 80 a 89, C para las calificaciones en el rango de 70, D para las calificaciones en el rango de 60 a 90 y F para todas las demas calificaciones:

Si la calificación del estudiante es mayor o igual a 90

      Imprimir “A”

de lo contrario

                 Si la calificación del estudiante es mayor o igual a 80

  Imprimir “B”

      de lo contrario

Si la calificación del estudiante es mayor o igual a 70

Imprimir “C”

de lo contrario

Si la calificación del estudiante es mayor o igual a 60

Imprimir “D”

de lo contrario

Imprimir “F”

Las dos formas son identicas, excepto por el espaciado y la sangria, que el compilador ignora. La segunda forma es más popular ya que evita usar mucha sangría hacia la derecha en el codigo. Dicha sangría a menudo deja poco espacio en una linea de codigo, forzando a que las lineas se dividan y empeorando la legibilidad del programa.

Problema del esle suelto

El compilador de Java siempre asocia un esle con el if que le procede inmediatamente, a menos que se le indique otra cosa mediante la colocación de llaves ({ y }). Por ejemplo:

¡Cuidado! Esta instrucción if … else anidada no se ejecuta como parece ser. El compiladoren realidad interpreta la instrucción asi en donde el cuerpo del primer if es un if … else anidado. La instrucción if más externa evalúa si x es mayor que 5. De ser así, la ejecución continúa evaluando si y es tambien mayor que 5. Si la segunda condición es verdadera, se muestra la cadena apropiada (“x e y son 5”). No obstante, si la segunda condición es falsa se muestra la cadena (“x es <= 5”), aun cuando sabemos que x es mayor que 5. Para forzar a que la instrucción if … else anidada se ejecute como se tenia pensado originalmente, deb escribirse de la siguiente manera:

Instrucción de Repetición while

Una instrucción de repetición permite al programador especificar que un programa debe repetir una acción mientras cierta condición sea verdadera. La instrucción en seudocodigo:

Mientras existan más artículos en mi lista de compras

Comprar el siguiente articulo y quitarlo de mi lista

Describe la repetición que ocurre durante una salida de compras. La condición (“existan más artículos en mi lista de compras”) puede ser verdadera o falsa. Si es verdadera, entonces se realiza la acción (“Comprar el siguiente articulo y quitarlo de mi lista”). Esta acción se realizará en forma repetida mientras la condición sea verdadera.

Como ejemplo de la instrucción de repetición while en Java, considere un segundo de programa diseñado para encontrar la primera potencia de 3 que sea mayor a 100. Suponga que la variable producto de tipo int  se inicializa en 3. Cuando la siguiente instrucción while termine de ejecutarse, producto contendrá el resultado:

Observe las referencias en el algoritmo para un total y un contador. Un total es una variable que se utiliza para acumular la suma de varios valores. Un contador es una variable que se utiliza para contrar. En este caso, el contador de calificaciones indica cual de las 10 calificaciones esta a punto de escribir el usuario.

Ejercicio en Java:

Repeticion controlada por contador como el contador de calificaciones y suma del promedio de la clase se muestra en las figuras:

Creando de la clase LibroCalificaciones en Java

Continua de la clase LibroCalificaciones…

Otra la clase PruebaLibroCalificaciones crea un objeto de la clase LibroCalificaciones:

El resultado de la clase PruebaLibroCalificaciones. Al dividir dos enteros se produce una division entera: se pierde cualquier parte fraccionaria del cálculo.

Click el archivo de codigo de LibroCalificaciones y PruebaLibroCalificaciones en java de  (winrar zip)