Beruflich Dokumente
Kultur Dokumente
Un TDA es un tipo de dato definido por el programador que se puede manipular de un modo
similar a los tipos de datos definidos por el sistema.
1.2 Modularidad
La modularidad es la posibilidad de dividir una aplicacin en piezas ms pequeas llamadas
mdulos.
Manejo de Memoria
La administracin de memoria de una computadora es una tarea fundamental debido
a que la cantidad de memoria es limitada.
El sistema operativo es el encargado de administrar la memoria del sistema y
compartirla entre distintos usuarios y/o aplicaciones.
El RTS (Run Time System) de un lenguaje de programacin administra la memoria para
cada programa en ejecucin.
La ejecucin de un programa requiere que diversos elementos se almacenen en la
memoria:
Cdigo del programa (instrucciones)
Datos
Permanentes
Temporales
Direcciones para controlar de flujo de ejecucin del programa
Memoria esttica y dinmica
A la asignacin de memoria para algunos elementos fijos del programa que
es controlada por el compilador se le llama asignacin de memoria esttica.
A la asignacin y posible recuperacin de memoria durante la ejecucin de un
programa y bajo su control, se le llama asignacin de memoria dinmica.
Los arreglos tienen localidades de memoria continuas y para determinar el espacio que deben
ocupar, se requiere conocer la posicin inicial del arreglo en la memoria y el tipo de datos
primitivo del que fue declarado, como se aprecia en la
siguiente tabla.
byte
char
short
int
float
long
double
arreglo
10
20
30
40
50
ndice
Arreglos Bidimensionales.
Un arreglo bidimensional (matriz o tabla), es un conjunto de elementos homogneos definidos
bajo una estructura finita, controlado por dos ndices y su representacin es por un conjunto
de renglones y columnas, en forma de una malla.
Para determinar la direccin fsica de un elemento de un arreglo bidimensional en la memoria
se puede seguir una de las siguientes formulas:
Por renglones.
arreglo
direccin
40
50
60
2700
2704
2708
70
80
90
2712
2716
2720
70
80
90
2724
2728
2732
Ejercicio. Determinar cual es la direccin de memoria fsica que ocupan los elementos de la
diagonal principal de una matriz, si su direccin inicial es 1971.
Ejercicio. Buscar cuales son las direcciones de memoria fsica que ocupan todos los elementos
pares de una matriz, si inicia en la direccin 2001.
Ejercicio. Encontrar cuales son las direcciones de memoria fsica donde se encuentra el
elemento mayor de una matriz, si su direccin inicial es la 2004.
Por columnas.
Ejemplo. Tomamos como base el ejemplo anterior, pero ahora con columnas quedara de la
siguiente manera:
arreglo
direccin
40
50
60
2700
2712
2724
70
80
90
2704
2716
2728
70
80
90
2708
2720
2732
Ejercicio. Encuentre las direcciones de memoria fsica de los elementos impares de una matriz,
si su direccin inicial es la 1979.
Ejercicio. Determinar cules son las direcciones de memoria donde se encuentran las vocales
de una matriz, si su direccin inicial es la 2312.
Con los arreglos unidimensionales o bidimensionales se pueden desarrollar una serie de
operaciones tales como:
-
Lectura / Escritura.
Asignacin.
Actualizacin:
Insercin.
Eliminacin.
Modificacin.
Ordenamiento.
Bsqueda.
Las estructuras de datos que usan nodos pueden ser lineales o no lineales, dentro de las
lineales se encuentran las listas simples y dobles y en las no lineales encontramos los rboles,
estas estructuras se representan de la siguiente forma.
Lista simple.
Dato Dir
Dato Dir
>
Lista doble
Dir Dato
rbol
Dir
---->
<-----
<---
Dir Dato
Dir
Dato
Dir
Dir
Dir
Dato
Dir
NOTA: La direccin de un nodo apunta al dato del siguiente nodo, lo mismo sucede en la forma
inversa.
Suponga que despus de las declaraciones, observamos que necesitaremos 12 valores de tipo
int en lugar de 10. En tal caso podemos emplear la siguiente estrategia:
int original[ ]=a;
a=new int [12];
for(int i=0;i<10;i++)
a[i]=original[i];
Implementar una clase de operaciones de vectores que muestre la utilizacin de meoria
dinamica
class OperVectores{
int arr[];
public OperVectores();
public OperVectores(int tam);
public void LlenarAleatoria();
public void Mostrar();
public void pares();
public void May50();
public void asignar(int n);
Los objetos Vector almacenan referencias a objetos Object. Por lo tanto, un prograna puede
almacenar referencias a cualquier objeto en un objeto Vector. Para almacenar valores de tipos
primitivos en objetos Vector, utilice las clases de tipo de envoltura (por ejemplo, Integer y
Double) del paquete java.lang para crear objetos que contengan los valores de tipo primitivo.
Mtodo
Descripcin
Object clone( )
Bolean
elemento)
Enumeration elements( )
Void
tamano)
Object firstElement( )
Void
elemento,int indice)
Bolean isEmpty( )
Object lastElement( )
Int
elemento)
Int
elemento,int inicio)
Void removeAllElements( )
Bolean
removeElement(Object
elemento)
void
indice)
Void
elemento,int indice)
Void setSize(int tamano)
Int size( )
String toString( )
Void trimToSize( )
}
public void setEdad(int aos){
edad[cont]=aos;
}
public void setNc(int numc){
nc[cont]=numc;
cont++;
}
public String getNombre(){
return nombre[cont];
return edad[cont];
}
Clase Main
import java.util.*;
public class main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Datoss dts=new Datoss();
String n="";
int num=0;
for(int i=0; i<3;i++){
System.out.println("Nombre"+(i+1));
n = sc.next();
dts.setNombre(n);
n="";
System.out.println("Edad"+(i+1));
num = sc.nextInt();
dts.setEdad(num);
num=0;
System.out.println("Numero de control"+(i+1));
num = sc.nextInt();
dts.setNc(num);
num=0;
}
dts.irPrimero();
for(int j=0;j<3;j++){
System.out.println(dts.getNombre()+" "+dts.getEdad()+"
"+dts.getNc());
dts.go();
}
}
}