Descargar

Programacion de applet de polinomios basados en listas simples

Enviado por Andrea Paz Roca


  1. Conceptos generales
  2. Definición de clase conformando nodo
  3. Polinomios
  4. Applet

Conceptos generales

Nodo.- en informática u n nodo puede ser definido como una intersección o conexión entre varios elementos que confluyen en el mismo lugar. En redes un nodo es un punto en el que la curva se intersecta consigo misma, pero puede depender del tipo de red.

En programación concretamente en estructura de datos, un nodo es uno de los elementos de una lista enlazada, de un árbol o de un grafo. Cada nodo será una estructura o registro que dispondrá de varios campos, y al menos uno de esos campos será un puntero o referencia a otro nodo, de forma que, conocido un nodo, a partir de esa referencia, será posible en teoría tener acceso a otros nodos de la estructura. Los nodos son herramientas esenciales para la construcción de estructuras de datos dinámicas.

 Puntero.-  es una variable que almacena la dirección de memoria de otra variable, es decir, almacena el valor del lugar físico en la memoria en donde se encuentra almacenada dicha variable. Si se imagina que la memoria del computador es un gran arreglo de bytes, la dirección de memoria correspondería al índice de los casilleros de dicho arreglo, que es precisamente lo que se almacena en el puntero.

En algunos lenguajes de programación, por ejemplo C, es posible declarar explícitamente punteros para distintos tipos de variables, e incluso es posible realizar aritmética de punteros para realizar operaciones de manera muy eficiente, a cambio de "oscurecer" el código del programa y con una alta probabilidad de cometer errores de programación difíciles de detectar.

En Java no se puede declarar punteros de manera explícita ni tampoco realizar aritmética de punteros. Por lo tanto es imposible en Java tener un puntero a cualquiera de los tipos primitivos: enteros, reales, caracteres y booleanos. Los strings y arreglos no son tipos primitivos en Java.

 Variable de referencia.- es una variable que almacena la dirección de memoria en donde se ubica un objeto. Nótese que si bien la definición es prácticamente idéntica a la de puntero, la diferencia radica en que una referencia sólo puede apuntar a objetos residentes en memoria, lo cual excluye a los tipos primitivos. A partir de esta definición se puede concluir que toda variable en Java, que no sea de tipo primitivo, es una referencia.

Definición de clase conformando nodo

class NodosLista // se define la clase Nodo

{

Object datos; // Campo Información

NodosLista siguiente; //Campo Nodo

// datos: que almacena la información

// siguiente : Apuntador o enlace a otros nodos

edu.red

NodosLista (Object valor) // Se define un nodo

{

datos=valor;

siguiente=null;

}

edu.red

Como la lista es una consecución de muchos nodos es necesario establecer nombre a los nodos y colocarlos a apuntar a algún sitio, en el caso del único nodo debe apuntar a NULL.

En este caso se crea un nodo llamado P, indicando que es el primero de la lista.

P =new NodosLista;

edu.red

Si se define un nodo, el nodo creado contiene el campo información y el campo siguiente

Nodo P y Nodo Q

edu.red

Cuando se coloca el nombre del nodo haciendo referencia a otro realmente se apunta al nodo indicado

edu.red

Y así es como se crea un nodo y se lo enlaza.

Polinomios

Un polinomio en la variable x es una expresión algebraica formada solamente por la suma de términos de la forma a x n, donde a es cualquier número y n es un número entero no negativo. Ejemplos:

1)3x -2

2) x4+ 5

Término: Un término es una parte de una expresión algebraica. Los términos se separan entre sí por los signos de suma (+)o resta (-).

Coeficiente numérico: es el factor numérico del mismo.

Término constante: es el coeficiente numérico que no contiene variable.

OPERACIONES CON POLINOMIOS

Las operaciones básicas a realizar son: la suma, resta, multiplicación y división, los cuales se explicaran a continuación:

Suma y resta de monomios semejantes: Se suman o restan sus coeficientes, manteniéndose la misma parte literal.

a) 7x3y2 + 4x3y2 = (7+4) x3y2 = 11 x3y2

b) 7x3y2 – 4x3y2 = (7-4) x3y2 = 3 x3y2

Multiplicación de polinomios:

1. Producto de un número por un polinomio: Se multiplica el número por cada uno de los monomios que forman el polinomio.

a) 4(x2 – 3x + 2) = 4×2 – 12x + 8

b) – 6(-x3 + 5×2 – 3) = 6×3 – 30×2 + 18

2. Producto de un monomio por un polinomio: Se multiplica el monomio por cada uno de los monomios que forman el polinomio.

a) 4×3 · (x2 – 3x + 2) = 4×5 – 12×4 + 8×3

b) – 6x 4 · (-x3 + 5×2 – 3) = 6×7 – 30×6 + 18×4

3. Producto de dos polinomios: Se multiplica cada monomio del primer polinomio por cada uno de los monomios del segundo polinomio y después se agrupan los monomios semejantes.

