La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniero en Computación José Alfredo Cobián Campos

Presentaciones similares


Presentación del tema: "Ingeniero en Computación José Alfredo Cobián Campos"— Transcripción de la presentación:

1 Ingeniero en Computación José Alfredo Cobián Campos
Taller de Introducción a la programación con Java DGAPA Junio 2017 Control de flujo if Ingeniero en Computación José Alfredo Cobián Campos Facultad de Ciencias

2 Control de Flujo Resumen teórico If, Else
Hasta ahora las instrucciones dentro del código fuente han podido ser ejecutadas sólo desde arriba hacia abajo, es decir, en el orden en que se escribe, se ejecuta todo el código. Las instrucciones de control de flujo (if, else), sin embargo, permiten cortar el flujo de ejecución ocupando toma de decisiones, permitiendo que el programa ejecute bloques de código de manera condicional.

3 En otras palabras, permiten seleccionar partes del código para que se ejecuten si cumplen con cierta condición. La expresión if(condición) es la más básica de éstas. Esta expresión le dice al programa que se ejecute una sección del código sólo si se cumple la condición entre paréntesis. La expresión else if(condición) provee un camino secundario en caso de que no se cumpla la condición entre paréntesis. Por ´último, la expresión else puede usarse cuando ninguna de las condiciones anteriores se ha cumplido.

4 En dibujos las expresiones se pueden ver de esta manera:

