📘 CodingMarble Learn

Fundamentos de programación: secuencia, selección, bucles y funciones

Un programa es un conjunto de instrucciones exactas que sigue un ordenador. Todo programa se construye con tres estructuras: secuencia (pasos en orden), selección (decisiones con if/else) e iteración (bucles). Las variables guardan valores. Las funciones agrupan código en bloques con nombre que se pueden reutilizar, y así el programa es modular y más fácil de probar, depurar y mantener.

🎬 Historia paso a paso

  1. Un programa es una lista de pasos exactos. Mira cómo se ilumina cada línea move() mientras el robot da un paso.
  2. Una variable es una caja con nombre. score empieza en 0, luego se le suma 5 y después otros 5.
  3. Un if deja que el programa elija. En cada baldosa pregunta: ¿hay pared delante? Solo si la respuesta es sí, se detiene.
  4. Un bucle repite líneas. Dos líneas de código hacen cuatro movimientos, mientras un contador va 1, 2, 3, 4.
  5. Una función es código al que le pones nombre una vez y lo reutilizas. Luego aparece un error: el robot se para una baldosa antes. Corrige el número y vuelve a probar.
  6. Te toca a ti. Elige cuántas veces se repite el bucle y la comprobación de la pared. Primero predice y luego ejecuta.

Consejo: arrastra la escena 3D para girarla. Usa dos dedos para hacer zoom.

🤔 Dudas comunes, resueltas

¿Por qué el ordenador no puede adivinar lo que quiero decir?

Un ordenador sigue las instrucciones exactamente y en orden. Si falta un paso o está en el sitio equivocado, el robot hace algo incorrecto.

¿Cómo puede ser verdad score = score + 5? Un número no puede ser igual a sí mismo más 5.

En código = significa "guardar". Primero se calcula el lado derecho con el valor antiguo, y luego la respuesta se mete en la caja.

¿Un if ejecuta las dos ramas?

No. La condición es True o False, y solo se ejecuta una rama. Mira al robot: avanza hasta que la condición se vuelve True, y entonces solo se ejecuta stop.

¿Para qué sirve el contador i en un bucle?

Recuerda cuántas veces se ha repetido el bucle, para que sepa cuándo parar. En el robot se ve como i = 1, 2, 3, 4.

¿Para qué usar una función si puedo copiar el código?

Una definición se puede usar muchas veces. Si encuentras un error, lo arreglas una vez y todas las llamadas quedan arregladas.

El programa se ejecutó sin mensaje de error, ¿por qué está mal?

Eso es un error lógico: el código es válido pero el plan es incorrecto, como un bucle que se repite 4 veces en vez de 5.

¿Qué es un programa?

Un algoritmo es un plan paso a paso para resolver un problema. Un programa es ese plan escrito en un lenguaje que el ordenador entiende, como Python, Scratch, Java o C. El ordenador hace exactamente lo que dice el programa, ni más ni menos.

La mayoría de los programas siguen el esquema entrada → proceso → salida: reciben datos, trabajan con ellos y dan un resultado. Antes de programar conviene planificar con pseudocódigo (pasos en lenguaje normal) o con un diagrama de flujo.

Secuencia significa que las instrucciones se ejecutan en orden, de arriba abajo. Si cambias el orden, puede cambiar el resultado.

Variables y tipos de datos

Una variable es un lugar con nombre donde se guarda un valor. score = 0 es una asignación: mete el 0 en la caja llamada score. score = score + 5 lee el valor antiguo, le suma 5 y guarda el valor nuevo.

Tipos de datos más comunes:

Una constante es un valor que no cambia mientras el programa se ejecuta, como el número de días de la semana. Los buenos nombres (total_marks, no x) hacen que el código sea fácil de leer.

Selección e iteración

Selección (if / else)

El programa comprueba una condición que es verdadera o falsa, y ejecuta una sola rama.

if marks >= 33:
    print("Pass")
else:
    print("Try again")

Las condiciones usan operadores de comparación (==, !=, <, >, <=, >=) y operadores lógicos (and, or, not).

Iteración (bucles)

Funciones y diseño modular

Una función (también llamada subprograma, procedimiento o método) es un bloque de código con nombre. La defines una vez y la llamas cada vez que la necesitas.

def area(length, width):
    return length * width

print(area(4, 3))   # 12

El diseño modular consiste en dividir un problema grande en partes pequeñas (descomposición), y escribir y probar cada parte como su propia función. Ventajas: menos código repetido, pruebas más fáciles, trabajo en equipo, y un solo arreglo actualiza todos los usos.

Pruebas, depuración y mantenimiento del código

Hay tres tipos de errores:

Las pruebas usan datos normales, datos límite (justo en el borde, como exactamente 33 puntos) y datos no válidos (como -5 puntos). Una tabla de seguimiento anota el valor de cada variable línea por línea, para encontrar dónde algo sale mal.

El código mantenible tiene nombres con sentido, comentarios que explican el porqué, sangría coherente, funciones pequeñas y ningún bloque copiado y pegado. Además, los programadores usan control de versiones para guardar el historial de cambios.

Prueba tú: el robot sin ordenador

