Ecuaciones con LibreOffice y WolframAlpha y cómo matar dos pájaros de un tiro

Empieza la clase de matemáticas. Me dispongo a proyectar algunos ejercicios de ecuaciones de primer grado con fracciones. Estamos terminando el tema y estos últimos días los dedicamos a repasar la unidad con ejercicios para el próximo examen. Tengo un libro en frente con nuevos ejercicios que plantear. Pero antes hay que copiarlos: ¿pizarra de tiza o proyector…?

Si escribir las fórmulas con un editor de ecuaciones es ya de por sí una gran idea, cuando descubrimos que Wolfram|Alpha «entiende» la sintaxis básica de las expresiones matemáticas de LibreOffice/OpenOffice Math, trabajar en «modo digital» con este tipo de recursos resulta entonces realmente productivo

Empieza la clase de matemáticas. Me dispongo a proyectar algunos ejercicios de ecuaciones de primer grado con fracciones. Estamos terminando el tema y estos últimos días los dedicamos a repasar la unidad con ejercicios para el próximo examen. Un libro sobre la mesa con nuevos ejercicios que plantear… y copiar: ¿pizarra o proyector…?

Confieso que prefiero «escribir» las expresiones matemáticas en digital, utilizando un editor de fórmulas: LibreOffice/OpenOffice Math. Y en mi caso particular, después de adquirir cierta práctica, reconozco que tardo bastante menos tiempo en escribir las fórmulas con el teclado del ordenador que a mano. Por otro lado, una vez escritas las fórmulas, las puedo guardar, para modificarlas posteriormente y plantear nuevos ejercicios similares, apenas cambiando algunos términos. Además, las expresiones matemáticas proyectadas en el aula, se ven infinitamente mejor: con más luz y mayor nitidez. Yo solo le veo ventajas a trabajar en digital.

Ecuación de primer grado con OpenOffice
Ecuación de primer grado con OpenOffice

Además, para este tema en concreto sobre ecuaciones, es bastante habitual tener que comprobar rápidamente alguna solución. Y es aquí donde entra en juego el buscador de respuestas Wolfram|Alpha, que tanto me ayuda. Me declaro fan absoluto desde hace años y es por ello que he escrito bastante sobre él en este blog.

Si escribir las fórmulas con un editor de ecuaciones es ya de por sí una gran idea, cuando descubrimos que Wolfram|Alpha «entiende» la sintaxis básica de las expresiones matemáticas de LibreOffice/OpenOffice Math, trabajar en «modo digital» con este tipo de recursos resulta entonces realmente productivo. «Matar dos pájaros de un tiro» que decía en el título de este artículo. Escribimos la ecuación con OpenOffice Math, copiamos y pegamos la expresión en Wolfram|Alpha, ¡y listo! Ecuación «dibujada» y resuelta.

Ecuación de primera grado con WolframAlpha
Ecuación de primer grado con WolframAlpha

He preparado un documento que resume en una página la sintaxis básica para escribir con LibreOffice/OpenOffice Math las expresiones matemáticas más comunes. En una especie de «chuleta», se detalla la representación de operaciones y símbolos especiales necesarios para «dibujar» ecuaciones y otras expresiones matemáticas.

Edición de Fórmulas con LibreOffice/OpenOffice

Es posible que algunas expresiones o símbolos de OpenOffice/LibreOffice diseñadas exclusivamente para aspectos de formato (paréntesis graduables, palabras como «cdot» y otros símbolos especiales) no sean interpretados por Wolfram|Alpha. Sin embargo, las expresiones aritméticas y algebraicas básicas son compatibles con el buscador de respuestas.

Documentos | «Fórmulas con OpenOffice/LibreOffice – Sintaxis Básica» (PDF, 1 pág.)
Descargar programas | LibreOffice | Apache OpenOffice
Wolfram|Alpha | www.wolframalpha.com
En Tiching | http://es.tiching.com/120588
Fotografía «pizarra» | «Business person against the blackboard» de Hernani Larrea en Flickr

«Apellido1 Apellido2, Nombre»: procesando cadenas de texto con la hoja de cálculo

