Resumen de Comunicación Digital, Algoritmos y Tecnologías Educativas

Comunicación Digital, Algoritmos y Tecnologías Educativas: Guía Completa

Introducción

Los problemas de programación son ejercicios que requieren analizar una situación, diseñar una estrategia y expresar la solución mediante instrucciones precisas que una computadora pueda ejecutar. En este material nos enfocaremos en problemas aritméticos y de conteo comunes: contar números en rangos, pares e impares, dígitos, factores, múltiplos y factoriales. Cada problema incluye análisis, ejemplos y aplicaciones.

Definición: Un problema de programación es una tarea que puede resolverse mediante un algoritmo, es decir, una secuencia finita de pasos bien definidos.

Estructura general para abordar problemas

  1. Entender el enunciado y los datos de entrada.
  2. Determinar la salida esperada.
  3. Diseñar la estrategia (matemática o lógica).
  4. Especificar el algoritmo paso a paso.
  5. Probar con ejemplos y casos borde.

Buenas prácticas

  • Validar entrada (enteros, rangos válidos).
  • Considerar inclusive/exclusive en rangos.
  • Manejar signos y cero explícitamente.
  • Usar fórmulas cerradas cuando sea posible para eficiencia.

1) Contar enteros en un rango

Problema: Dado un número inicial $a$ y un número final $b$, contar cuántos enteros contiene el rango.

Análisis: Se requiere que el usuario ingrese $a$ y $b$, luego el sistema devuelve la cantidad de enteros en el rango.

Estrategia:

  • Si el rango es inclusivo y $a\le b$, la cantidad es $$b - a + 1$$
  • Si $a>b$, primero intercambiar o indicar rango inválido.

Ejemplo:

  • Entrada $a = 3$, $b = 7$ -> Salida $$7 - 3 + 1 = 5$$ (números: $3,4,5,6,7$)
💡 Věděli jste?Did you know que la fórmula $b-a+1$ funciona incluso si $a$ o $b$ son negativos siempre que se interprete el rango de manera inclusiva?

2) Contar números pares en un rango

Problema: Dado un rango $[a,b]$, obtener la cantidad de números pares que contiene.

Análisis: Se requiere $a$ y $b$, luego calcular cuántos pares hay.

Estrategia (fórmula cerrada):

  • Contar hasta $b$ los pares: $$\left\lfloor\frac{b}{2}\right\rfloor$$
  • Contar hasta $a-1$ los pares: $$\left\lfloor\frac{a-1}{2}\right\rfloor$$
  • Resultado: $$\left\lfloor\frac{b}{2}\right\rfloor - \left\lfloor\frac{a-1}{2}\right\rfloor$$

Ejemplo:

  • $a=3$, $b=8$ -> $$\left\lfloor\frac{8}{2}\right\rfloor - \left\lfloor\frac{2}{2}\right\rfloor = 4 - 1 = 3$$ (pares: $4,6,8$)
💡 Věděli jste?Fun fact: Contar pares con fórmulas cerradas evita recorrer cada número y mejora mucho el rendimiento en rangos grandes.

3) Contar números impares en un rango

Problema: Dado un rango $[a,b]$, obtener la cantidad de números impares que contiene.

Análisis: Similar al caso de pares.

Estrategia:

  • Total de enteros: $$b - a + 1$$
  • Impares = Total - Pares
  • O usar análogo de la fórmula de pares sustituyendo divisiones por 2 con desplazamientos.

Ejemplo:

  • $a=2$, $b=7$ -> Total $6$, Pares $3$ -> Impares $3$ (números: $3,5,7$)

4) Calcular el factorial de un número

Problema: Dado $n$, obtener $n!$, definido como $1\times 2\times 3\times\dots\times n$.

Definición: El factorial de un entero no negativo $n$ es $n! = \prod_{k=1}^{n} k$ con $0! = 1$.

Estrategia:

  • Validar $n\ge 0$.
  • Implementación iterativa: multiplicar de $1$ a $n$.
  • Para $n$ grandes, considerar overflow o usar aritmética de precisión arbitraria.

Ejemplo:

  • $3! = 1 \times 2 \times 3 = 6$

Aplicación real: Factoriales aparecen en conteos, permutaciones y distribuciones probabilísticas.

5) Contar dígitos de un número

Problema: Dado un entero $n$, determinar cuántos dígitos tiene.

Análisis: Se requiere el número entero; considerar signo y cero.

Estrategias:

  • Convertir a cadena y contar caracteres, ignorando el signo.
  • Usar logaritmos (para $n\neq 0$): número de dígitos en base 10 es $$\left\lfloor\log_{10}(|n|)\right\rfloor + 1$$
  • Caso $n=0$ -> 1 dígito.

Ejemplo:

  • $n = 12345$ -> $$\left\lfloor\log_{10}(12345)\right\rfloor + 1 = 4 + 1 = 5$$
💡 Věděli jste?Did you know que usar logaritmos es muy eficiente para números muy grandes cuando se dispone de funciones de coma flotante o bibliotecas de pre
Zaregistruj se pro celé shrnutí
TarjetasTest de conocimientosResumenPodcastMapa mental
Empezar gratis

¿Ya tienes cuenta? Iniciar sesión

Problemas de programación

