16. Magnitudes y mediciones

Una medición combina un número con una unidad. Comprender magnitudes, precisión, resolución y unidades permite representar datos reales correctamente dentro de un programa.

16.1 Introducción

Muchos programas trabajan con datos que provienen del mundo real: distancias, temperaturas, pesos, tiempos, velocidades, áreas, volúmenes, consumo de memoria o lecturas de sensores.

Estos valores no son solo números. Un valor como 25 puede significar 25 grados, 25 metros, 25 segundos o 25 kilobytes. La unidad y el contexto son indispensables para interpretar correctamente la medición.

En este tema estudiaremos cómo pensar magnitudes y mediciones al programar.

16.2 Qué es una magnitud

Una magnitud es una propiedad que puede medirse o compararse. Por ejemplo, longitud, tiempo, masa, temperatura, velocidad y capacidad de almacenamiento.

Magnitud Qué mide Unidades comunes
Longitud Distancia entre puntos mm, cm, m, km
Tiempo Duración ms, s, min, h
Masa Cantidad de materia g, kg
Temperatura Nivel térmico °C, °F, K
Almacenamiento Capacidad de datos bytes, KB, MB, GB

16.3 Una medición necesita número y unidad

Una medición completa incluye un valor numérico y una unidad. En programación conviene representar ambos datos si existe riesgo de confusión.

12.5 m es una medición de longitud.
12.5 s es una medición de tiempo.
const medicion = {
  valor: 12.5,
  unidad: "m"
};

console.log(medicion);

Guardar la unidad junto al valor hace que el dato sea más claro y reduce errores.

16.4 Medir no es lo mismo que contar

Contar produce cantidades enteras: 5 usuarios, 12 archivos, 3 intentos. Medir puede producir valores decimales: 1.75 metros, 36.6 grados, 0.25 segundos.

const cantidadUsuarios = 5;
const alturaMetros = 1.75;

console.log(Number.isInteger(cantidadUsuarios));
console.log(Number.isInteger(alturaMetros));

Esta diferencia importa al validar datos. Una cantidad de usuarios debe ser entera, pero una altura puede tener decimales.

16.5 Precisión de una medición

La precisión indica cuán detallada o repetible es una medición. Una temperatura medida como 25.4 °C ofrece más detalle que una temperatura medida como 25 °C.

En programación, muchas veces controlamos la precisión al mostrar el valor, no necesariamente al guardarlo.

const temperatura = 25.4378;

console.log(temperatura.toFixed(0));
console.log(temperatura.toFixed(1));
console.log(temperatura.toFixed(2));

Mostrar demasiados decimales puede dar una falsa sensación de exactitud.

16.6 Resolución

La resolución es el cambio mínimo que puede detectar o representar un instrumento o sistema. Una balanza que mide de a 1 gramo tiene más resolución que una que mide de a 100 gramos.

function redondearAResolucion(valor, resolucion) {
  return Math.round(valor / resolucion) * resolucion;
}

console.log(redondearAResolucion(12.37, 0.1));
console.log(redondearAResolucion(12.37, 0.5));
console.log(redondearAResolucion(12.37, 1));

Este tipo de redondeo es útil cuando un sistema solo debe mostrar valores en saltos definidos.

16.7 Exactitud y error

La exactitud indica qué tan cerca está una medición del valor real. El error absoluto es la diferencia entre el valor medido y el valor real o esperado.

error absoluto = |valorMedido - valorReal|
const valorReal = 100;
const valorMedido = 98.7;
const errorAbsoluto = Math.abs(valorMedido - valorReal);

console.log(errorAbsoluto);

16.8 Error relativo

El error relativo compara el error absoluto con el valor real. Suele expresarse como porcentaje.

error relativo = error absoluto / valor real × 100
const valorReal = 100;
const valorMedido = 98.7;
const errorAbsoluto = Math.abs(valorMedido - valorReal);
const errorRelativo = errorAbsoluto / valorReal * 100;

console.log(errorRelativo);

El error relativo permite comparar errores entre mediciones de distintas escalas.

16.9 Rangos válidos

Muchas mediciones tienen rangos esperados. Un programa puede validar que una temperatura, edad, velocidad o porcentaje esté dentro de límites razonables.

