Sunteți pe pagina 1din 10

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA


FUERZA ARMADA
UNEFA
NÚCLEO ARAGUA – SEDE MARACAY

DATOS COMPLEJOS Y SISTEMAS DE ARCHIVOS

Profesor: Estudiante:
Eddy Velásquez María Escalona C.I: 26.570.561
Ingeniería Aeronáutica
Maracay, mayo de 2018
DATOS COMPLEJOS
Definición
Para iniciar, es importante saber que es un “dato”. Los datos son caracteres que pueden
ser manipulados por la computadora, esta información es suministrada vía teclado, se
almacena en la computadora (un disco o memoria)

La combinación de varios datos simples (como enteros, flotantes, caracteres, etc.), de


datos primitivos (esto quiere decir que están predefinidas en el lenguaje y por lo tanto
no tiene una “descomposición”) o como también otros tipos complejos, se pueden
definir como datos complejos. Cabe agregar que dichos datos están orientados a
objetos.

Los datos complejos se dividen en colas, pilas, listas, arboles y grafos. Los tres
primeros se pueden clasificar como estructuras lineales, y los últimos dos se pueden
definir como estructuras no lineales.

Estructura de datos lineales


Pilas
Para tener una idea básica de una pila podemos utilizar un ejemplo de la vida diaria,
cuando vamos a un supermercado y las cajas de cereal están ubicadas una encima de la
otra, para poder obtener una se toma la ultima hacia arriba, ya que, si queremos tomar
una del medio o abajo, la pila de cajas de caerá.

Siendo así, las pilas son un tipo de dato complejos no lineal que nos permite insertar,
almacenar y recuperar datos, esto solo se puede hacer desde uno de los extremos. De
esta forma el ultimo elemento insertado en la pila, será el primer elemento es ser
retirado, es decir que es de tipo L.I.F.O (Last In, First Out) o en español, “ultimo en
entrar, primero en salir”.

Cola
Con este tipo de dato complejo, los elementos se insertan solamente por en lado de la
estructura y se extraen por el otro lado. De esta forma, tampoco podemos llegar a
cualquier elemento de la estructura de manera directa, igual que en las pilas, tenemos
que empezar a buscar el elemento que queremos desde uno de los extremos hasta llegar
a dicho elemento.
Este tipo de dato se clasifica como F.I.F.O (First In, First Out) o en español “Primero
en entrar, Primero en salir”. De esta manera los elementos se ingresan por el frente de
la estructura, de esta manera si se crea un elemento nuevo, este será insertado en la
estructura y quedará de ultimo.

Listas
Se definen a las listas como datos complejos los cuales son una estructura fundamental,
ya que se pueden utilizar otras estructuras de datos, además de que algunos lenguajes
de programación tienen plantillas predeterminadas con referencias para las listas
enlazadas. Las listas contienen nodos los cuales almacenan información, también
contienen datos y enlaces. Una ventaja de en este tipo de datos es que los elementos se
pueden almacenar en un orden diferente al ingresado originalmente.

Estructura de datos no lineales


Árbol
Estos son las estructuras de datos complejos que se utilizan mas frecuentemente, pero
a pesar de esto, son uno de los mas complejos, esto debido a que almacena a los
elementos de forma diferente a las listas, colas y pilas, ya que almacena a los elementos
de forma jerárquica.

En las estructuras de árbol, existen nodos (los cuales son los elementos del árbol), que
están conectadas por aristas. Estas estructuras contienen Nodo Raiz (primer nodo),
Nodo Padre (tiene hijos), Nodo Hijo (tienen un padre y están ubicados a la misma
altura), Nodo Hermano (tienen el mismo padre), Nodo Hoja (no tienen hijos) y por
último está el Nodo Rama (no son raíz y tienen un hijo).

Grafos
La estructura de los grafos son el resultado de la combinación de puntos y líneas en el
espacio, estos se llaman vértices y aristas respectivamente. Si los grafos contienen
flechas, se puede decir que tienen dirección o que es un grafo dirigido.

Para iniciar, los vértices son los nodos que conforman un grafo, estos nodos contienen
información, por otro lado, las aristas son los caminos que contienen los nodos para
poder unirse, las aristas pueden contener información o no. Si ambos componentes
tienen información, se les conoce como grafo pesado.