Los programas de hoja de cálculo, como LibreOffice, Numbers o Excel, cuentan con funciones que van más allá del cálculo numérico con operaciones básicas y otras fórmulas más complejas. Podemos simular funciones de bases de datos, definir funciones lógicas, realizar conversiones entre unidades de medida o procesar fechas. De este último tipo, incluso podemos encontrar … Continuar leyendo ««Apellido1 Apellido2, Nombre»: procesando cadenas de texto con la hoja de cálculo»

Los programas de hoja de cálculo, como LibreOffice, Numbers o Excel, cuentan con funciones que van más allá del cálculo numérico con operaciones básicas y otras fórmulas más complejas. Podemos simular funciones de bases de datos, definir funciones lógicas, realizar conversiones entre unidades de medida o procesar fechas. De este último tipo, incluso podemos encontrar aplicaciones de lo más extrañas, como conocer el día en el que cae el Domingo de Pascua. Todas ellas vienen «de serie». El usuario, por su cuenta, puede definir sus propias funciones. Y este es el tema que ocupa esta entrada.

Personalmente, no hay curso en el que no me encuentre con el problema de analizar una lista de nombres (de alumnos, lógicamente). Los listados que exportan algunas bases de datos nunca tienen el formato adecuado para los programas que necesitan importarlos. Uno se plantea siempre si merece la pena modificarlos manualmente. Pensándolo un par de veces, está claro: mejor procesar los datos con algún programa. El tiempo invertido compensará; y quizá podamos reutilizar el «programita» en años posteriores.

En cualquier caso nos enfrentamos al problema de procesar cadenas de texto. Podríamos programar unas pocas líneas de código en cualquier lenguaje de script y ejecutarlo; pero es una opción demasiado técnica. También podemos optar por utilizar un programa de hoja de cálculo, que incorporan funciones para el tratamiento de texto. Con paciencia y en varios pasos, podemos lograr la conversión que necesitamos.
El problema que se presenta año tras año es el mismo: llega un listado de nombres de personas con este formato.

Apellido1 Apellido2, Nombre

Apellidos y nombre en la misma columna de una hoja de cálculo. Y uno sencillamente necesita los apellidos en una columna y el nombre en otra. Probablemente exista alguna función (muy escondida supongo) que esté diseñada precisamente para este propósito. Sin embargo, una solución más entretenida puede ser combinar funciones de texto ya definidas en la hoja de cálculo. De hecho, puede ser un modo interesante de introducir el concepto de función a los alumnos. Puede ser incluso ser un primer paso en el mundo de la programación.

Volvamos al problema. Para separar apellidos de nombre bastaría con combinar adecuadamente las funciones de texto IZQUIERDA, ENCONTRAR, DERECHA y LARGO. Suponiendo que el nombre completo está almacenado en la celda A1, en la celda contigua (B1) definimos la siguiente fórmula, que nos devolverá los apellidos de la persona:

=IZQUIERDA(A1;ENCONTRAR(",";A1)-1)

En otra celda (C1) definimos esta fórmula, que nos devolverá el nombre de la persona:

=DERECHA(A1;LARGO(A1)-ENCONTRAR(",";A1)-1)

ScriptEs cierto que si necesitamos aplicar esta conversión varias veces en el mismo documento de hoja de cálculo, la definición de las funciones puede resultar un poco tedioso. En este caso, el usuario podría definir su propia función programando una «macro»; un conjunto de instrucciones que hacen exactamente lo mismo que la combinación de funciones anterior. En el programa de hoja de cálculo se accede a esta opción a través del menú: «Herramientas – Macros – Organizar macros». Quizá dedique futuras entradas a este tema. De momento, si alguno ha definido alguna vez (o ha copiado y pegado) alguna macro, un posible fragmento de código sería el siguiente:

REM * Funciones LosApellidos & ElNombre *
Function LosApellidos(NombreCompleto As String)
Dim Apellidos As String
Dim Pos As Integer
Pos = InStr(NombreCompleto,",")-1
Apellidos = Left(NombreCompleto, Pos)
LosApellidos = Apellidos
End Function
Function ElNombre(NombreCompleto As String)
Dim Nombre As String
Dim Pos As Integer
Dim LNC As Integer
lNC = Len(NombreCompleto)
lAP = Len(LosApellidos(NombreCompleto))
Pos = lNC-lAP-2
Nombre = Right(NombreCompleto, Pos)
ElNombre = Nombre
End Function

