martes, 14 de febrero de 2012

Principios de la UNEFA


HIMNO DE VENEZUELA Y UNEFA

http://www.youtube.com/watch?v=ctzDAz2Aygk


Pilas y Colas


PILAS

Para los próximos algoritmos se cuenta con la siguiente estructura de datos

Const MAX = 100
Pila = arreglo[1..MAX] de enteros

PONER EN UNA PILA
Algoritmo que inserta el elemento DATO en la pila. TOPE marca el tope de elementos, MAX posee el tamaño de la pila
Push(PILA, MAX, TOPE,DATO)
Inicio
            Si (TOPE < MAX) entonces   /* verifica que haya espacio */
                        TOPE ß TOPE +1
                        PILA[TOPE] ß DATO
            Sino
                        Imprimir(“Subdesbordamiento”)
            Fin si
Fin

QUITAR DE UNA PILA
Algoritmo que saca el ùltimo elemento de una PILA, y lo guarda en Dato, TOPE guarda el tope de elementos de la pila.
Pop(PILA, TOPE, DATO)
Inicio
            Si (TOPE > 0) entonces                      /* verifica que la pila no este vacia */
                        DATO ß PILA[TOPE]
                        TOPE ß TOPE -1
            Sino
                        Imprimir(“Subdesbordamiento”)
            Fin si
Fin

