III

UNIDAD ARREGLOS C++BUILDER

3.- ARREGLOS TIPO LISTA C++BUILDER


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

ejemplos;


int edades[12];

float sueldos[10];

AnsiString municipios[5];


notas:

Si un solo botón, en toda la ventana va a realizar, todos los procesos ( declaración, captura, operaciones, comparaciones, despliegue), con la lista, solo hacer la declaración de la lista, al principio del evento onclick, como lo muestra el programa ejemplo.

Recordar también 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 visual escalar y por tanto para capturas se deben de usar tantos componentes visuales como elementos tenga la lista, ejemplo para capturar una lista de 4 edades, el código y pantalla se da un poco mas adelante;


1. Programa

void __fastcall TForm1::Button1Click(TObject *Sender)
{ // declaración
int edad[4];
// carga o captura del arreglo
edad[0]=Edit1->Text.ToInt();
edad[1]=Edit2->Text.ToInt();
edad[2]=Edit3->Text.ToInt();
edad[3]=Edit4->Text.ToInt();
}

2. Pantalla de corrida

image68.jpg

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 usara como índice de la lista, para el problema ejemplo, suponer que se quieren convertir todas las edades a meses, el código seria;

{ // declaración
// carga o captura del arreglo
// conversión a meses
for(renglon=0;renglon<=3;renglon++)
{ edad[renglón]=edad[renglón]*12; };
}

Recordar que todos los datos internos de la lista estarán 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, pero se tiene que usar un ciclo for() para ir añadiendo o agregando elemento por elemento como se observa en el problema ejemplo que se ha venido desarrollando, en este caso se quiere desplegar las cuatro edades convertidas a meses;

código y pantalla de salida son;

void __fastcall TForm1::Button1Click(TObject *Sender) {
// declaración
int edad[4];
int renglón;
// carga o captura del arreglo
// conversión a meses
{ edad[renglón]=edad[renglón]*12; };
// CONVERSION A STRINGS Y ALMACENANDO EN ListBox
{ ListBox1->Items->Add(edad[renglón]); };
}

image69.jpg

Solo recordar que para capturar una lista de strings, primero se deberá usar un componente visual por cada elemento o renglón del arreglo y segundo el traspaso de dato es directo, y para desplegarlo en un componente ListBox de igual forma es directo, como en el siguiente ejemplo;

void __fastcall TForm1::Button1Click(TObject *Sender)
{ // declaración
AnsiString Ciudad[3];
int reng;
//Captura de elementos de la lista
Ciudad[0]=Edit1->Text;
Ciudad[1]=Edit2->Text;
Ciudad[2]=Edit3->Text;
// Pasando lista a ListBox;
{ ListBox1->Items->Add(Ciudad[reng]); };
}

image70.jpg

TAREAS PROGRAMACION C++BUILDER

1.- Capturar y desplegar 5 precios de productos cualesquiera, usando dos panel, uno para capturar y uno para desplegar.

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

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

4.- Capturar en una lista solamente 6 números múltiplos de 5, se debe de estar capture y capture números hasta que se completen los 6 múltiplos de

Politica de Privacidad