Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Estructuras de Datos: Sintaxis y Uso de Estructuras en C, Guías, Proyectos, Investigaciones de Programación C

La conceptación de estructuras de datos en C, su sintaxis y cómo definir, declarar y acceder a sus miembros. Además, se presentan conceptos relacionados como typedef, estructuras anidadas, memoria dinámica y arreglos de estructuras.

Tipo: Guías, Proyectos, Investigaciones

2019/2020

Subido el 06/09/2021

cuenta-9
cuenta-9 🇲🇽

5 documentos

1 / 26

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Estructuras
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Vista previa parcial del texto

¡Descarga Estructuras de Datos: Sintaxis y Uso de Estructuras en C y más Guías, Proyectos, Investigaciones en PDF de Programación C solo en Docsity!

Estructuras

Definición

Son colecciones de variables

relacionadas bajo un nombre pueden

ser de diferente tipo de datos

generalmente se utilizan para definir

registros que van a almacenarse a un

archivo.

struct alumno { int edad; char nombre[30]; struct alumno persona; // error de

instancia

struct alumno *ptrE; //puntero };

Variables a estructuras

Estas pueden declararse colocando

una lista separadas por comas con

los nombres de las variables entre

la llave que ciérrala definición de la

estructura y el punto y coma que

finaliza la definición dela

estructura.

struct alumno
int edad;
char nombre[30];
} x, y, z ;

malloc sirve para solicitar un bloque de memoria del tamaño

suministrado como parámetro. Devuelve un puntero a ala zona
de memoria concedida.

 (^) El tamaño se especifica en bytes.  El problema de malloc es conocer cuántos bytes se requieren reservar. Si se quiere reservar una zona para diez enteros, habrá que multiplicar diez por el tamaño de un entero.  (^) El tamaño de char siempre es 1.

Memoria dinámica: malloc, sizeof y free

int* dato_simple; dato_simple = (int) malloc(3sizeof(int)); Conversor explícito (opcional)

Se esta reservando memoria
para 3 datos int.

Tamaño Tipo

/*Programa
para
determinar
el tamaño de
una
estructura*/
#include <stdio.h>
struct persona
char nombre[30];
int edad;
float altura;
main()
struct persona mar;
printf("sizeof(persona): %d\n",
sizeof(mar));
system("PAUSE");

Typedef

Permite crear un sinónimo de un tipo de dato

definido por el usuario de unt tipo ya

existente.

Sintaxis:

typedef tipo_de_dato_definido

nuevo_nombre

struct empleado Ejemplo

{ char nombre_empleado[50]; char direccion[25]; char ciudad[20]; char provincia[20]; long int cod_postal; double salario; }; struct cliente { char nombre_cliente[50]; char direccion[25]; char ciudad[20]; char provincia[20]; long int cod_postal; double saldo; }; struct info_dir { char direccion[25]; char ciudad[20]; char provincia[20]; long int cod_postal; }; struct empleado { char nombre_empleado[50]; struct info_dir direccion_empleado; double salario; }; struct cliente { char nombre_cliente[50]; struct info_dir direccion_cliente; double saldo; };

#include <stdio.h> #include <time.h> struct fecha { unsigned int mes, dia, anyo; }; struct tiempo { unsigned int horas, minutos; }; enum tipo_operacion {deposito, retirada, aldia, estado}; typedef struct fecha Fecha; typedef struct tiempo Tiempo; typedef enum tipo_operacion TipOperacion; struct registro_operacion { long int numero_cuenta; float cantidad; TipOperacion operacion; Fecha f; Tiempo t; }; Programa que diseña una estructura con información de operaciones financieras

RegistrOperacion entrada(void) { int x, y, z; RegistrOperacion una; printf("\n Numero de cuenta: "); scanf("%ld",&una.numero_cuenta); puts("\tTipo de operacion: "); puts("Deposito(0)"); puts("Retirada de Fondos(1)"); puts("puesta al dia(2)"); puts("Estado de la cuenta(3)"); scanf("%d",&una.operacion); printf("\n Fecha (dia mes año"); scanf("%d %d %d",&una.f.dia,&una.f.mes,&una.f.anyo); printf("Hora de la operacion (hora minuto)"); scanf("%d %d", &una.t.horas,&una.t.minutos); return una; }

/Ejemplo de punteros a estructuras/** #include <stdio.h> struct fecha { unsigned int dd; unsigned int mm; unsigned int aa; }; void escribir(struct fecha *f); main() { struct fecha *hoy; hoy = (struct fecha *)malloc(sizeof(struct fecha)); printf("Introduzca la fecha (dd-mm-aa): "); scanf("%u -%u -%u",&hoy->dd,&hoy->mm, &hoy->aa); system("CLS"); escribir(hoy); system("PAUSE"); } void escribir (struct fecha *f) { printf("Dia %u del mes %u del anyo 20%u\n", f->dd,f->mm,f-

aa); }

/entrada de datos/ system("CLS"); printf("Finalizar la entrada de datos con ^Z\n\n"); printf("Nombre "); fin = gets(alumnos[n].nombre); while(n<NA && fin !=NULL) { printf("\nCalificacion: "); scanf("%f",&alumnos[n++].calificacion); fflush(stdin); system("CLS"); printf("Nombre "); fin= gets(alumnos[n].nombre); }

/Escribe resultados/ system("CLS"); for(i=0;i<n;i++) { if(alumnos[i].calificacion>=70) aprobados++; else reprobados++; } printf("\n la cantidad de aprobados es %d %\n", aprobados); printf("\n la cantidad de reprobados es %d %\n\n\n", reprobados); system("PAUSE"); }