Klíčové pojmy: Usar $$b-a+1$$ para contar enteros en rango inclusivo, Contar pares con $$\left\lfloor\frac{b}{2}\right\rfloor - \left\lfloor\frac{a-1}{2}\right\rfloor$$, Impares = total - pares, Factorial: $$n! = \prod_{k=1}^{n} k$$ y $$0! = 1$$, Dígitos con $$\left\lfloor\log_{10}(|n|)\right\rfloor + 1$$ para $n\neq 0$, Cuadrado: $$N^2 = 1+3+5+\dots+(2N-1)$$, Múltiplos en rango: $$\left\lfloor\frac{b}{M}\right\rfloor - \left\lfloor\frac{a-1}{M}\right\rfloor$$, Múltiplo antecesor: $$R = \left\lfloor\dfrac{N-1}{D}\right\rfloor \cdot D$$, Sumas pares/impares: suma pares $=k(k+1)$ con $k=\left\lfloor\dfrac{N}{2}\right\rfloor$, suma impares $=m^2$ con $m=\left\lceil\dfrac{N}{2}\right\rceil$, Validar entradas: $a\le b$, $M\ne 0$, $n\ge 0$

## Introducción Los problemas de programación son ejercicios que requieren analizar una situación, diseñar una estrategia y expresar la solución mediante instrucciones precisas que una computadora pueda ejecutar. En este material nos enfocaremos en problemas aritméticos y de conteo comunes: contar números en rangos, pares e impares, dígitos, factores, múltiplos y factoriales. Cada problema incluye análisis, ejemplos y aplicaciones. > Definición: Un problema de programación es una tarea que puede resolverse mediante un algoritmo, es decir, una secuencia finita de pasos bien definidos. ## Estructura general para abordar problemas 1. Entender el enunciado y los datos de entrada. 2. Determinar la salida esperada. 3. Diseñar la estrategia (matemática o lógica). 4. Especificar el algoritmo paso a paso. 5. Probar con ejemplos y casos borde. ### Buenas prácticas - Validar entrada (enteros, rangos válidos). - Considerar inclusive/exclusive en rangos. - Manejar signos y cero explícitamente. - Usar fórmulas cerradas cuando sea posible para eficiencia. ## 1) Contar enteros en un rango **Problema:** Dado un número inicial $a$ y un número final $b$, contar cuántos enteros contiene el rango. Análisis: Se requiere que el usuario ingrese $a$ y $b$, luego el sistema devuelve la cantidad de enteros en el rango. Estrategia: - Si el rango es inclusivo y $a\le b$, la cantidad es $$b - a + 1$$ - Si $a>b$, primero intercambiar o indicar rango inválido. Ejemplo: - Entrada $a = 3$, $b = 7$ -> Salida $$7 - 3 + 1 = 5$$ (números: $3,4,5,6,7$) Did you know que la fórmula $b-a+1$ funciona incluso si $a$ o $b$ son negativos siempre que se interprete el rango de manera inclusiva? ## 2) Contar números pares en un rango **Problema:** Dado un rango $[a,b]$, obtener la cantidad de números pares que contiene. Análisis: Se requiere $a$ y $b$, luego calcular cuántos pares hay. Estrategia (fórmula cerrada): - Contar hasta $b$ los pares: $$\left\lfloor\frac{b}{2}\right\rfloor$$ - Contar hasta $a-1$ los pares: $$\left\lfloor\frac{a-1}{2}\right\rfloor$$ - Resultado: $$\left\lfloor\frac{b}{2}\right\rfloor - \left\lfloor\frac{a-1}{2}\right\rfloor$$ Ejemplo: - $a=3$, $b=8$ -> $$\left\lfloor\frac{8}{2}\right\rfloor - \left\lfloor\frac{2}{2}\right\rfloor = 4 - 1 = 3$$ (pares: $4,6,8$) Fun fact: Contar pares con fórmulas cerradas evita recorrer cada número y mejora mucho el rendimiento en rangos grandes. ## 3) Contar números impares en un rango **Problema:** Dado un rango $[a,b]$, obtener la cantidad de números impares que contiene. Análisis: Similar al caso de pares. Estrategia: - Total de enteros: $$b - a + 1$$ - Impares = Total - Pares - O usar análogo de la fórmula de pares sustituyendo divisiones por 2 con desplazamientos. Ejemplo: - $a=2$, $b=7$ -> Total $6$, Pares $3$ -> Impares $3$ (números: $3,5,7$) ## 4) Calcular el factorial de un número **Problema:** Dado $n$, obtener $n!$, definido como $1\times 2\times 3\times\dots\times n$. > Definición: El factorial de un entero no negativo $n$ es $n! = \prod_{k=1}^{n} k$ con $0! = 1$. Estrategia: - Validar $n\ge 0$. - Implementación iterativa: multiplicar de $1$ a $n$. - Para $n$ grandes, considerar overflow o usar aritmética de precisión arbitraria. Ejemplo: - $3! = 1 \times 2 \times 3 = 6$ Aplicación real: Factoriales aparecen en conteos, permutaciones y distribuciones probabilísticas. ## 5) Contar dígitos de un número **Problema:** Dado un entero $n$, determinar cuántos dígitos tiene. Análisis: Se requiere el número entero; considerar signo y cero. Estrategias: - Convertir a cadena y contar caracteres, ignorando el signo. - Usar logaritmos (para $n\neq 0$): número de dígitos en base 10 es $$\left\lfloor\log_{10}(|n|)\right\rfloor + 1$$ - Caso $n=0$ -> 1 dígito. Ejemplo: - $n = 12345$ -> $$\left\lfloor\log_{10}(12345)\right\rfloor + 1 = 4 + 1 = 5$$ Did you know que usar logaritmos es muy eficiente para números muy grandes cuando se dispone de funciones de coma flotante o bibliotecas de pre