Ángel Cortez
César Hidalgo Rodríguez
Daniel Salinas
| Criterios | Excelente (1) | Bueno (0.5) | Aceptable (0) |
|---|---|---|---|
| Menú | Tiene menú bien detallado y sencillo de usar. | Tiene menú, pero usarlo es poco intuitivo | No tiene menú |
| Uso de arreglos | Recibe y almacena arreglos de diferente dimensión y se puede trabajar para cualquier función | Recibe y almacena arreglos en cada función que realiza. | No tiene arreglos |
| División sintética | Se definió una función que realice el método de división sintética e imprima la división, así como el resultado según sea el caso. | Se definió una función que realice el método de división sintética, pero no imprime el resultado adecuadamente. | No se definió ninguna función que realice el método de división sintética. |
| Sistemas de ecuaciones | Se definió una función que resuelva un sistema de ecuaciones por el método de Gauss-Jordan e imprima el paso a paso, así como el resultado | Se definió una función que resuelva un sistema de ecuaciones por el método de Gauss-Jordan, pero no imprime adecuadamente el paso a paso ni el resultado. | No se definió ninguna función que resuelva un sistema de ecuaciones por el método de Gauss-Jordan. |
| Operaciones con matrices | Se definió una función que opere matrices de acuerdo con la operación y al orden de las matrices, imprime el paso a paso y el resultado. | Se definió una función que opere matrices de acuerdo con la operación y al orden de las matrices, pero no imprime adecuadamente el paso a paso ni el resultado. |
No se definió ninguna función que opere matrices. | | Reporte | Se entregó reporte con las características especificadas | El reporte no contiene uno o varios apartados de las especificacione | No se entregó |
El programa usa Python 3.13.0 disponible en https://www.python.org/downloads/
, así como la librería Numpy
pip install numpy
La división sintética usa el método get_Input() del archivo complexInput.py. Por tanto el formato de los datos (para pedir las raíces y/o coeficienteS) es el mismo que el que se explica más abajo en el reporte, en la sección de complexInput.py. Para pedir el número de términos se pide un solo número natural mayor a 1.
Lo primero que hace el código es pedir el número de términos. Para una mejor experiencia de usuario (y esto se hará cada que se pida una entrada) se encapsula la entrada dentro de un ciclo while. Este tiene dentro un bloque try/except, y solo en caso de obtener una entrada válida se sale del ciclo while.
Pidiendo número de términos y términos
Primero se pide el número de términos, verificando que no sea menor o igual a 1, de lo contrario se interpreta como un error y se repite el ciclo. A partir de aquí, usando el método get_Input()se pide la raíz a evaluar. Posteriormente se usa un ciclo for para pedir justo el número de coeficientes como términos, pidiendo primero el término independiente, seguido del lineal y del cuadrático o más (en caso de haber). Estos términos se añaden a la lista coeficientes.
Dado que se pide en orden reversado los coeficientes, el último elemento de la lista de coeficientes será el primer elemento de la lista que refleje el resultado. Dado que tenemos que operar con los coeficientes en orden (del término de grado mayor al menor hasta llegar al independiente), iteramos al revés en la lista. Empezamos agarrando el elemento que vamos a operar (current). Este empieza siendo el coeficiente del término de mayor grado (índice -1 de la lista de coeficientes, mismo que se agrega al primer elemento de la lista resultado, la cual será el tercer renglón de la división sintética).
Comenzando con la iteración, se itera al reves en la lista de coeficientes para permitir que se opere del elemento de mayor grado al menor. A la lista desarrollo agregamos el elemento que estamos operando actualmente multiplicado por la raíz. El elemento actual ahora será si mismo multiplicado por la raíz, sumado al coeficiente correspondiente del polinomio original. Añadimos este elemento a la lista resultado y el ciclo se repite.