24
ESTRUCTURA DE DATOS I ESTRUCTURA DE DATOS I MEMORIA SIMULADA MEMORIA SIMULADA EXPOSITOR: EXPOSITOR: Ing. Evans Balcazar Veizaga Ing. Evans Balcazar Veizaga ESTRUCTURA DE DATOS MODELO SIMULADO

Modelo Simulado

Embed Size (px)

Citation preview

Page 1: Modelo Simulado

ESTRUCTURA DE DATOS IESTRUCTURA DE DATOS IMEMORIA SIMULADAMEMORIA SIMULADA

EXPOSITOR:EXPOSITOR:

Ing. Evans Balcazar VeizagaIng. Evans Balcazar VeizagaESTRUCTURA DE DATOS

MODELO SIMULADO

Page 2: Modelo Simulado

Introducción: Introducción:

Modelo es una representación de un objeto, sistema o Modelo es una representación de un objeto, sistema o idea de forma diferente a la de identidad mismaidea de forma diferente a la de identidad misma

Por lo general el modelo nos ayuda a entender y Por lo general el modelo nos ayuda a entender y mejorar un sistemamejorar un sistema

¿Qué es Modelo?¿Qué es Modelo?

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 3: Modelo Simulado

¿¿Qué es Simulación?Qué es Simulación?

La simulación es el diseñar y desarrollar un La simulación es el diseñar y desarrollar un modelo computarizado de un sistema o proceso y modelo computarizado de un sistema o proceso y conducir experimentalmente con este modelo con conducir experimentalmente con este modelo con el propósito de entender el comportamiento del el propósito de entender el comportamiento del sistema del mundo real o evaluar varias sistema del mundo real o evaluar varias estrategia con los cuales puedan operar el sistema.estrategia con los cuales puedan operar el sistema.

Introducción: Introducción:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 4: Modelo Simulado

¿Qué es una Memoria?¿Qué es una Memoria?

Memoria (informática), los circuitos que permiten Memoria (informática), los circuitos que permiten almacenar y recuperar la información. En un sentido almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de externos de almacenamiento, como las unidades de disco o de cinta. Por lo general se refiere sólo al disco o de cinta. Por lo general se refiere sólo al semiconductor rápido de almacenaje (RAM) semiconductor rápido de almacenaje (RAM) conectado directamente al procesador. Véase también conectado directamente al procesador. Véase también Ordenador o computadora; RAM; ROM.Ordenador o computadora; RAM; ROM.

Introducción:Introducción:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 5: Modelo Simulado

Introducción:Introducción:Simulación es la fase que designa el complejo de actividades Simulación es la fase que designa el complejo de actividades asociadas a la construcción de modelos de sistemas reales y asociadas a la construcción de modelos de sistemas reales y su simulación en el computadorsu simulación en el computador.. La simulación o implementación de una estructura de datos se La simulación o implementación de una estructura de datos se supone que se hará sobre una máquina, computadora, supone que se hará sobre una máquina, computadora, determinada, y lógicamente empleando un programa. Para determinada, y lógicamente empleando un programa. Para hacer este programa será necesario un lenguaje y este lenguaje hacer este programa será necesario un lenguaje y este lenguaje tendrá "primitivos", estructuras de datos estándar que son las que tendrá "primitivos", estructuras de datos estándar que son las que se deberán emplear para realizar la tarea de simulación o se deberán emplear para realizar la tarea de simulación o implementación. implementación.

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 6: Modelo Simulado

Como en la mayor parte de los casos, al hacer un programa Como en la mayor parte de los casos, al hacer un programa que simule una estructura se deberá elegir la estructura de que simule una estructura se deberá elegir la estructura de datos que más convenga y se tendrá que considerar:datos que más convenga y se tendrá que considerar: el tiempo: el tiempo:

De realización del programa. De realización del programa. Que toma el programa para ejecutarse. Que toma el programa para ejecutarse.

el espacio: el espacio: De almacenamiento de los datos. De almacenamiento de los datos. De almacenamiento del programa. De almacenamiento del programa.

Introducción:Introducción:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 7: Modelo Simulado

