0% encontró este documento útil (0 votos)
47 vistas4 páginas

Estructuras en Lenguaje C: Definición y Uso

El documento describe las estructuras en C, incluyendo su definición, inicialización, acceso a miembros, uso en funciones y el tipo typedef. Las estructuras permiten agrupar variables de diferentes tipos bajo un nombre.

Cargado por

IsabelAguirre
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas4 páginas

Estructuras en Lenguaje C: Definición y Uso

El documento describe las estructuras en C, incluyendo su definición, inicialización, acceso a miembros, uso en funciones y el tipo typedef. Las estructuras permiten agrupar variables de diferentes tipos bajo un nombre.

Cargado por

IsabelAguirre
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Lenguaje C

Cap 3 Estructuras
1. Las estructuras son colecciones de variables relacionadas bajo un [Link]
estructuras pueden contener variables de muchos tipos diferentes de datos a diferencia
de los arreglos que contienen unicamente elementos de un mismo tipo de datos.
1.1. Definicion de estructuras, Las estructuras son tipos de datos derivados- están
construidas utilizando objetos de otros tipos. Considere la siguiente definición de
estructura:
struct ejemplo{
char c;
int i;
};
La palabra reservada struct indica se está definiendo una estructura. El identificador
ejemplo es el nombre de la estructura. Las variables declaradas dentro de las llaves de la
definición de estructura son losmiembrosde la es-tructura. Los miembros de la misma
estructura deben tener nombres ́unicos mientras que dos estructuras diferentes pueden
tener miembros con el mismo nombre. Cada definición de estructura debe terminar con un
punto y coma. La definición de struct ejemplo contiene un miembro de tipo char y otro de
tipo int. Los miembros de una estructura pueden ser variables de los tipos de datos
básicos (int, char, float,etc) o agregados como ser arreglos y otras estructuras. Una
estructura no puede contener una instancia de si misma. Declaramos variables del tipo
estructura del siguiente modo: struct ejemplo e1, a[10]; o alternativamente sin usar la
palabra struct: ejemplo e1, a[10]; Las declaraciones anteriores declaran variables e1 de
tipo ejemplo y a de tipo arreglo de ejemplo de dimensión 10. Se pueden declarar variables
de tipo estructura ejemplo colocando sus nombres a continuación de la llave de cierre de
la definición de estructura y el punto y coma, en el caso anterior:
struct ejemplo{ char c;int i;} e1, a[10];
Una operación válida entre estructuras es asignar variables de estructura avariables de
estructura del mismo tipo. Las estructuras no pueden compararse entre si. Ejemplo
Consideremos la informaci ́on de una fecha. Una fecha consiste de: el día, el mes, el año
y posiblemente el día en el año y el nombre del mes. Declaramos toda esa información en
una estructura del siguiente modo: struct fecha{int dia; int mes; int anio; int diadelanio;
char nombremes[9];}; Un ejemplo de estructura que incluye otras estructuras es la
siguiente estructura persona que incluye la estructura fecha:
struct persona{
char nombre[tamanionombre];
char direccion[tamaniodir];
long codigopostal;
long seguridadsocial;
double salario;
fecha cumpleanios;
fecha contrato;
};

1.2. Cómo inicializar estructuras. Las estructuras pueden ser inicializadas mediante listas
de inicialización como con los arreglos. Para inicializar una estructura escriba en la
declaración de la variable a continuación del nombre de la variable un signo igual con los
inicializadores entre llaves y separados por coma por ejemplo: ejemplo e1 ={’a’, 10}; Si en
la lista aparecen menos inicializadores que en la estructura los miembros restantes son
automaticamente inicializados a 0. Las variables de estructura también pueden ser
inicializadas en enunciados de asignación asignandoles una variable del mismo tipo o
asignandole valores a los miembros individuales de la estructura. Podemos inicializar una
variable del tipo fecha como sigue:struct fecha f ={4, 7, 1776, 186, ”Julio”};

