ESTRUCTURA DE DATOS II MEMORIA ESTATICA UNIVERSIDAD AUTONOMA "GABRIEL RENE MORENO" FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA EXPOSITOR: Ing. Evans  Balcazar Veizaga
INTRODUCION: -Definición de modelo estático: -Ejemplo simples. -Memoria estática. -Clasificación de memoria estática y dinámica. ESTRUCUTURA DE MODELO ESTATICO
El modelo o memoria estática es una memoria que se reserva en el momento de la al compilación, antes de comenzar a ejecutarse el programa. por ejemplo uno simple es: para  una resolución de un sistema de ecuaciones lineales , la memoria estática se reserva con sentencias del tipo. Double a[100][100],x[100],b[100]. DEFINICION DE MODELO ESTATICO
El inconveniente de la reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema a resolver. Eso lleva siempre un máximo de memoria que en la mayor parte de las ocasiones no se necesita. La reserva estática tampoco se adapta bien a la memoria real disponible en el ordenador en que se esta ejecutando el programa.
Es la que se usa para almacenar valores constantes y también datos globales , que deben ser visibles en todo los módulos del programa. Cuando un dato esta almacenado en la memoria, o también en la estática, se dice que es una  variable , porque, para  que exista, el programador debe declararlo en su programa, por ejemplo en pascal se logra nombrándolo en la cláusula  var.  de cada modulo. MEMORIA ESTATICA
Tenemos dos clasificaciones diferentes de memorias o modelos principales. Memoria  estática  vs. Memoria  dinámica Memoria  automática  vs. Memoria  no automática. CLASIFICACION
Automática y no Automática Estática  Variable globales Dinámica  Parámetros formales  Punteros, variables  locales.
MEMORIA La memoria de un ordenador está dividida en casillas o celdas de igual tamaño. Para acceder a una casilla determinada hay que señalar su dirección, que identifica unívocamente a cada casilla. Tanto en la memoria como en el procesador, la información es procesada y transmitida mediante unidades denominadas palabras   de memoria. 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 de 16, 32 y 64 bits.
MEMORIA Zona 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
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.
MEMORIA Representació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];
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.
APLICACION FUNCIONAL
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 (&quot;Introdusca la fila:&quot;); fil=Integer.parseInt(bu.readLine()); System.out.println (&quot;Introdusca la columna&quot;); col=Integer.parseInt(bu.readLine()); System.out.println (&quot;Introdusca los elementos de la matriz&quot;); for(int i=0;i<fil;i++) { for(int j=0;j<col;j++)   v[i][j]=Integer.parseInt(bu.readLine ()); } } APLICACIÓN  FUNCIONAL
static void mostrar() {   System.out.println (&quot;La matriz es:&quot;);   for(int i=0;i<fil;i++) {   for(int j=0;j<col;j++) {   System.out.print (&quot; &quot;+v[i][j]); } System.out.println (&quot;&quot;); } } 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 (&quot;\nLA TRAZA DE UNA MATRIZ ES:&quot;+Traza()); } }

Modelo Estatico

  • 1.
    ESTRUCTURA DE DATOSII MEMORIA ESTATICA UNIVERSIDAD AUTONOMA &quot;GABRIEL RENE MORENO&quot; FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA EXPOSITOR: Ing. Evans Balcazar Veizaga
  • 2.
    INTRODUCION: -Definición demodelo estático: -Ejemplo simples. -Memoria estática. -Clasificación de memoria estática y dinámica. ESTRUCUTURA DE MODELO ESTATICO
  • 3.
    El modelo omemoria estática es una memoria que se reserva en el momento de la al compilación, antes de comenzar a ejecutarse el programa. por ejemplo uno simple es: para una resolución de un sistema de ecuaciones lineales , la memoria estática se reserva con sentencias del tipo. Double a[100][100],x[100],b[100]. DEFINICION DE MODELO ESTATICO
  • 4.
    El inconveniente dela reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema a resolver. Eso lleva siempre un máximo de memoria que en la mayor parte de las ocasiones no se necesita. La reserva estática tampoco se adapta bien a la memoria real disponible en el ordenador en que se esta ejecutando el programa.
  • 5.
    Es la quese usa para almacenar valores constantes y también datos globales , que deben ser visibles en todo los módulos del programa. Cuando un dato esta almacenado en la memoria, o también en la estática, se dice que es una variable , porque, para que exista, el programador debe declararlo en su programa, por ejemplo en pascal se logra nombrándolo en la cláusula var. de cada modulo. MEMORIA ESTATICA
  • 6.
    Tenemos dos clasificacionesdiferentes de memorias o modelos principales. Memoria estática vs. Memoria dinámica Memoria automática vs. Memoria no automática. CLASIFICACION
  • 7.
    Automática y noAutomática Estática Variable globales Dinámica Parámetros formales Punteros, variables locales.
  • 8.
    MEMORIA La memoriade un ordenador está dividida en casillas o celdas de igual tamaño. Para acceder a una casilla determinada hay que señalar su dirección, que identifica unívocamente a cada casilla. Tanto en la memoria como en el procesador, la información es procesada y transmitida mediante unidades denominadas palabras de memoria. 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 de 16, 32 y 64 bits.
  • 9.
    MEMORIA Zona decó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
  • 10.
    Tipos de datosEstá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.
    MEMORIA Representación deun 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];
  • 12.
    Variable - Tipode 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.
  • 13.
  • 14.
    El ejemplo típicoson 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 (&quot;Introdusca la fila:&quot;); fil=Integer.parseInt(bu.readLine()); System.out.println (&quot;Introdusca la columna&quot;); col=Integer.parseInt(bu.readLine()); System.out.println (&quot;Introdusca los elementos de la matriz&quot;); for(int i=0;i<fil;i++) { for(int j=0;j<col;j++) v[i][j]=Integer.parseInt(bu.readLine ()); } } APLICACIÓN FUNCIONAL
  • 15.
    static void mostrar(){ System.out.println (&quot;La matriz es:&quot;); for(int i=0;i<fil;i++) { for(int j=0;j<col;j++) { System.out.print (&quot; &quot;+v[i][j]); } System.out.println (&quot;&quot;); } } 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 (&quot;\nLA TRAZA DE UNA MATRIZ ES:&quot;+Traza()); } }