apuntes de la materia de topicos selectos de programacion

Upload: othomx972

Post on 16-Jul-2015

209 views

Category:

Documents


0 download

TRANSCRIPT

Unidad I Tipos de Datos Definidos por el usuario.IntroduccinDesde el principio de los aos sesentas cuando aparecen los primeros lenguajes de programacin dentro de unas de las diferentes etapas conocidas como la evolucin de la programacin: Programacin Lineal Programacin Modular Programacin Estructurada Abstraccin de Datos Siempre se a buscado disminuir la complejidad de los sistemas, debido a que cuando estos crecen o son muy grandes estos son difciles de desarrollar, mantener y reutilizar el cdigo. Por lo que para resolver este gran problema aparece una nueva forma de programacin conocida como programacin orientada a objetos(POO) la cual se puede definir como una nueva metodologa de programacin que ayuda a organizar programas complejos mediante el uso de herencia, encapsulacin y polimorfismo que tiene como base principal de construccin los objetos. La POO permite la construccin de sistemas grandes y complejos dividindolos en pequeas partes llamadas objetos que posteriormente pueden ser reutilizados, adems que puede ser desarrollado por un grupo asignando cada uno de los elementos que integran el proyecto evitando los problemas de desarrollo: Reutilizacin del cdigo Mantenimiento del cdigo Divisin del sistema entre un grupo de desarrollo (argumentos, retornos). Lo que permite la anticipacin en la planeacin e interaccin de los diferentes elementos de un proyecto Los elementos llamados objetos son un Tipo Abstracto de Dato(TAD) que aparece dentro de la etapa de abstraccin refirindonos a la evolucin de la programacin que permiten integrar datos y cdigo en un mismo elemento lo que da origen a los objetos y al encapsulamiento de los datos (ocultamiento de informacin). Figura de TAD Dentro de la etapa de programacin estructurada se poda construir tipos abstractos de datos (datos + cdigo) utilizando un elemento llamado struct y apuntadores. struct permite definir registros de datos, es decir integrar en un mismo elemento diferentes tipos de datos (int,char,float,.....).

Apuntadores son elementos que permiten acceder a localidades de memoria, lo que hace que se pueda integrar a una estructura funciones, que representa el cdigo que usara los datos definidos en la misma (Ver punteros a funciones). Un lenguaje de programacin que utiliza tipos abstractos de datos como nico elemento de construccin es el Lenguaje Java, estos pueden integrar tanto datos como cdigo, solo datos o solo cdigo. A este elemento se le llama clase (class). La clase define la estructura como va a trabajar cada uno de los objetos, es por eso que los objetos son instancias de clases, es decir que se construyen a partir de una clase. Tipos abstractos de datos a analizar (Java Util , Java IO) Vector Stack Enumeration BitSet Archivos (FileInputStream y FileOutputStream)

EnumeracionesEl patron para construir tipos enumerados es a travez de enum, es decir enumera una secuencia de elementos enunciados. public enum Estaciones{ Primavera,Verano, Otoo, Inviero } Metodos de enumeracin Mtodo ordinal( ) name( ) compareTo( ) values( ) valueOf( ) Descripcin Devuelve el valor entero de los elementos Devuelve el nombre de la constante de la enumeracin Compara el objeto actual con el objeto de la enumeracin Devuelve los valores de la enumeracin Devuelve la constante de la enumeracin

EnumerationLa interfaz Enumeration define los mtodos por los que se puede enumerar(obtener de uno en uno) los elementos de una coleccin de objetos. La interfaz Enumeration especifica los siguientes dos mtodos:

boolean hasMoreElements( ) Object nextElement( ) Al implementarse hasMoreElements( ) debe devolver true mientras haya mas elementos que extraer, y false cuando los elementos se han enumerado. nextElement( ) devuelve el siguiente objeto en la enumeracin como una referencia genrica a un Object. Esto es, cada llamada a nextElement( ) obtiene el siguiente objeto en la enumeracin. La rutina invocante debe verter ese objeto en el tipo de objeto de la enumeracin.