Con esta definición, suponiendo que el nombre completo de la persona está almacenado en A1, bastaría con utilizar las funciones de este modo en cualquier celda.

Para obtener los apellidos:

=LosApellidos(A1)

Y para obtener el nombre:

=ElNombre(A1)

Podéis encontrar algunos detalles sobre estas funciones en la wiki de reciente creación que comenté hace unos días.

Wiki | Funciones de texto con hoja de cálculo

Bases de Datos (III). Diseño lógico

La tercera entrega de la serie de apuntes sobre Bases de Datos está dedicada al Diseño Lógico. En esta fase el objetivo es transformar el esquema inicial de la BD (diseño conceptual), en una serie de estructuras lógicas: tablas, campos y claves primarias y ajenas.

En la serie de materiales sobre Bases de Datos, presenté algunos conceptos y definiciones, además de la realización de un proyecto completo, resumiendo cada una de las fases que lo componen: análisis, esquema, tablas, datos y consultas. En la Fase 2 del diseño de la Base de Datos, propuse la elaboración de un esquema de la BD utilizando el Modelo Entidad-Relación.

Una vez terminado y validado el diagrama, ya estamos en disposición de comenzar la Fase 3, en la que nos enfrentamos al diseño de la BD con el ordenador, utilizando un Sistema de Gestión de Base de Datos.

Esta fase se conoce como diseño lógico. En este punto del proyecto, transformamos el esquema de la base de datos (diseño conceptual), en una serie de estructuras lógicas (tablas, campos, claves primarias y ajenas, etc.), que permitirán almacenar los datos de una forma óptima, sin redundancia de datos (que no haya duplicidad de información; que no se repita el mismo dato) y garantizando la integridad referencial: que no se pueda relacionar un dato A con otro dato B, si este último no existe todavía en la base de datos.

El objetivo es definir correctamente los campos y claves de las tablas, y las relaciones entre ellas, para que el sistema gestor de base de datos pueda avisar con un mensaje de error si el usuario está intentando realizar una operación incorrecta sobre la base de datos, y que no corresponde con el diseño del esquema inicial.

He resumido en estos apuntes los pasos necesarios para definir las distintas relaciones entre entidades que se pueden dar en la fase de diseño lógico.

Ficha (4) | Diseño lógico (PDF, 2 páginas)
En Tiching | Bases de datos (III). Diseño lógico.
Ficha (3) | Modelo Entidad-Relación (PDF, 2 páginas)
Fichas (1) y (2) | Bases de Datos (I). Fases de diseño

Geometría y hoja de cálculo: del lenguaje matemático al informático

Comparto esta semana un ejercicio que consiste en transformar fórmulas de áreas de figuras planas de lenguaje matemático a lenguaje informático, utilizando la sintaxis de fórmulas de la hoja de cálculo. La actividad permite también revisar conceptos como el uso de los paréntesis o las reglas de precedencia de operadores.

Durante el curso 2010/2011 compartí una serie de materiales sobre Hoja de Cálculo, concretamente 4 fichas de teoría con ejemplos sobre (I) el entorno de OpenOffice Calc y operaciones básicas, (II) sobre el uso de funciones, (III) sobre la reutilización de fórmulas, y (IV) sobre la toma de decisiones utilizando la funciones condicionales y operadores lógicos.

También publiqué varias entradas con materiales y ejercicios de geometría, en particular sobre áreas de figuras planas. En la mayoría de ellas hacía referencia al programa GeoGebra, como en la actividad de «La estrella».

Este año combino los dos temas para proponer una primera actividad de hoja de cálculo. Con el objetivo de practicar las operaciones básicas con hoja de cálculo, he preparado un ejercicio que consiste en transformar fórmulas de cálculo de áreas de figuras planas de lenguaje matemático a lenguaje informático de una hoja de cálculo.

Las fórmulas de geometría plana contienen todos los tipos de operadores básicos (suma, resta, multipliación, división y potencia) que conviene conocer en una hoja de cálculo. Y además de repasar las fórmulas reales, transformar funciones de un lenguaje puramente matemático a otro lenguaje con otra sintaxis, permite revisar conceptos como el uso de los paréntesis o las reglas de precedencia de operadores.

