310 likes | 504 Views
Estructura FOR. //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);.
E N D
//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 Sentencia while
while( number <= 100 ) { sum = sum + number; number = number + 1; } Expresión Booleana Sentencias(loop body) Sintaxis para la sentencia while while( <expresión booleana> ) { <sentencia 1> <sentencia 1> <sentencia n> }
1 int sum = 0, number = 1; while( sum <= 1000000 ) { sum = sum + number; number = number + 1; } int producto = 1, numero = 1, contador = 20, ultimoNumero; ultimoNumero = 2 * contador - 1; while(numero <= ultimoNumero) { producto = producto * numero; numero = numero + 2; } 2 Mas Ejemplos Sigue sumando números 1, 2, 3, …hasta que la variable sum sea mayor a 1,000,000. Calcula el producto de los 20 primeros enteros
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 La sentencia do-while
do { sum = sum + number; number++; }while( sum <= 100 ); Sentencias (loop body) Expresion booleana Sintaxis do-while do <sentencias> while( <expresion booleana> ) ;
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). La sentencia for Utilizamos for cuando sabemos cuantas veces se va a realizar la repetición
for ( i = 0 ; i < 20 ; i++ ) { number = scanner.nextInt(); sum = sum + number; } Expresión Booleana Inicializacion Incremento Sentencias (loop body) Syntax sentencia for for( <inicializacion>; <expresion booleana>; <incremento> ){ <sentencias> }
Compare for y while for ( Init ; Expression ; Increment ) Action Init while ( Expression) { Action Increment } Si realmente odian utilizar WHILE por alguna razon…. pueden reescribirla
//este programa realiza la suma de los 100 primeros numeros int sum = 0, number = 1; while ( number <= 100 ) { sum = sum + number; number = number + 1; } Sentencia while
Seguimiento de la ejecución (1/12) 0 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) 0 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) 0 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) 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) 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) 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) 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) 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) 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) 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) 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) 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
1 for (int i = 0; i < 100; i += 5) for (int j = 2; j < 40; j *= 2) for (int k = 100; k > 0; k--) ) 2 3 Mas ejemplos i = 0, 5, 10, … , 95 j = 2, 4, 8, 16, 32 k = 100, 99, 98, 97, ..., 1
For anidados for (int i = 0; i < 3; ++i) { System.out.println("i is "+ i); for (intj = 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).
0 1 2 3 4 99 Vector 90 int[ ] V = newint[100]; // declaración V[0] = 90; // asignación V[i] = scanner.nextInt(); V[4] = V[2] + V[0];// asignación 8 V[i] 98
import java.util.Scanner; publicclass arreglo1 { publicstaticvoid main(String[] args) { // declaracionde varuiable del tipo arreglo int[ ] notas = newint[10]; int i=0; Scanner scanner = new Scanner(System.in); // lee e ingresanotasalarreglo while (i<5) { System.out.print("Ingrese nota :"); notas[i] = scanner.nextInt(); // ingresa al arreglo i++; } // Muestra las notas del arreglo i=0; while (i<5) { System.out.println("La nota es :"+ notas[i]); 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