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:

image66.jpg

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:

image67.jpg

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.

Politica de Privacidad