Imagen | Basada en la fotografía de Claus Rebler
Actividad | Geometría con Hoja de Cálculo (PDF)
En Tiching | Geometría con Hoja de Cálculo

Planificación de Unidades Didácticas: calendario 2011/12

Queda mucho todavía para el inicio de curso. Sin embargo, en cuestión de planificación nunca es demasiado pronto. Comparto esta semana un documento para profesores (y alumnos también) para la organización de las clases del curso 2011/12.

Este post bien podría haberse titulado «Organizando el curso escolar 2011/12»,  puesto que la plantilla que comparto puede servir tanto para profesores como estudiantes. Se trata de un único documento que muestra el calendario escolar, con espacio para programar el desarrollo de las clases de una asignatura y con posibilidad de hacer la planificación para varios grupos.

Bien pensado, la plantilla puede servir para organizar cualquier aspecto del curso escolar. Puede ser de utilidad para profesores, para planificar las clases que componen un curso completo, como para alumnos, como diario de seguimiento de la asignatura, en el que apuntar las fechas de exámenes, entregas de trabajos o cualquier otra anotación sobre el desarrollo de sus clases.

El documento es similar en aspecto a los calendarios compactos de los que hablé hace unos días. La diferencia principal es que esta plantilla permite planificar día a día. Algunas de las características son:

  • El calendario cubre el año escolar, de septiembre de 2011 a julio de 2012, estos dos meses completos, ya que en cada centro escolar y dependiendo de la etapa, el inicio del curso es diferente. No muestra los días no lectivos, que dependiendo del centro educativo, ciudad, comunidad autónoma o país, lógicamente son distintos.
  • La planificación se puede hacer día a día, pudiendo indicar el título de la clase o un resumen de los contenidos que se imparten ese día (columna «Sesión»).
  • No aparecen los fines de semana (S,D). Para simplificar la plantilla se han omitido los fines de semana, aunque en algún centro de formación es posible que se impartan clases en fin de semana.
  • Podemos agrupar (visualmente) las sesiones de una misma unidad didáctica, con la columna UD (utilizando la función de «combinar celdas» de la hoja de cálculo).
  • Aparecen cada uno de los días entre semana (en número), con la etiqueta L,M,X,J o V según el día de la semana. La etiqueta facilita la programación; si la asignatura se imparte por ejemplo martes y jueves, basta con recorrer la plantilla e ir marcando los días M y J.
  • Permite organizar la misma asignatura para grupos distintos A,B,C,D: líneas distintas, particiones del grupo en clase, etc.
  • La plantilla dispone de un contador en la parte superior de cada grupo, donde podemos ir viendo el número total de sesiones planificadas al año. Con está función podemos comprobar en todo momento que el número de sesiones programadas es el mismo para todos los grupos. Ya sabemos que cuando hay días festivos de por medio, siempre hay que ajustar la distribución de sesiones para cada grupo.

En definitiva, una sencilla plantilla que puede facilitar la (no sé si bien llamada) «temporalización» de las unidades didácticas en las programaciones de cada una de nuestras asignaturas.

Enlaces | Plantilla en varios formatos: OpenOffice (.odt) | Excel (.xls) | PDF

Curso de Hoja de Cálculo (IV): Tomando decisiones

Cuarta entrega del Curso de Hoja de Cálculo sobre funciones condicionales y lógicas, fundamentales para poder tomar decisiones sobre las operaciones en una hoja de cálculo.

«Tomando decisiones» es la cuarta de las entregas del curso de Hoja de Cálculo. Con ella se cierra una primera serie de fichas que intentan resumir los contenidos impartidos hasta ahora en clase sobre este tema: el entorno de hoja de cálculo y las operaciones básicas, la utilidad de las funciones, el buen aprovechamiento de las fórmulas y el uso de funciones lógicas y condicionales. Podríamos decir que las 4 fichas presentan las herramientas básicas para plantear un gran número de problemas con la hoja de cálculo.

¿Qué son las funciones condicionales? En ciertas situaciones puede ser necesario hacer que un resultado dependa de alguna condición. Supongamos que queremos reflejar el siguiente problema en la hoja de cálculo:

