Curso de Lógica de Programación – Vocabulario esencial
Día 1 – ¿Qué es un algoritmo?
- Definición general
- Un algoritmo es un conjunto finito y ordenado de pasos destinados a resolver un problema específico o alcanzar un objetivo.
- Características clásicas: finitud, orden, precisión, entrada, salida y efectividad.
- Ejemplos cotidianos mencionados
- Cepillado de dientes
- Entrada: cepillo, pasta, agua.
- Pasos: abrir llave, mojar cepillo, colocar pasta, …, enjuagar.
- Salida: dientes limpios.
- Preparar un sándwich
- Entrada: pan, jamón, queso…
- Pasos: abrir pan, añadir ingredientes, cerrar, cortar.
- Salida: sándwich listo para comer.
- Importancia práctica
- Facilita la automatización: cualquier computadora ejecuta exactamente los pasos.
- Fomenta la descomposición de problemas: dividir un reto complejo en tareas simples y secuenciales.
Día 2 – Diagramas de flujo
- Propósito
- Representar visualmente un algoritmo para entender y comunicar su lógica.
- Útil para detectar errores antes de programar.
- Formas básicas y su significado
- Óvalo (inicio/fin).
- Rectángulo (acción o proceso).
- Rombo (decisión, genera una bifurcación sí / no).
- Paralelogramo (entrada o salida de datos).
- Ejemplos trabajados
- Diagrama completo del sándwich: muestra la secuencia de untar, agregar ingredientes, etc.
- Explicación paso a paso sobre cómo repetir este ejercicio para el cepillado de dientes.
- Conexión con la práctica
- Constituyen la base para escribir código en cualquier lenguaje: cada símbolo se convierte después en instrucciones concretas.
Día 3 – Variables
- Concepto clave
- Una variable es una “caja” con nombre donde se almacena información que puede cambiar durante la ejecución del programa.
- Tipos de datos comunes
int → números enteros (\dots,-2,-1,0,1,2,\dots). float → números decimales (p. ej. 1.75). string → texto (p. ej. "Hola"). bool → valores lógicos: true / false.
- Ejercicio propuesto
- Declarar las variables de una persona:
nombre: string edad: int estatura: float es_estudiante: bool
- Importancia
- Permiten guardar estado y personalizar la ejecución de los algoritmos para datos concretos.
Día 4 – Operadores
- Operadores aritméticos
- Suma (+), resta (-), multiplicación (*), división (/), módulo (%).
- El operador módulo devuelve el residuo: 7 \% 3 = 1.
- Operadores relacionales
- Igualdad (=), desigualdad (!=), menor (
- Operadores lógicos
Y (AND), O (OR), NO (NOT). - Se utilizan para combinar condiciones o negarlas.
- Ejercicios destacados
- Determinar si un número es par: comprobar n \% 2 = 0.
- Verificar múltiplos (p. ej. múltiplo de 3: n \% 3 = 0).
- Conexión y utilidad
- Sirven para formular expresiones que guían decisiones y cálculos dentro de un programa.
Día 5 – Condicionales (if)
- Estructura básica
- "Si (condición) entonces "
- También se puede añadir "sino" (else) para la ruta alternativa.
- Ejercicios prácticos
- Detectar par / impar.
- Comprobar múltiplo de 3.
- Evaluar si un número está entre 10 y 20 (inclusive):
- \text{condición} = (10 \leq n) \;Y\; (n \leq 20).
- Buenas prácticas resaltadas
- Usar
Y para composiciones lógicas. - Emplear
NO para negar una expresión booleana.
- Significado conceptual
- Permiten que el algoritmo tome decisiones dinámicas según los datos.
Errores y correcciones comentadas
- Recordatorio de usar correctamente el operador módulo en la sintaxis de múltiples lenguajes.
- Aclaración sobre la diferencia entre asignar (=) y comparar (== en muchos lenguajes, aunque aquí se usó “=” de forma conceptual).
- Corregido el uso de operadores relacionales en rangos.
- Demostración del operador
Y para la conjunción de dos condiciones. - Ejemplo de
NO para invertir un valor booleano (NO es_estudiante).
Próximos pasos adelantados
- Introducción próxima a estructuras de repetición (bucles):
while, for, repetir hasta que. - Utilidad para automatizar tareas repetitivas sin reescribir código.
- Recomendación previa
- Repasar diagramas de flujo y actualizar los existentes para que incluyan ramas condicionales y futuros bucles, fortaleciendo el pensamiento algorítmico.