UNIDAD 3: PROGRAMACION VISUAL ARREGLOS

TEMA 3: VISUAL WEB DEVELOPER 2005 C# ARREGLO TIPO LISTA

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 VISUAL c# no existen tipos de datos tradicionales, en su lugar visual c# usa objetos derivados de las clases numericas apropiadas, por lo que no debe sorprender que realmente se esta creando un objeto arreglo derivado de la clase de los enteros.

Recordar tambien que en VISUAL WEB DEVELOPER 2005 C# como un objeto arreglo tambien puede usar una serie de metodos pertenecientes a la clase numerica de la cual heredo.

Ejemplos:

public static int[] edad= new int[12];

public static float[] sueldos= new float[10];

public static string[] municipios= new strings[5];

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

Programa

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
// creando arreglo y variables control globales
public static int[] edad = new int[5];
public static int ren = 0;
void CARGAR(Object sender, EventArgs e)
{
if (ren <= 4)
{
edad[ren] = System.Int32.Parse(EDAD.Text);
ren++;
EDAD.Text = " ";
};
// no olvidar poner el textbox EDAD en la forma
if (ren == 5) { EDAD.Visible = false ; };
}
void PROCESO(Object sender, EventArgs e)
{
// LIMPIANDO LISTAS
LISTA1.Items.Clear();
LISTA2.Items.Clear();
//CARGANDO LISTA EDAD CAPTURADA
for (ren = 0; ren <= 4; ren++)
{ LISTA1.Items.Add(edad[ren].ToString()); };
//CALCULANDO Y DESPLEGANDO
for (ren = 0; ren <= 4; ren++)
{ edad[ren] = edad[ren] * 12; };
//usando ciclo foreach para desplegar
foreach (int r in edad)
{ LISTA2.Items.Add(r.ToString()); };
//dejando listo el arreglo para nueva corrida
ren = 0;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ARREGLOS</title>
</head>
<body>
<form id="form1" runat="server">
DAME EDAD<ASP:TEXTBOX ID=EDAD RUNAT=SERVER/>
<ASP:BUTTON ID=BUTTON1 TEXT=INSERTAR ONCLICK=CARGAR RUNAT=SERVER/><BR>
<ASP:LISTBOX ID=LISTA1 ROWS=5 RUNAT=SERVER></ASP:LISTBOX>
<ASP:LISTBOX ID=LISTA2 ROWS=5 RUNAT=SERVER></ASP:LISTBOX>
<ASP:BUTTON ID=BUTTON2 TEXT=PROCESAR ONCLICK=PROCESO RUNAT=SERVER/><BR>
</form>
</body>
</html>

Corrida:

image468.jpg

Notas:

En la forma deben poner un textbox EDAD.

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 estan 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 usa 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.

Casi al final se usa un ciclo foreach para desplegar el arreglo edad, como se indico en la unidad anterior este ciclo foreach se especializa en la manipulacion de arreglos y colecciones (estas se veran en capitulos posteriores), el formato de foreach es:

foreach( tipodato varcontrol in arreglo) intruccion(es);

Observar tambien que en foreach quien se procesa es la variable de control (r.ToString()) no el arreglo, no se aconseja usar foreach ni para cargar arreglos ni para actualizarlos, solo para navegar dentro de ellos.

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”, “ense”};

TAREAS PROGRAMACION VISUAL WEB DEVELOPER C#

1.- Capturar y desplegar 5 precios de mercancias 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 aspx 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.

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.

Politica de Privacidad