Tipo de Pregunta Calculada

De MoodleDocs

Las preguntas calculadas ofrecen una forma de crear preguntas numéricas individuales por medio del uso de comodines o variables que son sustituidos por los valores individuales cuando se responde el cuestionario.


Las preguntas calculadas ofrecen un forma de crear preguntas numéricas individuales mediante el uso de comodines o "wilcards" (por ejemplo {x}, {y}) que son substituidos por valores aleatorios cuando se accede a dicha pregunta.


Por ejemplo, si usted quiere crear varias preguntas del tipo "Calcula el área de un rectángulo..." para ejercitar a sus alumnos, puede crear una sola pregunta general y reemplazar los valores de la base y altura por los comodines {base} y {altura} y poner su producto en el cuadro de texto "Fórmula para calcular la respuesta correcta=" para que Moodle calcule la respuesta correcta:

Fórmula para calcular la respuesta correcta= {base}*{altura}


Cuando el estudiante haga el cuestionario, Moodle seleccionará automáticamente valores aleatorios para {base} y {altura} y calificará la respuesta usando el resultado de la fórmula ingresada en el cuadro de texto anterior.

Los comodines rara vez aparecerán dos veces de la misma manera, por lo que el estudiante no podrá aprenderse las respuestas sino que tendrá que aprender el procedimiento.

¿Es realmente este tipo de pregunta lo que Ud. necesita?

El principal objetivo de las preguntas calculadas es generar múltiples versiones de una pregunta con valores numéricos diferentes. Esto significa declarar por lo menos un comodín en una de las respuestas.

Si no necesita un elemento aleatorio, use el Tipo de Pregunta Numérica en vez.


Wildcards and datasets

Cuando Moodle entrega una pregunta Calculada a un estudiante, los comodines son reemplazados por valores aleatorios. Sin embargo, estos valores no son completamente aleatorios, sino que pueden ser elegidos aleatoriamente desde un conjunto predefinido de posibles valores denominado dataset. Esto permite algún control sobre los posibles valores escogidos para hacer, por ejemplo, los números más realistas.

Estos datasets pueden ser privados o compartidos - datasets privados son usados por los comodines dentro de una sola pregunta calculada; los datasets compartidos son usados por los comodines de todas las preguntas calculadas que lo usan.

Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!.     ( y otras páginas pendientes)


Question set-up

To create (or modify) a calculated question there are three pages to work through. The instructions below take you through the pages, step by step:

Page 1. Editing a Calculated question

  1. Select the question category
  2. Any shared wildcards for this category are listed beneath. If you change category, you'll need to click the "Update the category" button to refresh this list. There may not be any shared wildcards yet - if not, you can create them later if you wish.
  3. Give the question a descriptive name - this allows you to identify it in the question bank.
  4. Enter the question text. This should be the question you want the student to answer, and it must include all the information they need to calculate an answer. Therefore it must contain at least one wildcard, inside curly braces. For example, if you wanted the student to sum numbers A and B, the question text might read: "What is {A} + {B}?"
  5. Select an image to display if you want to add a picture to the question. For the student, it appears immediately after the question text and before the choices. If you want more control over how the image appears, include it in the question text above, using the HTML editor.
  6. Set the default question grade (i.e. the maximum number of marks for this question).
  7. Set the Penalty factor (ver Factor de penalización más abajo).
  8. Moodle 1.7+: If you wish, add general feedback. This is text that appears to the student after he/she has answered the question.
  9. Next add the formula for the answer. This formula must contain at least the wildcards that appear in the question text. See Sintaxis de la fórmula de la respuesta correcta for further details.
  10. Choose the grade that the student will get for this question if they give this answer. This should be a percentage of the total marks available. For example, you could give 100% for a correct answer, and 50% for an answer that is nearly right. One of the answers must have a 100% grade.
  11. Determine the tolerance for error that you will accept in the answer. The tolerance and tolerance type settings combine to give a range of acceptable scores. So, if tolerance = t, correct answer = x and the difference between the user's answer and the correct answer is dx, then the tolerance types are as follows:
    1. Nominal - mark correct if dx <= t
    2. Relative - mark correct if dx / x <= t
    3. Geometric - mark correct if dx² / x² <= t²
  12. The next 2 settings, "Correct answer shows" and "Format" determine the precision of the answer. Use these to select the number of decimal places or significant figures you want to use.
  13. Add some feedback which the student will see if they enter this answer.
  14. You can specify as many answer formulae as you like - click "Add another answer blank" to add more.
  15. You can also specify units for the answers. For example, if you enter a unit of 'cm' here, and the accepted answer is 15, then the answers '15cm' and '15' are both accepted as correct. If you add more than one unit, you can also specify a multiplier. So, if your main answer was 5500 with unit W, you can also add the unit kW with a multiplier of 0.001. This means that the answers '5500', '5500W' or '5.5kW' would all be marked correct. Note that the accepted error is also multiplied, so an allowed error of 100W would become an error of 0.1kW.
  16. Finally (!) you can click "Next page" to save what you've done and move on. If you are editing an existing question, you can click "Next page (new question)" to create a completely new question based on an existing one.

