Fundamentos · Tema 02

De valores fijos a cantidades variables

Cómo representar magnitudes que cambian, distinguir variables, constantes y parámetros, y expresar dependencias mediante fórmulas, tablas, gráficos y funciones de JavaScript.

01 · Punto de partida

Un número aislado cuenta muy poco

Un programa informa que el tiempo de respuesta de una petición fue de 180 milisegundos. Ese dato describe una medición, pero todavía no explica si el sistema funciona bien. Para interpretarlo necesitamos contexto: cuántos usuarios había conectados, cuál era el tamaño de la petición, qué valor se había medido antes y cómo responde el sistema cuando alguna de esas cantidades cambia.

El paso de un valor fijo a una cantidad variable permite formular preguntas más ricas:

  • ¿Cómo cambia el tiempo de respuesta cuando aumenta la carga?
  • ¿De qué cantidades depende el costo de un servicio?
  • ¿Qué valores permanecen configurados durante una simulación?
  • ¿Qué dato elegimos libremente y cuál queda determinado por el modelo?
  • ¿Para qué entradas tiene sentido realizar el cálculo?

02 · Lenguaje matemático

Cantidades, símbolos y valores

Una cantidad es una propiedad que podemos representar o medir: tiempo, distancia, temperatura, cantidad de elementos o costo. Un símbolo, como t o n, es el nombre matemático que usamos para referirnos a ella. Un valor es una realización concreta, como t = 2.5 s o n = 40.

Separar estas ideas evita confusiones. En la expresión distancia = velocidad × tiempo, «tiempo» representa una cantidad. Si evaluamos el modelo para tiempo = 4 s, el número 4 es el valor asignado en ese caso. Si después usamos 7 segundos, cambió el valor, pero no el significado de la variable.

Ejemplos de cantidades, símbolos y valores posibles.
CantidadSímbolo posibleValor de ejemploUnidad
Tiempo transcurridot2.5segundos
TemperaturaT22.8°C
Usuarios concurrentesu350usuarios
Costo mensualC48.90dólares

Los símbolos cortos son cómodos al operar con fórmulas. En el código conviene utilizar nombres descriptivos como tiempoSegundos o usuariosConcurrentes, porque el programa debe comunicar significado además de ejecutar cálculos.

03 · Roles dentro de un modelo

Variables, constantes y parámetros

No todos los valores cumplen la misma función. Distinguir sus roles ayuda a comprender qué puede cambiar, qué se mantiene y qué caracteriza una versión particular del modelo.

x

Variable

Cantidad que puede tomar diferentes valores durante el estudio. Ejemplo: el tiempo transcurrido.

π

Constante

Valor que permanece fijo en el marco considerado. Algunas constantes son universales y otras se fijan por definición.

a

Parámetro

Valor fijo durante una ejecución o análisis, pero modificable para obtener otro miembro de una familia de modelos.

Un ejemplo con una tarifa

Consideremos el modelo C(g) = b + p·g, donde g es el consumo en gigabytes, b es un cargo base y p es el precio por gigabyte. Durante el cálculo para una tarifa concreta:

  • g es una variable: queremos evaluar distintos consumos.
  • b y p son parámetros: permanecen fijos para esa tarifa.
  • Si la empresa cambia el plan, puede asignar otros valores a los parámetros sin cambiar la estructura del modelo.

04 · Relaciones entre cantidades

Variable independiente y variable dependiente

Cuando una cantidad se determina a partir de otra, hablamos de dependencia. En la notación y = f(x), solemos llamar variable independiente a x y variable dependiente a y.

Entrada

Variable independiente

Es la cantidad cuyo valor elegimos, medimos o controlamos para evaluar el modelo.

Salida

Variable dependiente

Es la cantidad cuyo valor queda determinado por la entrada y por los parámetros.

La palabra «independiente» no significa que la variable esté desconectada del mundo. Solo describe su rol dentro de la relación elegida. En un experimento podemos controlar la entrada; en un conjunto de datos, ambas cantidades pueden haber sido medidas; y en un sistema complejo puede ser difícil afirmar que una causa a la otra.

Dependencia no significa causalidad

