Post on 22-Jul-2015
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
ESTRUCTURA DE DATOS IIESTRUCTURA DE DATOS IIMEMORIA ESTATICAMEMORIA ESTATICA
EXPOSITOR:EXPOSITOR:
Ing. Evans Balcazar VeizagaIng. Evans Balcazar Veizaga
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
INTRODUCION:INTRODUCION: -Definición de modelo estático:-Definición de modelo estático: -Ejemplo simples.-Ejemplo simples. -Memoria estática.-Memoria estática. -Clasificación de memoria estática y -Clasificación de memoria estática y
dinámica.dinámica.
ESTRUCUTURA DE MODELO ESTRUCUTURA DE MODELO ESTATICOESTATICO
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
El modelo o memoria estática es una memoria que se El modelo o memoria estática es una memoria que se reserva en el momento de la al compilación, antes de reserva en el momento de la al compilación, antes de comenzar a ejecutarse el programa.comenzar a ejecutarse el programa.
por ejemplo uno simple es:por ejemplo uno simple es: para una resolución de un sistema de ecuaciones para una resolución de un sistema de ecuaciones
lineales , la memoria estática se reserva con sentencias lineales , la memoria estática se reserva con sentencias del tipo.del tipo.
Double a[100][100],x[100],b[100].Double a[100][100],x[100],b[100].
DEFINICION DE MODELO DEFINICION DE MODELO ESTATICOESTATICO
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
El inconveniente de la reserva estática es que la cantidad El inconveniente de la reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los de memoria se reserva siempre antes de conocer los datos concretos del problema a resolver.datos concretos del problema a resolver.
Eso lleva siempre un máximo de memoria que en la Eso lleva siempre un máximo de memoria que en la mayor parte de las ocasiones no se necesita.mayor parte de las ocasiones no se necesita.
La reserva estática tampoco se adapta bien a la memoria La reserva estática tampoco se adapta bien a la memoria real disponible en el ordenador en que se esta real disponible en el ordenador en que se esta ejecutando el programa.ejecutando el programa.
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
Es la que se usa para almacenar valores constantes y Es la que se usa para almacenar valores constantes y también datos globales , que deben ser visibles en todo también datos globales , que deben ser visibles en todo los módulos del programa.los módulos del programa.
Cuando un dato esta almacenado en la memoria, o Cuando un dato esta almacenado en la memoria, o también en la estática, se dice que es una también en la estática, se dice que es una variablevariable, , porque, para que exista, el programador debe porque, para que exista, el programador debe declararlo en su programa, por ejemplo en pascal se declararlo en su programa, por ejemplo en pascal se logra nombrándolo en la cláusula logra nombrándolo en la cláusula var.var. de cada modulo. de cada modulo.
MEMORIA ESTATICAMEMORIA ESTATICA
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
Tenemos dos clasificaciones diferentes de memorias o Tenemos dos clasificaciones diferentes de memorias o modelos principales.modelos principales.
MemoriaMemoria estática estática vs. Memoria vs. Memoria dinámicadinámica
Memoria Memoria automáticaautomática vs. Memoria vs. Memoria no automática.no automática.
CLASIFICACIONCLASIFICACION
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
Automática y no AutomáticaAutomática y no Automática
Estática Estática Variable globales Variable globales
Dinámica Dinámica Parámetros formales Parámetros formales
Punteros, variables locales.Punteros, variables locales.
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
MEMORIAMEMORIA La memoria de un ordenador está dividida en casillas o La memoria de un ordenador está dividida en casillas o
celdas de igual tamaño.celdas de igual tamaño.
Para acceder a una casilla determinada hay que señalar su Para acceder a una casilla determinada hay que señalar su dirección, que identifica unívocamente a cada casilla.dirección, que identifica unívocamente a cada casilla.
Tanto en la memoria como en el procesador, la información Tanto en la memoria como en el procesador, la información es procesada y transmitida mediante unidades denominadas es procesada y transmitida mediante unidades denominadas palabraspalabras de memoria.de memoria.
La longitud de cada palabra de memoria varía de una La longitud de cada palabra de memoria varía de una máquina a otra, aunque hoy en día el tamaño más habitual es máquina a otra, aunque hoy en día el tamaño más habitual es de 16, 32 y 64 bits.de 16, 32 y 64 bits.
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
MEMORIAZona de código
Es la parte de la memoria donde residen las instrucciones de nuestro programa; suele ocupar las direcciones más bajas de la memoria.
Zona de datos
Se alojan los datos estáticos de nuestro programa, es decir, las variables globales del mismo. Suele ser un espacio de memoria limitado, por lo que el número y tamaño de estas variables también está limitado. Forma junto con la zona de código la parte estática de la memoria
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
Tipos de datos Estáticos
Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir.
MEMORIA
Variable
Una variable es un elemento o espacio de la memoria que sirve de almacenamiento de un valor, referenciada por un nombre, y perteneciente a un tipo de dato.
En la declaración de la variable también queda definida la asociación entre el nombre y el espacio de memoria reservado: antes de la ejecución de un programa el ordenador ya conoce los requerimientos de espacio que ese programa lleva consigo.
Datos Estáticos:
Su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación.
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
MEMORIARepresentación de un tipo array en memoria
Cada elemento del array ocupa el tipo simple que lo compone.
Los elementos de un array ocupan posiciones de memoria consecutivas.
Por ejemplo en sintaxis de C++ int a[5];
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
Variable - Tipo de dato – Valor
Una variable es un trozo de memoria, el tamaño ese trozo de tamaño lo determina el tipo de dato para el que se ha creado esa variable.
Para que un objeto pueda ser almacenado en memoria estática su tamaño (número de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilación.
Como consecuencia de esta condición no podrán almacenarse en memoria
estática.
MEMORIA
Los objetos correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilación no se sabe el número de variables que serán necesarias.
Las estructuras dinámicas de datos tales como listas, árboles, etc. ya que el número de elementos que las forman no es conocido hasta que el programa se ejecuta.
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
El ejemplo típico son los vectores y matrices.import java.io.*;public class operacion{
static final int max=20;static int v[][]=new int[max][max];
static int fil; static int col; static void cargar()throws IOException
{ BufferedReader bu=new BufferedReader(new InputStreamReader(System.in)); System.out.println ("Introdusca la fila:");
fil=Integer.parseInt(bu.readLine());System.out.println ("Introdusca la columna");col=Integer.parseInt(bu.readLine());System.out.println ("Introdusca los elementos de la matriz");
for(int i=0;i<fil;i++){
for(int j=0;j<col;j++) v[i][j]=Integer.parseInt(bu.readLine());
}}
APLICACIÓN FUNCIONAL
11 de septiembre de 2007 ESTRUCTURA DE DATOS II MODELO ESTÁTICO
static void mostrar(){ System.out.println ("La matriz es:"); for(int i=0;i<fil;i++){ for(int j=0;j<col;j++)
{ System.out.print (" "+v[i][j]);
} System.out.println ("");
}}static int Traza() {
int s=0; if(fil==col) { for(int i=0;i<fil;i++) { for(int j=0;j<col;j++) { if(i==j) { s+=v[i][j]; } } } }
return s; }
public static void main(String[] args)throws IOException { cargar(); mostrar(); System.out.println ("\nLA TRAZA DE UNA MATRIZ ES:"+Traza()); }}