lunes, 16 de mayo de 2011

ARREGLO DIMENSIONAL EN JAVA

DEFINICIÓN

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones.
Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para controlar columna.
Los elementos de la tabla se deberán simbolizar con el nombre de la tabla y 2 subindices, el primer subindice refercia al renglón y el siguiente subindice referencia la columna los dos dentro del mismo corchete.
SINTAXIS
La declaración de una tabla sera de acuerdo a los siguientes formatos:
1) tipodato nomtabla[][]= new tipodato[reng][col];
ejemplo:
int calif[][]=new int[3][4];
double ingresos[][]= new double[3][4];
2) Clasenumerica objetotabla[][]= new constructor[ren][col];
ejemplo;
Integer calif[][]= new Integer[2][3];
Double ingresos[][]=new Double[3][4];
Para capturar sus elementos, usaremos el procedimiento desarrollado con listas.
Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglón y un for interno para controlar columna.
EJEMPLO:

<%! int edad[][]=new int[2][3], ren=0, col=0; %>

<%

String temp1=request.getParameter("INSERTAR");

if(temp1==null)temp1=" ";

if(temp1.compareTo("insertar")==0){

if(col < 3){

edad[ren][col]=Integer.parseInt(request.getParameter("EDAD"));

col=col+1;};

if(col == 3){col=0;ren=ren+1;};

if(ren==2) {out.print("TABLA LLENA");};

};

if(request.getParameter("MESES") != null )

{

// operaciones

for(ren=0; ren<=1; ren++)

for(col=0;col<=2;col++)

edad[ren][col]=edad[ren][col]*12;

// DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL

out.println("<table border=2><tr><th>EDAD EN MESES</th></tr>");

for(ren=0; ren<=1; ren++)

{ out.println("<tr>");

for(col=0;col<=2;col++)

{ out.println("<td>"+edad[ren][col]+"</td>"); };

out.println("</tr>"); };

};

// construyendo forma dinamica

out.println("<FORM ACTION=prog11.jsp METHOD=post>");

out.println("DAME EDAD:"+ren+","+col+"<INPUT TYPE=TEXT NAME=EDAD>");

out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar ><BR>");

out.println("<INPUT TYPE=SUBMIT NAME=MESES VALUE=meses><BR>");

out.println("</FORM>");

%>

Corrida:
image29.jpg

ARREGLO UNIDIMENSIONAL EN JAVA-VECTORES

DEFINICIÓN

Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno o mas renglones.
También reciben el nombre de vectores en álgebra, o arreglo unidimensional en programación.
Los procesos normales con una lista o con sus elementos, incluyen declarar toda la lista, capturar sus elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc.
Para declarar una lista se usa el siguiente formato;
tipodato nomlista[]= new tipodato[cant elementos];
SORPRESA, no existen en java arreglos o listas tradicionales, lo que existe es un objeto, por tanto se debera usar el operador new antes de empezar a procesar el arreglo, la ventajas son:
a) estas listas pueden usar el metodo length,(ejemplo nomlista.length;) para conocer el tamaño de la misma.

int edades[]= new int[12];
float sueldos[]=new float[5];
String municipios[]={“tijuana”,”tecate”,”ensenada”};
 este ulimo caso, observar que también puedén crearse listas ya con tamaño fijo e inicializadas o cargadas.
SINTAXIS DE LOS VECTORES UNIDIMENSIONALES:
tipo nombre_array[]=new tipo[nº];
tipo nombre_array[]={valores};

EJEMPLO:
import java.io.*;

class prog20 {

public static void main(String[] args) {

int edad[]= new int[5]; int reng;

BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

//ciclo de captura

for(reng=0; reng <=4; reng++)

{ System.out.println("dame edad "+reng+":");

try { edad[reng]= Integer.parseInt(teclado.readLine());

}catch(IOException varerror){};

};

//ciclo de proceso

for(reng=0;reng<=4;reng++)

edad[reng]=edad[reng]*12;

//ciclo de despliegue

for(reng=0; reng <=4; reng++)

System.out.println(edad[reng]);

} // cierra main

} // cierra clase
Corrida:
image37.jpg

martes, 3 de mayo de 2011

FUNCIONES EN JAVA

FUNCIONES EN JAVA

