C# CGI UNIDAD 3: ARREGLOS

TEMA 3: 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.

También reciben el nombre de vectores en álgebra o arreglos unidimensionales 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 de elementos o renglones];

Como se observa por el formato y como ya se ha indicado anteriormente en csharp no existen tipos de datos tradicionales, en su lugar csharp 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 como objeto arreglo, tambien puede usar una serie de metodos pertenecientes a la clase numerica de la cual heredo.

ejemplos;


int[] edad= new int[12];

float[] sueldos= new float[10];

string[] municipios= new strings[5];


notas:

Recordar que la primera posición o renglón en una lista es la posición o renglón 0 (cero).

El dato capturado, proviene de momento de un componente escalar input text) y por tanto se usan tantos de estos controles como elementos tenga el arreglo.

Prog10.html

<HTML>
<B> DAME 5 EDADES </B><br>
<form action=http://programacionfacil.com/cgi-bin/tusitio/prog10.exe method=get>
1= <INPUT TYPE=text NAME="UNO"><BR>
2= <INPUT TYPE=text NAME="DOS"><BR>
3= <INPUT TYPE=text NAME="TRES"><BR>
4= <INPUT TYPE=text NAME="CUATRO"><BR>
5= <INPUT TYPE=text NAME="CINCO"><BR>
<input type=submit value="lista">
<input type=reset>
</form> </HTML>

Prog10.cs

using System;
public class prog1
{
public static void Main()
{
// declarando variables
int[] edad= new int[5];
int reng=0;
//creando objeto de captura
lnet capturar=new lnet();
// capturando aqui no se puede usar un ciclo
edad[0]=Int32.Parse(capturar.getparametro("UNO"));
edad[1]=Int32.Parse(capturar.getparametro("DOS"));
edad[2]=Int32.Parse(capturar.getparametro("TRES"));
edad[3]=Int32.Parse(capturar.getparametro("CUATRO"));
edad[4]=Int32.Parse(capturar.getparametro("CINCO"));
// operaciones si se usa ciclo
for (reng=0;reng<=4;reng++)
{edad[reng]=edad[reng]*12;};
//empezando a construir la pagina de salida
System.Console.WriteLine("Content-Type:text/html\n");
//desplegando si se puede usar ciclo
//DESPLEGANDO EN OBJETO LISTA DE HMTL CON BULLETS FOR NORMAL
System.Console.WriteLine("EDADES EN MESES <BR>");
System.Console.WriteLine("<UL>");
for (reng=0;reng<=4;reng++)
{System.Console.WriteLine("<LI>"+edad[reng].ToString());};
System.Console.WriteLine("<BR></UL>");
//DESPLEGANDO EN OBJETO LISTA DE HMTL Y USANDO CICLO FOREACH
// CON SU PROPIO CONTADOR DE RENGLONES
System.Console.WriteLine("<OL>");
foreach(int renglon in edad)
{System.Console.WriteLine("<LI>"+renglon.ToString());};
System.Console.WriteLine("<BR></UL>");
//DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL
System.Console.WriteLine("<table border=2><tr><th>EDADES EN MESES</th></tr>");
for (reng=0;reng<=4;reng++)
{System.Console.WriteLine("<tr><td>"+edad[reng].ToString()+"</td></tr>");};
} }

notas:

Para el caso de operaciones y comparaciones con todos los elementos de la lista a la vez, se deberá usar un ciclo for con una variable entera llamada renglón, misma que también se usa como índice de la lista.

Recordar que todos los datos internos de la lista estarán almacenados en la memoria ram del computador, para despliegues se pueden usar varios tipos de objetos y controles de html(LIST y TABLE revisar tutorial de html).

Se estan usando metodos apropiados de conversión de enteros a strings y viceversa.

Casi al final se usa un ciclo foreach para desplegar el arreglo edad, como se indico en la C# CGI UNIDAD anterior, este ciclo foreach se especializa en la manipulación 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 (renglon.ToString()) no el arreglo no se recomienda usar foreach ni para cargar arreglos ni para actualizarlos solo para navegar dentro de ellos.

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

PROBLEMAS PROGRAMACION SUGERIDOS

1.- Capturar y desplegar 5 precios de productos cualesquiera.

2.- Capturar 4 sueldos, desplegarlos aumentados en un 25%.

3.- Capturar los datos de 5 productos comprados en una tienda, incluyendo nombre, precio y cantidad en sus 3 listas respectivas( se vale inicializar los arreglos de nombre y precio), después calcular una cuarta lista con el gasto total por cada producto desplegarlo todo e incluir también el gran total.

Politica de Privacidad