CONVERSION POSTFIJA
Traducir una expresión infija EI a postfija EPOS, utilizando una pila.
Inapos(EI, EPOS)
Inicio
            Declarar Tope: entero
            Declarar símbolo: caracter
            Tope ß 0
            Mientras (EI<>vacio) haga
                        Símbolo ß izquierda(EI,1,1)  /* función que devuelve un número de caracteres a la izquierda de una cadena */
                        EI ß derecha(EI,2,largo(EI)) /* derecha devuelve un numero de caracteres a la derecha de una cadena, largo, devuelve la longitud de una cadena */
                        Selecciones símbolo
                        Caso “(“:          Tope ß Tope +1
                                               Pila[Tope] ß simbolo
                        Caso “)“:          Mientras Que (Pila[Tope] <> “)” ) haga
                                                           Concatenar(EPOS, Pila[Tope])
                                                           /* Concatenar dos cadenas */
                                                           Tope ß Tope -1
                                               Fin MQ
                      /* Se quita el paréntesis izquierdo de la pila y no se agrega a EPOS */
                                               Pila[Tope] ß “”
                                               Tope ß Tope – 1
                        Caso “A”,”B”,”C”,…,”Y”,”Z”:        /* El símbolo es un operando */
                                               Concatenar (EPOS, símbolo)
                        Caso “^”, “*”,”/”,”+”,”-“:  /* el símbolo es un operador */
                                   Mientras Que (Tope > 0 ) y
                                   (Prioridad(símbolo) <= prioridad(Pila(Tope)) haga
                                               Concatenar(EPOS, Pila[Tope])
                                               Tope ß Tope -1
                                   Fin MQ
                                   Tope ß Tope +1
                                   Pila[Tope] ß símbolo
                        Fin Seleccione
            Fin MQ
            Mientras Que (Tope>0) haga
                        Concatenar(EPOS,Pila[Tope])
                        Tope ß Tope -1
            Fin MQ
            Imprimir EPOS
Fin

COLAS

Para los próximos algoritmos se cuenta con la siguiente estructura de datos

Const MAX = 100
COLA = arreglo[1..MAX] de enteros

INSERTAR EN UNA COLA
Algoritmo que inserta el elemento DATO al final de la COLA. FRENTE y FINAL marcan el inicio y fin de la cola. MAX es el tamaño de la COLA
Insertacola(COLA, MAX, FRENTE, FINAL,DATO)
Inicio
            Si (FINAL < MAX) entonces  /* Verificar espacio libre */
                        FINAL ß FINAL +1
                        COLA[FINAL] ß DATO
                        Si (FINAL = 1) ENTONCES
                                   FRENTE ß 1
                        Fin si
            Sino
                        Imprimir(“Desbordamiento”)
            Fin si   
Fin

ELIMINAR EN UNA COLA
Algoritmo que elimina el primar elemento de la cola y lo almacena en DATO
Eliminacola(COLA, FRENTE,FINAL,DATO)
Inicio
            Si (FRENTE <> 0) entonces              /* verificar que la cola no este vacia */
                        DATO ß COLA[FRENTE]
                        Si (FRENTE = FINAL) entonces  /* hay un solo elemento */
                                   FRENTE ß 0
                                   FINAL ß 0
                        Sino
                                   FRENTE ß FRENTE +1
                        Fin si
            Sino
                        Imprimir(“Subdesbordamiento”)
            Fin si
Fin

MANEJO DE COLAS CIRCULARES
INSERTAR EN UNA COLA CIRCULAR
Algoritmo que sirve para insertar un dato DATO en una cola Circular COLACIR con MAX elementos y los marcadores de FRENTE y FINAL.
Insertacircular(COLACIR, MAX, FRENTE, FINAL, DATO)
Inicio
            Si ((FINAL=MAX) Y (FRENTE=1)) o ((FINAL+1)= FRENTE) entonces
                        Imprimir (“Desbordamiento”)   /* Cola Llena */
            Sino
                        Si (FINAL = MAX) entonces
                                   FINAL ß 1
                        Sino
                                   FINAL ß FINAL +1
                        Fin si
                        COLACIR[FINAL] ß DATO
                        Si (FRENTE = 0) entonces
                                   FRENTE ß 1
                        Fin si
            Fin si
Fin

ELIMINAR EN UNA COLA CIRCULAR
Algoritmo que elimina el primer elemento de una cola circular COLACIR y lo almacena en DATO. FRENTE Y FINAL marcan el inicio y fin de la cola. La cola tiene un tamaño de MAX elementos.
Elminacircular(COLACIR, MAX, FRENTE, FINAL, DATO)
Inicio
            Si (FRENTE = 0) entonces                 /* verifica si la cola esta vacía */
                        Imprimir(“Subdesbordamiento”)
            Sino
                        DATO ß COLACIR[FRENTE]
                        Si (FRENTE = FINAL) entonces  /* solo hay un elemento */
                                   FRENTE ß 0
                                   FINAL ß 0
                        Sino
                                   Si (FRENTE = MAX) entonces
                                               FRENTE ß 1
                                   Sino
                                               FRENTE ß FRENTE +1
                                   Fin si
                        Fin si
            Fin si
Fin


http://blog.zerial.org/ficheros/Informe_Ordenamiento.pdf

Algoritmo de Busqueda

http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda

Guias de Ejercicios I, II, III














CARRERA: ANÁLISIS Y  DISEÑO DE SISTEMAS
ASIGNATURA: LENGUAJE PROGRAMACIÓN II

GUÍA DE EJERCICIOS
PARTE I
FUNCIONES Y PROCEDIMIENTOS

Prof. Ing. Rubén Pulido González

OCTUBRE 2011.

1.    Realizar una función, que calcule la siguiente expresión F(x) = (x2 + 1) / 4x2 + 8, donde x es un dato de entrada.

2.    Realizar una función que convierta una temperatura dada en grados kelvin a una temperatura en Grados centígrados y que devuelva el resultado.

3.    Realiza una función que tenga como entradas 3 números y devuelva el mayor de ellos. Crea un programa principal para probar la función.

4.    Crear un subalgoritmo que reciba como entrada un valor entero e indique si se trata de un número par o impar. ¿Qué tipo de subalgoritmo crees más apropiado, procedimiento o función?. Escribe también un programa principal para probar el subalgoritmo.

5.    Realizar una función que tenga como entrada dos valores enteros, m y n, y determine si m es múltiplo de n. La función devolverá un valor lógico. Realiza un programa principal para probar la función.

6.    Escribir un subalgoritmo que reciba tres valores reales como entrada y los devuelva ordenados de mayor a menor.

7.    Diseñar un algoritmo que lea las longitudes de los tres lados de un triángulo (L1,L2,L3) y determine qué tipo de triángulo es, de acuerdo a los siguientes casos. Suponiendo que A determina el mayor de los tres lados y B y C, corresponden con los otros dos, entonces:
a.    Si A>=B + C No se trata de un triángulo
b.    Si A2 = B2 + C2 Es un triángulo rectángulo
c.    Si A2 > B2 + C2 Es un triángulo obtusángulo
d.    Si A2 < B2 + C2 Es un triángulo acutángulo
Utiliza como subalgoritmos el código creado en ejercicios de guiones anteriores para ordenar los lados.

 Escribir un subalgoritmo que calcule la suma de los cuadrados de los N primeros números enteros, siendo N la entrada del subalgoritmo. Crea unprograma principal para probarlo.

3.    Escribe un subalgoritmo que dado un número entero lo descomponga dígito a dígito, lo vuelva a componer al revés y lo devuelva. Por ejemplo: si le datos el número 187365, el programa mostrará 563781. Crear un programa principal para probarlo.

4.    Crea un subalgoritmo que lea de teclado una secuencia de números enteros positivos entre 0 y 100, ambos inclusive. La secuencia de números introducidos terminará cuando se introduzca un número que no cumpla la condición (que no
5.    esté entre 0 y 100). El subalgoritmo devolverá un array con los valores leídos y el número de valores que hay dentro del array.

6 Realiza un subalgoritmo que tenga como entrada un array de enteros y su tamaño y muestre por pantalla el contenido de dicho array.

7 Realizar un subalgoritmo que dado un vector de reales y su tamaño, los ordene de mayor a menor. Crea un programa principal para probarlo.

8Crea un subalgoritmo que muestre por pantalla una matriz de N filas y M colunmas.

9Necesitamos un subalgoritmo que dada una matriz cuadrada y su tamaño, nos devuelva dicha matriz transpuesta. Realizar un programa principal que lea por teclado el tamaño de la matriz y su contenido, transponga la matriz utilizando el subalgoritmo y la muestre por pantalla.

1 Realiza un procedimiento que inicialice un array bidimensional cuadrado de un tamaño dado, con un valor dado como entrada.

1 Se necesita una función que dada una matriz cuadrada, una fila y un valor, devuelva verdadero si el valor ya se encuentra en dicha fila y falso en caso contrario.

1Crea una función que dada una matriz cuadrada y la posición de una submatriz dentro de ella, devuelva el contenido de dicha submatriz en un array unidimensional.

1Crea una función que dada una matriz NxN, que devuelva  la suma de la diagonal principal.

1Crea procedimientos que dada una matriz 4x4 calcule lo siguiente:
a)    A+B
b)    2A + (A-B)
c)    A*B




