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

Slides:



Advertisements
Presentaciones similares
Arreglos: Vectores en JAVA
Advertisements

Capítulo 1 “Elementos de Programación”
Parte 4: Estructura FOR Basada en diapositivas de Prof. Elizabeth Vidal Duarte.
COMP 250.  Ejemplo:  Suponer que se necesita codificar un programa donde se muestre como resultado el string “Bienvenidos al mundo de JAVA!!!” cien.
Estructuras de Decisión
ESTRUCTURA DE CONTROL REPETITIVAS: FOR DESDE… HASTA
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Tema – 5 Construcciones condicionales Introducción En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas.
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
DO - WHILE Trejo Mendoza Armando Isacc Díaz Jiménez Christian Alexis César Cerón Cortez Juárez reyes Jason Elihu Hernández Mera Rubén Hernández López José.
Computación I :: Prof. Yeniffer Peña Introducción al C Presentación Computación I.
Ciclos disponibles en Visual Basic Nury Capera Tovar.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
SERIES Y SUMATORIAS.
Tema 6: Elementos de programación adicionales
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estructuras de Control.
Actividad #2 Los algoritmos
Introducción a la Programación Multimedial
Introducción al lenguaje C Instrucción IF – ELSE y el bucle WHILE
Estructuras Repetitivas Estructuras Repetitivas
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Olimpiadas Chilenas de Informática - Formación
¿Cómo almacenar grandes cantidades de datos?
Olimpiadas Chilenas de Informática - Formación
Ciclos condicionales y exactos Estructura de control de ciclos
Olimpiadas Chilenas de Informática - Formación
Anexo Chame-San Carlos
¿Cómo almacenar grandes cantidades de datos?
Conceptos básicos de programación
Estructuras de control iterativas
Arreglos. en Lenguaje C n
TUTORIAL PSeint.
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
Unidad 2. Algoritmos Unidad 4. Control de flujo
Unidad 3. Introducción a la programación
Programación Orientada a Objetos
Estructuras de control en PHP
Programación en Java..
Hardware Description Language
Curso de iniciación al trabajo con MatLab 7.0
Estructuras de control Resolución de problemas y algoritmos
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Fundamentos de programación
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Tema 9. Estructuras de repetición. Clase 2
Fundamentos de programación
Metodología de la Programación
Programación I MC José Andrés Vázquez Flores
INTRODUCCIÓN A LA PROGRAMACIÓN ABRAHAM SOPLA MASLUCÁN MAESTRO EN CIENCIAS DE LA COMPUTACIÓN INSTITUTO TECNOLÓGICO DE MONTERREY.
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
MC Beatriz Beltrán Martínez Verano 2018
Import java.util.Scanner; public class While1 { public static void main(String[] ar) { Scanner teclado=new Scanner(System.in); int x,suma,valor,promedio;
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
Informática Ingeniería en Electrónica y Automática Industrial
JAVA: elementos básicos
Estructuras de Repetición Algoritmos
LOGICA INTERACTIVA USO DEL HACER PARA Engloba un grupo de instrucciones HACER PARA [I] = 1 a 10 Es la única de las repetitivas que no depende de una expresion.
Estructuras de control
Estructuras de control Java
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
EUPs que imprima la tabla de multiplicar de 2 al 10
UNIDAD V ESTRUCTURA REPETITIVA (Repetir Hasta Que)
Transcripción de la presentación:

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 cobian@matematicas.unam.mx Facultad de Ciencias

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.

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.

En dibujos las expresiones se pueden ver de esta manera:

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)

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...*/ }

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.

Actividad

switch

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”); }

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

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

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

CS1101X Programming Methodology Ciclo FOR

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

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 <= 100 ) { sum = sum + number; number = number + 1; } Sentencias (loop body)

CS1101X Programming Methodology Mas Ejemplos int sum = 0, number = 1; while ( sum <= 1000000 ) { 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

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

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

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

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

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

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; }

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");

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");

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

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

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

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

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

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

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

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

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

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

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

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?

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

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).

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.

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).

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

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

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