Herramientas de usuario

¡Esta es una revisión vieja del documento!


dc

El comando dc ejecuta la “Calculadora de Escritorio” en la terminal. Esta emplea una notación sufija conocida como notación polaca inversa.

Ver también: tutorial de calculo numerico en la terminal

Tutorial de dc

Uso de dc

Ejecuta dc en la terminal ingresando el comando:

dc

También se puede especificar un nombre de archivo en la línea de comandos, que dc lee en su totalidad antes de leer cualquier comando contenido en la entrada estándar.

dc fichero_con_instrucciones

Inicialmente, dc será parco y no mostrará nada en la terminal, pero estará a la espera de tus instrucciones.

Para salir de dc, puedes ingresar el comando q (salir).

Entrada de datos en dc

Durante su ejecución, dc interpreta las instrucciones en su lenguaje interno recibidos de la entrada estándar de terminal o el fichero con instrucciones suministrado.

Para la interpretación de dc, es indistinto si las operaciones se encuentran en un archivo o en la entrada estándar, pero podrás detener la ejecución de cálculos mediante Ctrl+D.

En dc las instrucciones puede ser una cifra, que se coloca en la pila de cálculo de dc, o un comando de dc.

Cifras

Las cifras pueden ser números expresados en notación decimal; los números negativos no se preceden del signo menos -, sino que en dc se usa el guión bajo _.

Por ejemplo, las siguientes cifras son cálidas en dc:

123
123.5
123.45678901234455
_23.4
Operadores aritméticos de //dc//:
OperadorOperación
+ Suma
- Resta
/ División
* Multiplicación
% Porcentaje
^ Potenciación o exponente

Estos operadores aritméticos especifican la operación que se realizará con los dos operadores situados en la parte superior de la pila de cálculo; al despejar, el resultado de la operación se almacenará en las posiciones de la pila ocupada anteriormente por los dos operandos.

Comandos de Control de Pila en dc:

Los comandos de control permiten realizar mas funciones con la calculadora.

Comandos de ControlResultado
p presentar el valor en la parte superior de la pila, sin modificarlo.
c vaciar todo el contenido de la pila de cálculos
d duplicar el elemento superior de la pila
f presenta ordenados todos los elementos de la pila.
k Indica la cantidad de decimales para * y /
q Salir de dc

Notación de dc

En la notación polaca inversa empleada por dc, los operandos preceden al operador.

Por ejemplo, planteemos la suma 2+5 a dc y despejemos:

$ dc
2
3
+
p
5

Para despejar el problema, introduce los números 2 y 3 desde el teclado (cada uno seguido de la tecla Intro, para asentar dichos operandos en respectivos escalones de la pila de cálculo), y luego introduce el operador aritmético +. Finaliza con el comando p para presentar el resultado. dc calculará el valor del resultado (5).

Sal de la calculadora ingresando q.

Resolvamos ahora 3×4:

$ dc
3
4
*
p
12
q
$

En estos ejemplos, cada comando ocupa una línea de entrada independiente, pero dc acepta líneas que contengan varios comandos. En tal formato, mientras que las cifras numéricas se separen con espacio en blanco, se permitirán otras combinaciones de comandos.

Veamos una sintaxis alternativa horizontalizada, que obtiene los mismos resultados:

$ dc
3 4*pq
12
$

dc puede además realizar múltiples operaciones secuencialmente (si la pila de cálculo contiene suficientes valores para ello). Puesto que cada operación almacena su resultado en las mismas posiciones de la pila que los números utilizados, la operación posterior utilizará dicho resultado y el número inferior de la pila. Por ejemplo:

$ dc
3
4
7
+-p
-8

El operador + ha sumado los dos números en la parte superior de la pila (el 7 y el 4 por caso) y almacena el resultado (“11”) en la pila, mientras que el operador - resta 11 de 3 para obtener el resultado (-8).

dc emplea una precisión de cálculo (número de decimales) dependiente de las necesidades reales de uso. La página del manual especifica que todos los cálculos se efectúan con números enteros a menos que se utilice el comando k para cambiar el factor de escala, pero esta afirmación no es del todo correcta. Los operadores de suma y resta operan sobre todos los dígitos de los números de entrada, y solo los operadores de multiplicación y división devuelven un resultado dependiente del factor de escala.

Variables en dc

No existe ninguna operación que extraiga el elemento superior de la pila y lo descarte. Sin embargo, dc define variables de registro que pueden contener un valor, por lo que es posible extraer un elemento de la pila y almacenarlo en un registro; de igual forma, es posible insertar el contenido de las variables de registro en la pila. Los nombres de los registros se declaran usando letras minúsculas (por lo que es posible definir hasta 26 variables de registro).

s (store) toma el nombre de un registro como argumento y transfiere el contenido de la parte superior de la pila al registro especificado.
l (load) mueve el contenido del registro indicado a la parte superior de la pila

Por ejemplo:

$dc
2.34
4.56
p
4.56
st
p
2.34
lt
p
4.56

Para eliminar un valor de la parte superior de la pila, utilice el comando s, que lo mueve a un registro no utilizado. Este registro intermedio también permite invertir el orden de los elementos contenidos en la pila, si es necesario.

Los comandos s y l también pueden operar con pilas auxiliares. Al usar letras mayúsculas para nombrar un registro, éste se considerará una pila auxiliar, por lo que el comando s moverá entonces el valor contenido en la parte superior de la pila principal a la pila auxiliar (pudiendo haber hasta 26 de ellas). Por ejemplo:

2.34
sT
p
dc:pila vacía
5.44
sT
p
dc:pila vacía
IT
p
5.44
IT
p
2.34

Si la pila de cálculo se encuentra vacía o no contiene suficientes elementos para completar una operación, aparecerá el mensaje pila vacía en la pantalla.

Una secuencia de caracteres encorchetados por “[” y “]” se considera una cadena ASCII, y se inserta en la pila de cálculo:

[Hola a todos]
p
Hola a todos

Esta capacidad de almacenar cadenas ASCII resulta inusual en una calculadora. Estas cadenas no pueden usarse para operaciones numéricas, pero el comando x (ejecutar) extrae una cadena de la parte superior de la pila de cálculo y la ejecuta como un comando dc; tras dicha ejecución, debe eliminarse explícitamente la cadena de la pila de cálculo. El operador ! invoca a la shell y permite a dc ejecutar el resto de la línea en un intérprete de comandos anidado; tras la ejecución, dc recupera el control.

Comandos adicionales de dc

v realiza la operación de raíz cuadrada del elemento superior de la pila y almacena el resultado en su lugar
i (entrada) hace que dc emplee el valor en la parte superior de la pila como raíz para representar los números especificados en la entrada
o (salida) define el valor en la parte superior de la pila como la nueva raíz para representar los números de salida.

Estos comandos permiten realizar conversiones de base y cálculos numéricos con una base distinta a la base 10 predeterminada; por ejemplo:

2
i
1001
p
9
2
o
p
1001

Dado que se altera la base de entrada, todas las entradas posteriores deben realizarse según la nueva base.

Los usuarios experimentados de calculadoras de bolsillo Hewlett-Packard o de los lenguajes de programación FORTH o PostScript reconocerán que este conjunto relativamente limitado de comandos es más que suficiente para cálculos numéricos rutinarios, e incluso para soluciones iterativas de integrales y funciones trascendentales. Sin embargo, si no está familiarizado con la notación sufija, dc puede resultar confuso, mientras que el programa bc puede proporcionar un entorno más familiar.

Ver también: bc

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información