Anda di halaman 1dari 9

Los ciclos, bucles, lazos o iteradores

La forma de repetir un conjunto de instruccin un determinado nmero de veces o


basados en que se cumpla una condicin son los llamados ciclos.
Mientras - while
Se diferencia del para en que este es ms universal en el sentido que solo se
preocupa por evaluar una expresin y mientras dicha expresin sea verdadera se
encarga de repetir el bloque delimitado en el mientras. La expresin pude ser un
valor lgico, una funcin que retorne un valor lgico, una expresin relacional o
una expresin lgica.


La expresin debe estar entre un gran parntesis, esto es similar a lo que se hizo
en su momento con el if.
Si se llega a colocar el punto y coma al final del while no muestra error, pero no
funciona como un ciclo dado que no tiene en cuenta al bloque y lo ejecuta como
parte de la secuencia del programa y no como parte del ciclo. Esto ya lo
experimentamos con el ciclo for.
Forma general de un ciclo mientras que se repite ascendentemente.
Double p=10.0;
while(p<20){
System.out.println(p);
p+=0.5;
}
Forma general de un ciclo mientras descendente
Double n=500.0;
while(n>90){
System.out.println(n);
n=n-0.02;
}
Forma general de un ciclo mientras que el usuario lo desee.
int contador=0;
String seguir="s";
while(seguir.equals("s")||seguir.equals("S")){
System.out.println("Veces que se ha repetido "+contador++);
//operaciones que se desean repetir
seguir=JOptionPane.showInputDialog("Desea continuar oprima s");
}
Forma grfica sugerida para convertir un for a un while.

Concepto adicional de Java.

Java es un lenguaje orientado a objetos, el cual permite realizar operaciones
especiales sobre las cadenas de textos denominadas String. Para ejecutar una
operacin sobre los textos se realiza el siguiente procedimiento:

texto.funcion(parametros)
texto: puede ser una variable, una expresin o cualquier cosa que este
representada por el String
funcion: es el nombre de la operacin que se desea realizar sobre el texto
parametros: esto depende de la funcin pueden ser cero uno o n.
Estas son las funciones ms comunes para los textos.

substring(int carcaterInicial, int caracaterFinal) retorna un pedazo del texto.
Ejemplo:
String t="Hola amigos";
System.out.println(t.substring(1, 4)); //retorna ola

trim() retorna un texto sin espacios en blanco a delante y atrs de la cadena dada.
Ejemplo:
String texto=" Vamos muy bien ";
System.out.println(texto.substring(1, 4));
texto=texto.trim();
System.out.println(texto);

toLowerCase() retorna el texto en minscula.
Ejemplo:
String dato="Este es mi dato";
dato=dato.toLowerCase();
System.out.println(dato);

toUpperCase() retorna el texto en maysculas
Ejemplo:
String info="Este es mi dato";
info=info.toUpperCase();
System.out.println(info);

Mediante la observacin identifique otras funciones de los textos ... explore
replaceAll, replaceFirst, split ...

Para generar un nmero entero randmico entre [cero y el limite).
Random rnd = new Random();
int valor = rnd.nextInt(20); //20 es el lmite dado.
System.out.println(""+valor);


Ejercicios.

1. Construir un algoritmo que calcula la resistencia total de n resistencias
conectadas en paralelo. El usuario entra cuntas resistencias desea
ingresar y el sistema captura los n datos y calcula la resistencia total.

2. Leer dos nmeros enteros, calcular la multiplicacin de estos dos
nmeros mediante la operacin de sumas sucesivas.

3. Leer dos nmeros enteros, calcular la divisin entera del primer
nmero entre el segundo, mediante la operacin de restas sucesivas.

4. Leer dos nmeros enteros, calcular el primero nmero elevado al
segundo, mediante la tcnica de sumas sucesivas.

5. Construir un programa que simule el lanzamiento de un dado. Como
aun no sabemos hacer el movimiento en la GUI, aplicaremos lo siguiente.
6 Campos de texto, en los cuales el usuario no puede escribir. Cada
campo con un nmero entre 1 y 6 cada campo representa una cara del
dado y por tanto hay que asignarle un color diferente. La idea es que al
oprimir un botn denominado lanzar el sistema rote alumbrando de color
amarillo un elemento y en el cual se detenga es el nmero en que
termin el dado.

6. Construir un programa que lea un nmero, sin importar el nmero de
dgitos, el lmite ser el dado por la capacidad de las variables long. El
sistema colocar en rojo el fondo del campo de texto en el cual se ley el
nmero s este es un nmero que lstima, lo colocar en verde si es un
nmero palndromo y en amarillo si no es ninguno de los dos anteriores.
Al iniciar el proceso de verificacin, el campo se colocar en blanco. Un
nmero que lastima es el que le falto 1 o le sobra 1 para ser palndromo.





