You are on page 1of 10

INSTITUTO TECNOLOGICO DE TLAHUAC 2

MATERIA: _ESTRUCTURAS Y ORGANIZACIÓN DE DATOS__


Firmado
Apolo Enciso digitalmente por
Montes de Apolo Enciso
Montes de Oca
Oca Fecha: 2018.09.30
22:22:28 -05'00'

Docente: M. en RI. Iván Azamar Palma

ALUMNO(A):
_ENCISO MONTES DE OCA APOLO__

GRUPO: __ 3B_____

Nota: La práctica es individual, por lo que la copia de este producto está penalizada
con su anulación de ambas prácticas, la consecución recurrente de esta actividad
se penaliza con reporte y cancelación de la calificación de la unidad.
Rubrica.
Rubro Puntos
Campos requisitados Todos los campos Todos los campos Algunos o ningún
debidamente registrados, con campo registrado.
registrados. errores, incluyendo Segunda Oportunidad
ortografía. con los datos
debidamente
ingresados y con el
código comentado
línea por línea.
4 2 0
Muestra Ejecución Si, a la primera Si a la segunda No, con errores, o el
del programa ocasión y con ocasión o más con el resultado no es el
comentarios al código código comentado. esperado.
Segunda oportunidad
deberá entregar con
el código fuente.
5 4 0
Puntualidad Si en tiempo y forma Una clase después Segunda Oportunidad
1 1 0
Formato para prácticas de laboratorio

PLAN DE CLAVE
CARRERA NOMBRE DE LA ASIGNATURA
ESTUDIO ASIGNATURA

Ingeniería en TID-1012
2007-2
Tecnologías de
_ESTRUCTURAS Y ORGANIZACIÓN DE DATOS_
Información y
Comunicación

PRÁCTICA Fecha de
LABORATORIO DE Computación
No. Entrega

1 NOMBRE DE LA Memoria Estática


PRÁCTICA
30/09/2018

1 INTRODUCCIÓN
Tu ordenador probablemente usa ambas, memoria estática y memoria dinámica al mismo tiempo, pero las usa por
diferentes razones debido al coste entre los dos tipos de memoria RAM (ram memory). Si entiendes como los chips
de RAM dinámica y RAM estática funcionan internamente, es fácil ver porqué el coste es diferente, y también podrás
entender su nombre.

2 OBJETIVO (COMPETENCIA)
Comprenderá y usará un la memoria estática en el lenguaje de programación
JAVA

3 FUNDAMENTOS

¿QUÉ ES MEMORIA?
Es un espacio lógico para guardar información.
La memoria (también llamada almacenamiento) se refiere a parte de los componentes
que forman parte de una COMPUTADORA, Son dispositivos que retienen
DATOS informáticos durante algún intervalo de tiempo. Las memorias de computadora
proporcionan unas de las principales funciones de la computación moderna, la retención o
almacenamiento de información. Es uno de los componentes fundamentales de todas las
computadoras modernas que, acoplados al CPU.
¿QUÉ ES ESTÁTICA?
La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de
ejecución es en memoria estática o permanente a lo largo de toda la ejecución del
programa. O sea, que no se modifica al menos en tiempo de ejecución.
No todos los objetos (variables) pueden ser almacenados estáticamente.
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:
¿Qué es dinámica?
Su tamaño puede variar durante la ejecución del programa y puede ser liberado mediante
la función free. O sea que se modifica permanentemente.

MEMORIA ESTÁTICA
Las técnicas de asignación de memoria estática son sencillas.
La asignación de memoria puede hacerse en tiempo de compilación y los objetos están
vigentes desde que comienza la ejecución del programa hasta que termina.
En los lenguajes que permiten la existencia de subprogramas, y siempre que todos los
objetos de estos subprogramas puedan almacenarse estáticamente se aloja en la memoria
estática un registro de activación correspondiente a cada uno de los subprogramas.
Estos registros de activación contendrán las variables locales, parámetros formales y valor
devuelto por la función.
Consideraciones
 Error en tiempo de ejecución de índice fuera del rango.
 Se debe conocer con anticipación el tamaño de la estructura.
 Se guardan en memorias adyacentes.
 Vectores, matrices, cubos, registros, archivos.
