III UNIDAD C++BUILDER ARREGLOS

8.- COMPONENTE StringGrid C++BUILDER ( adicional )


image77.jpg

Este componente es de los mas importantes, para el procesamiento de muchos datos, permite concentrar, procesar y mostrar gran cantidad de información para la vista del usuario.

Este componente presenta, manipula y procesa conjuntos de datos de tipo strings en forma tabular, es decir en forma de tablas, matrices, cuadros concentrados, ejemplo;

CIA ACME

INGRESOS POR VENTAS MENSUALES

MILLONES DE PESOS

ENE FEB MAR ABR

SUC A 1 2 3 4

SUC B 5 6 4 5

SUC C 6 7 8 9

Recordar que son los datos numéricos internos quienes se procesan (es decir, se capturan, se realizan operaciones con ellos, se despliegan, etc.), es la información externa quien le da sentido.

Algunas de sus propiedades y métodos mas interesantes son:


ColCount.- Determina la cantidad de columnas que contendrá la tabla.

Recordar que para efectos de programación, la primera de ellas es la columna 0.

RowCount.- Determina la cantidad de renglones que contendrá la tabla.

Recordar que para efectos de programación, el primero de ellos es el renglón 0.

Fixedcol , Fixedrow.- Determinan la cantidad de columnas y renglones fijos o de encabezado, estas propiedades ponerlas en 0.

+Options, goediting = true; Para que permita editar o capturar datos al usuario.

+Options, gotab = true; Para que el usuario pueda navegar entre celdas usando la tecla del tabulador.

Cells[columna][renglón], Es la propiedad mas importante, porque es la que permite el acceso a cualquier celda de la tabla,

StringGrid1→Cells[1][1]=“PATO”;

Edit1→Text=StringGrid1→Cells[0][0];

Edit2→Text=StringGrid→Cells[0][1] * 3.1416;

observar que a pesar de ser de tipo Strings, se pueden efectuar alguna operaciones matemáticas directamente con las celdas.

Aunque es mas seguro sobre todo en el caso particular de la suma, convertirlos a Cells[][].ToInt() o ToDouble(), ej.;

Edit2→Text=StringGrid1→Cells[1][0].ToInt()+5;

Las demás propiedades investigarlas en la ayuda del CBuilder.

Para procesar todos los elementos de la tabla, solo recordar que se deben usar dos ciclos for, uno externo para controlar columnas, y uno interno para controlar renglón ( observar que es lo inverso de las tablas o arreglos normales).

Ejemplo , capturar una tabla de 3 * 4 enteros, y restarles 4 después;

Pantalla de Diseño:

Programa;

void __fastcall TForm1::Button1Click(TObject *Sender)
{ int col, reng ;
for(col=0;col<=2;col++)
for(reng=0;reng<=3;reng++)
{StringGrid1->Cells[col][reng]=StringGrid1->Cells[col][reng]. ToInt()- 4 ;};
}

Pantalla de Corrida:

image79.jpg

Un proceso muy común con tablas, cuadros y concentrados es agregarles listasde totales y promedios ya sea por columna o por renglón o ambas , por ejemplo;

CIA ACME

INGRESOS MENSUALES

ENE FEB MARZO TOTALSUC PROMSUC

SUC A 1 2 3 6 2

SUC B 4 5 6 15 5

SUC C 7 8 9 24 8

SUC D 10 11 12 33 11

TOTMES 22 26 30

PROMMES 5.5 6.5 7.8

En este ejemplo aparte de la tabla se ocupan 4 listas, dos para totales y dos para promedios.

El código es sencillo, pero recordarlo y aprenderlo para siempre:

//declaración
float tabla[4][3], totsuc[4], promsuc[4];
float totmes[3], promes[3];
//observar tamaños de listas que referencian renglón
// listas que referencian columnas, se supone que la tabla // ya esta capturada.
//código para operaciones para totales y promedios //renglones por sucursal:
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{ totsuc[reng]=totsuc[reng]+tabla[reng][col]; };
for(reng=0;reng<=3;reng++) promsuc[reng]=totsuc[reng] / 3.0 ;
// operaciones para totales y promedios por mes
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{totmes[col]=totmes[col]+tabla[reng][col]; };
for (col=0;col<=2;col++) prommes[col]=totmes[col]/4.0;

TAREAS PROGRAMACION C++BUILDER

1.- Construir un concentrado que despliegue los costos fijos de tres diversos productos que se fabrican en cuatro sucursales de una empresa MAQUILADORA.

2.- Construir un concentrado que contenga los ingresos por ventas mensuales de los 4 primeros meses del año de tres sucursales de una cadena refaccionaría, agregar listas de ingresos totales por mes e ingresos promedios por sucursal.

3.- Construir un cuadro que contenga las calificaciones de 5 materias de cuatro alumnos cualesquiera, incluir promedios de calificaciones por materia y por alumno.

Politica de Privacidad