01 · Punto de partida
A veces necesitamos un conjunto completo de valores
Una temperatura aceptable puede estar entre 18 °C y 25 °C. Una animación puede ejecutarse desde el segundo 0 hasta antes del segundo 5. Una función puede estar definida solamente para entradas positivas. En estos casos no hablamos de un único número, sino de todos los números que cumplen ciertas condiciones.
Un intervalo permite expresar de forma compacta una región continua de la recta real. Para interpretarlo correctamente debemos responder:
- ¿Cuál es el extremo menor y cuál es el mayor?
- ¿Cada extremo pertenece al conjunto o queda excluido?
- ¿El intervalo se extiende indefinidamente?
- ¿Cómo se escribe la misma condición como desigualdad?
- ¿Cómo se implementa sin cambiar accidentalmente los bordes?
02 · Orden y posición
La recta real como mapa de los números
Los números reales pueden representarse sobre una recta. Cada punto corresponde a un número y el orden se interpreta espacialmente: un número menor se ubica a la izquierda de uno mayor.
Entre dos reales distintos siempre existen infinitos números reales. Entre 1 y 2 están 1.5, 1.25, 1.01 y muchos más. De hecho, elegido cualquier par a < b, su promedio (a+b)/2 queda estrictamente entre ambos.
Esta propiedad hace que los intervalos sean continuos: no son listas cuyos elementos puedan recorrerse uno por uno. Un programa puede comprobar si un valor pertenece a un intervalo, pero no puede enumerar todos los reales contenidos en él.
03 · La decisión de borde
Extremos incluidos y excluidos
Los corchetes y los paréntesis informan qué ocurre exactamente en cada extremo:
Extremo cerrado
El valor pertenece al intervalo. En la recta se dibuja con un punto lleno y en la desigualdad aparece ≤ o ≥.
Extremo abierto
El valor no pertenece al intervalo. En la recta se dibuja con un punto vacío y en la desigualdad aparece < o >.
Punto interior
Todo número situado estrictamente entre los extremos pertenece al intervalo, sin excepciones ni saltos.
Por ejemplo, [2, 5) incluye 2 y todos los números posteriores hasta acercarse a 5, pero no incluye 5. Por eso 2 ∈ [2,5) y 5 ∉ [2,5).
La elección no es decorativa. Si una promoción es válida hasta antes de las 24:00, el instante final está excluido. Si una calificación aprobatoria va de 6 a 10 inclusive, ambos bordes están incluidos.
04 · Cuatro combinaciones
Intervalos con dos extremos finitos
Sean a y b números reales con a < b. Existen cuatro combinaciones según se incluya o no cada extremo:
| Nombre | Intervalo | Desigualdad | Extremos incluidos |
|---|---|---|---|
| Cerrado | [a, b] | a ≤ x ≤ b | Ambos. |
| Abierto | (a, b) | a < x < b | Ninguno. |
| Semiabierto por derecha | [a, b) | a ≤ x < b | Solo a. |
| Semiabierto por izquierda | (a, b] | a < x ≤ b | Solo b. |
La primera marca se refiere siempre al extremo izquierdo y la segunda al derecho. Leer (−3, 4] de izquierda a derecha ayuda: mayor que −3 y menor o igual que 4.
Longitud del intervalo
Todos los intervalos anteriores tienen longitud b−a. Incluir o excluir puntos aislados no cambia esa longitud. Sin embargo, sí cambia la pertenencia y puede cambiar si una función alcanza un máximo o un mínimo en el conjunto.
05 · Extenderse sin límite
Intervalos no acotados
Algunas condiciones solo fijan un borde. Los números mayores o iguales que 3 forman [3, +∞); los menores que 5 forman (−∞, 5).
| Condición | Notación | Lectura |
|---|---|---|
x ≥ a | [a, +∞) | Desde a, incluido, hacia la derecha. |
x > a | (a, +∞) | Después de a, sin incluirlo. |
x ≤ b | (−∞, b] | Desde la izquierda hasta b, incluido. |
x < b | (−∞, b) | Desde la izquierda hasta antes de b. |
| Cualquier real | (−∞, +∞) = ℝ | Toda la recta real. |
06 · Probar un valor
Pertenencia y desigualdades
El símbolo ∈ se lee “pertenece a” y ∉, “no pertenece a”. Para decidir si un número pertenece, reemplazamos x en todas las condiciones del intervalo.
En I = (−2, 3] la condición es −2 < x ≤ 3:
0 ∈ I, porque−2 < 0y0 ≤ 3;3 ∈ I, porque el extremo derecho es cerrado;−2 ∉ I, porque el extremo izquierdo es abierto;4 ∉ I, porque supera el extremo derecho.
La desigualdad encadenada exige que se cumplan ambas comparaciones. En código se expresa con el operador lógico “y”:
function pertenece(x) {
return -2 < x && x <= 3;
}
console.log(pertenece(0)); // true
console.log(pertenece(3)); // true
console.log(pertenece(-2)); // false
console.log(pertenece(4)); // false
JavaScript no interpreta correctamente la expresión matemática encadenada -2 < x <= 3. Primero evaluaría una comparación y luego compararía un booleano con 3. Cada relación debe escribirse por separado.
07 · Bordes que coinciden
Intervalos degenerados y conjunto vacío
Cuando ambos extremos coinciden, la inclusión de los bordes se vuelve decisiva:
[a, a] = {a}: contiene exactamente un punto;(a, a),[a, a)y(a, a]no contienen ningún punto;- el conjunto sin elementos se representa con
∅.
Por ejemplo, [4,4] equivale al conjunto {4}. En cambio, no existe ningún real que sea a la vez mayor que 4 y menor que 4, por lo que (4,4)=∅.
Si el supuesto extremo izquierdo es mayor que el derecho, como en [7,2], la notación no describe un intervalo ordenado usual. Una biblioteca puede rechazar esos datos o normalizarlos intercambiando extremos, pero la política debe ser explícita.
08 · Combinar condiciones
Intersección y unión de intervalos
La intersección, representada por ∩, contiene los valores que pertenecen simultáneamente a ambos conjuntos. Corresponde a combinar condiciones con “y”.
Los valores comunes son mayores que 3 y menores o iguales que 5. El 3 queda excluido por el segundo intervalo; el 5 está incluido en ambos.
La unión, representada por ∪, contiene los valores que pertenecen al menos a uno de los conjuntos. Corresponde a “o”:
Como los intervalos se superponen, su unión no deja huecos y puede escribirse como un solo intervalo. Pero esto no siempre ocurre:
La unión anterior no es un intervalo único, porque no contiene valores entre 2 y 4. Es un conjunto formado por dos tramos separados.
El contacto en un extremo
[1,2] ∪ (2,4] = [1,4] porque el primer intervalo aporta el punto 2 y no queda hueco. En cambio, [1,2) ∪ (2,4] excluye 2 y no puede simplificarse a un solo intervalo.
09 · Rangos en programas
Del intervalo a una condición reutilizable
Los rangos aparecen en validaciones, filtros, límites de interfaces y dominios de funciones. Podemos representar un intervalo finito mediante sus extremos y dos booleanos:
function contiene(intervalo, valor) {
const {
minimo,
maximo,
incluyeMinimo = true,
incluyeMaximo = true
} = intervalo;
if (![minimo, maximo, valor].every(Number.isFinite)) return false;
if (minimo > maximo) return false;
const cumpleMinimo = incluyeMinimo
? valor >= minimo
: valor > minimo;
const cumpleMaximo = incluyeMaximo
? valor <= maximo
: valor < maximo;
return cumpleMinimo && cumpleMaximo;
}
const permitido = {
minimo: 18,
maximo: 25,
incluyeMinimo: true,
incluyeMaximo: false
};
console.log(contiene(permitido, 18)); // true
console.log(contiene(permitido, 25)); // false
Nombrar explícitamente la inclusión de cada extremo evita condiciones ambiguas. También permite probar los casos de borde de manera sistemática: justo debajo, exactamente en el borde y justo por encima.
Convención frecuente: intervalos semiabiertos
En programación es habitual usar [inicio, fin). Los índices válidos de un arreglo de longitud n forman [0,n) dentro de los enteros: comienzan en 0 y terminan en n−1. Así, la cantidad de índices coincide con fin−inicio y los tramos consecutivos no se superponen.
10 · Exploración
Laboratorio: construir y probar intervalos
Elegí los extremos, decidí si cada uno está incluido y mové el punto de prueba. La recta, la desigualdad y la evaluación de pertenencia se actualizarán juntas.
Notación, recta y pertenencia
[−3, 4)
El punto 2 pertenece porque cumple ambas condiciones.
El segmento violeta representa el intervalo. Un círculo lleno indica inclusión, uno vacío indica exclusión y el rombo coral marca el punto que se está probando.
Preguntas para explorar
- Ubicá el punto exactamente en cada extremo y alterná entre abierto y cerrado.
- Hacé coincidir ambos extremos. ¿Cuándo obtenés un conjunto con un punto y cuándo el conjunto vacío?
- Colocá el extremo izquierdo a la derecha del extremo derecho. ¿Por qué no existe el intervalo?
- Construí
(−2,3]y verificá los valores −2, 0, 3 y 3.5.
11 · Discreto dentro de lo continuo
Generar muestras no equivale a generar el intervalo
Un intervalo real contiene infinitos valores y no puede convertirse completo en un arreglo. Sí podemos construir una grilla discreta de muestras separadas por un paso:
function muestrearIntervalo(inicio, fin, paso) {
if (![inicio, fin, paso].every(Number.isFinite)) {
throw new TypeError("Se esperan números finitos");
}
if (paso <= 0 || inicio > fin) {
throw new RangeError("Rango o paso inválido");
}
const cantidad = Math.floor((fin - inicio) / paso);
return Array.from(
{ length: cantidad + 1 },
(_, indice) => inicio + indice * paso
);
}
console.log(muestrearIntervalo(1, 2, 0.25));
// [1, 1.25, 1.5, 1.75, 2]
El resultado es una selección finita de puntos del intervalo [1,2], no el intervalo mismo. Entre 1 y 1.25 siguen existiendo infinitos reales que el arreglo no contiene.
12 · Comprensión
Confusiones frecuentes
«Los paréntesis significan siempre que el intervalo es negativo»
No. Indican que el extremo queda excluido. El signo del valor y el tipo de borde son información independiente.
«[2,5] contiene solo 2, 3, 4 y 5»
Como intervalo real contiene todos los reales entre 2 y 5: 2.1, π, 4.999 y muchos más. Esa lista correspondería a enteros del intervalo, no al intervalo real.
«[3,+∞] incluye al infinito»
El infinito no es un número real ni un punto alcanzable. La notación correcta es [3,+∞).
«La desigualdad a < x ≤ b se programa a < x <= b»
No en JavaScript. Debe separarse como a < x && x <= b.
«La unión de dos intervalos siempre es otro intervalo»
Solo si no queda un hueco entre ellos. La unión de tramos separados sigue siendo una unión de conjuntos, no un intervalo único.
13 · Práctica guiada
Ejercicios de comprensión
Ejercicio 1: cambiar de representación
Escribí como intervalos: −4 ≤ x < 2, x > 7, x ≤ 0 y −1 < x ≤ 5.
Ver solución razonada
Las respuestas son [−4,2), (7,+∞), (−∞,0] y (−1,5]. Una desigualdad estricta produce borde abierto; una que admite igualdad produce borde cerrado.
Ejercicio 2: decidir pertenencia
Para I=(−3,2], decidí si pertenecen −3, −2.99, 0, 2 y 2.01.
Ver solución
−3 no pertenece porque el borde izquierdo es abierto; −2.99 y 0 son interiores; 2 pertenece porque el borde derecho es cerrado; 2.01 queda fuera por ser mayor que 2.
Ejercicio 3: operar intervalos
Sean A=[−2,4) y B=(1,6]. Calculá A∩B y A∪B.
Ver solución
La intersección es (1,4): debe superar 1 y queda excluido 4 por A. Como se superponen, la unión no tiene huecos y es [−2,6].
Ejercicio 4: validar un rango
Una API acepta porcentajes en [0,100]. Escribí una función que acepte solo números finitos del intervalo y probala con −1, 0, 37.5, 100, 101 y NaN.
Ver solución y código
function esPorcentaje(valor) {
return Number.isFinite(valor) && valor >= 0 && valor <= 100;
}
[-1, 0, 37.5, 100, 101, NaN].forEach(valor => {
console.log(valor, esPorcentaje(valor));
});
// false, true, true, true, false, false
Number.isFinite evita aceptar NaN o infinitos como entradas numéricas válidas. Las comparaciones incluyen ambos extremos.
14 · Síntesis
Ideas para recordar
- Un intervalo contiene todos los reales comprendidos entre sus extremos.
- Un corchete incluye el extremo; un paréntesis lo excluye.
[a,b],(a,b),[a,b)y(a,b]expresan las cuatro combinaciones posibles.- El infinito siempre lleva paréntesis porque no es un número real alcanzable.
∈significa “pertenece” y∉, “no pertenece”.- La intersección exige cumplir ambas condiciones; la unión, al menos una.
- Una unión con huecos no puede expresarse como un único intervalo.
- En JavaScript las desigualdades encadenadas se separan y se unen con
&&. - Una grilla finita puede muestrear un intervalo, pero no contiene todos sus puntos.
En el próximo tema estudiaremos el entorno de un punto: cómo describir valores cercanos mediante distancia e intervalos centrados, una idea esencial para hablar luego de aproximación y límites.