4
Universidad de Carabobo Facultad de Ingeniería Departamento de Computación Computación Avanzada Examen Parcial Nro. 1 Operaciones con Polinomios Se requiere el desarrollo de una aplicación Java que permita efectuar operaciones entre dos polinomios. Las operaciones a efectuar son: suma, resta o multiplicación. Estas operaciones estarán orientadas solo a polinomios de una sola letra. Para el desarrollo de esta aplicación se propone el desarrollo de, al menos tres clases. 1era Clase La clase Monomio, la cual define un término de un polinomio. Esta clase debe tener como variables de instancia: coeficiente y exponente. La variable coeficiente contiene un valor numérico entero que acompaña la letra del polinomio. La variable exponente representa la potencia que se aplica a la letra del polinomio y representa el grado del término. public class Monomio { int exponente, coeficiente; // Variables de instancia public Monomio( int e, int c) // Constructor { exponente = e; coeficiente = c; } } 2da Clase La clase Polinomio, la cual describe una estructura para almacenar y manejar un polinomio. Esta clase tiene como variables de instancia un arreglo unidimensional de objetos Monomio para almacenar cada término del polinomio y un valor numérico entero que contiene el número de términos del polinomio. A continuación se anexa un ejemplo preliminar de la clase Polinomio. Puede reemplazar el uso de la clase Scanner por la clase JOptionPane. import java.util.Scanner; public class Polinomio { Monomio[] p; // Variables de instancia int nro; public Polinomio( int n ) // Constructor { nro = n; p = new Monomio[nro]; } void lecturaPolinomio( int n ) // Método para la lectura de un polinomio { int coef, expo; Scanner entradaPol = new Scanner(System.in); System.out.println(); for ( int k = 0; k < n ; k++) { System.out.println("Término Nro. " + (k+1) + "\n");

Examen Parcial Nro 1a OperPolinomios

Embed Size (px)

Citation preview

Page 1: Examen Parcial Nro 1a OperPolinomios

Universidad de Carabobo

Facultad de Ingeniería

Departamento de Computación

Computación Avanzada Examen Parcial Nro. 1

Operaciones con Polinomios

Se requiere el desarrollo de una aplicación Java que permita efectuar operaciones entre dos polinomios. Las operaciones a efectuar son:

suma, resta o multiplicación. Estas operaciones estarán orientadas solo a polinomios de una sola letra.

Para el desarrollo de esta aplicación se propone el desarrollo de, al menos tres clases.

1era Clase

La clase Monomio, la cual define un término de un polinomio. Esta clase debe tener como variables de instancia: coeficiente y exponente. La variable coeficiente contiene un valor numérico entero que acompaña la letra del polinomio. La variable exponente representa la potencia que se aplica a la letra del polinomio y representa el grado del término.

public class Monomio {

int exponente, coeficiente; // Variables de instancia public Monomio( int e, int c) // Constructor { exponente = e; coeficiente = c; }

}

2da Clase

La clase Polinomio, la cual describe una estructura para almacenar y manejar un polinomio. Esta clase tiene como variables de instancia un arreglo unidimensional de objetos Monomio para almacenar cada término del polinomio y un valor numérico entero que contiene el número de términos del polinomio.

A continuación se anexa un ejemplo preliminar de la clase Polinomio. Puede reemplazar el uso de la clase Scanner por la clase JOptionPane.

import java.util.Scanner; public class Polinomio { Monomio[] p; // Variables de instancia int nro; public Polinomio( int n ) // Constructor { nro = n; p = new Monomio[nro]; } void lecturaPolinomio( int n ) // Método para la lectura de un polinomio { int coef, expo; Scanner entradaPol = new Scanner(System.in); System.out.println(); for ( int k = 0; k < n ; k++) { System.out.println("Término Nro. " + (k+1) + "\n");

Page 2: Examen Parcial Nro 1a OperPolinomios

System.out.print("Introduzca el coeficiente:"); coef = entradaPol.nextInt(); System.out.print("Introduzca el exponente:"); expo = entradaPol.nextInt(); System.out.println(); p[k] = new Monomio(expo,coef); } System.out.println(); } } // Método para sumar dos polinomios Polinomio suma( Polinomio op ) { this.ordenarDesc(); op.ordenarDesc(); Polinomio s = new Polinomio(op.nro + nro); // Inicialización del arreglo que contendrá la suma de polinomios for ( int t = 0; t < s.nro; t++) { s.p[t] = new Monomio(0,0); } // Recorrido de los polinomios ordenados para generar el polinomio suma int i = 0, j = 0, k = 0; while ( i < op.nro && j < nro ) { if ( op.p[i].exponente > p[j].exponente ) { s.p[k] = op.p[i]; i++; } else if ( op.p[i].exponente < p[j].exponente ) { s.p[k] = p[j]; j++; } else { s.p[k].exponente = op.p[i].exponente; s.p[k].coeficiente = op.p[i].coeficiente + p[j].coeficiente; i++; j++; } k++; } // Recorrido de los términos faltantes en el polinomio op while ( i < op.nro ) { s.p[k] = op.p[i]; i++; k++; } // Recorrido de los términos faltantes en el polinomio this