Ventajas
 La velocidad de acceso es alta.
 Para retener los datos solo necesita estar energizada.
 Lógica simple.
Son más fáciles de diseñar.
Desventajas:
 No se puede modificar el tamaño de la estructura en tiempo de ejecución.
 No es óptimo con grandes cantidades de datos.
 Desperdicio de memoria cuando no se utiliza en su totalidad del tamaño v [100]
 Menor capacidad, debido a que cada celda de almacenamiento requiere más transistores.
 Mayor costo por bit.
 Mayor consumo de Potencia

MEMORIA DINÁMICA
La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de
ejecución. De esa manera, a medida que el proceso va necesitando espacio para más
líneas, va solicitando más memoria al sistema operativo para guardarlas. El medio para
manejar la memoria que otorga el sistema operativo, es el puntero, puesto que no podemos
saber en tiempo de compilación dónde nos dará huecos el sistema operativo (en la memoria
de nuestro PC).
Un dato importante es que como tal este tipo de datos se crean y se destruyen mientras se
ejecuta el programa y por lo tanto la estructura de datos se va dimensionando de forma
precisa a los requerimientos del programa, evitándonos así perder datos o desperdiciar
memoria si hubiéramos tratado de definirla cantidad de memoria a utilizar en el momento
de compilar el programa.
Cuando se crea un programa en el que es necesario manejar memoria dinámica el sistema
operativo divide el programa en cuatro partes que son: texto, datos (estáticos), pila y una
zona libre o heap. En el momento de la ejecución habrá tanto partes libres como partes
asignadas al proceso por lo cual si no se liberan las partes utilizadas de la memoria y que
han quedado inservibles es posible que se “agote” esta parte y por lo tanto la fuente de la
memoria dinámica. También la pila cambia su tamaño dinámicamente, pero esto no
depende del programador sino del sistema operativo.

VENTAJAS:
 Es posible disponer de un espacio de memoria arbitrario que dependa de información
dinámica (disponible sólo en ejecución): Toda esa memoria que maneja es implementada
por el programador cuando fuese necesario.
 Otra ventaja de la memoria dinámica es que se puede ir incrementando durante la ejecución
del programa. Esto permite, por ejemplo, trabajar con arreglos dinámicos.
 Es memoria que se reserva en tiempo de ejecución. Su tamaño puede variar durante la
ejecución del programa y puede ser liberado mediante la función free.

DESVENTAJAS:
 Es difícil de implementar en el desarrollo de un programa o aplicación.
 Es difícil implementar estructuras de datos complejas como son los tipos recursivos (árboles,
grafos, etc.).Por ello necesitamos una forma para solicitar y liberar memoria para nuevas
variables que puedan ser necesarias durante la ejecución de nuestros programas: Heap.
 Una desventaja de la memoria dinámica es que es más difícil de manejar.
 La memoria dinámica puede afectar el rendimiento. Puesto que con la memoria estática el
tamaño de las variables se conoce en tiempo de compilación, esta información está incluida
en el código objeto generado. Cuando se reserva memoria de manera dinámica,
 Se tienen que llevar a cabo varias tareas, como buscar un bloque de memoria libre y
almacenar la posición y tamaño de la memoria asignada, de manera que pueda ser liberada
más adelante. Todo esto representa una carga adicional, aunque esto depende de la
implementación y hay técnicas para reducir su impacto.
4 PROCEDIMIENTO (DESCRIPCIÓN)

EQUIPO NECESARIO: MATERIAL DE APOYO:

 Computadora (escritorio o laptop)  Internet (google académico)


 NetBeans IDE 8.2

Formato para prácticas de laboratorio

DESARROLLO DE LA PRÁCTICA:

OCT

Manejo de Memoria Estática

La memoria estática es la que se reserva al momento de compilación antes de


comenzar a ejecutarse el programa. Los objetos son creados en ese momento y
destruidos al final del programa. Mantiene la misma de localización en memoria
durante todo el transcurso del programa.

Los objetos administrados de este modo son:


Variables Static.
Variables Globales.
Miembros Static de la Clase.
Literales de cualquier tipo.

