Iv unidad estructuras de control

36

Transcript of Iv unidad estructuras de control

Page 1: Iv unidad estructuras de control
Page 2: Iv unidad estructuras de control
Page 3: Iv unidad estructuras de control

Un programa de computadora se puede definir como una secuencia ordenada de instrucciones, dedicadas a ejecutar una tarea. Debido a esto, aparece el concepto de flujo de ejecución de un programa, que define el orden que siguen las sentencias durante la ejecución del mismo.El flujo de ejecución de un programa viene determinado por una serie de patrones o estructuras de programación. Cada una de estas estructuras de programación se comporta exteriormente como una sentencia única, de forma que puedan ser concatenadas dentro de otras estructuras y así componer el flujo de ejecución de un programa completo. Estas estructuras de programación son independientes del lenguaje de programación que se esté utilizando, siendo aplicables a cualquier lenguaje de programación existente.Los tipos se estructuras de programación que existen son las siguientes:

Page 4: Iv unidad estructuras de control

Secuencia: Constituida por 0, 1 o N sentencias que se ejecutan según el orden en que han sido escritas. Es la estructura más simple y la pieza más básica a la hora de componer estructuras.Selección: Consta de una sentencia especial de decisión y de un conjunto de secuencia de instrucciones. La sentencia de decisión genera un resultado delimitado dentro de un rango preseleccionado (generalmente verdadero o falso) y, dependiendo del resultado obtenido, se ejecutara una de las secuencias de instrucciones. Iteración: Consta de una sentencia especial de decisión y de una secuencia de instrucciones. La sentencia de decisión solo genera dos tipos de resultado (verdadero o falso). La secuencia de instrucciones se ejecutara de forma iterativa, mientras que la sentencia de decisión genere el resultado correcto, en caso contrario finalizara la ejecución de la estructura de iteración.A continuación se muestran los tipos de estructuras de programación

Page 5: Iv unidad estructuras de control

Selección IteraciónSecuencia

S1

S2

S3

S1S2

CvF

S1

C

V

F

Page 6: Iv unidad estructuras de control

4.1 Estructura secuenciaEn el lenguaje java, una sentencia simple debe finalizar con un “;” para identificarla como una sentencia. Asi mismo, el lenguaje java considera que toda sentencia, finalizada con “;” constituye de por si una secuencia de instrucciones con una sola sentencia. Por ejemplo la expresión: contador=0;Constituye una secuencia de instrucciones con una sola sentencia.Si se pretende generar secuencia de instrucciones de mas sentencia es necesario agrupar entre delimitadores, las sentencias que la componen. Para ello se utilizan los delimitadores ‘{‘ y ‘}’. Así de esta forma, la expresión:{Contador=0;Contador=0;}Constituye una secuencia de instrucciones compuesta por dos sentencias.

Page 7: Iv unidad estructuras de control

4.2 Estructura selectivas (if,if-else,switch,case)Sentencia if.La sentencia if de java permite implementar una estructura de tipo selección, es decir permite decidir que secuencia de código se va a ejecutar a continuación.La sintaxis general de la sentencia if es la siguiente:if(expresión)

secuencia de instrucciones;El funcionamiento es el siguiente:•Si la expresión correspondiente al if devuelve un valor verdadero se ejecutara la secuencia de instrucciones subsiguiente.•Si la expresión correspondiente al if devuelve un valor falso, la sentencia finalizara y se ejecutara la sentencia siguiente.

Page 8: Iv unidad estructuras de control

El funcionamiento es el siguiente:•Si la expresión correspondiente al if devuelve un valor verdadero se ejecutara la secuencia de instrucciones subsiguiente.•Si la expresión correspondiente al if devuelve un valor falso, la sentencia finalizara y se ejecutara la sentencia siguiente.La sentencia if acepta cualquier tipo de secuencia de instrucciones como parte de su estructura. Cuando esta secuencia este formada por una única sentencia no será necesario el empleo de llaves. Sin embargo, si la secuencia de instrucciones es compleja, este conjunto de instrucciones deberá ir encerrada entre paréntesis tal y como se muestra a continuación:if(expresión){

sentencia 1;sentencia 2;

…..}Ejemplo:if(numero % 2 == 0)

