# ¿Qué es la programación por bloques?

La programación por bloques nos permite **programar de forma gráfica**, sin necesidad de conocer la sintaxis de un lenguaje de programación. Es ideal para comenzar a programar para el alumnado, puesto que permite **descomponer el problema de la programación** en dos subproblemas, y simplificar mucho uno de ellos:

- Saber la **lógica** de la programación: esto supone entender el uso de entradas, salidas, estructuras de almacenamiento de datos y operadores.
- Saber el **lenguaje** de programación: traducir el programa a un lenguaje que el ordenador pueda entender. Esto es lo que nos facilita la programación gráfica por bloques.

{{@7552#bkmrk-el-lenguaje-gr%C3%A1fico-}}

{{@7552#bkmrk-por-ejemplo%2C-la-inst}}

[![leer-us.jpg](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/leer-us.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-10/leer-us.jpg)

{{@7552#bkmrk-mientras-que-en-c%C3%B3di}}

```
double distancia;

double fnc_ultrasonic_distance(int _t, int _e){
	unsigned long dur=0;
	digitalWrite(_t, LOW);
	delayMicroseconds(5);
	digitalWrite(_t, HIGH);
	delayMicroseconds(10);
	digitalWrite(_t, LOW);
	dur = pulseIn(_e, HIGH, 18000);
	if(dur==0)return 999.0;
	return (dur/57);
}

void setup()
{
  	pinMode(6, OUTPUT);
	pinMode(5, INPUT);

}


void loop()
{

  	distancia = fnc_ultrasonic_distance(6,5);

}
```

{{@7552#bkmrk-como-se-puede-ver-en}}

{{@7552#bkmrk-por-otra-parte%2C-el-l}}

{{@7552#bkmrk-un-lenguaje-por-bloq}}

{{@7552#bkmrk-imagen-federico-coca}}

Una gran ventaja de la programación por bloques es que muchos de los programas que la utilizan son software libre o **han basado su código fuente en el mismo código,  que es software libre** y se encuentra liberado por sus autores. Esto se traduce en que nuestro alumnado al aprender una herramienta concreta se **alfabetiza y se capacita para muchas otras** sin saberlo.

[![imagen.png](https://libros.catedu.es/uploads/images/gallery/2023-06/scaled-1680-/rLEimagen.png)](https://libros.catedu.es/uploads/images/gallery/2023-06/rLEimagen.png)

<p class="callout info">Más información sobre la programación por bloques [aquí](https://blog.crackthecode.la/programacion-en-bloques)</p>