De esta forma, en la posición "indice=10", estará en nombre 10 y el teléfono 10.
Con estos datos puede mover los datos de posición, intercambiarlos, ordenarlos alfabéticamente según el campo nombre o numéricamente según el número de teléfono sin olvidar que al mover el teléfono x a la posición y tengo que mover el nombre x a la posición y.
Estructuras:
Pero se puede ir un poco más allá, partiendo de cómo grabábamos los datos en los primeros ordenadores: estos grababan los datos en cinta o en disco como si fueran registros, es decir, como si fueran fichas.
nombre juan
apellido pedro
teléfono 91000000
dirección Teresitas 10
.
nombre pedro
apellido elias
.......
Así lo grababan y se indicaba que cada retorno de carro (fin de linea) era el final de un campo y en este caso el punto era un final de registro.
Si os fijáis, lo que se ha hecho es estructurar los datos, es decir, tenemos un cliente, que va a tener un nombre, un apellido, un teléfono y una dirección pero es un cliente.
Que sucede si ahora lo que creo es un tipo nuevo, que no es numérico ni de letras, es un conjunto ordenado de ambos tipos:
Struct cliente
{
string nombre;
string apellido;
int teléfono;
string dirección;
}
Y luego es sencillo pensar que podríamos crear un array de esta estructura cliente y poder ir dando a cada campo valor, y luego añadiendo registros:
array cliente [100];
cliente[0].nombre="jose carlos";
cliente[0].apellido="martín";
cliente[0].teléfono=9100000000;
cliente[0].dirección="Alcalá";
Con esto hemos ganado claridad a la hora de declarar los datos y hemos ganado en facilidad a la hora de operar ya que es fácil pensar que con esto podríamos crear nuestras funciones para esta estructura:
introducirdatos (cliente[i]);
imprimirdatos (cliente[i]);
cambiardatos (cliente[i],clienten[j]);
borrardatos (cliente[i]);
Nuestros programas ganan aún más en claridad y no solo eso en facilidad a la hora de cambiar algo, ya que podemos aumentar el número de registros solo modificando el indice máximo, o podemos añadir nuevos campos modificando la estructura inicial:
Añadimos un teléfono2:
Struct cliente
{
string nombre;
string apellido;
int teléfono;
int teléfono2;
string dirección;
}
Y las modificaciones en las funciones de la estructura son menores en comparación con lo que tendríamos que hacer si solo tuvieramos la unión lógica que habíamos descrito entre las variables de los arrays.
Por eso esto fue un gran avance aunque todavía se podía mejorar, en rendimiento y sobre todo en lógica...
[Continuará]
No hay comentarios:
Publicar un comentario