Está en la página 1de 11

Universidad tecnológica de Santiago (UTESA)

Recinto Moca

Presentado a:
José Cabrera Núñez

Presentado por:
Madelin María Paulino Rodríguez

Matrícula:
2-16-0521

Asignatura:
Programación I

Trabajo sobre:
Estructura de datos en C

Moca, Espaillat, Rep. Dom.


21/04/2023
Introducción

La estructura de datos se puede definir como una colección organizada


de datos que ayuda a un programa a acceder a los datos de manera
eficiente y rápida para que todo el programa pueda funcionar de manera
eficiente.
En este capítulo vamos a introducirnos en el importante tema del
manejo de las estructuras de datos. Frecuentemente como diseñadores
de software se van a encontrar ante el problema de tener que manejar
conjuntos de datos relacionados entre sí, de diferentes Tipos,
comúnmente llamados registros ,por ejemplo el caso de una agenda
donde tenemos cada registro con : nro teléfono , nombre , apellido,
sexo, dirección, DNI etc…Todos datos asociados a una persona y lo
solucionaremos mediante el uso de estructuras, denominadas “struct”
en Lenguaje C (que veremos detalladamente en los próximos capítulos)
o conjuntos de datos que son del mismo Tipo por ejemplo las notas de
todas las materias que están cursando agrupadas en un arreglo o vector
(denominado “array” en Lenguaje C) en el cual no varía su tamaño o
sea pueden guardar una cantidad definida a priori de datos.
1- ¿Qué son los arreglos?

Los arreglos son estructuras de datos consistentes en un conjunto de


datos del mismo tipo. Los arreglos tienen un tamaño que es la cantidad
de objetos del mismo tipo que pueden almacenar. Los arreglos son
entidades estáticas debido a que se declaran de un cierto tamaño y
conservan este todo a lo largo de la ejecución del programa en el cual
fue declarado.

Un arreglo (matriz) es una colección coordinada de datos (tanto


primitivos u objetos en funcion del lenguaje). Los arreglos (matrices) se
usan como para almacenar multiples valores en una sola cambiante,
frente a las cambiantes que solo pueden guardar un valor estimado (por
cada variable).

2- Importancia de los arreglos

Los arreglos son extremadamente útiles en la programación ya que nos


permiten acceder a grandes cantidades de datos de manera sencilla y
rápida sin gastar mucha memoria.

Los arreglos (matrices) se utilizan para guardar multiples valores en una


sola variable, en frente de las cambiantes que solo pueden guardar un
valor (por cada cambiante). Cada elemento del arreglo (matriz) tiene un
número de teléfono al que está socio, denominado ‘indice numérico’
(numeric index), que permite accesar a él. Su principal desventaja es
que una vez que se declara un arreglo no se puede cambiar su tamaño.
3-Ventajas y desventajas de usar arreglos en c

VENTAJAS:

*Adecuado para almacenar o leer bloques de datos secuenciales muy


grandes, gracias al acceso en paralelo a los discos. Aplicaciones como
grandes bases de datos, imágenes, video o multimedia son las más
beneficiadas.

*Las matrices son fáciles de emplear, ya que muchísimos algoritmos,


como las técnicas de busca y clasificación, la búsqueda de valores
máximos y mínimos, la inversión se están pudiendo incorporar
fácilmente utilizando matrices.

DESVENTAJAS:

*El tamaño de una matriz es fijo.

*Asignar menos memoria de la necesaria a una matriz conduce a la


pérdida de datos.

*Una única matriz no puede guardar evalúes de diferentes tipos de


datos, es decir, una matriz es de naturaleza homogénea.

4-¿Qué son los punteros?

Los punteros son uno de los aspectos más potentes de la programación


en C, pero también uno de los más complejos de dominar. Los punteros
permiten manipular la memoria del ordenador de forma eficiente.

Los punteros son también una de las fuentes de errores más frecuente.
Dado que se manipula la memoria directamente y el compilador apenas
realiza comprobaciones de tipos, el diseño de programas con punteros
requiere una meticulosidad muy elevada que debe ir acompañada de
una dosis idéntica de paciencia. Programar eficientemente usando
punteros se adquiere tras escribir muchas líneas de código pero
requiere una práctica sostenida.

Un puntero es una variable que contiene la dirección de memoria de


otra variable que contiene al dato en un arreglo. Esto quiere decir, que
el puntero apunta al espacio físico donde está el dato o la variable. Un
puntero puede apuntar a un objeto de cualquier tipo, como por ejemplo,
a una estructura o una función. Los punteros se pueden utilizar para
referencia y manipular estructuras de datos, para referenciar bloques de
memoria asignados dinámicamente y para proveer el paso de
argumentos por referencias en las llamadas a funciones.