CARRERA: ANÁLISIS Y  DISEÑO DE SISTEMAS
ASIGNATURA: LENGUAJE PROGRAMACIÓN II

GUÍA DE EJERCICIOS

PILAS Y COLAS ESTATICAS




Prof. Ing. Rubén Pulido González




FEBRERO  2011.


1.   Elabore un programa que permita simular el funcionamiento de una estructura tipo Pila que contenga los métodos: inserta_pila, sacar_pila, y mostrar_pila.

2.   Elabore un programa que permita simular el funcionamiento de una estructura tipo Cola que contenga los métodos: inserta_cola, sacar_cola, y mostrar_cola.

3.   Ingresar 10 números a una cola, luego realizar la suma de los elementos extrayendo cada uno y sumando hasta que la cola esté vacía.

4.   Escribir un programa que invierta el contenido de una cola.  Usted puede utilizar estructuras de datos auxiliares para hacerlo

5.   Escribir un programa que invierta el contenido de una cola.  Usted puede utilizar estructuras de datos auxiliares para hacerlo.

6.   Implemente el objeto Cola en JAVA de manera que reciba los datos de personas en una cola de un banco, esto es, nombre y el tipo de transacciones a realizar.  Se requiere conocer el tiempo estimado de permanencia de cualquier persona el la cola, si se conocen los tiempos estimados para cada tipo de transacción: 


·        Retiro                 4 min                           
·        Depósito            2 min
·        Consulta            3.5 min
·        Actualización     5 min
·        Pagos                2 min

7.   En un almacén se guarda mercadería en contenedores. No es posible colocar más de n contenedores uno encima del otro y, no hay área para más de m pilas de contenedores. Cada contendor tiene un  número y un nombre de la empresa propietaria. Elabore un programa que permita gestionar el ingreso y salida de contenedores. Note que para retirar un contenedor es necesario retirar los contenedores que están encima de él y colocarlos en otra pila.

