sábado, 26 de mayo de 2018

Estructuras en C++


La Estructuras es uno de los pocos temas tratados en la Programación Básica debido que al introducirse la posibilidad de la Programación Orientada a Objetos (POO), éstas quedan sustituidas por la aplicación de Clases. Sin embargo, por ser parte de una introducción a la Programación hemos decidido dedicar un capítulo a las Structs en C++.

Las Structs ofrece la posibilidad de reunir variados tipos de datos dentro de una sola estructura. Pensemos en lo siguiente, si queremos definir las características de una persona tendríamos que declarar variables tales como: nombre, apellido, edad, Nro. de Identificación, entre otros; lo que se volvería engorroso si deseamos almacenar esta información para 100 personas más, ya que debiera crearse 100 variables similares.

Para el caso anterior podría pensarse en crear un arreglo para cada variable y que cada índice este asociado a una persona en particular. Quizás sería una solución, sin embargo hay que procurar programar muy cuidadosamente la asignación de información para no mezclar los datos. 

De por sí, como programador, mi opción para estos casos es crear una estructura llamada persona que contenga esas variables y crear tantos objetos de la estructura persona como sean necesarias. Veamos de qué hablo.

Antes de iniciar con un ejemplo estudiemos su sintaxis:

struct nombre_de_estructura {
   int variable_1;
   float variable_2;
   char variable_3;
   ....
};

Fíjense que se inicia con la palabra struct para indicar que la definición corresponde a una estructura. Posteriormente se indica el nombre de la estructura y dentro de ella (entre llaves { }) se colocan las variables y/o arreglos relacionadas con la estructura definida. Por último se cierra la estructura con punto y coma (;). Tomando como ejemplo la estructura persona que describimos anteriormente, ésta quedaría así:
#include <stdlib.h>
#include <iostream>
using namespace std;

int main () {
   struct persona {
        char nombre[20];
        char apellido[20];
        int edad;
        int nro_iden;
    };
}

Notemos que se ha definido una estructura de nombre persona y sus atributos son dos arreglos tipo char con 20 espacios para almacenar el nombre y apellido de la persona, y dos variables tipo int para la edad y el número de identificación. Bien, qué te parece si continuamos con ese ejemplo y manipulamos sus atributos para conocer cómo se utilizan las estructuras.

#include <stdlib.h>
#include <iostream>
using namespace std;

int main () {
   struct persona {
        char nombre[20];
        char apellido[20];
        int edad;
        int nro_iden;
    };

    persona individuo1;
    persona individuo2;

    cout << "Introduzca los datos de la primera persona" << endl;
    cout << "Nombre: ";
    cin >> individuo1.nombre;
    cout << "Apellido: ";
    cin >> individuo1.apellido;
    cout << "Edad: ";
    cin >> individuo1.edad;
    cout << "Nro. de Identificación: ";
    cin >> individuo1.nro_iden;

    cout << "Introduzca los datos de la segunda persona" << endl;
    cout << "Nombre: ";
    cin >> individuo2.nombre;
    cout << "Apellido: ";
    cin >> individuo2.apellido;
    cout << "Edad: ";
    cin >> individuo2.edad;
    cout << "Nro. de Identificación: ";
    cin >> individuo2.nro_iden;

    cout << "La primera persona es " << individuo1.nombre << " " << individuo1.apellido << endl;
    cout << "Tiene " << individuo1.edad << "años y su identificación es " << individuo1.nro_iden;
    cout << endl;
    cout << "La segunda persona es " << individuo2.nombre << " " << individuo2.apellido << endl;
    cout << "Tiene " << individuo2.edad << "años y su identificación es " << individuo2.nro_iden;

    return 0;
}

Ahora, estudiemos este ejercicio:
  • Se ha creado una estructura cuyo nombre es persona con atributos nombre (arreglo tipo char), apellido (arreglo tipo char), edad (variable tipo int), nro_iden (variable tipo int).
  • Posteriormente se crean dos objeto que tendrán la estructura persona definida, estas son individuo1 e individuo2. Noten que se antecede el nombre persona en la declaración de los objetos, tal como si fuese un tipo de datos. Esto crea los objetos en la cual cada uno de ellos tendrán asociados los atributos definidos en la estructura.
  • La forma de acceder a los atributos es colocar el nombre del objeto, luego un punto y después el nombre del atributo. Por ejemplo: individuo1.edad me permite acceder el atributo edad del objeto individuo1. Esto es aplicable tanto para asignar un valor a ella (tal es el caso de cin) como para extraerla (con el cout se muestra la información en pantalla).
  • En el ejercicio se crean dos objetos con el propósito de mostrarles que se pueden crear tantos objetos con la estructura definida como se desee. Si requiriéramos 10 individuos con la información básica, sólo creamos 10 objetos con la estructura definida y manipulamos sus atributos para cada objeto.
Las estructuras es una herramienta muy poderosas a la hora de reunir una cantidad de variables y arreglos que mantienen relación para definir un objeto. Lo mismo se podría aplicar para cualquier cosa, por ejemplo una estructura triángulo con atributos: base, altura, tipo. Entre otros.

Espero hayan disfrutado de este capítulo. Para mí resulta interesante, ya que sirve como inicio para comprender la definición de Clases en POO. Nos vemos pronto, en el siguiente capítulo.

0 comentarios:

Publicar un comentario