Skip to main content

Líneas de algoritmo en CalcMe

Una nueva forma de definir variables y crear algoritmos está disponible en CalcMe. El propósito de esta página es proporcionar un resumen de lo que esta nueva función tiene para ofrecer, los problemas que pretende resolver y la interacción esperada del usuario.

calc.algorithm_line_example.calc.png

Problemas que se pretenden resolver

Después de analizar en profundidad la experiencia de usuario de CalcMe, nos dimos cuenta de que varios problemas menores podrían mejorarse con el desarrollo de líneas de algoritmo. Los principales problemas que pretende abordar esta nueva funcionalidad son:

  • No es posible copiar y pegar varias líneas en CalcMe. A partir de ahora, será posible reutilizar partes de un algoritmo fácilmente.

  • Es complicado recordar de memoria todos los comandos. La nueva opción de autocompletado te ayudará a encontrar la función adecuada en cada momento.

  • CalcMe presenta problemas de rendimiento en sesiones largas debido a las muchas instancias de editores MathType que deben usarse. Este problema desaparece al generar los algoritmos con el editor de código proporcionado.

  • No es posible agregar comentarios dentro de varias estructuras de línea. Además, tampoco es posible cambiar una línea de comentada a activa fácilmente.

Interacción esperada del usuario

Hay un nuevo botón en la barra de herramientas que permite crear un editor de código. Este botón habilita la función de línea de algoritmo en la línea actual, donde puedes ingresar tus algoritmos directamente.

toolbar_button.png

Las funciones y constantes creadas por el usuario (como las representadas por r(), crear_matriz_aleatoria(m,n) y A) obtienen su estilo una vez que el editor de código pierde el foco, para evitar el impacto en el rendimiento de actualizar la gramática con cada pulsación de tecla.

User-created functions and constants (such as the represented by r(), create_random_matrix(m,n) and A) get their styling once the code editor loses focus to avoid the performance impact of updating the grammar every keystroke.

Por otro lado, las variables definidas dentro de un editor de código están disponibles en líneas estándar posteriores CalcMe para operaciones o verificación de valores. Además, se pueden crear múltiples editores de código en una página, y cada uno de ellos puede acceder a las variables de los anteriores.

calc.interaction_example.calc.png

Atención

Si utilizas esta funcionalidad en versiones previas a WirisQuizzes 4.2.7 (lo cual incluye WirisQuizzes 3),  debes tener en cuenta que sesiones únicamente con editor de código no serán detectadas. Ésto puede ser fácilmente solucionado añadiendo cualquier cosa en la CalcMe tal y como puedes ver en la siguiente captura.

wq3_workaround.png

Algoritmos escritos préviamente en la Hoja de CalcMe

Si tienes un algoritmo escrito préviamente con la hoja de CalcMe sheet, puedes convertirlo de forma automática al editor de código. Existe un nuevo botón en la barra de herramientas que te permite realizar tal acción.

sheet_to_algorithm.gif

De este modo, podrás traducir esos algoritmos viejos que te daban problemas de rendimiento al editor de código.

Thus, you will be able to translate those old algorithms that gave you performance problems to the code line box.

Sobre la sintaxis

La sintaxis utilizada en los editores de código es el lenguaje Omega language, , el lenguaje interno del kernel Wiris CAS. Aunque es muy similar a la sintaxis utilizada en las líneas de CalcMe estándar, existen varias acciones para ayudarte a obtener la sintaxis correcta.

  • Al hacer clic en un botón del menú de CalcMe mientras se está dentro de un editor de código, se ingresará su expresión equivalente en Omega:

syntax_menu.png

  • Usando del modo de autocompletado de nombre de función a través del atajo de teclado Ctrl + Space (Cmd + Shift + Space en macOS):

syntax_autocompletion.png

Sintaxis de comentario

Como se ha mencionado anteriormente, es posible usar la sintaxis de comentarios dentro del editor de código. Puedes usar el símbolo # para marcar una línea como comentario, y la secuencia /# para iniciar un bloque de comentarios (puedes cerrarlo usando el símbolo #/).

syntax_comment.png

Search and Replace commands

As a brand new feature of the CalcMe code editor, it's possible to find and replace text if you're working with a lot of text and need to search and replace a word or a phrase.

calcme_replace.gif

You can find below the corresponding shortcuts:

Action

Shortcut

Start searching

Ctrl+F

Find next

Ctrl+G

Find previous

Ctrl+Shift+G

Replace

Ctrl+Shift+F

Replace all

Ctrl+Shift+R

Atención

This feature only works inside the code editor. Thus, it's important to set the cursor inside the corresponding text field.

Comando sustituir cadena

Si quieres utilizar el comando sustituir_cadena() con una expresión matemática, deberás seguir utilizando la hoja de CalcMe correspondientemente. Se trata de una limitación del editor actual y, aunque no sea la situación ideal, no mostrará correctamente las fórmulas si están introducidas desde el editor de código.

calc.string_substitution_example.calc.png

Algebraic expressions

There are several notation considerations you need to take into account if you want to create an algebraic expression through the code editor. As you can see in the screenshot below, CalcMe will interpret expressions beginning with an alphabetic character as an identifier (in blue), like a reserved word.

calcme_identifiers.png

This behaviour can involve some validation problems in a WirisQuizzes question context, given that E·13E13.

calcme_comparison.png

Thus, to avoid these situations, there are two workarounds you can use indistinctly. We recommend using the first one, as you can keep generating the algorithm within the code editor, but both are equally possible.

  • Insert the dot operation product between all alphabetical characters and numbers.

    calcme_expression.png
  • Define such expressions inside CalcMe.

    calcme_expression_2.png