“Los alumnos han hecho dos exámenes y sólo se hace media si en ambos la nota es mayor que 4”.

En este caso, la única condición para realizar la media es que la nota de los dos exámenes supere el valor 4. Representar este problema con una fórmula matemática podría ser demasiado complejo. Es por ello que se introducen las funciones condicionales, que bien definidas permiten tomar decisiones sobre los datos. En concreto, en el programa Calc disponemos de la función SI.

La función SI tiene la siguiente forma:

=SI(prueba-lógica; valor-si-V; valor-si-F)

  • prueba lógica: es la condición; se trata de una expresión con dos posibles respuestas: verdadero o falso. Por ejemplo: A1>5
  • valor-si-V: el valor que muestra la celda si la prueba lógica es verdadera.
  • valor-si-F: el valor que muestra la celda si la prueba lógica es falsa.

¿Y cómo se aplica la función SI? Por ejemplo: queremos mostrar el texto «Aprobado» o «Suspenso» dependiendo de la nota de un examen. Si la nota del examen está en la celda B2, basta con definir la siguiente fórmula en la celda que debe mostrar el texto:

=SI(B2>=5;"Aprobado","Suspenso")

La Ficha 04 lista los operadores lógicos disponibles para definir correctamente la prueba lógica de la función SI. También ofrece un par de ejemplos de uso de las funciones lógicas O e Y, que permiten combinar varias condiciones (varios operadores lógicos) en una sola expresión.

Por ejemplo, si suponemos que en las celdas E1 y E2 tenemos las notas de dos exámenes, podríamos resolver el problema planteado al inicio de este artículo:

“Los alumnos han hecho dos exámenes y sólo se hace media si en ambos la nota es mayor que 4”.

con la siguiente combinación de operadores lógicos y funciones condicional (SI), lógica (Y) y de media aritmética (PROMEDIO):

=SI(Y(E1>=4;E2>=4);PROMEDIO(E1:E2);”No”)

Sobre Hoja de Cálculo todavía hay mucho que contar. Bien mejorando los apuntes ya publicados, o bien incorporando nuevas fichas, pronto compartiré más contenidos sobre el tema.

Enlaces: Ficha 01 | Ficha 02 | Ficha 03 | Ficha 04

Curso de Hoja de Cálculo (III): Cómo reutilizar fórmulas

La tercera entrega del Curso de Hoja de Cálculo explica cómo reutilizar una fórmula definida en una hoja de cálculo con la función de copiar y pegar. Con ella evitamos tener que reescribir las operaciones en los cientos o miles de filas de datos de un problema.

Especialmente en áreas como la estadística, es muy habitual tener que realizar la misma operación sobre cientos o miles de líneas de datos, como ocurre por ejemplo con las encuestas, donde tenemos muchas respuestas que debemos procesar del mismo modo, utilizando la misma fórmula. En estos casos, lo más lógico es dejar que sea el ordenador el que realice estos cálculos y para ello debemos saber cómo generalizar un problema. La tercera entrega del Curso de Hoja de Cálculo detalla la función que permite copiar y pegar fórmulas en una hoja de cálculo, precisamente para evitar reescribirlas para cada caso particular.

La Ficha 04 que publico esta semana pretende explicar el uso del símbolo $ para «fijar una celda» cuando se reutiliza una fórmula con la función de copiar y pegar. En algunos casos la hoja de cálculo no consigue interpretar correctamente la fórmula que queremos duplicar. Un ejemplo habitual es cuando, por ejemplo, queremos dividir varias celdas consecutivas de una columna entre el mismo valor.

Enlaces: Ficha 01 | Ficha 02 | Ficha 03

Curso de Hoja de Cálculo (II): Funciones

Segunda entrega de los apuntes de Hoja de Cálculo que inlcuye una Ficha en PDF describiendo el uso de funciones con OpenOffice Calc.

Terminamos 2010 con una introducción a la hoja de cálculo OpenOffice Calc explicando los elementos básicos del entorno de hoja de cálculo, los tipos de datos que se pueden manejar y el uso de los operadores básicos (suma, resta, multiplicación y división). En esta segunda entrega, se introduce el uso de funciones que principalmente van a permitir simplificar algunos cálculos.

