Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONSULTA N°1.U3
TEMA:
ESTRUCTURAS EN C
AUTORES:
Jean Pierre Ruiz Espinoza
Darwin Casco
DOCENTE:
Gloria Ivone Arias.
NRC:
2601
Carrera:
Mecatrónica
Nivel:
Segundo
Paralelo:
“A”
Período Académico
PREGRADO S-I MRZ19 - JUL19
OBJETIVOS
Objetivo General
Objetivos Específicos
Realizar ejercicios que fortalezcan la agilidad para usar la herramienta de las estructuras
Mostrar la teoría correspondiente a cada utilidad de las estructuras
Realizar el código de un programa donde se apliquen la mayoría de los conocimientos
adquiridos.
MARCO TEÓRICO
1. Concepto de Estructuras en C
Las estructuras conocidas generalmente con el nombre de registros representan un tipo de
datos estructurados. Se utilizan para resolver problemas que involucran tipos de datos
estructurados, heterogéneos. (Kesquivel, 2013)
Cada definición de variable para una estructura dada crea un área en memoria en donde los
datos se almacenan de acuerdo con el formato estructurado declarado.
Las variables de estructuras se pueden definir de dos formas:
Ejemplo:
Vamos a declarar la estructura Alumno, la cual contara con varias variables dentro de sí:
Primera Forma
Struct Alumno
{
char num_carne[11];
char nombre_alumno[60];
int edad;
char dirección [60];
}alum1,alum2,alum3;
Segunda Forma
Struct Alumno alum1, alum2, alum3;
main(){
printf("Titulo del libro: %s\n",libro1.titulo_lib);
printf("Autor del libro: %s\n",libro1.autor);
printf("Editorial del libro: %s\n",libro1.editorial);
printf("Fecha de edicion: %d\n",libro1.fecha);
}
EJECUCIÓN
Ejemplo #2: Este programa permite visualizar el tamaño en bytes de una estructura
CÓDIGO
#include<stdio.h>
struct persona{
char nombre[30];
int edad;
float altura;
float peso;
};
main(){
struct persona per;
printf("El tamayo en bytes de struct(persona) es %d\n",sizeof(per));
}
EJECUCIÓN
5. Acceso a una estructura de datos mediante el operador punto:
La asignación de datos a los miembros de una variable estructura se puede hacer mediante
el operador punto. (Platea, 2011)
La sintaxis en C es la siguiente:
<Nombre variable estructura>.<Nombre miembro de la estructura>=datos;
Ejemplos:
strcpy(libro1.titulo_lib,”C-C++”);
strcpy(libro1.autor,”Francisco Javier Ceballos”);
strcpy(libro1.editorial,”RA-MA”);
libro1.anyo=2002;
Ejemplo #3: Este programa lee del teclado los datos de una variable de tipo estructura
llamada “trabajadores” y los visualiza utilizando el operador punto para acceder a los
datos miembros de la estructura.
CÓDIGO
#include<stdio.h>
struct trabajadores{
char nombre[30];
int edad;
};
main(){
struct trabajadores tra;
printf("\nIntroduce el nombre del trabajor:\n");
gets(tra.nombre);
printf("\nIntroduce la edad del trabajador:\n");
scanf("%d",&tra.edad);
printf("\n\n");
printf("DATOS DE TRABAJADOR \n");
printf("\nNombre: %s\n", tra.nombre);
printf("Edad: %d\n",tra.edad);
return 0;
}
EJECUCIÓN
Ejemplo #4: Este programa lee del teclado los datos de una variable tipo struct
llamada “estudiante”, calcula e imprime el promedio de las 5 calificaciones de un
estudiante.
CÓDIGO
#include<stdio.h>
#include<string.h>
typedef struct estudiante{
char nombre[30];
char num_carne[11];
int nota[5];
}estud;
main(){
estud est;
int n,sum=0;
float prom;
printf("Nombre Estudiante:");
gets(est.nombre);
printf("Numero de Carnet:");
fflush(stdin);
gets(est.num_carne);
printf("Ingrese las 5 calificaciones:\n");
for(n=0;n<5;n++){
printf("Nota [%d]:",n+1);
scanf("%d",&est.nota[n]);
sum=sum+est.nota[n];
}
prom=(float)sum/5;
main(){
struct estudiante est,*ptr_est;
ptr_est=&est;
int n,sum=0;
float prom;
printf("Nombre Estudiante:");
gets(ptr_est->nombre);
printf("Numero de Carnet:");
fflush(stdin);
gets(ptr_est->num_carne);
printf("Ingrese las 5 calificaciones:\n");
for(n=0;n<5;n++){
printf("Nota [%d]:",n+1);
scanf("%d",&ptr_est->nota[n]);
sum=sum+ptr_est->nota[n];
}
prom=(float)sum/5;
9. Estructuras anidadas
Una estructura puede contener otras estructuras llamadas estructuras anidadas, las cuales
ahorran tiempo en la escritura de programas que utilizan estructuras similares. Se han de
definir los miembros comunes sólo una vez en su propia estructura y a continuación utilizar
esa estructura como miembro de otra estructura. (Kesquivel, 2013)
char nombre[30];
char telefono[11];
struct fecha f_cumple;
}agenda;
main(){
agenda one;
printf("Nombre:");
scanf("%s",one.nombre);
printf("Telefono:");
scanf("%s",one.telefono);
fflush(stdin);
printf("fecha de Nacimiento(dd-mm-aa):");
scanf("%d %d %d",&one.f_cumple.mes,&one.f_cumple.dia,&one.f_cumple.anyo);
printf("\n---DATOS DE CONTACTO---\n");
printf("Nombre: %s\n",one.nombre);
printf("Telefono: %s\n",one.telefono);
printf("Fecha de Cumpleanios: %d-%d-
%d\n",one.f_cumple.dia,one.f_cumple.mes,one.f_cumple.anyo);
return 0;
}
EJECUCIÓN
Ejemplo #7: Programa que permite el ingreso de N notas de los nombre y edades de N
estudiantes y además calcular el promedio de las notas ingresadas, todo basándose en
el uso de un vector de estructura.
CÓDIGO
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct datos{
int edad;
char nombre[30];
char apellido[30];
int calificacion[100];
float promedio;
}alum[100];
main(){
int num_cal,num_al;
printf("---ESTE PROGRAMA PERMITE INGRESAR DATOS DE LOS
ALUMNOS QUE DESEE Y CALCULA EL PROMEDIO DE SUS NOTAS---");
printf("\n---Ingrese el numero de alumnos---\n");
scanf("%d",&num_al);
printf("---Ingrese el numero de calificaciones por cada alumno---\n");
scanf("%d",&num_cal);
printf("\n\n");
for(int i=0;i<num_al;i++){
printf("Alumno [%d]",i+1);
fflush(stdin);
printf("\nIngrese Nombre:");
gets(alum[i].nombre);
fflush(stdin);
printf("Ingrese Apellido:");
gets(alum[i].apellido);
printf("Ingrese Edad:");
scanf("%d",&alum[i].edad);
for(int j=0;j<num_cal;j++){
printf("Ingrese calificacion N[%d]:",j+1);
scanf("%d",&alum[i].calificacion[j]);
}
printf("\n\n");
}
float sum=0,prom;
for(int i=0;i<num_al;i++){
for(int j=0;j<num_cal;j++)
sum=sum+alum[i].calificacion[j];
prom=(float)sum/num_cal;
alum[i].promedio=(float)prom;
}
printf("\n---RESULTADOS---\n");
printf("\n# de Alumno Nombre y Apellido Edad
Promedio\n");
for(int i=0;i<num_al;i++){
printf("[%d] %s %s %d
%.2f\t\n",i+1,alum[i].nombre,alum[i].apellido,alum[i].edad,alum[i].promedio);
}
}
EJECUCIÓN
CONCLUSIONES
Tras una ardua tarea de realización y ejecución de los ejemplos correspondientes a cada
utilidad de las estructuras en C es posible finalizar reflexionando que estas resultan
extremadamente útiles para minimizar el número de líneas que el programador requiere
cuando realiza un programa.
RECOMENDACIONES
Se recomienda seguir buscando aplicaciones a las estructuras en C, pues existe una gran
cantidad de problemas cuya resolución programable puede ser reducida.
BIBLIOGRAFÍA
Fing. (16 de Marzo de 2012). Principios de Programación. Recuperado el 1 de Julio de 2019, de El
lenguaje C: https://www.fing.edu.uy/tecnoinf/mvd/cursos/prinprog/material/teo/prinprog-
teorico08.pdf
Platea. (16 de Junio de 2011). PNTIC. Recuperado el 1 de Julio de 2019, de Cadenas de texto:
http://platea.pntic.mec.es/vgonzale/cyr_0204/cyr_01/control/lengua_C/cadenas.htm
Villa, D. (19 de Mayo de 2013). Arco. Recuperado el 1 de Julio de 2019, de Usar struct para combinar
variables: http://arco.esi.uclm.es/~david.villa/pensar_en_C++/vol1/ch03s08s02.html