System.out.println(“el numero es par” );

Page 9: Iv unidad estructuras de control

Sentencia if-elseLa sentencia if-else es una forma ampliada de la sentencia if, por lo tanto forma parte también de las estructuras de selección, y todo lo dicho anteriormente para la sentencia if también se aplica aquí. La sentencia if-else permite seleccionar entre dos secuencias distintas de instrucciones.La sintaxis general de la sentencia if-else es la siguiente:if(expresión)

secuencia de instrucciones 1;else

secuencia de instrucciones 2;

Page 10: Iv unidad estructuras de control

El funcionamiento es el siguiente:Si el resultado de evaluar expresión devuelve un valor verdadero se ejecutara la secuencia de instrucciones situada a continuación del if (secuencia de instrucciones 1).Si la expresión devuelve un valor falso, se ejecutara la secuencia de instrucciones situada a continuación del else (secuencia de instrucciones 2).La expresión debe ir encerrada entre paréntesis para distinguirla del resto del código. Las secuencias de instrucciones deberán ir encerrada. entre llaves cuando se trate de más de una sentencia.

S1S2

CvF

A continuación el diagrama de flujo de la sentencia if-else:

Page 11: Iv unidad estructuras de control

EjemploPrograma que captura el promedio, evalúa y posteriormente te muestra en pantalla si aprobaste o no.public class Promedio{

public static void main (String arg[]){ int promedio;promedio=Integer.parseInt(JOptionPane.showInputDialog(“dame el promedio: ”;if(promedio>=70)

System.out.println(“aprobaste”);else

System.out.println(“reprobaste”);}}

Page 12: Iv unidad estructuras de control

Sentencia switch-caseLa sentencia switch pertenece a las estructuras de tipo selección, es decir permite decidir que secuencia de código se va a ejecutar a continuación. En concreto permite elegir desde 1 hasta N secuencias de código distintas.La sintaxis general de la sentencia switch es la siguiente:switch (expresión){

case expresión 1:sentencia 1.1:

break;…..case expresión N:

sentencia N.1:sentencia N.2:

break;…..default:

sentencia D.1:sentencia D.2:…..

}

Page 13: Iv unidad estructuras de control

El funcionamiento de la sentencia switch es el siguiente:•En primer lugar se evalúa la expresión del switch. Esta debe dar como resultado un valor de tipo char, byte, short o int (en otro caso se producirá un fallo al compilar).•Despues el programa se empezara a ejecutar a partir de la sentencia case cuya expresión coincida con el resultado obtenido de la expresión del switch. Se ejecutaran todas las sentencia que haya a continuación hasta encontrar una sentencia break, o se llegue al final de sentencia switch completa.Si en el camino se encuentran más sentencia case, estas serán ignoradas.Si no se encuentra ninguna sentencia case cuya expresión coincida con el resultado del switch pueden ocurrir dos cosas:•Que no exista una sentencia default, en cuyo caso finalizara la sentencia switch.Que exista una sentencia default, en cuyo caso se ejecutaran todas las sentencias que haya a continuación hasta encontrar una sentencia break, o se llegue al final de la sentencia switch completa

Page 14: Iv unidad estructuras de control

Cada switch debe terminar con un default. Esta opción por defecto permite realizar acciones siempre que no se cumplan los criterios de los case, lo que es muy útil para controlar errores.

Ejemplo:Supongamos que en la variable char nota; se

guarda un carácter que representa una nota según el sistema de letras en ingles. El ejemplo representa loa conversión de notas.

switch(nota){case ‘A’:

System.out.println(“sobresaliente”);break;case ‘B’:

System.out.println(“notable”);break;

case ‘D’:System.out.println(“aprobado”);

break;case ‘C’:

System.out.println(“suspenso”);break;default:

System.out.println(“nota no valida”);}

Page 15: Iv unidad estructuras de control

4.3 Estructuras iteractivas (for, while, do-while)Sentencia for:La sentencia for forma parte de las estructuras de iteración. Su función consiste, por tanto, en ejecutar un nuero determinado de veces una secuencia de instrucciones.La sintaxis general es la siguiente:for(expresión 1; expresión 2; expresión 3){

secuencia de instrucciones;}El funcionamiento es el siguiente:

Page 16: Iv unidad estructuras de control

•Primera vez que se ejecuta la sentencia for:Se ejecuta la expresión numero 1.•Se ejecuta la expresión numero 2 y se compara

el resultado.•Si el resultado es verdadero se ejecuta la

secuencia del for y se vuelve a empezar la sentencia completa.

•Si el resultado es falso, finaliza la ejecución de la sentencia.

•Segunda y sucesivas veces que se ejecuta la sentencia for:

•Se ejecuta la expresión humero 3.•Se evalúa la expresión numero 2 y se compara

el resultado.•Si el resultado es verdadero se ejecuta la

secuencia del for y se vuelve a empezar la sentencia completa.

•Si el resultado es falso, finaliza la ejecución de la sentencia.

Las tres expresiones deben ir separadas entre sí por ‘;’ y el conjunto de dichas expresiones debe estar encerrado entre paréntesis, para distinguirlo del resto del código,

Page 17: Iv unidad estructuras de control

El uso de la sentencia for es útil cuando se quiere realizar una determinada tarea un número determinado de veces.

EjemploPrograma que muestra en pantalla la suma

del 1 al 10.public class Suma{

public static void main (String arg[]){int suma=0;

for(int i=1; i<=10;i++){ suma=suma+i;}System.out.println(“la suma es: ”+suma);}}

Page 18: Iv unidad estructuras de control

Sentencia while.La sentencia while forma parte de las estructuras de iteración. Su función consiste en ejecutar de forma repetida una secuencia de instrucciones determinada.La sintaxis general es la siguiente:while (expresión){

secuencia de instrucciones;}El funcionamiento de la sentencia while es el siguiente:•Mientras que la expresión devuelva una valor verdadero se ejecutara repetidamente la secuencia de instrucciones, evaluando nuevamente la expresión en cada iteración.•Si la expresión devuelve un valor falso finalizara la ejecución de la sentencia while.La expresión asociada al while debe ir encerrada entre paréntesis para distinguirla del resto del código.

Page 19: Iv unidad estructuras de control

A continuación se muestra el diagrama de flujo de la sentencia:

S1

C

V

F

Ejemplo:Programa que imprima en pantalla 10 veces el mensaje “bienvenido”.public class Mensaje{

public static void main (String arg[]){ int =1; while( i<=10){

System.out.println(“bienvenido”);i++;}

}}

Page 20: Iv unidad estructuras de control

Sentencia do-while.La sentencia do-while forma parte también de las estructuras de iteración. La sintaxis general es la siguiente:do{

Secuencia de instrucciones;i++;}while(expresión);El funcionamiento de la sentencia while es el siguiente:En primer lugar se ejecuta la secuencia de instrucciones.Después se evalúa la expresión y se comprueba su resultado. Si es verdadero se repite la ejecución de la sentencia. Si es falso, finaliza dicha ejecución.

Page 21: Iv unidad estructuras de control

PRACTICA NOMBRE: Estructuras de controlOBJETIVO: El estudiante comprenderá el uso y funcionamiento de las estructuras selectivas e interación y las aplicara en la solución de problemas de acuerdo al contexto dado.INTRODUCCIÓN: Secuencia: Constituida por 0, 1 o N sentencias que se ejecutan según el orden en que han sido escritas. Es la estructura más simple y la pieza más básica a la hora de componer estructuras contador=0;Estructuras de selecciónSentencia if-else:

Page 22: Iv unidad estructuras de control

Si el resultado de evaluar expresión devuelve un valor verdadero se ejecutara la secuencia de instrucciones situada a continuación del if (secuencia de instrucciones 1).Si la expresión devuelve un valor falso, se ejecutara la secuencia de instrucciones situada a continuación del else (secuencia de instrucciones 2).La expresión debe ir encerrada entre paréntesis para distinguirla del resto del código. Las secuencias de instrucciones deberán ir encerrada entre llaves cuando se trate de más de una sentencia.

Page 23: Iv unidad estructuras de control

Sentencia switch-caseEn primer lugar se evalúa la expresión del switch. Esta debe dar como resultado un valor de tipo char, byte, short o int (en otro caso se producirá un fallo al compilar).Después el programa se empezara a ejecutar a partir de la sentencia case cuya expresión coincida con el resultado obtenido de la expresión del switch. Se ejecutaran todas las sentencia que haya a continuación hasta encontrar una sentencia break, o se llegue al final de sentencia switch completa.Si en el camino se encuentran más sentencia case, estas serán ignoradas.Si no se encuentra ninguna sentencia case cuya expresión coincida con el resultado del switch pueden ocurrir dos cosas:Que no exista una sentencia default, en cuyo caso finalizara la sentencia switch.Que exista una sentencia default, en cuyo caso se ejecutaran todas las sentencias que haya a continuación hasta encontrar una sentencia break, o se llegue al final de la sentencia switch completa.Cada switch debe terminar con un default. Esta opción por defecto permite realizar acciones siempre que no se cumplan los criterios de los case.

Page 24: Iv unidad estructuras de control

ESTRUCTURAS DE ITERACIONSentencia forPrimera vez que se ejecuta la sentencia for:Se ejecuta la expresión numero 1.Se ejecuta la expresión numero 2 y se compara el resultado.Si el resultado es verdadero se ejecuta la secuencia del for y se vuelve a empezar la sentencia completa.Si el resultado es falso, finaliza la ejecución de la sentencia.Segunda y sucesivas veces que se ejecuta la sentencia for:Se ejecuta la expresión humero 3.Se evalúa la expresión numero 2 y se compara el resultado.Si el resultado es verdadero se ejecuta la secuencia del for y se vuelve a empezar la sentencia completa.Si el resultado es falso, finaliza la ejecución de la sentencia.

Page 25: Iv unidad estructuras de control

Sentencia while•Mientras que la expresión devuelva un valor verdadero se ejecutara repetidamente la secuencia de instrucciones, evaluando nuevamente la expresión en cada iteración.•Si la expresión devuelve un valor falso finalizara la ejecución de la sentencia while.Sentencia do-whileEn primer lugar se ejecuta la secuencia de instrucciones.Después se evalúa la expresión y se comprueba su resultado. Si es verdadero se repite la ejecución de la sentencia. Si es falso, finaliza dicha ejecución.MATERIAL Y EQUIPOComputadora con el software de eclipse instalado.Manual de prácticas.METODOLOGIA:El estudiante analizara el problema e identificara que tipo de estructura de control aplicara para la solución de problemas planteados.

Page 26: Iv unidad estructuras de control

SUGERENCIAS DIDACTICASSolicitar al estudiante, la elaboración de diversos ejercicios en la computadora.Propiciar el uso de terminología apropiadaFomentar el trabajo en equipoDar seguimiento al desempeño en el desarrollo de la practicaBIBLIOGRAFIA:Problemas resueltos de programación en lenguaje java-José ma. Pérez menorJesús Carretero PérezFélix García CarballeiraJosé Manuel Pérez LobatoEditorial Thomson-Deitel y DeitelComo programar en JavaEditorial Pearson.-Programacion en Java 2Luis Joyanes AguilarEd. Mc Graw Hill

Page 27: Iv unidad estructuras de control

RESULTADO DE LA PRACTICA4.4 AplicacionesEstructura secuencia//programa que captura dos números y te muestra la sumapackage Documentos;import javax.swing.*;public class Suma {

public static void main(String[] args) {

int n1,n2,suma=0;

n1=Integer.parseInt(JOptionPane.showInputDialog("dame el primer numero: "));

n2=Integer.parseInt(JOptionPane.showInputDialog("dame el segundo numero: "));

suma=n1+n2;

JOptionPane.showMessageDialog(null,"la suma es: "+suma);

}}

Page 28: Iv unidad estructuras de control

Estructura Secuencia//programa que captura cierto número de días y posteriormente calcula //cuantos segundos hay y lo muestra en pantalla.package pa;import javax.swing.JOptionPane;public class Segundos {

public static void main(String[] args) {

int dias, segundos;

dias=Integer.parseInt(JOptionPane.showInputDialog("dame los dias: "));

segundos=dias*24*60*60; System.out.println("los segundos

que hay dentro de : "+dias+"son: "+segundos);}

}

Page 29: Iv unidad estructuras de control

Estructura Secuencia// programa que calcula el área de un circulopackage pa;import javax.swing.JOptionPane;public class Circulo {

public static void main(String[] args) {int radio;double area;double pi=3.1416;

radio=Integer.parseInt(JOptionPane.showInputDialog("dame el radio: "));

area=pi*(radio*radio);

JOptionPane.showMessageDialog(null,"el area del circulo es: "+area);

}}

Page 30: Iv unidad estructuras de control

Estructura selección Sentencia if//programa que captura un programa y te dice si es par package Documentos;import javax.swing.*;public class Par {

public static void main(String[] args) {

int n;

n=Integer.parseInt(JOptionPane.showInputDialog("dame el numero: "));

if(n%2 ==0)System.out.println("es

par");}

}

Page 31: Iv unidad estructuras de control

Sentencia if-else//programa que captura el promedio y te muestra en pantalla el mensaje de “felicidades” o ponte a “estudiar”.package Documentos;import javax.swing.*;public class Promedio {

public static void main(String[] args) {

int promedio;

promedio=Integer.parseInt(JOptionPane.showInputDialog("dame el promedio: "));

if(promedio >=70)

System.out.println("felicidades");elseSystem.out.println("ponte a

estudiar");}

}

Page 32: Iv unidad estructuras de control

Sentencia switch-case//programa que captura una letra y te muestra en pantalla si es vocal o consonantepackage pa;import javax.swing.*;public class VOCAL {

public static void main(String[] args) {char vocal;String vocale;vocale=JOptionPane.showInputDialog("dame la letra: ");vocal=vocale.charAt(0);switch(vocal){case 'a':

JOptionPane.showMessageDialog( null, "la letra es una vocal");

break;case 'e':

JOptionPane.showMessageDialog( null, "la letra es una vocal");

break;case 'i':

JOptionPane.showMessageDialog( null, "la letra es una vocal");

break;case 'o':JOptionPane.showMessageDialog( null, "la letra es una

vocal");break;case 'u':

JOptionPane.showMessageDialog( null, "la letra es una vocal");

break;default:

JOptionPane.showMessageDialog( null, "la letra es una consonante");

}}}

Page 33: Iv unidad estructuras de control

Sentencia for//programa que captura un número del 1 al 10 y te muestra la tabla de multiplicarpackage pa;import javax.swing.*;public class Tabla {

public static void main(String[] args) {int num,total=0;

num=Integer.parseInt(JOptionPane.showInputDialog("dame la tabla: "));

for (int i=0;i<=10;i++){total=i*num;

System.out.println(num+"*"+i+"="+total);

}}

}

Page 34: Iv unidad estructuras de control

Sentencia while//programa que muestra el factorial del numero 4package pa;public class Factorial {

public static void main(String[] args) { int numero=4; long resultado=1; while(numero>0){ resultado*=numero; numero--; } System.out.println("El

factorial es "+resultado); }}

Page 35: Iv unidad estructuras de control

Sentencia do-while//programa que calcula el factorial del numero hasta el 10 .package pa;import javax.swing.*;public class FactorialDo{

public static void main(String[] args) {int factorial=1; //acumuladorint cont=0; // contadorint valor=10; //número del que

queremos el factorialdo{

cont++;factorial*=cont;}while(cont < valor);

JOptionPane.showMessageDialog(null,"El factorial es: "+factorial);

}}

Page 36: Iv unidad estructuras de control

BIBLIOGRAFIA-Problemas resueltos de programación en lenguaje javaJosé ma. Pérez menorJesús Carretero PérezFélix García CarballeiraJosé Manuel Pérez LobatoEditorial Thomson-Deitel y DeitelComo programar en JavaEditorial Pearson.-Programacion en Java 2Luis Joyanes AguilarEd. Mc Graw Hill