Page 3: Examen Parcial Nro 1a OperPolinomios

while ( j < nro ) { s.p[k] = p[j]; j++; k++; } s.nro = k; // Eliminación de términos con coeficiente igual a cero s.eliminacionTerminosCero(); return s; } // Fin del método suma

La clase Polinomio debe tener los siguientes métodos:

Método para sumar dos polinomios.

Método para restar dos polinomios.

Método para multiplicar dos polinomios.

Método para ordenar un polinomio en forma ascendente (según el exponente de la letra del término).

Método para ordenar un polinomio en forma descendente (según el exponente de la letra del término).

Método para eliminar de un polinomio un término en particular, indicando la posición del término dentro del polinomio.

Método para mostrar un polinomio.

Las operaciones de suma y resta de polinomios se basan en la agrupación de términos semejantes. Dos o más términos son semejantes cuando tienen iguales letras afectadas de iguales exponentes.

Ejemplo:

Polinomio 1: 3x3 -4x

2 – 7 Polinomio 2: 2x

2 + 6x – 2

Resultado de la suma: 3x3 + (-4+2) x

2 + 6x + (-7-2) = 3x

3 -2x

2 + 6x -9

En la multiplicación de polinomios, se multiplican todos los términos del multiplicando por cada uno de los términos del multiplicador, teniendo en cuenta los signos, los coeficientes y los exponentes de las potencias. Seguidamente se reducen a términos semejantes.

Ejemplo:

Polinomio 1: 2x2 + 1 Polinomio 2: 4x2 + 5x + 1

Resultado de la multiplicación: 8x4 + 4x2 + 10x3 + 5x + 2x2 + 1 = 8x4 + 10x3 + 6x2 + 5x + 1

En cualquiera de las operaciones, deben eliminarse los términos con coeficiente es igual a CERO.

Deben mostrarse en la pantalla los polinomios que sirven de operandos y el resultado obtenido. Los polinomios deben estar ordenados en forma descendente o ascendente, según indique el usuario.

El usuario de la aplicación debe escoger el tipo de operación a realizar: suma, resta o multiplicación.

La eliminación de elementos de un arreglo se basa en el desplazamiento de elementos hacia el inicio del arreglo.

Ejemplo:

0 1 2 3 4 Posición del elemento

2 3 0 6 7 Arreglo Original

2 3 6 7 Arreglo después de eliminar el elemento que está en la posición 2

Page 4: Examen Parcial Nro 1a OperPolinomios

3era Clase

La clase que contiene el método main() y contiene el programa principal a ejecutar.

Puntuación:

a) Construcción de la clase Polinomio 5 puntos b) Programa principal 5 puntos c) Ejecución correcta de todos los requisitos 10 puntos