SMath Directo
SMath Directo
SMath Directo
Capítulo 1 – Fundamentos
SMath es un programa gratuito1, de código fuente cerrado, que sirve para ejecutar, documentar y
compartir cálculos matemáticos y de ingeniería.
SMath surge como una alternativa a MathCAD, el cual tiene un costo aproximado de $12,350.00 MXN
anuales y ha sido reprogramado, desde cero, en MathCAD Prime por la compañía PTC, perdiendo
funcionalidades que ya tenía anteriormente. La versión cumbre de MathCAD fue la 15.0 M050.
SMath se puede descargar desde este vínculo y fue programado en la plataforma .NET de Microsoft,
permitiendo su ejecución en sistemas Windows, así como cualquier sistema que cuente con Mono (una
plataforma para correr aplicaciones .NET en Linux y MacOS). También existe un port para Android y
una versión que corre directamente en la nube. A la fecha de la escritura de esta guía, la versión más
reciente es la 1.1.8763, del 29 de diciembre de 2023.
La instalación en Windows es de 3.32 MB, por lo cual es muy ligera y no precisa de una computadora
con grandes capacidades. El programa fue lanzado en el año 2006 y su autor es el ruso Andrey Ivashov.
SMath se instala en la carpeta “C:\Program Files (x86)\SMath Studio” y cuenta con dos ejecutables
importantes: [Link] y [Link]. En este curso hablaremos únicamente de [Link].
Proceda a abrir el programa y se mostrará algo similar a la Figura 1. Se cuenta con la barra de título,
diversos menús, barras de herramientas y un panel lateral, el cual cuenta con paletas que facilitan la
entrada aritmética, de matrices, de operadores booleanos, de funciones, de gráficas, de programación y
de símbolos en griego. Sin embargo, aprenderemos a utilizar todas esas funciones sin necesidad de esa
paleta.
Regiones
Usted puede escribir cualquier texto en el espacio en blanco de la ventana. Un texto no se evaluará
matemáticamente. Existen tres maneras de hacerlo: (1) escriba su contenido y al momento de pulsar la
barra espaciadora, la región se convertirá en una región de texto. Usted notará esto al cambiar el
formato de la información ingresada. (2) Vaya al menú Insertar / Región de texto. (3) Emplee el atajo
del teclado mediante el carácter de comillas.
“Estoy escribiendo un texto.
1 Existen dos modalidades de paga, que tienen características adicionales. Sin embargo, la versión gratuita puede resultar
suficiente.
Deberá tener cuidado si escribe una operación matemática dentro de una región de texto, ya que SMath
podrá anidar una región matemática dentro de la región de texto. Para continuar escribiendo en la
región de texto y salir de la matemática, deberá dar clic en la región de texto, posterior a la región
matemática.
Mediante la barra de herramientas de formato podrá editar alguna porción del texto.
Observe que se pudo cambiar la fuente del primer renglón de texto. Con Shift+Enter se puede dar un
salto de renglón dentro de la misma región de texto. En el siguiente renglón, la primera palabra está en
negritas, la segunda en cursivas, la tercera subrayada, la cuarta con otro color y la quinta con otro fondo
y negritas. La primera región de texto está enmarcada. Debajo hay otra región de texto, misma que fue
alineada mediante el último botón de la barra de herramientas de formato, para que empezaran en la
misma coordenada X ambas regiones y no se vieran desalineadas.
Estando dentro de la región de texto, si va al menú Editar, puede configurar el espaciamiento entre
líneas y la justificación del texto, como se muestra en la imagen anterior.
Para poner algo en negritas puede usar Ctrl + B (bold)
Para poner algo en cursivas puede usar Ctrl + I (italics)
Para poner algo subrayado puede usar Ctrl + U (underline)
Dentro de las regiones puede copiar lo seleccionado con Ctrl + C, pegar algo del portapapeles con Ctrl
+ V, o cortar algún texto con Ctrl + X. Cortar borra lo seleccionado y lo envía al portapapeles dejándolo
listo para ser pegado en algún otro lugar (ya sea de SMath o de otra aplicación). Esto también se puede
hacer sobre las regiones completas. Adicionalmente, puede eliminar una región o una parte de ella con
la tecla suprimir.
Aquí, usted ha utilizado el operador de evaluación numérica =. Este operador se muestra en la paleta
aritmética. Debe diferenciarlo del operador de definición : y del operador booleano de igual a Ctrl +.
Observe que se muestra un cuadro negro al final de la operación. Usted allí podrá colocar unidades.
Ahora examinemos cómo interpreta las fracciones SMath. Si a usted se le da, por ejemplo, la siguiente
operación: 1 + 2 / 3 + 4 / 5. ¿Cuánto debe de dar? Atendiendo a las jerarquías en el orden de las
operaciones, primero se deberían de ejecutar las divisiones. Es decir, 1.00 + 0.67 + 0.80, y luego las
sumas, dando como resultado 2.47. Sin embargo, si así ingresa la información en SMath, observará un
resultado diferente.
Como podrá darse cuenta, SMath no sumó 4/5 a 2/3. SMath sumó 4/5 al denominador de 2/3. ¿Cómo
podemos corregir este comportamiento? La estrategia radica en usar la barra espaciadora. Preste
atención a la secuencia llevada a cabo. Usted escribió 1 + 2/3. Hasta aquí todo iba bien.
Cuando usted pulsa el signo de +, SMath decide sumar al 3, no a la fracción de 2/3. Aquí es clave que
usted observe lo que se encuentra marcado antes de hacer algo. Note que el 3 está marcado. Esto
significa que SMath aplicará la operación sobre este valor. No es lo que deseamos. Si usted presiona la
barra espaciadora, ahora se marcará la fracción 2/3.
Bien. Ahora SMath entiende que deseamos sumar alguna otra cosa al 2/3. Que es lo que deseábamos.
Continúe escribiendo +4/5 y presione =.
Excelente. Este es el valor que habíamos obtenido en nuestro pensamiento matemático original.
Aunque muestra más decimales. Presione con el botón derecho y elija Cifras decimales = 2.
Si bien, la computadora muestra 2.47, en realidad seguirá utilizando todas las decimales para algún
cálculo futuro. La visualización es lo único que se altera.
Quizás usted deseara ver la respuesta como una fracción. En dicho supuesto, usted puede dar clic
derecho y elegir la Optimización / Simbólica. Alternativamente, puede utilizar la evaluación simbólica,
dada por Ctrl + . .
Puede desarrollar operaciones con raíces cuadradas empleando el operador \, o raíces de cualquier
grado usando el operador mostrado en la paleta aritmética.
Por ejemplo escriba, 2+\4=
Puede elevar valores a algún exponente con el operador ^. Por ejemplo, escriba 2^2=
r=
√ I
Á
Donde I es el momento de inercia de una sección transversal y Á es su área.
Si tenemos una sección rectangular, el momento de inercia está dado por:
1 3
I= bh
12
Donde b es la base de la sección y h su altura. Igualmente, el área es base por altura.
Entonces podemos escribir lo siguiente en SMath:
Algunas veces, si emplea el operador equivocado SMath se rehusará a ejecutar un cálculo. Observe
también que si escribe b= al inicio de una hoja de cálculo, SMath entiende b: ya que él no puede
evaluar para b porque no se ha definido.
Si luego usted escribe b=, SMath ya le mostrará el valor almacenado. Puede redefinir la variable
escribiendo una vez más b:. Si evalúa de nuevo, obtendrá el valor más reciente.
Usted puede describir mejor sus variables mediante el operador . Por ejemplo, si escribe [Link] se puede
referir a la inercia respecto al eje x, para tener la capacidad de definir otra variable como [Link],
manteniendo la letra I de inercia.
Puede utilizar pi de la paleta aritmética o de la de letras griegas y SMath entenderá que se trata de la
constante pi. Personalmente nunca uso esas paletas ya que es más rápido escribir la letra latina y luego
Ctrl G para convertir al equivalente en el alfabeto griego.
Á.círculo:pCtrlG*r^2=
Si pone letras latinas minúsculas se convertirán a las griegas minúsculas. Igual para las mayúsculas.
Con Ctrl G puede volver al latín si una letra ya está en griego. Consulte el equivalente latino – griego
en la Figura 3.
Además de insertar valores numéricos en las definiciones de las variables, se pueden insertar otras
variables, unidades, constantes y funciones.
Unidades en SMath
Una gran ventaja sobre programas de hojas de cálculo reside en el eficiente manejo de unidades que
tiene SMath. Veamos cómo ingresarlas. Retomemos el ejemplo del radio de giro. Al momento de
ingresar la base y la altura proceda de la siguiente manera. Escriba: b:10cmTAB, donde TAB significa
presionar la tecla del tabulador de su teclado (la que se encuentra a la izquierda de la Q). Verá que las
unidades ahora se ponen de color azul, indicando que el programa comprendió que las 10 unidades son
centímetros.
Ahora, supongamos que ya tenía definida h como 30. Dé clic en la región matemática. Con ayuda de
las flechas del teclado, asegúrese que únicamente se encuentre marcado el 30. Ahora, escriba cm y
pulse el tabulador, o dé doble clic sobre la opción correcta del menú que se desplega.
Observe que SMath ha convertido los centímetros a metros. Si no desea ver la respuesta en metros,
simplemente puede dar clic en la respuesta y aparecerá un cuadro negro donde podrá escribir la unidad
que desee. De nuevo, presione el tabulador o dé doble clic en la lista que se desplega. Finalmente, salga
de la región matemática y observe la conversión.
Obtenga el área de un rectángulo que mide 4.5 ft por 2230 mm en decímetros cuadrados.
Usted puede utilizar las 282 unidades integradas que vienen en SMath. Si tiene dudas sobre cómo
escribir una unidad puede ir al menú Insertar / Unidad, o pulsar Ctrl W (ver Figura 4).
Ingrese la masa en kg (unidad de masa). El peso de un objeto se puede conseguir mediante la Segunda
Ley de Newton, es decir F=m a, donde el peso w (weight) está dado por la masa del objeto veces la
aceleración que experimenta, es decir, la aceleración de la gravedad en el planeta Tierra. Puede ingresar
la gravedad mediante la constante ge en SMath. Observe el resultado. Atendiendo al Sistema
Internacional de Unidades, SMath muestra la respuesta en la unidad base de fuerza del SI, es decir, el
Newton. Vuelva a preguntar a SMath cuánto vale el peso w= y establezca la unidad como kgf
(kilogramo fuerza). Observará que los 70 kilogramos fuerza tienen una masa de 70 kilogramos masa, lo
cual es correcto. En el planeta Tierra, una unidad conveniente de medición es el kilogramo y sirve tanto
para masa como para fuerza. Cuando va usted a la tienda, se le cobran las cosas en kilogramos, no en
Newtons. Si la gravedad cambia, el empleo del kilogramo fuerza queda comprometido.
Entiéndase entonces lo siguiente. Si de la Ley de Newton despejamos para masa, se obtendrían
resultados muy diferentes si no se emplean las unidades correctas:
Por lo tanto, se debe acostumbrar a decirle a SMath la unidad correcta: si es de masa, kg; si es de
fuerza, kgf. La segunda masa obtenida es incorrecta por nuestra culpa, al no decir la fuerza en las
unidades apropiadas (kgf).
Entienda también que las toneladas en SMath, como se usan en México, necesitarían ser toneladas
métricas. Por lo tanto, en dado caso que estuviéramos trabajando con masa, tendríamos:
Y en dado caso que estuviéramos hablando de una fuerza de mil kilos, tendríamos:
Donde el ksi es una unidad de esfuerzo (kips por pulgada cuadrada, donde “si” es square inch). Un kip
es un kilopound o kilolibra fuerza. De tal manera, también se diferencian las libras de las libras fuerza.
Las libras masa se igualan a kilogramos masa. Es improcedente convertir de libras masa a kilolibras
fuerza.
Funciones
Funciones integradas
SMath cuenta con 126 funciones integradas. Se pueden explorar desde el menú Insertar / Función,
mediante la combinación de teclas Ctrl + E, o mediante el botón de la barra de herramientas . Esta
ocasión examinaremos las funciones trigonométricas y las definidas por el usuario. Más tarde veremos
las de vectores y matrices, operaciones con cadenas de texto y archivos, así como de programación.
Funciones trigonométricas
Obtenga el seno de 90°. Seno en inglés se escribe sine, por lo tanto, escriba sinTAB y aparecerán unos
paréntesis donde deberá escribir el ángulo. Como es costumbre en los programas computacionales, las
unidades angulares son los radianes. Como tenemos grados, deberá escribir 90degTAB.
En el primer caso, la respuesta está en radianes, mientras que en el segundo, en grados. Puede escribir
la unidad rad para ser redundante, pero en realidad no hace nada.
Ejemplo. Encuentre el ángulo en grados dado entre la hipotenusa con la horizontal para un triángulo
rectángulo cuyos lados son: 3 unidades horizontales y 4 unidades verticales.
Así puede utilizar las funciones de seno, coseno, tangente, secante, cosecante y cotangente, al igual que
sus funciones inversas.
Observe que en y(x) no se presenta el signo de multiplicación, ya que se trata de la definición de una
función. Observe que en m*x sí se trata de una multiplicación, por lo cual se escribe de manera
explícita el signo de multiplicar.
Las funciones necesitan de un argumento (en el caso anterior, la x) para poderse evaluar. Por lo tanto, si
sólo escribe y=, obtendrá un error.
Ejemplo: ¿cuánto vale la altura de una línea recta que tiene una pendiente de 2 y vale 1 de alto cuando
x = 0?
Se colocan los valores necesarios, así como la definición de la función. Si se evalúa cuánto vale x, al
carecer de su argumento, no podrá ser evaluada. Si por el contrario, se coloca el argumento, se obtiene
el resultado.
Las funciones también se pueden evaluar sobre conjuntos de datos. Después hablaremos de ésto.
Las funciones pueden tener múltiples argumentos. Por ejemplo, para obtener el área de un trapecio, se
puede plantear lo siguiente:
Para insertar un vector o matriz puede: (1) ir al menú Insertar / Matriz, (2) elegir la opción del panel
lateral , o bien (3) pulsar Ctrl + M. Aparecerá un asistente preguntándole por el número de filas y
columnas de la matriz.
¿Recuerda que con la tecla . podíamos describir mejor una variable? Hay que diferenciar entre las
apariencias. Si deseamos referirnos a un elemento de un vector o matriz, debemos emplear la tecla [.
Por ejemplo, si decimos M[9= obtendremos el último elemento de la matriz. Sin embargo, esta no es la
manera característica de referirnos a un elemento en una matriz. Más bien, decimos las coordenadas del
elemento. Quizás, sería más claro si hubiéramos pedido el elemento 3,3 mediante la instrucción M[3,3=
Estas mismas opciones se pueden acceder desde la paleta Matrices con los botones Elemento
de un Vector y Elemento de una Matriz. Entiéndase que primero se dice el número del renglón y luego
el de la columna del elemento. Por ejemplo, el 1 se encuentra en el renglón 2, columna 3 y nos
podríamos referir a él como M[2,3= Alternativamente, el 5 estaría en la posición 3,2.
Si deseáramos fabricar un vector del 1 al 5 sería muy lento escribir valor por valor. Existe la
herramienta de rango , la cual fabricará un vector desde el número inicial hasta el final saltando una
unidad. Por ejemplo, para hacer un vector del 1 al 5 escriba en los cuadros negros 1 y 5; o para hacer
uno del 5 al 1, escriba 5 y 1.
Si usted pretende que el paso no sea de una unidad, puede utilizar el comando de Rango con Segundo
Valor . La sintaxis es la siguiente [número de inicio, delta .. número de fin]. El paso será igual a
delta menos el número de inicio. Por ejemplo, si queremos comenzar en 0.5 y subir 0.1 hasta 1.2,
debemos escribir primero 0.5, luego 0.6 (siendo el paso 0.6-0.5=0.1) y finalmente 1.2.
Las variables de rango pueden ser útiles para llevar a cabo evaluaciones repetitivas de funciones.
Por ejemplo, en la matriz anterior, el determinante se puede obtener con el “método de la lluvia”, donde
las diagonales con pendiente negativa se multiplican y a ellas se les restan las diagonales con pendiente
positiva. En tal caso, tendríamos 2*7 – 5*6 = -16. SMath al obtener el determinante reporta el mismo
resultado.
SMath puede intercambiar las filas y las columnas de una matriz mediante la función de matriz
transpuesta . Note que esta función se habilita con el botón de la paleta o con Ctrl + 1. Si usted eleva
la matriz a la “T” no obtendrá el procedimiento deseado.
SMath sabe sumar o restar matrices (siempre y cuando tengan las mismas dimensiones), multiplicarlas
por un valor escalar y multiplicar matrices entre sí. Recuerde que para que se puedan multiplicar
matrices sus dimensiones deben de ser de l * m y m * n, respectivamente. El resultado medirá l * n.
¿Pero qué sucedería si quisiera multiplicar los elementos de un vector uno por uno por el respectivo
elemento de otro vector? Es decir, A[1 * B[1 y así sucesivamente… Hagamos un ejemplo. Sea A un
vector de 3x1 y B también. En caso de llevar esta operación a cabo, usted obtendrá el producto punto
(producto escalar) de los dos vectores. No obtendría todos los resultados.
Para trabajar elemento por elemento correspondiente, usted puede utilizar la función vectorizar . Así,
observe como el primer elemento de A se multiplicó por el primer elemento de B y así sucesivamente.
Si sumáramos los resultados de ese vector (3+-42+-20) obtendríamos lo reportado por SMath (-59).
SMath también es capaz de calcular el producto cruz o producto vectorial. Sólo emplee el botón
apropiado de la paleta de matrices .
SMath puede particionar una matriz con el comando submatrix(matriz,fila inicio, fila fin, columna
inicio, columna fin).
SMath puede añadir columnas a una matriz existente mediante la función augment, así como añadir
filas a una matriz existente mediante la función stack.
Se puede extraer una columna o una fila de una matriz con las funciones col y row, respectivamente. Se
puede saber cuántas columnas o filas tiene una matriz con las funciones cols y rows, respectivamente.
Las funciones max y min encuentran el mayor y menor valor de una matriz o vector.
Si quisiéramos despejar para las incógnitas, ocuparíamos pasar dividiendo la matriz de coeficientes del
principio. Como no existe la división matricial, ocupamos pasar la matriz de coeficientes elevada a la -
1. Por lo tanto, SMath deberá calcular el inverso de la matriz y lo que dé, multiplicarlo por el vector de
respuestas del sistema de ecuaciones.
A continuación, se muestra la solución del ejercicio. En la parte final del problema, se describe que
para cada variable (x, y o z) su valor es el elemento 1, 2 y 3 (respectivamente) del vector resp.
SMath puede emplear matrices para hacer gráficas. Hablaremos más sobre las gráficas después.
Finalmente, si una matriz llegara a ser muy extensa, SMath mostrará unos manejadores de tres puntos.
Simplemente colóquese sobre esos tres puntos y el cursor cambiará. Puede arrastrarlo para ver los
elementos faltantes.
Percátese que deberá usar la evaluación simbólica para obtener el resultado. Si presiona =, no se podrá
ejecutar la operación. Deberá pulsar Ctrl + . Aunado a lo anterior, no es posible editar la expresión
anterior para conseguir una derivada de orden superior. Deberá utilizar el comando diff de tres
argumentos.
Ejemplo. Obtenga el área de un triángulo rectángulo cuya hipotenusa está dada por y (x )=5 x. El ancho
del triángulo es de 6 unidades.
La solución algebraica sería de la siguiente manera. Sabiendo que la base del triángulo es 6 y la altura
1 1
es y (6)=5∗6=30, entonces el área del triángulo es Á= ∗b∗h= ∗6∗30=90. Para insertar la
2 2
integral puede escribir intTAB, o pulsar el botón del panel lateral para la integral definida, .
La única sugerencia es que si desea sumar varias integrales, no escriba varias cosas en el cuadro donde
va la variable con respecto a la cual desea integrar.
Para sumar varias integrales, deberá poner la variable de integración y luego pulsar la barra espaciadora
para salir de ese lugar. Ya que se marque toda la integral, ya puede seguir añadiendo integrales u otras
operaciones.
SMath puede simplificar algunas operaciones algebraicas. Sólo recuerde utilizar la evaluación
simbólica.
escriba la respuesta. Posteriormente, colóquese sobre la variable que desee encontrar y vaya al menú
Cálculo y escoja la opción Resolver. La respuesta se apuntará debajo de la ecuación.
Una manera alternativa para resolver una ecuación mediante el comando solve se ilustra a
continuación.
Ejemplo. Encuentre el factor de longitud efectiva K para un marco sin desplazamientos laterales. Sea
G A =0.5 y GB =2.0.
Proceda de la siguiente manera. Defina las G. Luego elija la función solve de cuatro argumentos. La de
dos no suele funcionar. En el primer argumento escriba la igualdad con el operador booleano de “igual
a”, e igual e a 0. En el segundo argumento escriba la variable que desea encontrar. En el tercero, desde
qué valor y en el cuarto hasta qué valor se puede encontrar la variable. Evalúe y obtenga el resultado.
Como puede observar, se evalúa que la expresión de la izquierda sea igual a la de la derecha. En caso
de que sea cierto, se obtendrá 1. En el primer caso ¿1 = 0? No, por lo tanto la respuesta es 0. En el
segundo caso ¿1 = 1? Sí, por lo tanto la respuesta es 1. El tercer caso es similar al primero. En el cuarto
caso, se evalúa la expresión de la izquierda y se detecta que es igual a la derecha, por lo tanto, la
sentencia es cierta. En el quinto caso se evalúa la expresión de la derecha y se detecta que es igual a la
de la izquierda, por lo tanto, la sentencia es cierta.
A continuación, se ejecutan las mismas operaciones pero con el operador de desigualdad. Básicamente,
todas las respuestas serán al revés de las que se consiguieron en el caso anterior. Se puede plantear la
pregunta de esta manera ¿A es diferente de B?, si sí, entonces la respuesta es 1, si no, entonces la
respuesta es 0.
A continuación, se muestran evaluaciones con menor, mayor, menor o igual y mayor o igual que.
En la Figura 6 se puede observar que el intervalo predeterminado para las raíces está de entre -20 hasta
20. Por lo tanto, si usamos el comando de solve con dos argumentos y la respuesta es 30, SMath no
encontraría la solución, de ahí que sea preferible usar solve de cuatro argumentos e indicar cada vez
entre qué rango se puede encontrar la respuesta.
El operador & evalúa varias condiciones y si todas son ciertas devuelve 1, en caso contrario devuelve
0. El operador | evalúa varias condiciones y si al menos una es cierta, devuelve 1. El operador XOR (o
exclusivo) devuelve 1 sí es cierta solo una condición. Si varias son ciertas, devuelve 0. El operador de
negación ¬ invierte las funciones. Por ejemplo “es falso que 5 = 0”, sí.
Conociendo todos los operadores booleanos anteriores, ahora se pueden conseguir resultados
interesantes con ayuda de la programación.
Programación en SMath
Existen tres estructuras principales de programación, a saber, (1) estructuras de decisión, (2) estructuras
secuenciales y (3) ciclos o bucles.
Estructuras de decisión
La estructura if … else se ingresa en SMath escribiendo ifTAB o eligiendo el botón de la paleta
Programación apropiado. En español significa “si (condición cierta → hacer algo), si no (hacer otra
cosa)”. Por lo tanto, haremos uso de los operadores booleanos mencionados en el apartado anterior. Por
ejemplo: si la calificación del alumno es >= 70, escribir “Aprobado”, si no, escribir “Reprobado”.
No puede únicamente cambiar la calificación y volver a ejecutar “veredicto”. Deberá volver a poner el
bloque de programación. Como esto ocupa espacio, podría ponerlo en un área. Vaya a Insertar / Área.
Ponga la programación entre las líneas que se dibujaron. Optativamente puede poner un título al bloque
y cambiarle su color. Ahora puede cerrar el bloque pulsando el signo de menos a su izquierda.
Asegúrese que el veredicto quede fuera del área.
Puede volver a ver lo que estaba dentro del área al pulsar el botón +. En SMath las cadenas de texto las
deberá de colocar entre comillas. Usted podrá anidar instrucciones dentro de otras instrucciones.
Estructuras secuenciales
Si llegara a ocupar hacer más de una cosa al programar, podría insertar una “línea de programación”
con el comando line. Line, de manera predeterminada muestra dos líneas de código. Si usa la barra de
espacio, podrá marcar toda la línea y mostrar un cuadro negro, el cual podrá agrandar para incluir más
líneas de código en su programación. Este tipo de programación, que ejecuta línea por línea, es la
denominada “programación secuencial”. Experimente con comas (,) para añadir líneas según requiera.
Si bien, existen muchas posibilidades para lograr el mismo resultado, esta ocasión se eligió la anterior
para mostrar el uso de la línea de programación. Esta vez, en el primer cuadro de la línea de
programación se escribió la instrucción if. Dicha instrucción escribe una cadena de texto indicando si el
alumno ha aprobado o reprobado. Una vez que ya sabemos lo anterior, deseamos saber cuántas faltas
tiene el alumno. Por lo tanto, se recurre a la función de concatenación (acumular cadenas de texto).
Observe que el número de faltas es un número, no un texto. Por lo tanto, al momento de concatenarse
precisa convertirse a “texto”. Observe también la inclusión de espacios adicionales para mostrar un
mensaje congruente.
Ciclos o bucles
Gran parte de la potencia de las computadoras se aprovecha al someterlas a realizar tareas repetitivas.
Examine las siguientes líneas de código.
Hemos analizado cómo determinar si un solo alumno había aprobado o reprobado. Pero, ¿si tenemos
que hacer todo un salón?, ¿o toda la Universidad? Los ciclos, como por ejemplo for y while permiten
realizar este tipo de tareas.
La sintaxis del ciclo for es la siguiente… Por (j, que va desde A hasta B), hacer.
Se explica de la siguiente manera. Este ciclo se realizará n veces, atendiendo a las variables que se
encuentren en el rango. En nuestro ejemplo, se ejecutará j veces, comenzando en 1 y terminando hasta
el número de elementos que contenga el vector de calificaciones. La longitud del vector de
calificaciones se obtiene con la función length. En esta ocasión, hay cinco calificaciones, por lo cual el
ciclo se ejecutará 5 veces. La letra j resulta conveniente mantenerla disponible. j es el contador del
ciclo. La primera vez, j vale 1. Esto nos permite decir que si la calificación elemento j (recuerde usar [)
es mayor o igual que 70, el elemento j del vector “veredicto” se escriba como “Aprobado”; en caso
contrario, que el elemento j del vector “veredicto” se escriba como “Reprobado”. Así, se consigue un
vector “ver” que ha evaluado cada elemento de “califs” y determina individualmente para cada
escenario si se aprobó o no.
Examinemos de manera platicada el ciclo. Primera vuelta. Sea j = 1. Ubiquemos califs[1 = 70. ¿Es 70
>= 70? Cierto. Por lo tanto, ver[1 = “Aprobado”. Como se ha cumplido una verdad o falsedad, hemos
concluido la primera iteración. Sea ahora j = 2. Ubiquemos califs[2 = 90. ¿Es 90 >= 70? Cierto. Por lo
tanto, ver[2 = “Aprobado”. Y así sucesivamente hasta length(califs) = 5.
Por su parte, el ciclo while se ejecutará mientras una condición sea cierta. Por ejemplo, si quisiéramos
saber cuántos alumnos pasaron, podríamos intentar lo siguiente.
Primero deberemos inicializar dos variables: la del contador j y la de alumnos aprobados. Mientras el
contador j sea menor o igual que el número de calificaciones, el ciclo se ejecutará. Por lo tanto,
recorreremos el ciclo 5 veces. Si la calificación elemento j es mayor o igual que 70, aumentará el
número de aprobados en 1. ¡Es importante incrementar el contador!, si no, su máquina entrará en un
ciclo infinito, agotando su memoria RAM y quitándole los recursos a su sistema operativo, volviendo a
la máquina inútil hasta que la reinicie. En dado caso de que este comportamiento empiece, presione el
botón lo antes posible. Si se demora mucho, deberá reiniciar el ordenador. En caso de que la
calificación no sea aprobatoria, únicamente se incrementará en uno el contador j. Preste atención al uso
de las líneas de programación.
Con respecto a la palabra clave break veamos el siguiente ejemplo:
Se inicializa la variable salida y el contador j. Mientras j sea menor o igual que la longitud del vector
salida (5), el ciclo se ejecutará, estableciendo que el elemento j del vector salida sea igual a j. Hecho
esto, se incrementa en uno el contador. Esto se repetirá hasta 5 veces.
Por el contrario, si escribimos la palabra clave break, tras aumentarse el contador a 2, el ciclo
terminará. Observe cómo ya no se ponen todos los demás valores como 4. Sin embargo, el programa
continúa su ejecución y establece el 4° valor de salida en 5.
Por su parte, continue únicamente finaliza la iteración actual, es decir, no ejecutará lo que está después
de él (poner todos los valores de salida como 4), pero continuará en la siguiente iteración y con lo que
siga después en el programa (poner el 4° valor como 5).
Capítulo 5 – Gráficas
SMath puede trazar gráficas en dos y en tres dimensiones. Para hacerlo, vaya al menú Insertar / Gráfica
y elija 2D o 3D. Alternativamente, para una gráfica plana, puede pulsar la tecla @. Aparecerá esto:
En el cuadro negro de abajo a la izquierda, podrá usted escribir la función que desee graficar, por
ejemplo el seno de x.
Si da clic en la ventana, podrá apreciar nuevos cuadros negros que le permitirán redimensionarla. Si
pulsa el botón , se le permitirá hacer múltiples trazos en la misma gráfica. Haciendo un buen uso de
la tecla espacio, podrá apreciar el cuadro negro de abajo a la derecha (al lado de la función de coseno) y
podrá arrastrarlo para incorporar aún más funciones.
Recuerde que se pueden anidar funciones. Por lo tanto, podría tener una segunda función terminando la
primera. Esta ocasión, tiene una parábola.
Como se vio con anterioridad, se puede graficar una serie de puntos puestos en una matriz. La sintaxis
es la siguiente [x1, y1], es decir, debe poner un punto por renglón de la matriz. Sin embargo, la sintaxis
puede ser [x1, y1, “marcador”, tamaño, “color”]. Marcador va entre comillas y puede ser cualquier
carácter. Sin embargo, destacan: x, *, o, +, ., o bien, ningún marcador. Debe tener cuidado con otros
símbolos, ya que se alinean un poco fuera del punto, mientras que los anteriores sí se colocan bien.
Asimismo, puede colocar textos de la misma manera: dando sus coordenadas, la etiqueta del texto entre
comillas, su tamaño y su color.
Los colores disponibles son los siguientes:
Aliceblue, antiquewhite, aqua, aquamarine, azure, beige, blanchedalmod, blue, blueviolet, brown,
burlywood, cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk, srimson, cyan, darkblue,
darkcyan, darkgoldenrod, darkgray, darkgreen, darkhaki, darkmagenta, dartolivegreen, darkorange,
darkorchid, darkred, darksalmon, darkseagreen, darkslateblue, darkslategray, darkturquoise, darkviolet,
deeppink, deepskyblue, dimray, dodgerblue, firebrick, floralwhite, forestgreen, fuchsia, gainsboro,
ghostwhite, gold, goldenrod, gray, green, greenyellow, honeydew, hotpink, indianred, indigo, ivory,
khaki, lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan,
lightgoldenrodyellow, lightgray, lightgreen, lightpink, lightsalmon, lightseagreen, lightskyblue,
lightslatergray, lightsteelblue, lightyellow, lime, limegreen, linen, magenta, moroon,
mediumquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen, mediumslateblue,
mediumspringgreen, mediumturquoise, mediumvioletred, midnightblue, mintcream, mistyrose,
moccasin, navajowhite, navy, oldlace, olive, olivedrab, orange, orangered, orchid, polagoldenrod,
palagreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum, powderblue, purple,
red, rosybrown, royarblue, saddlebrown, salom, sandybrown, seagreen, seashell, sienna, silver, skyblue,
slateblue, slategray, snow, springgreen, steelblue, tan, teal, thistle, tomato, turquoise, violet, wheat,
white, whitesmoke, yellow, yellowgreen, black.
Los colores se pueden escribir en mayúsculas, minúsculas o con espacios. Si no se identifica un color
se pondrá de color negro.
Comprenda que la primera gráfica siempre será azul, la segunda roja, la tercera negra, etc.
El motor de gráficas siempre usará las variables x, y para hacer sus funciones. No se permite
nombrarlas de otra manera. Deberá también tener cuidado cuando emplee unidades en las gráficas.
Para las gráficas en 3D, el comportamiento predeterminado es el de rotación. Para desplazar la gráfica
deberá utilizar el botón de la paleta . Siempre puede restablecer la gráfica original mediante .
También puede insertar en SMath cualquier archivo de imagen yendo al menú Insertar / Imagen /
Desde archivo…, o simplemente copiarla y pegarla dentro de la hoja. Alternativamente, puede pintar a
mano alzada haciendo una imagen nueva en Insertar / Imagen / Crear, o pulsando Ctrl + T.
Navegue a esa carpeta en su computadora. Dentro, deberá abrir la carpeta \user, en la cual se guardarán
los archivos.
Para escribir alguna expresión a un archivo, use el comando wfile. Este comando emplea dos
argumentos: en el primero va una expresión y en el segundo el nombre del archivo donde guardará la
información. Por ejemplo,
El 1 significa que la escritura del archivo fue correcta. Tenga cuidado con archivos existentes. La
operación de wfile sobrescribirá a los archivos existentes.
Observe cómo se fabricó el archivo. Si lo desea, puede abrirlo con el Bloc de Notas. Ahora, puede leer
los contenidos con el comando rfile.
De esta manera podría leer información externa y suministrársela a SMath. También puede almacenar
rangos y matrices. Alternativamente, puede usar la función importData.
Haga un nuevo documento de texto sin formato en el Bloc de Notas. Escriba lo siguiente:
1 3 4
2 8 9
0 -1 4
Guarde el archivo como [Link] y ubique la carpeta en la que quedó guardado. Emplee el comando
importData y en su argumento coloque la ruta a su archivo. Puede asignar los resultados a una variable
y proceder a usar la información.
En caso de que trabaje con un archivo delimitado por comas (CSV), la función anterior no será
efectiva. Deberá emplear la sobrecarga de importData de 9 argumentos. Esta es una función de
importación general (no solo de datos), por lo cual resulta útil saber que varias de sus columnas se
pueden rellenar con ceros.
Por ejemplo, se hizo en un programa de hojas de cálculo un archivo con los siguientes datos:
1,2,3
4,5,6
7,-8,9
El archivo se guardo como [Link]. Para leerlo en SMath cargue la función de 9 argumentos.
El primer argumento será el nombre del archivo a leer. El segundo y tercero son los separadores
decimales. No los configuraremos. En el cuarto argumento deberemos indicar que el separador de
valores es la “,” (poniéndola entre comillas). Los demás argumentos pueden permanecer en cero.
Examine los distintos plug-ins disponibles. Observe que DataExchange puede ser útil. Note que Excel
Files Plugin ocupa una versión de paga de SMath para ejecutarse. Sin embargo, Excel I/O with
recalculation and PNG export también podría ser útil, o Excel Input-Output Functions. Todos estos
complementos extienden las posibilidades de SMath. Para instalar un agregado sólo pulse el botón
abajo a la izquierda (habiendo seleccionado el agregado deseado).
En nuestro caso, instalamos el plug-in DataExchange. Observe que ahora, en el cuadro de diálogo de
funciones / Archivos tenemos más opciones:
Esta ocasión, en la carpeta en la que esté guardado su archivo de SMath se fabricará el archivo CSV.
Ábralo con su programa favorito y observe la veracidad de los datos.
Guardado en PDF
Al imprimir un archivo de SMath en PDF se mostrará la siguiente leyenda.
Por lo tanto, si puede apoyar a los desarrolladores, contribuya económicamente para la mejora del
programa, con la traducción del mismo, con su difusión, o simplemente con su uso.
Conclusiones
SMath es el grato esfuerzo de un pequeño equipo de programadores, tratando de alcanzar todo el
poderío desarrollado por MathCAD desde 1986. Si bien, aún existen muchos campos de desarrollo
(como el motor simbólico o un manejo mejorado de gráficas), el programa se suministra de manera
gratuita y cumple la gran mayoría de los cálculos que se desarrollan en las materias de ingeniería
aplicada en la Facultad de Ingeniería Civil. En efecto, hay algunos cálculos más complicados, pero se
pueden programar con un poco de esfuerzo.
Han cambiado radicalmente las maneras de hacer las cosas. Quizás usted utilizó una regla de cálculo. A
mí me tocaron las calculadoras portátiles y las computadoras de escritorio. Ahora, un estudiante puede
tener un panorama mucho más enriquecedor de las matemáticas que emplea. Impulsemos estos
beneficios para favorecer el entendimiento de nuestra profesión.
Quedo a sus órdenes para cualquier duda respecto al programa en [Link]@[Link] y
espero que esta guía les resulte de ayuda y la incluyan en sus asignaturas para el beneficio de sus
alumnos. Mis agradecimientos al equipo de SMath, Diego.
Índice
Capítulo 1 – Fundamentos.........................................................................................................................1
Regiones................................................................................................................................................1
Funcionalidad como calculadora...........................................................................................................4
Habilidades de definición de variables..................................................................................................6
Unidades en SMath...............................................................................................................................9
Observaciones sobre el uso de unidades.........................................................................................11
Funciones.............................................................................................................................................12
Funciones integradas......................................................................................................................12
Funciones trigonométricas.........................................................................................................13
Funciones del usuario.....................................................................................................................13
Capítulo 2 – Vectores y matrices..............................................................................................................14
Solución de sistemas de ecuaciones....................................................................................................19
Capítulo 3 – Motor numérico y simbólico...............................................................................................21
Resolver una ecuación.........................................................................................................................22
Capítulo 4 – Operaciones booleanas y programación..............................................................................24
Operadores booleanos.........................................................................................................................24
Programación en SMath......................................................................................................................26
Estructuras de decisión...................................................................................................................26
Estructuras secuenciales.................................................................................................................27
Ciclos o bucles................................................................................................................................28
Capítulo 5 – Gráficas...............................................................................................................................31
Capítulo 6 – Operaciones con archivos....................................................................................................35
Entrada / Salida de datos.....................................................................................................................35
Guardado en PDF................................................................................................................................39
Conclusiones............................................................................................................................................39