Los punteros se usan habitualmente como parámetros de funciones. El


siguiente código muestra como declarar una función que usa un puntero
como argumento. Teniendo en cuenta que C pasa todos los argumentos
por valor, para poder modificar un valor desde el código de la función,
se debe usar un puntero al valor a modificar. También se usan punteros
a estructuras como argumentos de una función aun cuando la estructura
no sea modificada dentro de la función. Esto es realizado para evitar
copiar todo el contenido de la estructura dentro de la pila.

int MyFunction( struct MyStruct *pStruct );

5-¿Para qué sirven los punteros en C?

Los punteros se usan ampliamente en C para tres propósitos


principales:

*Para asignar nuevos objetos en el montón,

*Para pasar funciones a otras funciones


*Para iterar sobre elementos en matrices u otras estructuras de datos.

6-Explique y defina qué son las estructuras en C

Las estructuras son colecciones de variables relacionadas bajo un


nombre. Las estructuras pueden contener variables de muchos tipos
diferentes de datos a diferencia de los arreglos que contienen
únicamente elementos de un mismo tipo de datos.

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´a 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 los
miembros de la estructura. Los miembros de la misma estructura deben
tener nombres únicos 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 sí 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 valida entre estructuras es asignar variables de


estructura a variables de estructura del mismo tipo. Las estructuras no
pueden compararse entre sí.

7-Realizar ejemplos de estructuras en C

Simulación de barajar y distribuir cartas

El programa que sigue se basa en la simulación de barajar y distribuir


cartas. El programa representa el mazo de cartas como un arreglo de
estructuras, donde cada estructura contiene el número de la carta y el
palo. Las funciones son: inicializar mazo que inicializa un array de cartas
con los valores de las cartas ordenado del 1 al 12 de cada uno de los
palos, barajar recibe un array de 48 cartas y para cada una de ellas se
toma un número al 4 azar entre el 0 y el 47. A continuación se
intercambia la carta original con la seleccionada al azar. Finalmente la
función imprimir imprime las cartas. Se utiliza para imprimir las cartas
luego de barajar.

#include <stdio.h>

struct carta {

int numero;

char palo[7];};

typedef carta Carta;

typedef char Palo[7];

void inicializar mazo(Carta m[],Palo p[]);

void barajar(Carta m[]);

void imprimo(Carta m[]);

main ()

Carta mazo[48];

Palo p[4] = {“copa”,“oro”,“espada”,“basto”};

srand(time(NULL));

inicializar mazo(mazo,p);

barajar(mazo);

imprimir(mazo);

system(”PAUSE”);

void copiar(char a, char b, int largo)


{

int i;

for (i=0;i < largo;i++)

a[i]=b[i];

void inicializar mazo(Carta m[],Palo p[])

int i;

for (i=0; i < 48;i++)

m[i].numero=(i % 12)+1;

copiar(m[i].palo,p[i/12],7);

void barajar(Carta m[])

int i,j;

Carta temp;

for (i=0; i < 48; i++)

j = rand() % 48;
temp = m[i];

m[i] = m[j];

m[j] = temp;

void imprimir(Carta m[])

int i,j;

char c;

for (i=0; i < 48; i++)

printf (” %i de ”, m[i].numero);

printf (” %s ”, m[i].palo);

printf (”\n”);

}
Conclusión

Con esto, concluimos estos temas tan importantes del lenguaje C.


Sabemos que en el mundo de la programación, los datos son el centro y
todo gira en torno a los datos. Necesitamos realizar todas las
operaciones de datos, incluido el almacenamiento, la búsqueda, la
clasificación, la organización y el acceso a los datos de manera eficiente
y solo entonces nuestro programa puede tener éxito.
Espero le haya gustado esta investigación sobre estos temas.

También podría gustarte

  • Arreglos
    Arreglos
    Documento5 páginas
    Arreglos
    María Rodríguez
    Aún no hay calificaciones
  • Analisis
    Analisis
    Documento14 páginas
    Analisis
    María Rodríguez
    Aún no hay calificaciones
  • Funciones
    Funciones
    Documento9 páginas
    Funciones
    María Rodríguez
    Aún no hay calificaciones
  • Strcat
    Strcat
    Documento16 páginas
    Strcat
    María Rodríguez
    Aún no hay calificaciones
  • Estructuras Textuales y El Ensayo
    Estructuras Textuales y El Ensayo
    Documento11 páginas
    Estructuras Textuales y El Ensayo
    María Rodríguez
    Aún no hay calificaciones
  • Programación
    Programación
    Documento5 páginas
    Programación
    María Rodríguez
    Aún no hay calificaciones