PROGRAMA 1
public class Persona {

private String nombre;


private int edad;
private static int contadorPersonas;

public Persona() {
contadorPersonas++;
}

public Persona(String nombre, int edad) {


this.nombre = nombre;
this.edad = edad;
contadorPersonas++;
}

public void setNombre(String nom) {


nombre = nom;
}

public String getNombre() {


return nombre;
}

public void setEdad(int ed) {


edad = ed;
}

public int getEdad() {


return edad;
}

public static int getContadorPersonas() {


return contadorPersonas;
}
}

//Clase Principal
public class Estatico1 {

public static void main(String[] args) {


Persona p1 = new Persona("Tomás Navarra", 22);
Persona p3 = new Persona("Jonás Estacio", 23);
System.out.println("Se han creado: " + Persona.getContadorPersonas() + "
personas");
}
}

PROGRAMA 2

public class arrayApp {

public static void main(String[] args) {

int num[]=rellenarArrayDesde(5);
imprimirArray(num);
}

public static void imprimirArray (int lista[]){


for(int i=0;i<lista.length;i++){
System.out.println(lista[i]);
}
}

public static int[] rellenarArrayDesde(int a){


int num[]=new int [10];
for(int i=0;i<num.length;i++){
num[i]=a;
a++;
}
return num;
}

5 RESULTADOS Y CONCLUSIONES

1.) COLOQUE AQUÍ LA PANTALLA QUE INDICA LA EJECUCIÓN DE LOS


PROGRAMAS PROGRAMA.
Nombre del paquete

Nombre de la clase

Variables y se agrega un contador

Declaramos nuestras
variables y agregamos el
contador que va ir de 1+1

Se Agregaran el método set a


cada una de las variables

Se Agregaran el método get a


cada una de las variables
Nombre del paquete

Nombre de la clase

Método main

Se instancia y se crean
nuevos objetos

Se imprime y se agrega conforme


el contador valla incrementándose

El resultado es que se han


creado dos personas
2.) EXPLICA E INVESTIGA LA UTILIDAD DE STATIC EN LOS PROGRAMAS EN
JAVA Y EN ESPECIAL CON LOS VETORES Y FUNCIONES
arrays unidimensionales
un array es una colección de valores de un mismo tipo engrosados en la misma variable.
Arrays multidimensionales
Los arrays además pueden tener varias dimensiones. Entonces se habla de arrays que contienen
arrays.
Static
En Java no hay tipos array, pero sí objetos (o variables) array.
Un método de clase o static es aquel que puede ser invocado sin existir una instancia. La palabra
static consigue que solo exista.
Una clase estática permite ser utilizada como si fuera un objeto. Esta clase debe contener métodos
que se pueden utilizar sobre los arrays.

6 ANEXOS

1.) REALICE UN ESQUEMA EN LA LIBRETA (ESCANEALO) Y PEGALO AQUÍ,


DONDE EXPLIQUES EL FUNCIONAMIENTO DE LA MEMORIA ESTATICA
Y OTRO PARA LA DINÁMICA.

 Nota el diagrama realizarlo con regla y los elementos describirlos con


letra legible, numera los pasos de la explicación.
7 REFERENCIAS

Anota aquí algunas páginas Web o bibliografía que describa a un MEMORIA


ESTÁTICA
1. Joyanes Aguilar Luis & Fernández Azuela Matilde. (2003). Java 2 Manual de
Programación. México: Mc Graw Hill.
URL:
https://s3.amazonaws.com/academia.edu.documents/32046395/Luis_Joyanes_Aguilar_
_Java_2__Manual_de_Programacion_.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53
UL3A&Expires=1538082080&Signature=OX4odTiMOlZG%2BfzxuGjg0XiMLts%3D&res
ponse-content-disposition=inline%3B%20filename%3DJava_2_incluyena.pdf

2. https://www.ctr.unican.es/asignaturas/Lan/seminario_c_ada_java_2009-3en1.pdf

3. https://www.ittux.edu.mx/sites/default/files/Desarrollo.de_.Aplicaciones.con_.Java_.pdf

You might also like