Ruffini
Ruffini
Ruffini
Javier Serrano
Primavera de 2011
1. Introducción
A la hora de escribir las resoluciones de algunos ejercicios o apuntes de
clase, es frecuente encontrarse con la necesidad de escribir una división entre
polinomios realizada por el famoso método de Ruffini. Presentamos aquı́ una
serie de comandos que facilitarán en grado sumo la tarea del profesor en este
aspecto.
Para el uso de estos comandos sólo es necesario tener cargado en el
preámbulo el paquete pstricks y tener copiado el código que aparece en la
Sección Implementación.
2. El comando Ruffini
Este comando abre un entorno pspicture y dibuja los coeficientes de la
división. La sintaxis del comando es la siguiente:
\Ruffini(1)(-3)(3)(1)[1]
1 −3 3 1
1 1 −2 1
1 −2 1 2
1
Manual de Esquema de Ruffini Javier Serrano
3. Cambiando la presentación
La presentación del esquema de la división de Ruffini esta sujeta al valor
de determinadas magnitudes que el usuario puede cambiar a su gusto. Para
realizar estos cambios se debe tener en cuenta que el origen de coorde-
nadas del dibujo se encuentra situado en el punto de corte de las lı́neas
vertical y horizontal.
Los cambios posibles se realizan modificando el valor de las siguientes lon-
gitudes (hay que asignarles un valor, por tanto, seguido de una unidad). Para
modificar cualquiera de ellas hay que escribir antes del comando el nombre
de la longitud, un signo igual y el nuevo valor. Por ejemplo: \Xdivisor=1cm.
2
Manual de Esquema de Ruffini Javier Serrano
4. Ejemplo
1 −3 3 1 \Xdivisor=-.25cm%
\Ydivisor=.25cm%
1 1 −2 1 \Ydividendo=1.2cm%
1 −2 1 2 \Ycociente=.25cm%
\Yresto=-.25cm%
\Alto=1.5cm%
\prolongarabajo=.25cm%
\prolongarizquierda=.25cm%
\sepnumeros=1.5cm%
\anchuraresto=.75cm%
\alturaresto=.5cm%
\Ruffini(1)(-3)(3)(1)[1]
3
Manual de Esquema de Ruffini Javier Serrano
5. Implementación
Para que esté el comando disponible tiene dos opciones:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% CONTADORES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\cociente
\newcount\resto
\newcount\dividendo
\newcount\divisor
\newcount\numterminos
\newcount\primertermino
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% VALORES INICALES DE CONTADORES %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\numterminos=0
\primertermino=0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LONGITUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\Xdivisor
\newdimen\Ydivisor
\newdimen\Xresto
\newdimen\Yresto
\newdimen\Xcociente
\newdimen\Ycociente
\newdimen\Xdividendo
\newdimen\Ydividendo
\newdimen\Ancho
\newdimen\Alto
\newdimen\prolongarizquierda
4
Manual de Esquema de Ruffini Javier Serrano
\newdimen\prolongarabajo
\newdimen\sepnumeros
\newdimen\comienzorayaresto
\newdimen\alturaresto
\newdimen\anchuraresto
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% VALORES INICALES DE LONGITUDES %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Xdivisor=-.5cm \Ydivisor=.5cm
\Xresto=-.5cm \Yresto=-.5cm
\Xcociente=-.5cm \Ycociente=.5cm
\Xdividendo=-.5cm \Ydividendo=1.5cm
\anchuraresto=1cm \alturaresto=1cm
\prolongarizquierda=1cm
\prolongarabajo=1cm
\Alto=2cm
\sepnumeros=1cm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% COMANDOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\rayavertical{%
\psline(0,-\prolongarabajo)(0,\Alto)}
\def\rayahorizontal{%
\Ancho=\sepnumeros
\multiply\Ancho by \numterminos
\psline(-\prolongarizquierda,0)%
(\Ancho,0)}
\def\rayaresto{%
\comienzorayaresto=\Ancho
\advance\comienzorayaresto by -\anchuraresto
\psline(\comienzorayaresto,0)%
(\comienzorayaresto,-\alturaresto)%
(\Ancho,-\alturaresto)}
\def\Ruffini(#1)[#2]{%
\contar(#1) \divisor=#2 \abredibujo
\rput(\Xdivisor,\Ydivisor){$\the\divisor$}
5
Manual de Esquema de Ruffini Javier Serrano
\def\contar(#1){%
\advance\numterminos by 1
\contarsiguiente}
\def\contarfin{}
\makeatletter
\def\contarsiguiente{%
\@ifnextchar ( {\contar}{\contarfin}%
}
\makeatother
\def\pondividendo(#1){%
\advance\Xdividendo by \sepnumeros
\advance\Xcociente by \sepnumeros
\dividendo=#1%
\advance\Xresto by \sepnumeros
\ifnum \primertermino=1 \resto=\dividendo%
\cociente=0 \primertermino=2%
\else%
\cociente=\resto \multiply\cociente by \divisor%
\resto=\dividendo \advance\resto by \cociente
\fi%
\rput(\Xdividendo,\Ydividendo){$\the\dividendo$}
\ifnum \primertermino=2 \primertermino=3
\else
\rput(\Xcociente,\Ycociente){$\the\cociente$}
\fi%
\rput(\Xresto,\Yresto){$\the\resto$}%
\dividendosiguiente}
\def\abredibujo{%
\begin{pspicture}%
(-\prolongarizquierda,-\prolongarabajo)(\Ancho,\Alto)}
\def\cierradibujo{%
\end{pspicture}}
\makeatletter
\def\dividendosiguiente{%
\@ifnextchar ( {\pondividendo}{\divisionfin}%
6
Manual de Esquema de Ruffini Javier Serrano
}
\makeatother
\def\divisionfin{%
\rayaresto \cierradibujo}