1.3. Cómo tener acceso a los miembros de estructuras. Para tener acceso a miembros de
estructuras utilizamos el operador punto. El operador punto se utiliza colocando el nombre
de la variable de tipo estructura seguido de un punto y seguido del nombre del miembro
de la estructura. Por ejemplo, para imprimir el miembro c de tipo char de la estructura e1
utilizamos el enunciado: printf (” %c”, e1.c); Para acceder al miembro i de la estructura e1
escribimos: e1.i En general, un miembro de una estructura particular es referenciada por
una construcción de la forma: nombre de [Link] por ejemplo para chequear
el nombre de mes podemos utilizar: if (strcmp([Link],“Agosto”)==0) .....

1.4. Cómo utilizar estructuras con funciones Las estructuras pueden ser pasadas a
funciones pasando miembros de estruc-tura individuales o pasando toda la estructura.
Cuando se pasan estructuras o miembros individuales de estructura a una función se
pasan por llamada por valor. Para pasar una estructura en llamada por referencia
tenemos que colocar el ’*’ o ’&’.Los arreglos de estructura como todos los demás arreglos
son automaticamente pasados en llamadas por [Link] quisieramos pasar un arreglo
en llamada por valor, podemos definir una estructura con único miembro el array. Una
función puede devolver una estructura como valor. Ejemplo Consideraremos el ejemplo
de un punto dado por dos coordenadas enteras.
struct punto{
int x;
int y;};

/* creopunto: crea un punto a partir de sus coordenadas */


punto creopunto( int a, int b)
{ punto temp;
temp.x=a;
temp.y=b;
return temp;
}

* sumopuntos: suma dos puntos */


punto sumopuntos(punto p1,punto p2)
{ p1.x += p2.x;
p1.y += p2.y;
return p1;
}

/* imprimopunto: imprime las coordenadas de un punto */


void imprimopunto(punto p)
{ printf(“Coordenadas del punto: %d y %d\n”, p.x, p.y);
}

1.5. Typedef La palabra reservada typedef proporciona un mecanismo para la creación de


sinónimos (o alias) para tipos de datos anteriormente definidos. Por ejemplo:
typedef struct ejemplo
Ejemplo; define Ejemplo como un sinónimo de [Link] forma alternativa de definir
una estrutura es:
typedef struct{char c;int i;} Ejemplo;
Podemos ahora utilizar Ejemplo para declarar variables del tipo struct, por ejemplo
Ejemplo a[10]; typedef se utiliza a menudo para crear seudónimos para los tipos de datos
básicos. Si tenemos por ejemplo un programa que requiere enteros de 4 bytes podría usar
el tipo int en un programa y el tipo long en otro. Para garantizar portabilidad podemos
utilizar typedef para crear un alias de los enteros de 4bytes en ambos sistemas.

Ejemplo:
Leer Datos de un empleado y mostrar la estructura con su contenido (POO, hacer correr):

#include <iostream>
#include <string.h>
using namespace std;
struct Emp
{ char nom[30]; // Nombre del Empleado
char dir[30]; // Dirección
float haba; // Haber básico
int anti; // Antiguedad
int ditr; // días trabajados, en el mes
float desc; // descuentos
}; // fin de la declaración de la estructura Emp
class Empleado
{ public:
Emp E;
Empleado() // Constructor por defecto
{ strcpy([Link], "No Name");
strcpy([Link], "desconocido");
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
}
void LeerE()
{ cout<<"Ingrese Nombre: "; cin>>[Link];
cout<<"Direccion: "; cin>>[Link];
cout<<"Haber Basico: "; cin>>[Link];
cout<<"Antiguedad: "; cin>>[Link];
cout<<"dias trabajados: "; cin>>[Link];
cout<<"Descuentos: "; cin>>[Link];
}
void VerE()
{ cout<<"\n"<<[Link]<<" "<<[Link]<<" "<<[Link]<<" "<<[Link]<<" "
<<[Link]<<" "<<[Link];
}
float LiqPag() // Cálculo del líquido pagable, según criterio
{ float lp;
lp = ([Link]+[Link]*0.05*[Link])*[Link]/30 - [Link];
return lp;
}
}; // fin de la clase Empleado

int main()
{ Empleado E;
[Link]();
[Link]();
return 0;
}

También podría gustarte