function estaEnRango(valor, minimo, maximo) {
  return valor >= minimo && valor <= maximo;
}

console.log(estaEnRango(36.6, 35, 42));
console.log(estaEnRango(120, 35, 42));

Validar rangos ayuda a detectar errores de entrada, sensores defectuosos o unidades incorrectas.

16.10 Mediciones con sensores

Los sensores suelen producir lecturas con ruido: pequeñas variaciones que no necesariamente representan cambios reales. Una técnica simple es promediar varias mediciones.

const lecturas = [24.9, 25.1, 25.0, 25.2, 24.8];
const suma = lecturas.reduce((total, valor) => total + valor, 0);
const promedio = suma / lecturas.length;

console.log(promedio);

El promedio suaviza pequeñas variaciones, aunque no reemplaza un análisis más profundo si se requiere alta precisión.

16.11 Valores acumulados

Algunas mediciones se acumulan con el tiempo. Por ejemplo, distancia recorrida, consumo de energía o tiempo total de uso.

const distanciasKm = [1.2, 0.8, 2.5, 1.5];
const total = distanciasKm.reduce((acumulado, distancia) => acumulado + distancia, 0);

console.log(total);

Cuando se acumulan decimales, conviene recordar los problemas de precisión numérica vistos en el tema 11.

16.12 Representar magnitudes con objetos

Una forma práctica de evitar confusiones es representar una medición como objeto con valor, unidad y tipo de magnitud.

const distancia = {
  magnitud: "longitud",
  valor: 1500,
  unidad: "m"
};

const duracion = {
  magnitud: "tiempo",
  valor: 120,
  unidad: "s"
};

console.log(distancia);
console.log(duracion);

Esta estructura ayuda a documentar qué representa cada número.

16.13 Evitar mezclar unidades

Un error común es sumar o comparar valores que están en unidades distintas. Antes de operar, conviene convertir a una unidad común.

const distanciaMetros = 500;
const distanciaKilometros = 1.2;

const totalIncorrecto = distanciaMetros + distanciaKilometros;
const totalCorrecto = distanciaMetros + distanciaKilometros * 1000;

console.log(totalIncorrecto);
console.log(totalCorrecto);

El resultado incorrecto mezcla metros y kilómetros como si fueran la misma unidad.

16.14 Aplicación: velocidad promedio

La velocidad promedio relaciona distancia y tiempo. Para calcularla correctamente, las unidades deben ser coherentes.

velocidad = distancia / tiempo
const distanciaKm = 120;
const tiempoHoras = 2;
const velocidadPromedio = distanciaKm / tiempoHoras;

console.log(velocidadPromedio);

El resultado está expresado en kilómetros por hora.

16.15 Errores comunes

  • Guardar solo el número y perder la unidad.
  • Comparar mediciones expresadas en unidades distintas.
  • Mostrar más decimales que los que justifica la precisión real.
  • Confundir precisión con exactitud.
  • No validar rangos posibles para una medición.
  • Ignorar ruido o variación en lecturas de sensores.
const temperatura = {
  valor: 180,
  unidad: "C"
};

const temperaturaValida = temperatura.valor >= -50 && temperatura.valor <= 80;

console.log(temperaturaValida);

16.16 Qué debes recordar de este tema

  • Una magnitud es una propiedad medible, como longitud, tiempo o temperatura.
  • Una medición completa necesita valor numérico y unidad.
  • Medir no es lo mismo que contar: muchas mediciones admiten decimales.
  • La precisión, la resolución y la exactitud no significan lo mismo.
  • El error absoluto mide diferencia directa y el error relativo la compara con el valor real.
  • Antes de operar mediciones, conviene usar unidades coherentes.
  • Representar mediciones con objetos puede reducir errores de interpretación.

16.17 Conclusión

Las magnitudes y mediciones conectan los números del programa con el mundo real. Para trabajar bien con ellas no alcanza con calcular: también hay que cuidar unidades, rangos, precisión y significado.

En el próximo tema estudiaremos variables matemáticas y representación de valores, una base necesaria para expresar estos datos dentro de fórmulas y programas.