Factor de penalización

Puede especificar qué fracción de la puntuación obtenida debería substraerse por cada respuesta errónea. Esto sólo resulta relevante si el cuestionario de ejecuta en modo adaptativo, de forma que se permite al estudiante repetir las respuestas a la pregunta. El factor de penalización debería ser un número entre 0 y 1. Un factor de penalización de 1 significa que el estudiante ha de dar la respuesta correcta al primer intento para conseguir la calificación máxima. Un factor de penalización de 0 significa que el estudiante puede intentar responder cuantas veces quiera y aun así puede conseguir la calificación máxima.

El 'Factor de penalización' sólo se aplica cuando la pegunta se utiliza dentro de un cuestionario en modo adaptativo -dónde el estudiante tiene permitido hacer múltiples intentos-. Si el factor de penalización es mayor que 0, entonces el estudiante perderá la proporción de la máxima puntuación a cada intento sucesivo. Por ejemplo, si la puntuación de la pregunta es por defecto 10, y el factor de penalización es 0.2, entonces cada intento sucesivo tras el primero tendrá una penalización de 0.2 x 10 = 2 puntos.

Page 2. Choose dataset properties

Each wildcard that you specify in the answer formula must have an associated set of possible values - this is its dataset. Each of the wildcards is listed on this page along with a choice of dataset:

  • private i.e. only used by this question
  • shared i.e shared with other calculated questions in the same category

Using a shared dataset can save time when you are creating a lot of similar calculated questions.

If there is anything in the question text that looks like a wildcard, but does not appear in any of the answer formulae, you can specify whether or not this is meant to be a wildcard. If it is, you can choose whether it should use a private or shared dataset.

To continue, simply choose your preferred dataset for each wildcard, then click "Next Page".

Page 3. Edit the datasets

Now we need to create the set of possible values that each wildcard can take. Warning - this page is a bit confusing!

There are two ways of creating values - you can type them in yourself and add them to the list, or you can have Moodle generate them for you.

Adding/deleting your own values

Adding individual values to the list is easy:

  1. In the 'Param' field for each wildcard, enter the value you want
  2. Scroll down to the 'Add' section and click the Add button (leaving the number of items set to 1)
  3. Repeat the above steps as many times as necessary (the maximum number of items is 100)

To delete values from the list:

  1. In the 'Delete' section, select the number of items to delete
  2. Click the Delete button

Letting Moodle create values

  1. Start with the "Range of Values" fields, and enter the lower and upper limits for the values you would accept
  2. Choose a number of decimal places for the value
  3. Choose the distribution of values between the limits - 'uniform' means any value between the limits is equally likely to be generated; 'loguniform' means that values towards the lower limit are more likely.
  4. Now move down to the 'Add' section and click on "force regeneration"
  5. In the menu next to the Add button, choose the number of sets of random values (items) you wish to add to the list. (Note that the maximum total number of items in your list is 100.)
  6. Finally, click Add to append the new values to the list
  7. Note: If you want more control over the items that Moodle adds, you can do them one at a time and preview the values before you add them. Click the "Get New Item to Add" button to make Moodle generate new values in the "Item to Add" section at the top. If you like them, click "Add" for 1 item; if not, click "Get New Item to Add" again to get new values.

Finishing off

Once your list of items (values) is complete, you are finished. It's up to you how many values you add - the more values you add, the more a question can be used by the students without them seeing the same values repeatedly.