En java los vectores
Los vectores en java son de dos tipos los vectores tradicionales y la clase Vector.
Trabajaremos los tradicionales para conocer elementos al respecto.
1. Vector global
static tipo[ ] nombre = new tipo[tamao];
2. Vector local o de bloque
tipo[] nombre = new tipo[tamao];
tipo: se puede usar cualquiera de los primitivos y de lo extendidos.
nombre: siguiendo las reglas que se manejan para la definicin de variables.
tamao: valor literal entera, expresin entera o variable entera.
Si se desea cambiar el tamao de un vector se hace de la siguiente manera:
nombre = new tipo[nuevo_tamao] si coloca nuevamente el tipo al lado izquierdo
muestra un error pues considera que se esta definiendo nuevamente, y lo que
deseamos hacer es cambiar la capacidad.

Trabajando con vectores

En java los vectores son de un tipo de dato, sea primitivo o extendido.
Los vectores en java tiene un tamao fijo, que si se cambia pierde todo lo
almacenado.
Definir un vector global
static tipo[] nombreVector = new tipo[tamao];
Ejemplo
static int[] vectorEnteros = new int[100];
Definir un vector local
tipo[] nombreVector = new tipo[tamao];
Ejemplo
double[] vectorDouble=new double[200];
Para recorrer un vector elemento por elemento es necesario hacer un ciclo desde
cero hasta el tamao del vector, para conocer el tamao de un vector se usa la
funcin length
nombreVector.length
for(int indide=0;indice<vectorEnteros.length;indice++){
System.out.println(vectorEnteros[indice]);
}
Para asignar un elemento a una posicin
nombrevector[posicion]=valor;
Para recuperar el contenido de una posicin
prueba=nombrevector[posicion];
suma= datos*nombrevector[posicion];
System.out.println(nombrevector[posicion]);
Ejemplo
Realizar las pruebas respectivas e investigar que significa length

import java.io.*;
public class EjemploVectores {
public static InputStreamReader inp = new InputStreamReader(System.in);
public static BufferedReader tec = new BufferedReader(inp);
public static void main(String[] args)throws IOException {
System.out.println("digite el nmero de posiciones ");
int longitud = Integer.parseInt(tec.readLine());
int[] vec = new int[longitud];
for (int i=0;i<longitud;i++){
System.out.println("ingrese el valor para la pos "+i);
vec[i]=Integer.parseInt(tec.readLine());
}
for (int i=0;i<longitud;i++){
System.out.println("el valor de la pos "+i+" es: "+vec[i]);
}
String[] nombre=new String[20];
for(int i=0;i<nombre.length;i++){
System.out.println("digite un nombre ");
nombre[i]=tec.readLine();
}
for (int i=0;i<nombre.length;i++){
System.out.println("el nombre de la pos "+i+" es: "+nombre[i]);
}
}
}

Ejercicio.

1. Crear un vector de tamao solicitado por el teclado, llenarlo de letras identificando cuantas de
ellas son vocales en mayscula y cuantas son vocales en minscula.

2. Leer n nmeros por el teclado y determinar: cuantos de ellos son mayores, cuantos son menores
y cuantos son iguales al promedio de los nmeros ledos.

3. Almacenar en un vector n nmeros primos desde 100.

4. Construir un programa que dado el tamao deseado para un vector de enteros
permita llenarlo.

5. Construir un programa que llene un vector y lo ordene de mayor a menor.

6. Construir un programa que llene un vector y solicite un valor,
identificando en que posicin se encuentra el dato en el vector.

7. Construir un programa que llene un vector de tamao n de forma que no tenga
ningn elemento repetido.













import javax.swing.JOptionPane;
public class Raizcuadrada2 {
public static void main(String args[])
{
String primerNumero, segundoNumero, tercerNumero,opci;
double a, b,c,d=0,e=0,f=0,g=0,h=0,suma,op=0;
suma=0;
op=0;
do{
primerNumero=JOptionPane.showInputDialog("Escribe coeficiente a" );
segundoNumero=JOptionPane.showInputDialog("Escribe coeficiente b" );
tercerNumero=JOptionPane.showInputDialog("Escribe coeficiente c" );
a=Integer.parseInt(primerNumero);
b=Integer.parseInt(segundoNumero);
c=Integer.parseInt(tercerNumero);
d=((b*b)-(4*a*c));
e=((2)*(a));
if(e<=0)
{
opci=JOptionPane.showInputDialog("\n el coeficiente a es negativo, no se puede dividir entre cero,
Repetir 1-Si 2-No:" );
op=Integer.parseInt(opci);
}else{
if(d<0){
opci=JOptionPane.showInputDialog("\n no existe raiz de un numero negativo, Repetir 1-Si 2-No:" );
op=Integer.parseInt(opci);
}else{
h=Math.sqrt(d);
f=(((-b)+(h))/e);
g=(((-b)-(h))/e);
JOptionPane.showMessageDialog(null,"La raiz
x1_:"+f,"resultado",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"la raiz
x2_:"+g,"resultado",JOptionPane.INFORMATION_MESSAGE);
opci=JOptionPane.showInputDialog("\n Repetir? 1-Si 2-No:" );
op=Integer.parseInt(opci);
}
}
}while(op==1);
}
}

Anda mungkin juga menyukai