Integrantes

Ángel Cortez

César Hidalgo Rodríguez

Daniel Salinas

Rúbrica

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ó |

Requisitos

El programa usa Python 3.13.0 disponible en https://www.python.org/downloads/ , así como la librería Numpy pip install numpy

Rúbrica de evaluación

División sintética

Formato de datos

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.

Explicación del código

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.

Realizando la división sintética

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.