VectorImplementa un arreglo dinmico de objetos, es decir proporciona las capacidades de las estructuras de datos de tipo arreglo, que puede cambiar su propio tamao de forma dinmica. En cualquier momento, un objeto Vector contiene un numero de elementos que es menor o igual que su capacidad. La capacidad es el espacio que se a reservado para los elementos de Vector. Si un objeto Vector requiere de una capacidad adicional, crece en base a un incremento de capacidad que usted le especifica, o en base a un incremento de capacidad predeterminado. Si usted no especifica un incremento de capacidad, el sistema duplicara el tamao de un objeto Vector cada vez que se requiera de una capacidad adicional. Los constructores de la clase Vector son los siguientes: a) Vector( ) b) Vector(int tamao) c) Vector(int tamao,int incr) a) Esta es la primera forma que crea un vector por defecto, que tiene un tamao inicial de 10. b) Esta es la segunda opcin que crea un vector que viene especificado por tamao. c) La tercera forma crea un vector de capacidad especificada en tamao e incremento incr. El incremento indica el numero de elementos cuya memoria se asigna cada vez que el vector se aumenta de tamao. 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. Mtodos definidos por Vector Mtodo Final Descripcin void El objeto especificado por elemento se aade al vector.

addElement(Object elemento) Int capacity( ) Object clone( ) Bolean contains(Object elemento) Void copyInto(Object matriz[ ]) Object elementAt(int indice) Enumeration elements( ) Void ensureCapacity(int tamano) Object firstElement( ) Int indexOf(Object elemento) Int indexOf(Object elemento, int inicio) Void insertElementAt(Object elemento,int indice) Bolean isEmpty( ) Object lastElement( ) Int lastIndexOf(Object elemento) Int lastIndexOf(Object elemento,int inicio) Void removeAllElements( ) Bolean removeElement(Object elemento)

Devuelve la capacidad del vector Devuelve un duplicado del vector invocante. Devuelve true si elemento esta contenido en el vector, y devuelve false si no. Los elementos contenidos en el vector invocante se copian en la matriz especificada por matriz. Devuelve el elemento en la posicin indicada por ndice. Devuelve una enumeracin de los elementos del vector. Establece la mnima capacidad del vector en tamao. Devuelve el primer elemento del vector Devuelve el ndice de la primera aparicin de elemento. Si el objeto no esta en el vector, se devuelve 1. Devuelve el ndice de la primera aparicin de elemento en o despus de inicio. Si el vector no esta en esa parte del vector, se devuelve 1. Aade elemento al vector en la posicin indicada por ndice. Devuelve true si el vector esta vaci y false si contiene uno o mas elementos. Devuelve el ultimo elemento del vector. Devuelve el ndice de la ultima aparicin de elemento, si el elemento no esta en el vector, se devuelve 1. Devuelve el ndice de la ultima aparicin antes de inicio. Si el objeto no esta en esa parte del vector, se devuelve 1. Vaca el vector. Tras ejecutarse este mtodo, el tamao del vector es 0. Quita elemento del vector. Si existe en el vector mas de una instancia del objeto especificado, entonces se quita la primera. Devuelve true si se hizo con xito y false si el objeto no se encontr. Quita el elemento en la posicin indicada por ndice.

void removeElementAt(int indice) Void setElementAt(Object Se asigna elemento a la posicin indicada por ndice. elemento,int indice) Void setSize(int tamano) Establece el numero de elementos en el vector en tamao. Si el nuevo numero es menor que el viejo, se pierden elementos. Si el nuevo tamao es mayor que el viejo, se aaden elementos null. Int size( ) Devuelve el numero de elementos actualmente en el vector. String toString( ) Devuelve la cadena equivalente del vector. Void trimToSize( ) Establece la capacidad del vector para que sea igual al numero de elementos que contiene actualmente. Tiene definidos los siguientes miembros de datos protegidos:

int capacityIncrement; int elementCount; Object elementData; El valor de incremento se almacena en capacityIncrement. El numero de elementos actualmente en el vector se almacena en elementCount. El array que contiene el vector se almacena en elementData. Ejemplo construir un programa para manejar la clase Vector. Definir una clase menu Definir la clase Leer Definir la clase mvector donde esta definido el main. (Ver en anexo 1).

Clase Stack.Stack (Pila) es una subclase de Vector que implementa una pila estndar; ultimo en entrar, primero en salir. Stack solo define el constructor por defecto, que crea una pila vaca. Stack incluye todos los mtodos definidos por vector y aade varios mtodos propios: Mtodo boolean empty( ) Object peek( ) Object pop( ) Object push(Object elemento) int search(Object elemento) Descripcin Devuelve true si la pila esta vaca y false si la pila contiene elementos. Devuelve el elemento en lo alto de la pila, pero no lo quita. Devuelve el elemento en lo alto de la pila y lo quita. Introduce elemento en la pila, tambin devuelve elemento. Busca elemento en la pila. Si lo encuentra, devuelve su desplazamiento desde lo alto de la pila. De lo contrario, se devuelve -1. Es decir devuelve las veces que hay que hacer pop para que el dato este en la cima.