5 if (condicion1 && condicion2)
Las condiciones pueden darse con más de una sentencia entre paréntesis: if (condicion1 && condicion2) { //Código } Implica que si se cumplen AMBAS condiciones, se ejecutar á el código. if (condicion1 || condicion2)

6 if ( (condicion1 || condicion2) && condicion3)
Implica que si se cumple por lo menos UNA condición, se ejecutar á el código a continuación. Y también pueden combinarse las formas: if ( (condicion1 || condicion2) && condicion3) { //Código } El juego estar á en los paréntesis, en el orden en que escriba las condiciones. Existen formas en que se leer á el código según el orden que le demos a las condiciones. Por ejemplo: if (condicion1) { /*código...*/ } else if (condicion2) else if (condicion3) else { /*código...*/ }

7 Si se cumple una condición, las siguientes no serán verificadas.
Sin embargo, si se llega a la condición 3 y ésta no se cumple, la expresión else (sin condición) implica que debe ejecutarse ese código si ninguno de los anteriores fue leído.

8 Actividad

9 switch

10 Para manejar selecciones múlIples
Ofrece un esquema más cómodo que el anidamiento de if else La condición Iene que evaluarse a un int, char, short, byte ¡Los valores sólo pueden ser constantes del mismo tipo! Si no se añade break se continua ejecutando las acciones del siguiente caso switch(nota) { case 10: case 9: System.out.println(“Sobresaliente”); break; case 8: case 7: case 6: System.out.println(“Notable”); break; case 5: System.out.println(“Reprobado”); break; default: System.out.println(“No asistio”); }

11 Sentencias - switch switch( exp1 ) { case x1: s1; break; case x2: s2; break; default: s3; } Ejemplo: switch( x ) { case 1: y = a; break; case 2: y = b; break; default: y = c; } ELO329

12 Break y continue La sentencia break permite salir fuera del lazo de repetición sin terminarlo (además de su uso en switch). También puede ser usada en conjunto con un rótulo para salir fuera de cualquier bloque. El rótulo va inmediatamente antes del bloque en cuestión. La sentencia continue transfiere el control de flujo al encabezado del lazo más interno. ELO329

13 Ventajas e Inconvenientes del switch
Aporta mayor claridad que un esquema if else sobre todo cuando hay varios casos Sin embargo: No permiten cadenas de caracteres No permite definir rangos Hay varios lenguajes que ya lo permiten Fuente de errores: Ej: Olvidarse de poner el break o el default

14 CS1101X Programming Methodology
Ciclo FOR

15 CS1101X Programming Methodology
Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number <= 100 ) { sum = sum + number; number = number + 1; } System.out.print(“La Suma es: “ + suma); Estas sentencias son ejecutadas mientras que la variable number sea menor o igual que 100

16 Sintaxis para la sentencia while
CS1101X Programming Methodology Sintaxis para la sentencia while while ( <expresión booleana> ) { <sentencia 1> <sentencia n> } Expresión Booleana while ( number <= ) { sum = sum + number; number = number + 1; } Sentencias (loop body)

17 CS1101X Programming Methodology
Mas Ejemplos int sum = 0, number = 1; while ( sum <= ) { sum = sum + number; number = number + 1; } 1 Sigue sumando números 1, 2, 3, …hasta que la variable sum sea mayor a 1,000,000. int producto = 1, numero = 1, contador = 20, ultimoNumero; ultimoNumero = 2 * contador - 1; while (numero <= ultimoNumero) { producto = producto * numero; numero = numero + 2; } 2 Calcula el producto de los 20 primeros enteros

18 CS1101X Programming Methodology
La sentencia do-while int sum = 0, number = 1; do { sum = sum + number; number++; } while ( sum <= 100 ); Estas sentencias son ejecutadas hasta que la variable sum sea menor o igual que 100

19 CS1101X Programming Methodology
Sintaxis do-while do <sentencias> while ( <expresion booleana> ) ; do { sum = sum + number; number++; } while ( sum <= 100 ); Sentencias (loop body) Expresion booleana

20 CS1101X Programming Methodology
La sentencia for int i, sum = 0, number; for (i = 0; i < 20; i++) { number = scanner.nextInt( ); sum = sum + number; } Estas sentencias son ejecutadas 20 veces ( i = 0, 1, 2, … , 19). Utilizamos for cuando sabemos cuantas veces se va a realizar la repetición

21 CS1101X Programming Methodology
Syntax sentencia for for ( <inicializacion>; <expresion booleana>; <incremento> ){ <sentencias> } Inicializacion Expresión Booleana Incremento for ( i = 0 ; i < ; i ) { number = scanner.nextInt(); sum = sum + number; } Sentencias (loop body)

22 CS1101X Programming Methodology
Compare for y while for ( Init ; Expression ; Increment ) Action Init while ( Expression ) { Action Increment } Si realmente odian utilizar WHILE por alguna razon…. pueden reescribirla

23 CS1101X Programming Methodology
Sentencia while //este programa realiza la suma de los 100 primeros numeros int sum = 0, number = 1; while ( number <= 100 ) { sum = sum + number; number = number + 1; }

24 Seguimiento de la ejecución (1/12)
CS1101X Programming Methodology Seguimiento de la ejecución (1/12) i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos");

25 Seguimiento de la ejecución(2/12)
CS1101X Programming Methodology Seguimiento de la ejecución(2/12) i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos");

26 Seguimiento de la ejecución(3/12)
CS1101X Programming Methodology Seguimiento de la ejecución(3/12) i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0

27 Seguimiento de la ejecución(4/12)
CS1101X Programming Methodology Seguimiento de la ejecución(4/12) 1 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0

28 Seguimiento de la ejecución(5/12)
CS1101X Programming Methodology Seguimiento de la ejecución(5/12) 1 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0

29 Seguimiento de la ejecución(6/12)
CS1101X Programming Methodology Seguimiento de la ejecución(6/12) 1 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamo"); Output: i es 0 i es 1

30 Seguimiento de la ejecución(7/12)
CS1101X Programming Methodology Seguimiento de la ejecución(7/12) 2 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1

31 Seguimiento de la ejecución(8/12)
CS1101X Programming Methodology Seguimiento de la ejecución(8/12) 2 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1

32 Seguimiento de la ejecución(9/12)
CS1101X Programming Methodology Seguimiento de la ejecución(9/12) 2 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2

33 Seguimiento de la ejecución(10/12)
CS1101X Programming Methodology Seguimiento de la ejecución(10/12) 3 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2

34 Seguimiento de la ejecución(11/12)
CS1101X Programming Methodology Seguimiento de la ejecución(11/12) 3 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2

35 Seguimiento de la ejecución(12/12)
CS1101X Programming Methodology Seguimiento de la ejecución(12/12) 3 i for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2 terminamos Utilzar siempre i dentro del loop

36 CS1101X Programming Methodology
Mas ejemplos for (int i = 0; i < 100; i += 5) 1 i = 0, 5, 10, … , 95 for (int j = 2; j < 40; j *= 2) 2 j = 2, 4, 8, 16, 32 for (int k = 100; k > 0; k--) ) 3 k = 100, 99, 98, 97, ..., 1

