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
NodosLista (Object valor) // Se define un
nodo
{
datos=valor;
siguiente=null;
}
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;
Si se define un nodo, el nodo creado
contiene el campo información y el campo
siguiente
Nodo P y Nodo Q
Cuando se coloca el nombre del nodo
haciendo referencia a otro realmente se apunta al nodo
indicado
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
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
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.
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:
Con la siguiente función habremos de
inicializar nuestros botones y etiquetas y darle los atributos
que queramos:
Y en esta parte comenzamos con las
funciones respectivas.
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.
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.
Para este caso necesitamos de la
función simplificar para que nos dé un resultado
correcto y más corto.
La división se genera a partir de
las otras funciones básicas (suma, resta y
multiplicación).
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:
Y con esta última parte hacemos que
los resultados obtenidos se muestren en pantalla:
Y el resultado obtenido ha de
ser:
Autor:
Andrea Paz Roca