En Java una funcion es un modulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la parte principal del programa u otra funcion o procedimiento que la invoque.
La forma general de una funcion es:
tipodatoregresa Nom_fun(parametros)
{ cuerpo de instrucciones;
intruccion return;
}
El tipo especifica el tipo de valor que la funcion regresara utlizando la instrucción return.
Si no se especifica un tipo se asume de default que el tipo regresado es int.
La lista de parametros formales es una lista de variables separadas por comas (,) que almacenaran los valores que reciba la funcion, estas variables actuan como locales dentro del cuerpo de la funcion.
Aunque no se ocupen parametros los paréntesis son requeridos.
La declaracion de parametros es la especificacion de cada tipo de parametro recibido.
INSTRUCCION RETURN
Dentro del cuerpo de la función deber haber una instrucción return cuando menos, para regresar el valor, esta instrucción permite regresar datos.

EJEMPLO DE FUNCIONES EN JAVA

martes, 26 de abril de 2011

SWITCH

DEFINICIÒN
Tipo de estructura de seleccion empleada en la programación de algoritmos.

La estructura switch permite elegir ejecutar diferentes códigos (conjunto de sentencias de programacion) dependiendo de un valor.

La forma general es:

SINTAXIS


Cada case puede ejecutar múltiples líneas de código. Todos deben terminan con un break, que indica que debe seguirse la ejecución del programa luego de ejecutar las líneas superiores. La ejecución continúa luego de la estructura switch. El caso default se ejecuta si no hubo coincidencia entre el contenido de valor y los case superiores.
switch (valor) {
case ‘1’: ejecuta esto si valor es 1
break;
case ‘2’: ejecuta esto si valor es 2
break;
case ‘3’: ejecuta esto si valor es 3
break;
default: ejecuta esto si valor no es ninguno de los anteriores
break;
};

EJEMPLO

/*
 * Ejemplo de uso switch.
 *
 *
 */

public class Ejercicio03 {
    //Comienzo del flujo principal del programa.
    public static void main(String [] argumentos) {
 int x = 1;
 int tope = 20;

 salida("valor x: " + x);
 salida("valor tope: " + tope);
 while(x < tope) {
     evaluar(x++);
 }
 System.exit(0);
    }

    public static void salida ( String cadena ) {
 System.out.println(cadena);
    }

    public static void evaluar ( int numero ) {
 switch(numero) {
 case 1:
     salida("Uno");
     break;
 case 2:
     salida("Dos");
     break;
 case 3:
     salida("Tres");
     break;
 case 4:
     salida("Cuatro");
     break;
 case 5:
 case 6:
     salida("Cinco o seis");
     break;
 default:
     salida("Otro número");
     break;
 }

    }

}

 

lunes, 25 de abril de 2011

EJERCICIO DE CICLOS N°3

EJERCICIO DE CICLOS N°24

EJERCICIO DE CICLOS N°16

EJERCICIO DE CICLOS N°11

EJERCICIO DE CICLOS N°15

EJERCICIO DE CICLOS N°2

EJERCICIO DE CICLOS N°5

EJERCICIO DE CICLOS N°1

EJERCICIO DE CICLOS N°7

lunes, 11 de abril de 2011

CICLOS REPETITIVOS

CCICLOS
 Los ciclos sirven para repetir la ejecución de una sentencia o bloque de sentencias. Aquí veremos la implementación de dichas estructuras de control en C.
WHILE

MIENTRAS:


El CICLO MIENTRAS ejecuta un bloque de acciones ‘mientras’ que una condición dada se cumpla, es decir, cuando la condición evalúa a verdadero. La condición es evaluada antes de ejecutar el bloque de acciones y si la condición no se cumple, el bloque no se ejecuta. De esta manera es que el número de repeticiones del bloque de acciones sea cero, pues, si la condición la primera vez evalúa a falso, el bloque no será ejecutado alguna vez. La forma general del ciclo mientras es la siguiente:

Código:

mientras (condición) hacer

      <bloque de instrucciones>

  fin_mientras


Donde, (condición) es la condición que determina si el bloque de accioneses ejecutado o no. Si la condición evalúa a verdadero el bloque es ejecutado y si evalúa a falso no es ejecutado. Después de ejecutar el bloque de acciones se vuelve a evaluar la condición.






EJEMPLO 1.

Dado un número natural n se desea calcular la suma de los números naturales desde 1 hasta n.

PROCEDIMIENTOS:
Objetos Conocidos un número natural.

Objetos Desconocidos Un número natural.

Condiciones El número buscado es la suma de los naturales empezando en cero hasta el número dado.

ESPECIFICACIÓN:

Entradas n Î Enteros, (n es el número dado).

Salidas suma Î Enteros, (suma es la suma de los primeros n números naturales).

Condiciones


DISEÑO:

Primera Iteración:

1. Leer el número

2. Recorrer los números desde el cero hasta el número dado e irlos sumando.

3. escribir la suma


 FOR

ciclo para, es una estructura de control en la que se puede indicar el número máximo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.