Note that if you delete values from the list, you can put them back again. Change the "Next Item to Add" option to "reuse previous value if available", then the next time you add items, Moodle will restore your previously-deleted items from the dataset.

Once your list of values is complete, you can click 'Save changes' to finish.

What does the 'Update the datasets parameters' button do?

As far as I can tell, it has the same function as the "Get New Item to Add" button, i.e. it generates a new set of values and displays them in the "Item to Add" section. However, it is less conveniently placed that that button, so it is probably best ignored.

Sintaxis de la fórmula de la respuesta correcta

DO NOT PUT THE = sign in the fomula.

  • In the recent versions of the calculated question type, you could have more than one answer formula and applied a specific grading value to each of them as long as there is at least one 100% correct answer formula.
If more than one correct answer formula input field are displayed when editing, 
your site has the multiple answer feature. 


  • As a general rule, write these formulas like you would in a calculator e.g. 3 + 5 * sin (3/{x}) A notable exception is exponentiation, where x3 cannot be entered as {x}^3, but must (!?) be entered as exp(3*log({x})).
  • Each function's placeholders and other arguments should be in parentheses (brackets). For example, if you want students to calculate the sine of one angle and two times cosine of another, you would enter sin({a}) + cos({b}*2).
  • It's usually better to have too many parentheses (brackets) than too few. The server won't care, and the more specific you are about what you mean, the more likely it will like your complex formulas.
  • There is no implicit multiplication. To you, the human editor, "5(23)" or "5x" may seem perfectly obvious. To the server doing the math, it's crazy talk and won't be understood. Always use the "*" for multiplication.
  • Any special mathematical function must have parentheses around its values. Take the sine function in the first bullet point for instance. Notice that the 3 / x is wrapped in parentheses (brackets)--this is so the server can understand it properly. Without those parentheses, the server won't know if you mean "(sin 3) / x" or "sin (3 / x)" and will reject the entire formula accordingly.

Available functions

Calculated questions can use more than simple arithmetic operators. The following functions are allowed in versions 1.5 and newer.

Function Explanation
abs Absolute value
acos Arc cosine -- in radians!!! Convert your degree measurement to radians before you take the acos of it.
acosh Inverse hyperbolic cosine -- in radians!!! Convert your degree measurement to radians before you take the acosh of it.
asin Arc sine -- in radians!!! Convert your degree measurement to radians before you take the asin of it.
asinh Inverse hyperbolic sine -- in radians!!! Convert your degree measurement to radians before you take the asing of it.
atan2 Arc tangent of two variables -- pass in two values like (x, y), and you'll get the atah(y/x), adjusted to the proper quadrant.
atan Arc tangent -- in radians!!! Convert your degree measurement to radians before you take the atan of it.
atanh Inverse hyperbolic tangent
bindec Binary to decimal
ceil Round fractions up
cos Cosine -- in radians!!! Convert your degree measurement to radians before you take the cos of it.
cosh Hyperbolic cosine -- in radians!!! Convert your degree measurement to radians before you take the cosh of it.
decbin Decimal to binary
decoct Decimal to octal
deg2rad Converts the number in degrees to the radian equivalent
exp Calculates the exponent of e
expm1 Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor Round fractions down
fmod Returns the floating-point modulus of two numbers - i.e. the remainder when the first is divided by the second.
is_finite Finds whether a value is a legal finite number
is_infinite Finds whether a value is infinite
is_nan Finds whether a value is not a number
log10 Base-10 logarithm
log1p Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log Natural logarithm (ln)
max Find highest value
min Find lowest value
octdec Octal to decimal
pi Get value of pi
pow (numberToRaise, NumberRaisedTo) Exponential expression
rad2deg Converts the radian number to the equivalent number in degrees
rand Generate a random integer
round Rounds a float
sin Sine -- in radians!!! Convert your degree measurement to radians before you take the sin of it.
sinh Hyperbolic sine -- in radians!!! Convert your degree measurement to radians before you take the sinh of it.
sqrt Square root
tan Tangent -- in radians!!! Convert your degree measurement to radians before you take the tan of it.
tanh Hyperbolic tangent -- in radians!!! Convert your degree measurement to radians before you take the tanh of it.

Predefined constants

Actually there is NO Predefined constant that is allowed other than pi() as a function without parameter.


TRADUCCION ESPAÑOL