Pide a un amigo que haga de robot. Escribe las instrucciones en papel usando solo: step, turn left, turn right, repeat n e if wall: turn. Guíalo desde la puerta hasta una silla. ¿El robot hizo exactamente lo que escribiste? Corrige los errores e inténtalo otra vez. Después abre el juego libre en 3D y predice dónde se detiene el robot antes de pulsar nada.

Fórmulas y definiciones clave

Ejemplos resueltos

1. x = 4, luego x = x * 2, luego x = x - 3. ¿Cuánto vale x?

Línea por línea: x = 4 → x = 8 → x = 5. Entonces x = 5.

2. ¿Qué imprime esto? for i in range(1, 4): print(i * 10)

i toma los valores 1, 2, 3, así que imprime 10, 20, 30.

3. age = 15. ¿Qué imprime esto? if age >= 18: print("Adult") else: print("Minor")

15 >= 18 es False, así que se ejecuta la rama else: Minor.

4. Escribe una función que devuelva el mayor de dos números.

def bigger(a, b): if a > b: return a else: return b

5. Sigue el programa: total = 0; for n in range(1, 4): total = total + n. ¿Cuánto vale total al final?

n = 1 → total 1; n = 2 → total 3; n = 3 → total 6. Al final total = 6.

6. Un programa debe imprimir los números del 1 al 5 pero usa for i in range(1, 5). ¿Qué tipo de error es y cómo se arregla?

Es un error lógico (error por uno); solo imprime del 1 al 4. Solución: range(1, 6).

Errores comunes

Test de práctica

1. Ejecutar instrucciones una tras otra y en orden se llama:
2. ¿Qué estructura permite tomar una decisión?
3. Después de x = 3 y x = x + 4, x vale:
4. Un programa se ejecuta pero da una respuesta incorrecta. Es un:
5. Un bloque de código con nombre que se puede reutilizar es una:

Práctica: responde tú mismo

Escribe o elige tu respuesta y pulsa Comprobar. Usa la pista si te atascas; la solución completa aparece después de responder.

Preguntas frecuentes

¿Cuáles son los fundamentos de la programación?

Las variables, que guardan datos, y tres estructuras que controlan los pasos: secuencia, selección (if/else) e iteración (bucles). Las funciones ayudan después a organizar y reutilizar el código.

¿Qué lenguaje debo aprender primero?

Las ideas son las mismas en todos los lenguajes. Scratch es genial para empezar de pequeño; Python es muy popular porque su código es corto y fácil de leer.

¿Qué es depurar?

Encontrar y corregir los errores (bugs) de un programa, normalmente probando con distintos datos y siguiendo el valor de las variables línea por línea.

Dónde se estudia

Canada (Ontario)Grade 8C. Algebra
Canada (Ontario)Grade 8A. STEM Skills and Connections
Canada (Ontario)Grade 9C. Algebra
Canada (Ontario)Grade 10C. Programming
Canada (Ontario)Grade 11C. Exploration of Opportunities
Canada (Ontario)Grade 11A. Programming Concepts and Skills
Canada (Ontario)Grade 11B. Software Development
Canada (Ontario)Grade 11A. Programming Concepts and Skills
Canada (Ontario)Grade 11B. Software Development
Canada (Ontario)Grade 11B. Computer Technology Skills
Canada (Ontario)Grade 12D. Interacting with School-Age Children and Adolescents
Canada (Ontario)Grade 12A. Programming Concepts and Skills
Canada (Ontario)Grade 12B. Software Development
Canada (Ontario)Grade 12A. Programming Concepts and Skills
Canada (Ontario)Grade 12B. Computer Technology Skills
NetherlandsVWO 2 (onderbouw)Using digital technology
NetherlandsHAVO 4 (bovenbouw, 2e fase)Programming
NetherlandsVWO 5Programming
PolandSzkoła podstawowa, klasa VIIProgramming and solving problems with computers
PolandSzkoła podstawowa, klasa VIIIProgramming and solving problems with computers
PolandLiceum ogólnokształcące, klasa IIProgramming and solving problems with computers
RomaniaClasa a VIII-aAlgorithms
RomaniaClasa a X-aProgramming language basics
Spain2º ESOComputational thinking, programming and robotics
Spain3º ESOComputational thinking, programming and robotics
Spain1º BachilleratoComputer systems and programming
England (GCSE, A level)Year 9Computer science
England (GCSE, A level)Year 103.2 Programming
England (GCSE, A level)Year 134.1 Fundamentals of programming (A-level)
USA (Common Core, NGSS, AP)Grade 8Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 9Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 10Big Idea 3: Algorithms and Programming
USA (Common Core, NGSS, AP)Grade 11Using Objects and Methods
USA (Common Core, NGSS, AP)Grade 11Data Collections
USA (Common Core, NGSS, AP)Grade 11Algorithms and Programming
Japan中学3年Technology: information technology
Japan高校(専門学科)1〜3年Programming for Information Systems
South Korea중학교 2학년Algorithms and programming
South Korea중학교 3학년Programming
South Korea고등학교 2학년Algorithms and programming
South Korea고등학교 2학년Symbols and logic
South Korea고등학교 2학년Software for creation
South Korea고등학교 3학년Programming
Russia8 классAlgorithms and programming
Russia8 классAlgorithms and programming
Russia9 классAlgorithms and programming

Aprende antes

Aprende después