8.   Se tienen dos pilas  que contienen números enteros; la primera ordenada ascendentemente desde el tope hacia el fondo, y la segunda ordenada descendentemente desde el tope hacia el fondo. Si se cuenta con la clase CPila que contiene las operaciones básicas definidas para pilas, elabore un programa que fusione ambas pilas en una tercera ordenada descendentemente desde el tope hacia el fondo.


 9. Se tiene un almacén donde se encuentran las neveras fabricadas por una planta, las primeras neveras que fueron fabricadas están de últimas, dentro del almacén y las últimas neveras fabricadas, aparecen de primeras dentro del almacén. Los datos de cada nevera son código y descripción. El almacén dispone de una sola puerta, por donde entran las neveras a ser almacenadas y salen las neveras que se van a distribuir a las tiendas. Adicionalmente, se tiene una cola de solicitudes de neveras realizadas por las tiendas, donde aparece el nombre de la tienda y la cantidad solicitada de neveras, elabore un método que permita asignar a cada tienda las neveras, generando una nueva estructura que contenga la tienda y el código de las neveras asignadas



Mi primer programa en JAVA....tutorial


NetBeans 
es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE1 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.





HISTORIA
NetBeans comenzó como un proyecto estudiantil en la República Checa (originalmente llamado Xelfi), en 1996 bajo la tutoría de la Facultad de Matemáticas y Física en laUniversidad Carolina en Praga. La meta era escribir un entorno de desarrollo integrado (IDE) para Java parecido a Delphi. Xelfi fue el primer IDE escrito en Java; tuvo su primer prelanzamiento en 1997.
Xelfi fue un proyecto divertido para trabajar, ya que los IDE escritos en Java eran un territorio desconocido en esa época. El proyecto atrajo suficiente interés, por lo que los estudiantes, después de graduarse, decidieron que lo podían convertir en un proyecto comercial. Prestando espacios web de amigos y familiares, formaron una compañía alrededor de esto. Casi todos ellos siguen trabajando en NetBeans.
Tiempo después, fueron contactados por Roman Stanek, un empresario que ya había estado relacionado con varias iniciativas en la República Checa. Estaba buscando una buena idea en la que invertir, y encontró en Xelfi una buena oportunidad. Así, tras una reunión, el negocio surgió.
El plan original era desarrollar unos componentes JavaBeans para redes. Jarda Tulach, quien diseñó la arquitectura básica de la IDE, propuso la idea de llamarlo NetBeans, a fin de describir este propósito. Cuando las especificaciones de los Enterprise JavaBeans salieron, decidieron trabajar con este estándar, ya que no tenía sentido competir contra él, sin embargo permaneció el nombre de NetBeans.
En la primavera de 1999, Netbeans DeveloperX2 fue lanzado, soportando Swing. Las mejoras de rendimiento que llegaron con el JDK 1.3, lanzado en otoño de 1999, hicieron de NetBeans una alternativa realmente viable para el desarrollo de herramientas. En el verano de 1999, el equipo trabajó duro para rediseñar DeveloperX2 en un NetBeans más modular, lo que lo convirtió en la base de NetBeans hoy en día.
Algo más ocurrió en el verano de 1999. Sun Microsystems quería una herramienta mejor de desarrollo en Java, y comenzó a estar interesado en NetBeans. En otoño de 1999, con la nueva generación de NetBeans en Beta, se llegaría a un acuerdo.
Sun adquirió otra compañía de herramientas al mismo tiempo, Forté, y decidió renombrar NetBeans a Forté for Java. El nombre de NetBeans desapareció por un tiempo.
Seis meses después, se tomó la decisión de hacer a NetBeans open source. Mientras que Sun había contribuido considerablemente con líneas de código en varios proyectos de código abierto a través de los años, NetBeans se convirtió en el primer proyecto de código abierto patrocinado por ellos. En junio del 2000 NetBeans.org fue lanzado.


NetBeans Hoy

Un proyecto de código abierto no es nada más ni nada menos que un proceso. Toma tiempo encontrar el equilibrio. El primer año, fue crucial como inicio. Los dos años siguientes, se orientó hacia código abierto. Como muestra de lo abierto que era, en los primeros dos años había más debate que implementación.
Con NetBeans 3.5 se mejoró enormemente en desempeño, y con la llegada de NetBeans 3.6, se reimplementó el sistema de ventanas y la hoja de propiedades, y se limpió enormemente la interfaz. NetBeans 4.0 fue un gran cambio en cuanto a la forma de funcionar del IDE, con nuevos sistemas de proyectos, con el cambio no solo de la experiencia de usuario, sino del reemplazo de muchas piezas de la infraestructura que había tenido NetBeans anteriormente. NetBeans IDE 5.0 introdujo un soporte mucho mejor para el desarrollo de nuevos módulos, el nuevo constructor intuitivo de interfaces Matisse, un nuevo y rediseñado soporte de CVS, soporte a Sun ApplicationServer 8.2, Weblogic9 y JBoss 4.
Con Netbeans 6.01, 6.8 y ahora en su versión mejorada 7.0 Se dio soporte a frameworks comerciales como son Struts, Hibernate.