Una fórmula puede describir una asociación sin demostrar una causa. Si observamos que dos mediciones aumentan juntas, todavía debemos investigar si una produce a la otra, si ambas dependen de una tercera cantidad o si el patrón es accidental. El análisis del comportamiento matemático y la interpretación del fenómeno son tareas relacionadas, pero diferentes.

05 · Construcción del modelo

Expresiones, ecuaciones y funciones

Estos tres conceptos suelen aparecer juntos, pero cumplen papeles distintos:

Expresión
Combinación de valores, variables y operaciones, como 12 + 0.8g. Por sí sola no afirma una igualdad.
Ecuación
Afirma que dos expresiones son iguales, como 12 + 0.8g = 20. Puede utilizarse para encontrar valores desconocidos.
Fórmula
Expresa una regla general entre cantidades, como C = 12 + 0.8g.
Función
Asigna a cada entrada admitida una única salida. Puede escribirse C(g) = 12 + 0.8g.

Una función no es solamente la expresión de su fórmula. También importa qué entradas acepta y cómo se interpretan sus resultados. La regla 1 / x, por ejemplo, no produce un número real cuando x = 0; por eso cero no pertenece a su dominio natural.

Dominio e imagen, en una primera aproximación

El dominio reúne las entradas permitidas. La imagen reúne los valores que la función efectivamente produce. En un modelo de cantidad de archivos, el dominio puede restringirse a enteros no negativos aunque la fórmula algebraica también acepte decimales. Las restricciones proceden tanto de las operaciones matemáticas como del significado del problema.

06 · Un modelo, varios lenguajes

Fórmula, tabla, gráfico y código

Una misma relación puede representarse de distintas maneras. Ninguna reemplaza completamente a las demás:

Cuatro representaciones del modelo C(g) = 12 + 0.8g.
RepresentaciónQué permite observarEjemplo
VerbalEl significado de la relación.Cargo base de 12 más 0.8 por GB.
FórmulaLa estructura exacta de las operaciones.C(g) = 12 + 0.8g
TablaValores concretos y patrones numéricos.C(0)=12, C(10)=20.
GráficoForma, tendencia, escala e intervalos.Una recta que comienza en 12.
CódigoCómo evaluar y reutilizar la regla.g => 12 + 0.8 * g

Traducir entre representaciones es una habilidad central. La fórmula ayuda a razonar de forma general; la tabla permite verificar casos; el gráfico vuelve visible el comportamiento; el código automatiza la evaluación.

07 · Matemática y programación

El signo igual no siempre significa lo mismo

En matemática, = expresa una igualdad: ambos lados representan el mismo valor. En JavaScript, un solo signo igual realiza una asignación: evalúa la expresión de la derecha y guarda el resultado bajo el nombre de la izquierda.

let solicitudes = 120;
solicitudes = solicitudes + 30;

console.log(solicitudes); // 150

La segunda línea no sería una igualdad algebraica válida: ningún número es igual a sí mismo más 30. Como instrucción, significa «tomar el valor actual, sumarle 30 y reemplazar el valor almacenado».

Para comparar valores, JavaScript utiliza operadores como ===, < o >=. Para expresar una relación matemática reutilizable, utilizamos una función:

const costoMensual = gigabytes => 12 + 0.8 * gigabytes;

console.log(costoMensual(10)); // 20
console.log(costoMensual(25)); // 32
console.log(costoMensual(10) === 20); // true

08 · Interpretación

Las unidades también forman parte de la relación

Los números de un modelo representan cantidades. En C(g) = b + p·g, si C se mide en dólares y g en gigabytes, entonces:

  • b debe expresarse en dólares.
  • p debe expresarse en dólares por gigabyte.
  • El producto p·g vuelve a expresarse en dólares.
  • Recién entonces puede sumarse al cargo base.
USD + (USD / GB) · GB = USD

Esta comprobación, llamada análisis dimensional en contextos más generales, permite detectar errores incluso antes de ejecutar el programa. Sumar segundos y metros no adquiere sentido porque el código lo permita.

function distanciaMetros(velocidadMetrosPorSegundo, tiempoSegundos) {
  return velocidadMetrosPorSegundo * tiempoSegundos;
}