PROGRAMA EN LENGUAJE C
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
printf("*************************************************************************
*****\n");

printf("* Programa para calcular la media de edad de los pacientes de


un laboratorio *\n");

printf("*************************************************************************
*****\n");

printf("* Se muestra el orden de los datos en las diferentes


estructuras: *\n");
printf("* Pila, Cola, Lista y Arbol *\n");

printf("*************************************************************************
*****\n");
int x;
float tabla[1000];
float sum,div, n;
printf(" Ingrese el numero de pacientes: ");
scanf("%f", &n);

for (x=1;x<=n;x++)
{
printf(" Introduzca la edad del paciente n-%d: ",x);
scanf("%f",&tabla[x]);
}

sum=0;

for (x=1;x<=n;x++)
{
sum=sum+tabla[x];
}
div=sum/n;
printf(" la media de edad es: %.2f \n",div);
printf(" Los datos en forma de pila es :\n");
for (x=n;x>=1;x--)
{
printf("%.0f\n",tabla[x]);
}
printf(" Los datos en forma de cola es :\n");
for (x=n;x>=1;x--)
{
printf(" %.0f ",tabla[x]);
}
printf("\n");
printf(" Los datos en forma de lista es :\n");
for (x=1;x<=n;x++)
{
printf(" %.0f ",tabla[x]);
}
printf("\n");
printf(" Los datos en forma de arbol es :\n");
printf(" %.0f\n", tabla[1]);

for (x=2;x<=3;x++)
{
printf(" %.0f",tabla[x]);
}
printf("\n");
for (x=4;x<=7;x++)
{
printf(" %.0f",tabla[x]);
}
printf("\n");
for (x=8;x<=15;x++)
{
printf(" %.0f",tabla[x]);
}
return 0;
}
SISTEMAS DE ARCHIVOS
Los sistemas de archivos son las estructuras de datos que suministra los medios
utilizados para acceder a los datos, estos pueden estar almacenados en la memoria
RAM o en el disco duro.

Archivo secuencial
Este tipo de archivo se denomina de esta manera porque los datos se escriben y leen
desde el principio hasta el final, no se pueden acceder a los datos intermedios
directamente, para poder acceder a un dato que por ejemplo este a la mitad, se debe
pasar por todos los datos hasta llegar al dato requerido.

Archivo secuencial indexado


Los archivos secuenciales indexados conservan las particularidades de los archivos
secuenciales. Los archivos secuenciales indexados contienen índices que permite el
fácil acceso a los datos registrados en el almacenamiento, de esta forma se pueden
organizar los archivos de la manera que más convenga.

Archivos directos
Para este tipo de archivo se requiere de campos claves para los registros, tan como en
los archivos secuenciales y secuenciales indexados. Este tipo de archivo también se
conoce como archivo disperso, de esta manera se utiliza la capacidad del disco de
almacenamiento para conseguir de forma directa a los bloques con dirección conocida.

PROGRAMA EN LENGUAJE C
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf("*******************************************************************\n");
printf("* Programa para el registro de pacientes en un laboratorio
*\n");
printf("*******************************************************************\n");
FILE*m;
char nombre[80], apellido[30], leido[2000000], edad[30];
char espacio=' ';
int salida;
printf(" Introduzca el nombre, apellido y la edad del paciente\n");
do {
printf(" Nombre: ");
scanf("%s", nombre);
printf(" Apellido: ");
scanf("%s", apellido);
printf(" Edad: ");
scanf("%s", edad);
m=fopen("pacientes.txt","a+");
fputs(nombre,m);
fputs(&espacio,m);
fputs(apellido,m);
fputs(&espacio,m);
fputs(edad,m);
fputs(&espacio,m);
fclose(m);
printf(" Paciente registrado!!!\n");
printf(" Introduzca 1 para continuar en el programa, cualquier otro numero
para salir\n");
scanf("%d", &salida);
} while(salida==1);
m=fopen("pacientes.txt","r");
fgets(leido,sizeof(leido)/sizeof(char),m);
fclose(m);
printf(" El registro de pacientes es: %s \n",leido);
return 0;
}

S-ar putea să vă placă și