a) (2 – 6x) · (-x3 – 3) = -2×3 – 6 + 6×4 + 18x

b) (4×3 + 5x) · (x2 – 3x + 2) = 4×5 – 12×4 + 8×3 + 5×3 – 15×2 + 10x = 4×5 – 12×4 + 13×3 – 15×2 + 10x

Cociente de polinomios:

Ordenamos los polinomios dividendo y divisor de forma descendente. Los colocamos como las divisiones de números, el dividendo a la izquierda y el divisor a la derecha. Si el dividendo es incompleto, dejamos los huecos correspondientes. La división se realizará de forma similar a como se procede con los números.

Dividimos el primer monomio del dividendo entre el primer monomio del divisor; vamos multiplicando este resultado por cada término del divisor y se lo restamos al dividendo (para que resulte más sencillo y no cometamos errores con los signos, podemos ir cambiando el signo de cada producto resultante, colocarlo debajo de su correspondiente grado en el dividendo y sumar con el dividendo) ; repetimos el proceso hasta que el grado del polinomio resto sea menor que el del divisor (análogo a las divisiones entre números).

Observación: En el caso de que el resto de P(x): Q(x) resulte ser 0, diremos que la división es exacta y que el polinomio P(x) es divisible por el polinomio Q(x).

Ejemplo: Realiza la división P(x): Q(x), siendo P(x) = x4 + 2×3 – x + 5 y Q(x) = x2 – 2x + 3

edu.red

Se verifica la misma relación que con números, D = d*c + r, pero con polinomios: P(x) =

Q(x) ·C(x) + R(x)

Applet

Applet.- desde el punto de vista de código Java, un programa diseñado para ser ejecutado en el contexto de una página web.

desde el punto de vista de una página HTML, una pequeña ventana gráfica dentro de la misma.

Diferencia con una aplicación Java.-

  • a) Para cargar y ejecutar una aplicación Java utilizamos directamente el intérprete Java.

  • b)  Un applet se carga y se ejecuta desde cualquier explorador que soporte Java.

EJEMPLO DE UN APPLET

edu.red

METODOS BASICOS

Para procesar los eventos anteriores, la mayoría de applets redefinen estos 4 métodos:

Init.- Para inicializar el applet cada vez que se carga o se recarga suele usarse para operaciones cortas de inicialización (por ejemplo, cargar imágenes)

Start.- Para comenzar la ejecución del applet: cuando el applet se carga o cuando se revisita la página web.

Stop.- Para detener la ejecución del applet: cuando se abandona la página web o se cierra el explorador.

Destroy.- Para realizar operaciones de limpieza (liberar recursos) antes de descargar el applet

Para visualizar objetos, los applets pueden redefinir 2 métodos heredados de AWT:

Paint.- Es el método básico de visualización. Se usa para dibujar la representación del applet dentro de la página web.

Update.- Se usa para redibujar el applet.

Otros componentes visuales heredados de AWT:

– Botones (java.awt.Button)

– Checkbox (java.awt.Checkbox)

– Campos de texto de una línea (java.awt.TextField)

– Áreas de edición más grandes (java.awt.TextArea)

– Etiquetas (java.awt.Label)

– Listas (java.awt.List)

– Listas desplegables (java.awt.Choice)

– Sliders y barras de desplazamiento (java.awt.Scrollbar)

– Áreas de dibujo (java.awt.Canvas)

– Menús (java.awt.Menu, java.awt.MenuItem, java.awt.CheckboxMenuItem)

– Contenedores (java.awt.Panel, java.awt.Window and its subclasses).

APPLET PARA POLINOMIOS CON NODOS

Para poder realizar este applet se debe analizar parte por parte, para poder entenderlo mejor.

edu.red

En esta parte declaramos todas las variables a utilizar. Donde nuestra clase poli es la que inicializa u nodo.

Luego de eso procedemos a crear todas nuestras labels y botones:

edu.red

Con la siguiente función habremos de inicializar nuestros botones y etiquetas y darle los atributos que queramos:

edu.red

Y en esta parte comenzamos con las funciones respectivas.

edu.red

Estas de acá son nuestras funciones esenciales, que nos permiten la creación de un nodo y su enlazamiento con el resto de la lista, además de la función contar, que nos permite contar el número de nodos de una lista.

edu.red

edu.red

Nuestra función de la suma es la misma que de la resta. Pero la multiplicación y la división son casos muy distintos.

edu.red

Para este caso necesitamos de la función simplificar para que nos dé un resultado correcto y más corto.

edu.red

La división se genera a partir de las otras funciones básicas (suma, resta y multiplicación).

edu.red

Estas dos últimas funciones son las que nos permiten integrar y derivar el polinomio y con las de a continuación activamos los eventos que llaman a cada función:

edu.red

edu.red

edu.red

edu.red

Y con esta última parte hacemos que los resultados obtenidos se muestren en pantalla:

edu.red

Y el resultado obtenido ha de ser:

edu.red

 

 

Autor:

Andrea Paz Roca