37 CS1101X Programming Methodology
For anidados for (int i = 0; i < 3; ++i) { System.out.println("i is " + i); for (int j = 0; j < i; ++j) { System.out.println(" j is " + j); } Cual es la salida?

38 Arreglos: Vectores en JAVA
Introducción a la Programación

39 Introducción Supongan el siguiente problema:
Se necesita construir un programa que permita determinar cuantos alumnos del curso tienen una nota en el certamen 1 mayor al promedio del curso (piensen en las instrucciones que tendrá dicho algoritmo).

40 Introducción Se necesita construir un programa que permita determinar cuantos alumnos del curso tienen una nota en el certamen 1 mayor al promedio del curso (piensen en las instrucciones que tendrá dicho algoritmo). Para resolver este problema deberemos ingresar las notas de cada alumno, sumar cada nota, y al final dividir por la cantidad de notas ingresadas. Luego debemos comparar el promedio obtenido con cada nota ingresada, contando cuantas notas son mayores al promedio calculado. El programa debe permitir almacenar todas las notas ingresadas, para posteriormente comparar con el promedio obtenido. Para lo anterior se utiliza la estructura básica denominada Vector (o arreglo unidimensional). A continuación se revisarán los aspectos básicos asociados al uso de vectores en los algoritmos.

41 Vectores Los vectores son una colección de variables del mismo tipo, que tienen un nombre común. También son llamados arreglos unidimensionales. Los cuales son definidos por un nombre, dimensión y tipo de dato. Para acceder a un elemento particular de un arreglo se usa su nombre y su ubicación en el conjunto (denominado índice).

42 Vector int[ ] V = new int[100]; // declaración
1 2 3 4 99 90 int[ ] V = new int[100]; // declaración V[0] = 90; // asignación V[i] = scanner.nextInt(); V[4] = V[2] + V[0]; // asignación 8 V[i] 98

43 Ejemplo public class arreglo1 {
import java.util.Scanner; public class arreglo1 { public static void main(String[] args) { // declaracionde varuiable del tipo arreglo int[ ] notas = new int[10]; int i=0; Scanner scanner = new Scanner(System.in); // lee e ingresa notas al arreglo while (i<5) { System.out.print("Ingrese nota :"); notas[i] = scanner.nextInt(); // ingresa al arreglo i++; } // Muestra las notas del arreglo i=0; System.out.println("La nota es :"+ notas[i]); } } Ejemplo

44 Ejercicios Construir un programa en JAVA que permita:
Leer un vector de dimensión 50 y contar el número de elementos mayores al promedio Dado el vector A de dimensión 1000 imprimir el menor y el mayor valor, indicando su ubicación dentro del arreglo. Determine si un arreglo de dimensión NxM(elementos ya ingresados, N>0 y M>0) esta o no ordenado en forma ascendente Determine en un arreglo de dimensión NxN (elementos ya ingresados, N>2), los 3 valores más grandes y los 3 valores más chicos. Leer dos vector de dimensión 50 y determinar cual de ellos tiene el promedio mayor Determinar cuantas veces se repite el valor x (ingresado por teclado) en un vector A de dimensión 1000 (considere los elementos ya ingresados) Nota: para todos los enunciados considere vectores de tipo entero


Descargar ppt "Ingeniero en Computación José Alfredo Cobián Campos"

Presentaciones similares


Anuncios Google