Introducción al lenguaje Java

Java es un lenguaje de programación de ordenadores. En cierto sentido no se diferencia mucho de otros lenguajes de programación, tales como C, Pascal o Visual Basic. Aquel que ya conoce alguno de estos lenguajes tiene medio camino ya andado.
Como otros lenguajes posee declaraciones de variables, instrucciones condicionales, bucles, funciones, etc.. Sin embargo Java posee algunas características únicas, que le hacen un lenguaje muy importante.
Las más sobresalientes son:
  • Portabilidad: Los programas escritos en Java pueden ejecutarse en cualquier ordenador o terminal tal como teléfonos móviles. No importa el tipo de hardware, ni el sistema operativo (más adelante veremos algunas precisiones a esta afirmación).
  • Internet: Java está especialmente pensado para realizar aplicaciones que funcionan en red, ya sea local o Internet. El acceso a recursos remotos, tales como bases de datos es sencillo y rápido.
  • Potencia: Java es un lenguaje que soporta todas las características necesarias para desarrollar cualquier tipo de programa, tales como gráficos, imágenes y mutimedia en general, multihilo, etc

Breve historia de Java

El lenguaje Java así como la máquina virtual, comenzaron como un proyecto interno de Sun Microsystems en 1990. Los ingenieros de Sun no estaban satisfechos con el rendimiento del lenguaje C++, por lo que James Gosling, Mike Sheridan y Patrick Naughton, junto con otros más, comenzaron a desarrollar un nuevo lenguaje, que en principio pensaron dedicar a la programación de todo tipo de aparatos, tales como microondas, neveras, teléfonos móviles, etc.. Ellos pensaban que éstos generarían muchas e importantes aplicaciones para la tecnología del futuro.El lenguaje tendría que obviar problemas que presenta C++, en campos tales como la programación distribuída, las aplicaciones multihilo, el manejo de la memoria y ser más sencillo de manejar que C++. Finalmente se deseaba que los programas fueran portables a todo tipo de aparatos.
Inicialmente el lenguaje se llamó Oak (en español 'roble'), en honor de un roble que había frente a la oficina.
En 1992, se presentó como demostración una PDA con interface gráfica y un asistente inteligente representado mediante un muñeco llamado Duke.
Oak fue presentado a concurso, como solución tecnológica, en varios proyectos para la industria del cine y la televisión, pero no fue elegido. En 1994 John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing, y Eric Schmidt se se reunieron para reorientar Oak. Decidieron orientarlo hacia la tecnología de la Web, pues se pensaba que tras la aparición del navegador Mosaic, ésta evolucionaría hacia la misma clase de interactividad, que la televisión por cable, para la cual habían estado preparando Oak.
Fue asimismo en 1994 cuando se cambió el nombre de Oak a Java. Poco después, aún en 1994, la plataforma Java 1.0, estaba disponible para descarga en la Web.
En 1995 Netscape anunció que incluiría soporte para Java en sus navegadores, dando con esto un buen apoyo a Java.














RESUMEN POR CORTES

I CORTE
Se estudio como se declaran los arreglos bidimensionales en JAVA es decir MATRICES y las operaciones básicas que se pueden realizar con los mismos, entre ella la suma, resta, multiplicación, traspuesta entre otras.Se realizo un taller, unos ejercicios y un pequeño proyecto de los puntos antes mencionados.

II CORTE 
Se estudiaron los métodos de ordenamientos (MÉTODO BURBUJA y METODO INSERCIÓN) así como tambien los metodos de busqueda (BUSQUEDA BINARIA y BUSQUEDA SECUENCIAL). Se realizo un taller, unos ejercicios, una prueba y la cartelera.

III CORTE
Se estudio lo que son PILAS y COLAS, se realizo unos ejercicios, una prueba y un pequeño proyecto (La Vieja) y se explico tambien como se trabaja con el JFRAME.

IV CORTE
Se siguió el estudio de PILAS y COLAS y se realizo una prueba, un pequeño proyecto y la revision del blog (PORTAFOLIO).