140 likes | 334 Views
Tipos de Datos Abstractos Vector de Racionales. Los elementos del vector se referencian desde los clientes con posiciones 1 y la cantidad de elementos. VRacional. Racional [] arreglo. <<constructores>> VRacional (max : entero) <<comandos>> establecerElem (pos : entero,
E N D
Tipos de Datos AbstractosVector de Racionales Los elementos del vector se referencian desde los clientes con posiciones 1 y la cantidad de elementos VRacional Racional [] arreglo <<constructores>> VRacional (max : entero) <<comandos>> establecerElem (pos : entero, elem : Racional) copy (v: VRacional) Asume que la posición es válida Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales VRacional Asume que la posición es válida. Compara las referencias Racional [] arreglo <<consultas>> existePos (p : entero): boolean existeElem (r : Racional) : boolean obtenerElem (p : entero) : Racional cantElems () : entero prodEscalar(v : VRacional) : Racional suma (v : VRacional ) : VRacional escalarXVRacional(e : Racional) : VRacional equals (v : VRacional) : boolean clone () : VRacional Asume que las longitudes son consistentes Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales public class VRacional { private Racional[] arreglo; \\ Constructor public VRacional(int m) { arreglo=new Racional[m]; } \\ Comandos public void establecerElem(int p, Racional val) { \\Asume que la posición es válida arreglo[p-1] = val; } arreglo es una variable que referencia a un objeto, VRacional es una clase a partir de la cual se crearán objetos Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public boolean existePos (int p) { return p > 0 && p <= arreglo.length; } public Racional obtenerElem (int p){ \\Asume que la posición es válida return arreglo[p-1]; } public int cantElems () { return arreglo.length; } Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public boolean equals(Vector v) { int i=0; boolean iguales=cantElems()==v.cantElems(); while (i<arreglo.length)&&(iguales)) { iguales= (arreglo[i]==v.obtenerElemento(i+1)); i++;} return iguales; } public Vector clone() { Vector v= new Vector(arreglo.length); for (int i=0; i<arreglo.length;i++) v.establecerElemento(i+1, arreglo[i]); return v; } SUPERFICIAL Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public boolean equals(VRacional v) { \\ superficial int i=0; boolean salida=cantElems()==v.cantElems(); while (i<arreglo.length)&&(salida)) { salida= (arreglo[i]==v.obtenerElem(i+1)); i++;} return salida; } public VRacional clone() { \\ superficial VRacional v= new VRacional(arreglo.length); for (int i=0; i<arreglo.length;i++) v.establecerElem(i+1, arreglo[i]); return v; } Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public boolean equals(VRacional v) { \\ profundidad } public VRacional clone() { \\ profundidad } Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public boolean equals(VRacional v) { \\ profundidad int i=0; boolean salida=true; while (i<arreglo.length)&&(salida)) { salida= (arreglo[i].equals(v.obtenerElem(i+1))); i++;} return salida; } public VRacional clone() { \\ profundidad VRacional v= new VRacional(arreglo.length); for (int i=0; i<arreglo.length;i++) v.establecerElem(i+1, arreglo[i].clone()); return v; } Introducción a la ProgramaciónOrientada a Objetos
Tipos de Datos AbstractosVector de Racionales \\ Consultas public Racional prodEscalar(VRacional v) { \\Asume que las longitudes son consistentes Racional pe= new Racional(0,1); Racional r=new Racional(0,1); for (int i=0;i<=arreglo.length;i++) r=arreglo[i].producto(v.obtenerElem(i+1)); pe= pe.suma(r); return pe; } Introducción a la ProgramaciónOrientada a Objetos
Administración de Memoria public class VRacional { private Racional[] arreglo; \\ Constructor public VRacional(int m) { arreglo=new Racional[m]; } v1 arreglo VRacional v1; v1=new VRacional(5); Se declara una variable v1 y se crea un objeto de la clase VRacio cuya referencia se almacena en v1. length 5 Introducción a la Programación Orientada a Objetos
Administración de Memoria public class VRacional { private Racional[] arreglo; \\ Constructor public VRacional(int m) { arreglo=new Racional[m]; } VRacional v1; v1=new VRacional(5); Se declara una variable v1 y se crea un objeto de la clase VRacional cuya referencia se almacena en v1. Introducción a la Programación Orientada a Objetos
VRacional Los elementos del vector se referencian desde los clientes con posiciones 1 y la cantidad de elementos Racional [] arreglo <<constructores>> VRacional (max : entero) <<comandos>> establecerElem (pos : entero, elem : Racional) copy (v: VRacional) <<consultas>> existePos (p : entero): boolean existeElem (r : Racional) : boolean obtenerElem (p : entero) : Racional cantElems () : entero prodEscalar(v : VRacional) : Racional suma (v : VRacional ) : VRacional escalarXVRacional(e : Racional) : VRacional equals (v : VRacional) : boolean clone () : VRacional Asume que la posición es válida. Compara las referencias Asume que las longitudes son consistentes Introducción a la Programación Orientada a Objetos
Racional num : entero den : entero <<constructor>> Racional (n,d : entero) <<comandos>> establecerNum (n : entero) establecerDen (d : entero) copy( r: Racional) <<consultas>> obtenerNum() : entero obtenerDen() : entero equals (r: Racional) :boolean toString() :String clone () : Racional suma (rac : Racional) :Racional resta (rac : Racional) :Racional producto (rac : Racional) :Racional cociente (rac : Racional) :Racional Introducción a la Programación Orientada a Objetos