31
Estructura FOR

Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

Embed Size (px)

Citation preview

Page 1: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

Estructura FOR

Page 2: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

2

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

Estas sentencias son ejecutadas mientras que la variable number sea menor o igual que 100

Page 3: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

3

Sintaxis para la sentencia while while ( <expresión booleana> ) {

<sentencia 1><sentencia 1><sentencia n> }

while ( number <= 100 ) {

sum = sum + number;

number = number + 1;

}

Sentencias(loop body)

Sentencias(loop body)

Expresión Booleana Expresión Booleana

Page 4: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

4

Mas EjemplosSigue sumando números 1, 2, 3, …hasta que la variable sum sea mayor a 1,000,000.

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

Calcula el producto de los 20 primeros enteros

int sum = 0, number = 1;

while ( sum <= 1000000 ) {

sum = sum + number;

number = number + 1;

}

11

int producto = 1, numero = 1, contador = 20, ultimoNumero;

ultimoNumero = 2 * contador - 1;

while (numero <= ultimoNumero) {

producto = producto * numero;

numero = numero + 2;

}

22

Page 5: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

5

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

Estas sentencias son ejecutadas hasta que la variable sum sea menor o igual que 100

Page 6: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

6

Sintaxis do-while

do {

sum = sum + number;

number++;

} while ( sum <= 100 );

do

<sentencias>

while ( <expresion booleana> ) ;

Sentencias(loop body)

Sentencias(loop body)

Expresion booleanaExpresion booleana

Page 7: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

7

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

Estas sentencias son ejecutadas 20 veces ( i = 0, 1, 2, … , 19).

Utilizamos for cuando sabemos cuantas veces se va a realizar la repetición

Page 8: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

8

Syntax sentencia for

for ( i = 0 ; i < 20 ; i++ ) {

number = scanner.nextInt();

sum = sum + number;

}

for ( <inicializacion>; <expresion booleana>; <incremento> ){

<sentencias>

}

InicializacionInicializacion Expresión Booleana

Expresión Booleana IncrementoIncremento

Sentencias(loop body)

Sentencias(loop body)

Page 9: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

9

Compare for y while

for ( Init ; Expression ; Increment )

Action

Init

while ( Expression ) {

Action

Increment

}

Si realmente odian utilizar WHILEpor alguna razon….pueden reescribirla

Page 10: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

10

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;

}

Page 11: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

11

Seguimiento de la ejecución (1/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

0i

Page 12: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

12

Seguimiento de la ejecución(2/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

0i

Page 13: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

13

Seguimiento de la ejecución(3/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

0i

Output:

i es 0

Page 14: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

14

Seguimiento de la ejecución(4/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

1i

Output:

i es 0

Page 15: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

15

Seguimiento de la ejecución(5/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

1i

Output:

i es 0

Page 16: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

16

Seguimiento de la ejecución(6/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamo");

1i

Output:

i es 0i es 1

Page 17: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

17

Seguimiento de la ejecución(7/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

2i

Output:

i es 0i es 1

Page 18: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

18

Seguimiento de la ejecución(8/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

2i

Output:

i es 0i es 1

Page 19: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

19

Seguimiento de la ejecución(9/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

2i

Output:

i es 0i es 1i es 2

Page 20: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

20

Seguimiento de la ejecución(10/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

3i

Output:

i es 0i es 1i es 2

Page 21: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

21

Seguimiento de la ejecución(11/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

3i

Output:

i es 0i es 1i es 2

Page 22: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

22

Seguimiento de la ejecución(12/12)

for (int i = 0; i < 3; ++i) {System.out.println("i es " + i);

}

System.out.println(“terminamos");

3i

Output:

i es 0i es 1i es 2terminamos

Utilzar siempre i dentro del loop

Page 23: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

23

Mas ejemplos

for (int i = 0; i < 100; i += 5)11

i = 0, 5, 10, … , 95 i = 0, 5, 10, … , 95

for (int j = 2; j < 40; j *= 2)22

j = 2, 4, 8, 16, 32 j = 2, 4, 8, 16, 32

for (int k = 100; k > 0; k--) )33

k = 100, 99, 98, 97, ..., 1k = 100, 99, 98, 97, ..., 1

Page 24: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

24

For anidadosfor (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?

Page 25: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

Arreglos:Vectores en JAVA

Introducción a la Programación

Page 26: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

IntroducciónSupongan 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).

Page 27: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

IntroducciónSe 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).

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.

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.

Page 28: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

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

Page 29: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

Vector

0

1

2

3

4

99

V[i]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

90

98

Page 30: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

Ejemplo

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 arreglowhile (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++;}

} }

Page 31: Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number

EjerciciosConstruir 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