Definición:Definición:Como definición podemos decir que este tipo de Modelo de Como definición podemos decir que este tipo de Modelo de Representación Simula el proceso de pedido de memoria al S.O. y la Representación Simula el proceso de pedido de memoria al S.O. y la liberación de la misma (no pide directamente al S.O. sino que liberación de la misma (no pide directamente al S.O. sino que construye un programa full de memoria, cuando pide memoria va construye un programa full de memoria, cuando pide memoria va entonces al programa que se ha creado) .entonces al programa que se ha creado) .

Se característica porque la administración de la memoria es realizada Se característica porque la administración de la memoria es realizada por el mismo programador utilizando una estructura que me permite por el mismo programador utilizando una estructura que me permite dar y eliminar espacios de memoria.dar y eliminar espacios de memoria.

Un modelo es la representación de una estructura de datos dinámicas Un modelo es la representación de una estructura de datos dinámicas mediante (arreglos) para lo cual el arreglo simulara el papel de mediante (arreglos) para lo cual el arreglo simulara el papel de memoria, mientras que los cursores asumirán el papel de punteros por memoria, mientras que los cursores asumirán el papel de punteros por lo que el cursor apunta a una variable entera. lo que el cursor apunta a una variable entera.

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 8: Modelo Simulado

¿Que es un cursor?¿Que es un cursor?

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 9: Modelo Simulado

Un cursor es:Un cursor es:

Un mecanismo que se utiliza para simular los Un mecanismo que se utiliza para simular los punteros en lenguajes que no los poseen. Por ello, punteros en lenguajes que no los poseen. Por ello, son poco usados en Pascal, que sí tiene punteros.son poco usados en Pascal, que sí tiene punteros.

Un cursor es un entero que apunta e indica el Un cursor es un entero que apunta e indica el numero de la casilla del arrays donde esta el dato.numero de la casilla del arrays donde esta el dato.

La memoria a usar solo puede reservarse en La memoria a usar solo puede reservarse en tiempo de compilación.tiempo de compilación.

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 10: Modelo Simulado

Uso de Cursores:Uso de Cursores:El termino cursor es considerado hoy en día consiste El termino cursor es considerado hoy en día consiste básicamente en simular los punteros por medio de básicamente en simular los punteros por medio de números enteros y un almacenamiento por un vector números enteros y un almacenamiento por un vector Cursor puntero simulado.Cursor puntero simulado.Para efecto de programación un puntero es un número Para efecto de programación un puntero es un número entero, es decir es el número de la casilla del vector que entero, es decir es el número de la casilla del vector que hace a la vez de almacenamiento (Sbage-Rool) hace a la vez de almacenamiento (Sbage-Rool)

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 11: Modelo Simulado

Uso De Cursores:Uso De Cursores: El cursor apunta a una variable entera.

Puntero.- Es un tipo de variable que se utiliza para almacenar la dirección de memoria de otra variable.

Cursor y puntero .- se puede decir que son equivalentes , es decir un puntero es equivalente a un cursor

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 12: Modelo Simulado

typedef int Tipo, Puntero;struct Nodo{ Tipo data; int PNodo;};const tierra = -1 ,Max = 10;static int av, inicializado = 0;static Nodo AB[Max];

static void inicializar();int almacLleno();void crearNodo(Puntero &p);void retornarNodo(Puntero p);void ponerData(Puntero p, Tipo dato);void ponerPNodo(Puntero p,Puntero q);Tipo data(Puntero p);Puntero PNodo(Puntero p);int vacia();

Nodo:Nodo:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 13: Modelo Simulado

Nodo:Nodo:#include "Nodo_Simulado.h"static void inicializar(){ for( int i=0; i<=Max-1; i++ ) AB[i].PNodo=i+1; AB[Max].PNodo = tierra; av = 0;}Tipo almacLleno(){ return( av == tierra);}void ponerData( Puntero p, Tipo dato ){ AB[p].data = dato ;}void ponerPNodo( Puntero p, Puntero q ){ AB[p].PNodo = q;}

void crearNodo(Puntero &p){ if( almacLleno() ) { ShowMessage("crearNodo: almacenamiento lleno"); exit(1); } if(inicializado == 0) { inicializar(); inicializado = 1; } p = av; av = AB[ax].PNodo;}void retornarNodo( Puntero p ){ AB[p].Pnodo=av; av=p;}ESTRUCTURA DE DATOS

MODELO SIMULADO