const velocidadMps = 5;
const tiempoMinutos = 2;
const tiempoSegundos = tiempoMinutos * 60;

console.log(distanciaMetros(velocidadMps, tiempoSegundos)); // 600

09 · Parámetros

Una fórmula puede describir una familia de modelos

La expresión y = a + bx no describe una única recta mientras a y b permanezcan sin fijar. Describe una familia completa:

  • a determina el valor de salida cuando x = 0.
  • b determina cuánto cambia y cuando x aumenta una unidad.
  • x recorre las entradas del modelo.
  • y es la salida calculada para cada entrada.

Al elegir a = 10 y b = 2, obtenemos y = 10 + 2x. Cambiar un parámetro modifica toda la relación; cambiar la variable independiente selecciona otro punto dentro de la misma relación.

10 · Exploración

Laboratorio: variables y parámetros en acción

Explorá la familia y = a + bx. Modificá primero la entrada x y observá cómo el punto se mueve sobre una misma recta. Después cambiá los parámetros a y b para transformar la recta completa.

EXPERIMENTO 02

Familia de modelos lineales

y = 10 + 2x

Los valores del modelo aparecen también debajo del gráfico.
Valor iniciala = 10,00
Cambio por unidadb = 2,00
Entrada elegidax = 3,00
Salida calculaday = 16,00

Con a = 10,00 y b = 2,00, la entrada x = 3,00 produce y = 16,00.

La línea dorada representa todos los pares de entrada y salida del modelo actual. El punto coral muestra el par seleccionado mediante el control de la variable x.

Preguntas para explorar

  1. Dejá fijos a y b. ¿Qué permanece igual cuando solo cambia x?
  2. Aumentá a. ¿Se modifica la inclinación o se desplaza toda la recta?
  3. Asigná a b un valor negativo. ¿Cómo cambia la salida cuando aumenta x?
  4. Elegí b = 0. ¿Por qué x sigue siendo variable aunque la salida no cambie?

11 · Implementación

Construir funciones configurables en JavaScript

Podemos crear una función que reciba los parámetros y devuelva otra función encargada de evaluar la variable independiente:

function crearModeloLineal(valorInicial, cambioPorUnidad) {
  return function evaluar(entrada) {
    return valorInicial + cambioPorUnidad * entrada;
  };
}

const planBasico = crearModeloLineal(10, 2);
const planAlternativo = crearModeloLineal(5, 3.5);

console.log(planBasico(3));      // 16
console.log(planAlternativo(3)); // 15.5

valorInicial y cambioPorUnidad son parámetros de la familia. Una vez creado planBasico, quedan fijados en 10 y 2. El argumento de planBasico representa la entrada variable.

Generar una tabla sin mezclar responsabilidades

function crearTabla(modelo, entradas) {
  return entradas.map(entrada => ({
    entrada,
    salida: modelo(entrada)
  }));
}

// El ejemplo es autocontenido: define aquí el modelo que necesita.
const modelo = entrada => 10 + 2 * entrada;
const entradas = [0, 1, 2, 3, 4];
const tabla = crearTabla(modelo, entradas);

console.log(tabla);

La primera función define la relación y la segunda organiza evaluaciones. Esta separación permite probar cada parte, reemplazar el conjunto de entradas o reutilizar la tabla con otros modelos.

Validar el dominio del problema

Una fórmula puede aceptar valores que carecen de sentido en la aplicación. Si la entrada representa cantidad de archivos, conviene exigir enteros no negativos:

function costoAlmacenamiento(cantidadArchivos) {
  if (!Number.isInteger(cantidadArchivos) || cantidadArchivos < 0) {
    throw new RangeError("La cantidad debe ser un entero no negativo");
  }

  const costoBase = 5;
  const costoPorArchivo = 0.02;
  return costoBase + costoPorArchivo * cantidadArchivos;
}

console.log(costoAlmacenamiento(250)); // 10

12 · Comprensión

Confusiones frecuentes

«Una variable matemática debe cambiar con el tiempo»

No necesariamente. Puede representar cualquier cantidad capaz de tomar distintos valores: posición, cantidad de elementos, precio o una coordenada. El tiempo es solo una variable frecuente.