El error que marca en caso de que se quiera sacar un elemento y que la pila ya este vaca es EmptyStackException. Implementar una aplicacin para la clase stack con un men que contenga las siguientes opciones: Insertar elementos, sacar elementos, verificar si la pila esta vaca y buscar si hay elementos en la pila. (Ver en anexo 2).

Manipulaciones de bits y los operadores a nivel de bits.Java proporciona muchas herramientas de manipulacin de programadores que necesitan llegar hasta el nivel de bits y bytes. Operador & l ^ > >>> ~ Operacin a nivel de bits AND OR OR EXCLUSIVO XOR Desplazamiento a la izquierda Desplazamiento a la derecha Desplazamiento a la derecha sin signo Complemento o Not bits para los

Para convertir un entero a binario se realiza mediante la clase esttica: String Integer.toBinaryString(int elemento) Para convertir de un String a un nmero decimal se realiza con: Integer Integer.parseInt(binario,base) Implementar un ejercicio que lea dos nmeros enteros y muestre su valor equivalente en binario con los 32 bits. Implementar clase men que contenga las opciones de leer 2 nmeros, mostrar los valor equivalentes en binario, aplicar operaciones en binario (AND, OR, XOR, DESPLAZAMIENTOS Y COMPLEMENTOS). (Ver en anexo 3) Ver como esta implementado el mtodo equivalente que saca el valor en binario de un entero utilizando la clase StringBuffer.

La Clase StringBufferUna clase que permite manejar con funcionalidad las cadenas en Java; y que adems les permite crecer de manera dinmica. StringBuffer define 3 constructores para su inicio y estos son: StringBuffer( ) StringBuffer(int tamao) StringBuffer(String str) El primer constructor define una cadena que reserva un espacio para 16 caracteres por default; el segundo constructor define de manera explicita el tamao del buffer y el tercer constructor inicializa el buffer con la cadena str del argumento mas 16 caracteres extra. Mtodo int length( ) int capacity( ) Descripcin Extrae la longitud actual de la cadena Devuelve la capacidad total asignada

void ensureCapacity( capacidad) void setLength(int lon)

int Preasigna espacio a la cadena especificada por el argumento capacidad. Se utiliza para fijar la Longitud del buffer dentro de un objeto StringBuffer, si la longitud de la cadena es mayor que el espacio asignado se asignan nulos al final de la cadena; si la longitud es menor que el tamao asignado entonces la cadena se corta. char charAt(int indice) Devuelve el carcter al que apunta el ndice. void setCharAt(int donde, Inserta el caracter car en la posicin donde especificados char car) por los argumentos. void getChars(int Asigna la subcadena y la asigna en destino desde el inicioorigen,int finalorigen, inicioorigen hasta finalorigen en la posicin especificada char destino[], int inicioDestino. inicioDestino) StringBuffer append(String Cada uno de los mtodos sobrecargados que concatena str ) al final de la cadena cada uno de los diferentes StringBuffer append(int elementos. num ) StringBuffer append(Object obj ) StringBuffer insert(int Inserta una cadena dentro de otra. ndice, String str) StringBuffer insert(int ndice, char ch) StringBuffer insert(int ndice, Object obj) StringBuffer reverse( ) Invierte la cadena StringBuffer delete(int Elimina la subcadena especificada por la posicin inicial y posinicial, int pos final) final StringBuffer Borra el carcter en la posicin especificada por pos. deleteCharAt(int pos) StringBuffer replace(int Reemplaza la subcadena en las posiciones especificadas. posinicial, int posfinal, String str) String substring(int pos Devuelven la subcadena especificadas por los inical) argumentos, la primera a partir de la posicin inicial y la String substring(int segunda a partir de la inicial hasta el final. posinicial,int posfinal)

public class manbits{ public static void main(String args[]){ int x=0; x=20; String binario="101010"; System.out.println(Integer.toBinaryString(x)); System.out.println(Binario(1200));

System.out.println(Integer.parseInt(binario,2)); x=1