Page 14: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional:#pragma argsusedvoid main(){puntero p; string si; cout<<" SIMULACION DE UNA LISTA ENLAZADA"<<endl; cout<<endl<<endl<<"si desea empezar con la simulacion "<<endl; cout<<"presione ' 1 ' caso contrario ' 2 ' "; cin>>si; if(si == "1") { cout<<endl<<endl<<endl; cout<<"Presione ' a ' poner otro elemnto"<<endl; cout<<"Presione ' s ' sacar un elemnto"<<endl; cout<<"Presione ' x ' para terminar la simulacion ";

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 15: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional: cin>>si; int fin =0; while(si != "x") { if (si == "a") { CrearNodo(p); tipo dato;cout<<"cual es el elemento: "; cin>>dato; PonerData(p,dato); cout<<"la lista actual es : "<<endl<<endl<<endl; fin++; VerLista(fin); cout<<endl<<endl; VerMemoria(); p++; }

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 16: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional: else {

puntero aux; cout<<"Cual elemnto desea Eliminar: "; cin>>aux; aux--; if(aux == 0) { PonerLink(aux+1,aux+2); CambiarInicio(); p--; fin--; VerLista(fin); cout<<endl<<endl; VerMemoria(); } ESTRUCTURA DE DATOS

MODELO SIMULADO

Page 17: Modelo Simulado

else { PonerLink(aux-1,aux+1); p--; fin--; VerLista(fin); cout<<endl<<endl; VerMemoria(); } } cout<<endl<<endl<<endl; cout<<"Presione ' a ' poner otro elemnto"<<endl; cout<<"Presione ' s ' sacar un elemnto"<<endl; cout<<"Presione ' x ' para terminar la simulacion "; cin>>si; //p++; } } cout<<endl<<endl<<" fin de la simulacion"<<endl; cout<<" presione entrar para terminar"<<endl; getch(); }

Ejemplo Funcional:Ejemplo Funcional:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 18: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 19: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 20: Modelo Simulado

Ejemplo Funcional:Ejemplo Funcional:

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 21: Modelo Simulado

Ventajas:Ventajas:Es que puede ser utilizado cuando el lenguaje de programación que estamos Es que puede ser utilizado cuando el lenguaje de programación que estamos utilizando no maneja punteros.utilizando no maneja punteros.

Nos permite tener conocimiento mas profundo sobre la asignación y Nos permite tener conocimiento mas profundo sobre la asignación y eliminación de espacios de memoria.eliminación de espacios de memoria.

La administración de la memoria es Administrada por el ProgramadorLa administración de la memoria es Administrada por el Programadorsi el lenguaje nos provee como "primitivo" la estructura que se quiere simular si el lenguaje nos provee como "primitivo" la estructura que se quiere simular no habrá problemas. En efecto, por ejemplo, si lo que se desea es simular un no habrá problemas. En efecto, por ejemplo, si lo que se desea es simular un arreglo y el lenguaje elegido es el Pascal, la cosa será fácil. arreglo y el lenguaje elegido es el Pascal, la cosa será fácil. Los cursores son seguros es decir se puede asegurar que apuntan a un espacio Los cursores son seguros es decir se puede asegurar que apuntan a un espacio de memoria valida, por apuntar al espacio dentro del arrays.de memoria valida, por apuntar al espacio dentro del arrays.

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 22: Modelo Simulado

Desventajas:Desventajas:

Es que solo podemos utilizar la memoria Es que solo podemos utilizar la memoria que es asignada por el programador en el que es asignada por el programador en el momento de compilación (Dimensión del momento de compilación (Dimensión del Vector)Vector)

Nuestra Estructura deja de ser una Nuestra Estructura deja de ser una estructura dinámica para convertirse en estructura dinámica para convertirse en estática estática

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 23: Modelo Simulado

Bibliografías:Bibliografías:

Apuntes de Estructura de Datos (Semestre 1/2006);Apuntes de Estructura de Datos (Semestre 1/2006);

Fundamentos de Programación Fundamentos de Programación Luis Joyanes AguilarLuis Joyanes Aguilar

Sitios WebSitios Web

1.- webdelprogramador.memoriasimulada.htm1.- webdelprogramador.memoriasimulada.htm

2.-abcdedatos.memoriasimulada.htm2.-abcdedatos.memoriasimulada.htm

ESTRUCTURA DE DATOS MODELO SIMULADO

Page 24: Modelo Simulado

INF-220 Estructura de Datos I