Está en la página 1de 4

Nombre: Rafael Ramirez Rizo Fecha: 07-04-2022

Profesor: M.T.I. J. Carranza / M.T.I. R. H. Reyna Total Marks: 100

Estructura de Datos. Unidad II. Memoria Estática y Dinámica

Contestar los reactivos que a continuación se presentan. Si no sabe la respuesta, o no esta seguro,
NO RESPONDER.

1. Escribir lo que sabe sobre los conceptos:

a). Memoria 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.

La memoria estática es la que no se puede modificar o ejecutar en momento de ejecución.


También se debe conocer con anticipo el tamaño de la estructura que está en ejecución.

Ventajas de utilizar memoria dinámica vs memoria estática

La memoria dinámica sirve para que los programadores se adapten siempre al tamaño del
problema que tienen que resolver sin desperdiciar recursos de memoria y esto se traduce en una
mayor eficiencia en la ejecución de los programas, las ventajas de utilizar memoria dinámica se
valoran mejor en comparación con la utilización de la reserva de la memoria estática.

Características:

Se define explícitamente al declarar una variable, ya sea global o local.

El compilador genera automáticamente el espacio de memoria.

Se mantiene fija durante toda la vida de la variable.

Ejemplo de uso de la memoria estática:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Csimple
{
static void Main(string[] args)
{
int[] numeros = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i
Console.WriteLine("Numero:{0}={1}", i + 1, numeros[i]);
Console.ReadLine();
}
}
}
b). Memoria Dinámica

La reserva de memoria dinámica se hace en tiempo de ejecución después de leer los datos y de
conocer el tamaño exacto del problema. Como consecuencia se adapta mucho mejor a las
necesidades en cada caso.

El sitio donde se almacenan los objetos se denominan en ingles heap o free store traducido como
montículo o memoria libre, y el sitio preciso donde se encuentre depende del compilador y el tipo
de puntero utilizado. La creación y estrucción de los objetos esta en manos del programador a
través de los operadores new y delete.

En C# las variables que se declaran son punteros y se pasan eficientemente con referencia,
tampoco es necesario considerar la liberación de la memoria puesto que framework se encarga de
liberar todas las referencias que no se estén utilizando y compactar la memoria para mejorar el
rendimiento.emoria para mejorar el rendimiento.

Ejemplo de uso de memoria dinámica:

using System;
namespace Circunferencia1
{
class CircunferenciaApp
{
public static void Main()
{
const double PI=3.1415926; // Esto es una constante
double Radio=4; // Esto es una variable
Console.WriteLine("El perímetro de una circunferencia de radio {0} es
{1}", Radio,
2*PI*Radio);
Console.WriteLine("El área de un círculo de radio {0} es {1}", Radio,
PI*Math.Pow(Radio,2));
}
}
}

2. Realizar una declaración en c++ ó JAVA ( Todo C++ ó Todo JAVA):

a). Un Vector para 100 valores de tipo enteros

int[] vector = new int[100]

b). Una estructura para almacenar los siguientes datos:

- Número de Empleado

- Nombre

- Apellidos

- Edad

struct empleado

{ int Numero_de_Empleado
char Nombre(s) [15];

char apellido[20];
int edad;

};

c). Una Clase para almacenar los siguientes datos:

- Número de Control

- Nombre

- Apellidos
- Edad

Public class Estudiante {


long numeroControl;

String nombre;
String apellido;

int edad;
}

- Arreglo para almacenar 5 Nombres de materias con su respectiva calificación

d). Un vector de 50 elementos del tipo estructura. ( Puede hacer referencia a la estructura creada
en el ejercicio 2-b ).

e). Crear un objeto de forma dinámica ( Asignándole memoria dinámica ), de la clase


implementada en el ejercicio 2-c.

public static void main(String [] args){


Estudiante estudiante1 = new Estudiante();
estudiante1.numeroControl = 20321173;
estudiante1.nombre = “Jose”;
estudiante.1apellido = “Mendoza”;
System.out.prntln(“El numero de control es: ”+estudiante1.numeroControl);
System.out.prntln(“El nombre es: ”+estudiante1.nombre);
System.out.prntln(“El numero apellido es: ”+estudiante1.apellido);
}

30

3. Escribir una rutina para agregar datos a las estructuras creadas en el ejercicio 2.b y 2.c- 1

También podría gustarte