Sunday, February 14, 2010

LEPIV - Unidad 2 - Teoria Practica

Caracas 15-02-2010
LEPIV - Profesor Daniel Mora.
Unidad II. Estructuras de control repetitivas.

Las estructuras de control repetitivas o bucles se usan para ejecutar varias veces un conjunto de sentencias, la manera en como se controlan cuantas veces se llevan a cabo el conjunto de sentencias define que tipo de bucle se esta implementando. Hay diversas formas de controlar la finalizacion de ejecucion de un bucle (si es el caso, ya que se puede hacer un bucle sin fin), las mas comunes son por condicion booleana o por un contador.

En el lenguaje de programacion java se cuenta con tres sentencias para hacer bucles:
1. Bucle for: se debe usar cuando se sabe de antemano el numero de veces que se va a ejecutar el conjunto de sentencias, se indica punto de inicio, condicion de fin y actualizacion (incremento/decremento) cada vez que se finaliza una pasada por el conjunto de sentencias.
- Estructura:

for ([inicio];[fin];[actualizacion]) {
[sentencias]
}

- Ejemplo:

for (int i = 1; i <= 10; i++) {
System.out.println("Numero " + i);
}

2. Bucle do: Se usa cuando al menos se desea ejecutar el bucle una vez, y mientras se cumpla una cierta condicion la cual es evaluada al final.
- Estructura:

do {
[sentencias]
} while([Condicion]);

- Ejemplo:

int i = 1;
do {
System.out.println("Numero " + i);
i++;
} while(i <= 10);

3. Bucle while: Se usa mientras se cumpla una cierta condicion la cual se valida al inicio del bucle, puede ser que el bucle no se lleve a cabo ni una vez, si la condicion no se cumple al inicio del bucle.
- Estructura:

while([Condicion]) {
System.out.println("Numero " + i);
}

- Ejemplo:

int i = 1;
while(i <= 10) {
System.out.println("Numero " + i);
i++;
}

El conjunto de sentencias a llevar a cabo en el bucle se define colocandolo dentro de las llaves {}.

Los tres ejemplos mostrados anteriormente llevan a cabo el mismo resultado, pero implementado de diferentes maneras.

Pueden consultar aqui:
http://www.desarrolloweb.com/articulos/1760.php

Ejemplos para practicar:

1. Mostrar por pantalla 10 numeros aleatorios del 10 al 100 y decir si son pares o impares.

Solucion:
// for del 1 al 10, se sabe de antemano que este es el rango.
for (int i = 1; i <= 10; i++) {
int aleatorio = (10) + (int)(Math.random() * 91); // Esta formula se las di!
if (aleatorio % 2 == 0) { // es par
System.out.println("El numero " + aleatorio + " es par!");
} else { // es impar
System.out.println("El numero " + aleatorio + " es impar!");
}
}

2. Dada la funcion f1 = X*X + 2*X - 7 y f2 = 5 * X - 7, decir, si es el caso, si se cumple para algunos valores de x entre -20 y 20 que f1(x) = f2(x).

Solucion:
// el rango es de -20 a 20, por eso hacemos un for en este rango.
for (int i = 1; i <= 10; i++) {
int f1 = i * i + 2 * i - 7;
int f2 = 5 * i - 7;
if (f1 == f2) { // Son iguales
System.out.println("Para x = " + i + " las funciones tienen el mismo valor");
} else { // No son iguales
System.out.println("Para x = " + i + " las funciones NO tienen el mismo valor");
}
}

3. Se sabe que un numero es primo si acepta como unicos divisores a el numero 1 y el mismo, ejemplo 7 es primo ya que solo acepta como divisores a 1 y 7, no acepta mas divisores exatos. Es decir que si un numero n es divisible entre algun numero entre [2 y n - 1] no es primo. Sabiendo esto, elaborar un algoritmo que genere un numero aleatorio entre 2 y 1000 y diga si dicho numero es o no primo, el algoritmo para determinar si el numero es o no primo debe usar bucle.

Solucion: [Hagala Usted! se termino la clase!]


Observaciones: seria muy buen idea que usted implemente todos los ejemplos resueltos en esta clase teorico practica de la unidad 2, la proxima clase es el taller.

No comments:

Post a Comment