«La variable independiente siempre es la causa»

Independiente describe un rol en la representación funcional. Una relación matemática por sí sola no demuestra causalidad.

«Un parámetro nunca cambia»

Permanece fijo mientras estudiamos un modelo particular, pero puede modificarse para seleccionar otro modelo de la misma familia.

«Toda fórmula define una función para cualquier número»

Las operaciones pueden imponer restricciones y el contexto puede agregar otras. Siempre debemos declarar o inferir el dominio.

«Una variable declarada con const es una constante matemática»

const evita reasignar el enlace en JavaScript. El objeto enlazado puede seguir siendo mutable, y el valor puede representar un parámetro o una entrada particular del modelo.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: clasificar cantidades

Una simulación calcula la temperatura mediante T(t) = T₀ − k·t. Durante una ejecución se usan T₀ = 80 °C y k = 1.5 °C/min.

  1. Identificá la variable independiente y la dependiente.
  2. Identificá los parámetros.
  3. Calculá la temperatura para 10 minutos.
  4. Explicá qué cambio produce aumentar T₀ y qué cambio produce aumentar k.
Ver solución razonada

t es la variable independiente y T la dependiente. T₀ y k son parámetros. Para 10 minutos, T(10) = 80 − 1.5·10 = 65 °C. Aumentar T₀ eleva todos los valores; aumentar k hace que la temperatura disminuya más por cada minuto.

Ejercicio 2: traducir representaciones

Un servicio cobra 7 dólares de base y 1.25 dólares por hora de uso.

  1. Escribí una fórmula para el costo C según las horas h.
  2. Construí una tabla para 0, 2, 4 y 6 horas.
  3. Indicá dominio, variable dependiente y parámetros.
  4. Implementá el modelo como una función de JavaScript.
Ver solución y código

La fórmula es C(h) = 7 + 1.25h. Los valores pedidos son 7, 9.50, 12 y 14.50 dólares. h es independiente, C es dependiente y 7 y 1.25 son parámetros. Si se factura por fracciones de hora, el dominio puede ser cualquier número real no negativo; si solo se facturan horas completas, debe restringirse a enteros no negativos.

const costo = horas => 7 + 1.25 * horas;

for (const horas of [0, 2, 4, 6]) {
  console.log(horas, "h →", costo(horas), "USD");
}

Ejercicio 3: detectar problemas

Revisá el siguiente código:

const precio = 4;
const cantidad = -3.5;
const total = precio + cantidad;

console.log(total);

Suponiendo que precio es el precio por unidad y cantidad es el número de productos, describí al menos tres problemas conceptuales y escribí una versión mejorada.

Ver una posible respuesta

La operación debería ser una multiplicación; la cantidad de productos no debería ser negativa ni fraccionaria; los nombres no indican unidades; y falta validar el dominio.

function calcularTotal(precioPorUnidad, cantidadProductos) {
  if (precioPorUnidad < 0) {
    throw new RangeError("El precio no puede ser negativo");
  }
  if (!Number.isInteger(cantidadProductos) || cantidadProductos < 0) {
    throw new RangeError("La cantidad debe ser un entero no negativo");
  }
  return precioPorUnidad * cantidadProductos;
}

console.log(calcularTotal(4, 3)); // 12

14 · Síntesis

Ideas para recordar

  • Una cantidad tiene significado; un símbolo la representa y un valor concreta un caso.
  • Variables, constantes y parámetros cumplen roles diferentes dentro de un modelo.
  • La variable independiente funciona como entrada y la dependiente como salida determinada por la relación.
  • Expresiones, ecuaciones, fórmulas y funciones no son términos intercambiables.
  • Dominio e imagen ayudan a precisar qué entradas se admiten y qué salidas se producen.
  • Una misma relación puede expresarse verbalmente, mediante fórmulas, tablas, gráficos y código.
  • Las unidades, restricciones y supuestos forman parte del modelo.
  • En JavaScript, asignar un valor no equivale a afirmar una igualdad matemática.

En el próximo tema estudiaremos la idea de cambio: cómo comparar estados, interpretar incrementos positivos y negativos y representar variaciones en datos y programas.