UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES
TEMA LINUX GCC 2: ESTRUCTURAS O REGISTROS
En este TEMA LINUX GCC exploramos en C++ la estructura mas común de representación de datos la llamada estructura.
Variables simples o escalares pueden almacenar un datum de información y arreglos pueden almacenar conjuntos de ellos del mismo tipo y al mismo tiempo, estos dos mecanismos pueden manejar una gran variedad de situaciones pero a menudo se necesita trabajar sobre datos de diversos tipos en este caso ni variables escalares ni arreglos son adecuados.
Para resolver este problema C++ provee de un tipo de dato especial llamado estructura.
Los elementos individuales de una variable estructura reciben el nombre de campos.
Ej:
struct alumno
nombre → campo1
direccion → campo2
edad → campo3
etc
EL FORMATO GENERAL DE UNA ESTRUCTURA ES:
tipo de almacenamiento struct
{
tipo campo1;
tipo campo2;
}lista de variables;
Es el registro completo quien se declara en cualquiera de los lugares adecuados para ello.
Son los campos del registro a quienes se les va a asignar, inicializar, capturar, etc y de esta manera a los campos se les considera como variables normales.
Para indicar a “C++” durante cualquier proceso que la variable a utilizar es un campo de una estructura se utiliza el siguiente formato.
nomregistro.nombredelcampo
Ejemplo.
Prog18.html
<HTML> <FORM ACTION=/~tusitio/cgi-bin/prog18.cgi METHOD=post> MATRICULA:<INPUT TYPE=text NAME=MATRICULA><BR> NOMBRE...:<INPUT TYPE=text NAME=NOMBRE><BR> EDAD.....:<INPUT TYPE=text NAME=EDAD><BR> <INPUT TYPE=submit VALUE=OK> </FORM></HTML>
corrida:
prog18.cpp
#include <string>
#include <iostream>
#include <lcnet.h>
using namespace std;
struct {
int matricula;
string nombre;
int edad;}alumno;
int main() {
// captura de campos
alumno.matricula = getinteger("MATRICULA");
alumno.nombre= getstring("NOMBRE");
alumno.edad = getinteger("EDAD");
// area de operaciones
alumno.edad = alumno.edad * 12;
// area de construccion de pagina de salida
cout << "Content-type: text/html\n\n";
cout << "<html>" << endl;
cout << " MATRICULA =" << alumno.matricula << "<br>" << endl;
cout << " NOMBRE =" << alumno.nombre << "<br>" << endl;
cout << " MESES =" << alumno.edad << "<br>" << endl;
cout << "</html>" << endl;
exit (0);
}
corrida:
Las operaciones mas elementales con los campos de una estructura incluyen captura e inicialización.
TAREA Crear un registro de alumno con 3 califaciones.
TAREA Declarar un registro de empleado capturar y desplegar un numero indeterminado de veces.
TAREA Capturar un registro local de un producto en el principal, mandarlo como parametro a un procedimiento y desplegarlo.
TAREA Capturar un registro local en el principal, mandar el sueldo a una funcion que le aumente el 25% y desplegar en el principal.
TAREA Capturar en principal un registro local de cuentas por cobrar, mandar a un procedimiento e imprimir un aviso si el saldo esta atrasado.