Variable de control: prácticamente un mandato impuesto por el uso habitual es utilizar la letra i como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).

Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.
Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).

Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.
Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.
Combina en una sentencia la definición de un ciclo repetitivo.
Para el caso del tipo de cambio, el código fuente será:

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

La inicialización y la iteración puede ser compuesta.

for (int i=0, j=10; i<j; i++, j--) { 
System.out.println(j-i);
}

Se pueden crear bucles infinitos.

for (;;) { 
System.out.println("Hola mundo!");
}
DO WHILE
La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.

Representación gráfica:
El bloque de operaciones se repite MIENTRAS que la condición sea Verdadera.
Si la condición retorna Falso el ciclo se detiene. En Java, todos los ciclos repiten por verdadero y cortan por falso.
Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.

Problema 1:

Escribir un programa que solicite la carga de un número entre 0 y 999, y nos muestre un mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.

Diagrama de flujo:

No hay que confundir los rombos de las estructuras condicionales con los de las estructuras repetitivas do while.
En este problema por lo menos se carga un valor. Si se carga un valor mayor o igual a 100 se trata de un número de tres cifras, si es mayor o igual a 10 se trata de un valor de dos dígitos, en caso contrario se trata de un valor de un dígito. Este bloque se repite hasta que se ingresa en la variable valor el número 0 con lo que la condición de la estructura do while retorna falso y sale del bloque repetitivo finalizando el programa.

Programa:

import java.util.Scanner;
 
public class EstructuraRepetitivaDoWhile1 {
    public static void main(String[] ar) {
        Scanner teclado=new Scanner(System.in);
        int valor;
        do {
            System.out.print("Ingrese un valor entre 0 y 999 (0 finaliza):");
            valor=teclado.nextInt();
            if (valor>=100) {
                System.out.println("Tiene 3 dígitos.");
            } else {
                if (valor>=10) {
                    System.out.println("Tiene 2 dígitos.");
                } else {
                    System.out.println("Tiene 1 dígito.");
                }
            }
        } while (valor!=0);
    }
}

Problema 2:

Escribir un programa que solicite la carga de números por teclado, obtener su promedio. Finalizar la carga de valores cuando se cargue el valor 0.
Cuando la finalización depende de algún valor ingresado por el operador conviene el empleo de la estructura do while, por lo menos se cargará un valor (en el caso más extremo se carga 0, que indica la finalización de la carga de valores)

Diagrama de flujo:

Es importante analizar este diagrama de flujo.
Definimos un contador cant que cuenta la cantidad de valores ingresados por el operador (no lo incrementa si ingresamos 0)
El valor 0 no es parte de la serie de valores que se deben sumar.
Definimos el acumulador suma que almacena todos los valores ingresados por teclado.
La estructura repetitiva do while se repite hasta que ingresamos el valor 0. Con dicho valor la condición del ciclo retorna falso y continúa con el flujo del diagrama.
Disponemos por último una estructura condicional para el caso que el operador cargue únicamente un 0 y por lo tanto no podemos calcular el promedio ya que no existe la división por 0.
En caso que el contador cant tenga un valor distinto a 0 el promedio se obtiene dividiendo el acumulador suma por el contador cant que tiene la cantidad de valores ingresados antes de introducir el 0.

Programa:

import java.util.Scanner;
 
public class EstructuraRepetitivaDoWhile2 {
    public static void main(String[] ar) {
        Scanner teclado=new Scanner(System.in);
        int suma,cant,valor,promedio;
        suma=0;
        cant=0;
        do {
            System.out.print("Ingrese un valor (0 para finalizar):");
            valor=teclado.nextInt();
            if (valor!=0) {
                suma=suma+valor;
                cant++;
            }
        } while (valor!=0);
        if (cant!=0) {
            promedio=suma/cant;
            System.out.print("El promedio de los valores ingresados es:");
            System.out.print(promedio);
        } else {
            System.out.print("No se ingresaron valores.");
        }
    }
}
El contador cant DEBE inicializarse antes del ciclo, lo mismo que el acumulador suma. El promedio se calcula siempre y cuando el contador cant sea distinto a 0.




lunes, 4 de abril de 2011

n nnn.bhjnbhnhjkl

TALLER 2 EJERCICIO N°27

TALLER 2 EJERCICIO N°25

TALLER 2 EJERCICIO N°24

TALLER 2 EJERCICIO N°23

TALLER 2 EJERCICIO N°21

TALLER 2 EJERCICIO N°20

TALLER 2 EJERCICIO N°17

TALLER 2 EJERCICIO N°15

TALLER 2 EJERCICIO N°14

TALLER 2 EJERCICIO N°13