Las operaciones básicas estudiadas en la Ficha 01 se suelen utilizar para realizar cálculos sencillos con unos pocos datos. Si queremos sumar los valores de las celdas A1, A2 y A3, simplemente escribimos la siguiente fórmula:

=A1+A2+A3

Pero, ¿qué sucede si la cantidad de números de la expresión es muy grande?

=A1+A2+A3+A4+A5+ … + A678

Una de las ventajas del uso de funciones es precisamente simplificar este tipo de cálculos largos. Para este caso particular, sería más conveniente utilizar la función SUMA.

=SUMA(A1:A678)

Intervalos y conjuntos de celdas

En el ejemplo de función SUMA, aparece entre paréntesis el valor A1:A678, dos celdas separadas por el signo “dos puntos” (:). Se trata de una forma abreviada para indicar que la operación se realiza sobre un intervalo de celdas. El ejemplo:

=SUMA(A1:A678)

indica que se efectúa la suma de todos los valores desde la celda A1 hasta la celda A678 (siempre en celdas consecutivas).

Sin embargo, los datos sobre los que se opera no siempre aparecen de forma consecutiva en la hoja de cálculo. ¿Cómo podemos sumar entonces tres valores que están en las celdas A1, B3 y C9, sin recurrir el operador de suma (+)? Para ello podemos seguir utilizando la función SUMA e indicar un conjunto de celdas con el signo “punto y coma” (;).

=SUMA(A1;B3;C9)

que sería equivalente a escribir:

=A1+B3+C9

La ficha en formato PDF resume estos contenidos y añade la explicación de «Opciones de función» y muestra el uso de otra funciones conocidas (PROMEDIO, M.C.D, M.C.M, MÁX, MÍN, etc.).

Enlaces: Ficha 01 | Ficha 02

Curso de Hoja de Cálculo (I). Entorno y operaciones básicas

Primera las publicaciones sobre Hoja de Cálculo que inlcuye una Ficha en PDF describiendo las operaciones básicas con OpenOffice Calc.

Con esta entrada empieza una serie de artículos en forma de Curso de Hoja de Cálculo. En cada una de las entregas publicaré algunos materiales resumidos en una ficha.  El material se ha elaborado para complementar los contenidos de estadística en educación secundaria y, por tanto, la mayoría de ejemplos se plantean para resolver problemas matemáticos de este nivel.

Durante este curso utilizaré OpenOffice Calc como software para desarrollar las explicaciones y ejemplos de Hoja de Cálculo, aunque es muy probable que en una segunda edición del curso (con mejora de los materiales) opte por pasar definitivamente a LibreOffice. Para conocer los motivos, puedes leer más sobre la noticia OpenOffice/LibreOffice en GenBeta o en Barrapunto.

Empezamos conociendo los aspectos básicos de una hoja de cálculo.

La hoja de cálculo es un programa que permite manipular datos numéricos y alfanuméricos. Con él podemos realizar desde operaciones básicas hasta complejos cálculos estadísticos. En una hoja de cálculo, todos los datos se organizan en filas (representadas por números; 1, 2, 3, …) y columnas (representadas por letras: A, B, C, …), ocupando cada valor un celda determinada (A1, B2, C2, …).

En general, en cada celda se pueden introducir valores de tres tipos: números, fórmulas y texto:

  1. Los números son los datos de entrada, aquella información sobre la que queremos realizar cálculos. Ejemplo: las notas de dos exámenes: 6,5 y 8.
  2. Las fórmulas son expresiones matemáticas que permiten obtener nuevos datos a partir de los números que aparecen en otras celdas. Ejemplo: la fórmula del promedio. Para el caso que muestra la figura, la suma de las notas divida por 2)
  3. El texto permite describir y organizar mejor la información numérica y las fórmulas. Ejemplo: etiquetas junto a los datos: Examen 1, Examen 2, Media.

Aunque veremos que existen métodos más sencillos (llamados funciones) para calcular una media aritmética, convendrá en primer lugar aprender a realizar este tipo de cálculos con los operadores básicos, que incluyen la suma, la resta, la multiplicación, la división, la potenciación y la raíz cuadrada.

Enlaces: Descargar OpenOffice.org | Ficha 01 de Hoja de Cálculo