Estructura FOR. 2 Sentencia while //este programa realiza la suma de los 100 primeros números int...

Post on 06-Feb-2015

5 views 1 download

transcript

Estructura FOR

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

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

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

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

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

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

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)

9

Compare for y while

for ( Init ; Expression ; Increment )

Action

Init

while ( Expression ) {

Action

Increment

}

Si realmente odian utilizar WHILEpor alguna razon….pueden reescribirla

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;

}

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

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

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

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

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

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

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

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

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

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

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

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

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

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?

Arreglos:Vectores en JAVA

Introducción a la Programación

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

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.

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

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

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

} }

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