UNIDAD 3: ARREGLOS

TEMA 3: ARREGLO TIPO LISTA J#

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.

Tambien reciben el nombre de vectores en algebra o arreglos unidimensionales en programacion.

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 de elementos o renglones];

Como se observa por el formato y como ya se ha indicado anteriormente en jsharp no existen tipos de datos tradicionales, en su lugar jsharp usa objetos derivados de las clases numericas apropiadas, por lo que no debe sorprender que realmente se esta crando un objeto arreglo derivado de la clase de los enteros.

Recordar tambien, que como objeto arreglo, tambien puede usar una serie de metodos pertenecientes a la clase numerica de la cual heredo.

ejemplos;

int edades[]= new int[12];

float sueldos[]=new float[5];

String municipios[]={“tijuana”,”tecate”,”ensenada”};

Lo de public static, es porque en el programa se va a estar compartiendo el arreglo entre los metodos asociados a dos o mas botones de ordenes (button, buttonlink, imagebutton), el objeto arreglo debera ser de tipo publico o global(este tema se vera mas ampliamente en la siguiente unidad).

notas:

Recordar que la primera posicion o renglon en una lista es la posicion o renglon 0 (cero).

El dato capturado, proviene de momento de un componente escalar webcontrol(textbox) y o se usan tantos de estos controles como elementos tenga el arreglo o mas facil aun se usa uno y se va agregando a nuestro arreglo como lo muestra el programa ejemplo.

Prog16.aspx

<FORM RUNAT=SERVER>
DAME EDAD<ASP:TEXTBOX ID=EDAD RUNAT=SERVER/>
<ASP:BUTTON TEXT=CARGAR ONCLICK=CARGAR RUNAT=SERVER/><BR>
<ASP:LISTBOX ID=LISTAORIGINAL ROWS=5 RUNAT=SERVER></ASP:LISTBOX>
<ASP:LISTBOX ID=LISTACOPIA ROWS=5 RUNAT=SERVER></ASP:LISTBOX>
<ASP:BUTTON TEXT=PROCESAR ONCLICK=PROCESO RUNAT=SERVER/><BR>
</FORM>
<SCRIPT LANGUAGE=VJ# RUNAT=SERVER>
public static int edad[]= new int[5];
public static int reng=0;
void CARGAR (Object sender, EventArgs e)
{
if(reng<=4)
{
edad[reng]=Convert.ToInt32(EDAD.get_Text());
reng++;
EDAD.set_Text(" ");
};
if(reng==5){EDAD.set_Text("YA SON CINCO") ; };
}
void PROCESO (Object sender, EventArgs e)
{
// LIMPIANDO LISTAS
LISTAORIGINAL.get_Items().Clear();
LISTACOPIA.get_Items().Clear();
//CARGANDO LISTA EDAD CAPTURADA
for (reng=0; reng<=4; reng++)
{LISTAORIGINAL.get_Items().Add(Convert.ToString(edad[reng])) ; };
//EDAD A MESES Y Y DESPLEGANDO
for (reng=0; reng<=4; reng++)
{
edad[reng]=edad[reng]*12;
LISTACOPIA.get_Items().Add(Convert.ToString(edad[reng])) ;
};
//dejando listo el arreglo para nueva corrida
reng=0;
}
</SCRIPT>

corrida prog16.aspx:

image6.jpg

notas:

Observar que en el programa el arreglo edad y la variable renglon se declararon de tipo publico y estatico porque los dos metodos, el de captura y el de operacion-despliegue, las estaran compartiendo.

Para el caso de operaciones y comparaciones con todos los elementos de la lista a la vez, se debera usar un ciclo for con una variable entera llamada renglon, misma que tambien se usa como indice de la lista.

Recordar que todos los datos internos de la lista estaran almacenados en la memoria ram del computador, para despliegues se usara un componente visual que permite manipular un conjunto de datos a la vez, el ListBox con sus metodos apropiados, pero se tiene que usar un ciclo for() para ir anadiendo o agregando elemento por elemento como se observa en el problema ejemplo que se ha venido desarrollando, en este caso se quiere desplegar las cinco edades convertidas a meses.

Se estan usando metodos apropiados de conversion de enteros a strings y viceversa.

La ultima intruccion y muy importante es poner en cero las variables de control de ciclos o indice de arreglos, esto es porque el servidor mantiene el programa ejecutandose continuamente en memoria y si se vuelve a pedir la ejecucion del programa, en cuento se intente capturar un nuevo dato va a marcar el error arreglofueradelimite o arrayofbound, estan avisados.

Para inicializar una lista se debe usar el siguiente formato:

tipodato[] nomlista={lista de valores};

ej;

int[] edad={15,16,17,18};

float[] sueldo={40.85, 65.30, 33.33};

string[] ciudad={“tecate”, “tijuana”, “mexicali”, “rosarito”, “ensnada”};

PROBLEMAS SUGERIDOS J# NET

1.- Capturar y desplegar 5 precios de productos cualesquiera usando dos panel, uno para capturar y uno para desplegar(2 aspx uno capturado y otro inicializado).

2.- Capturar 4 sueldos en un panel desplegarlos aumentados en un 25% en otro panel (2 jsl uno capturado y otro inicializado).

3.- Capturar los datos de 5 productos comprados en una tienda, incluyendo nombre, precio y cantidad en sus 3 listas respectivas, despues calcular una cuarta lista con el gasto total por cada producto desplegarlo todo en un segundo panel e incluir tambien el gran total(aspx).

4.- Capturar en una lista solamente 6 numeros multiplos de 5, se debe de estar capture y capture numeros hasta que se completen los 6 multiplos de 5(jsl)

Politica de Privacidad