Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)
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.
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.
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("*************************************************************************
*****\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.
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;
}