Archivo del Autor: josepanadero

Las funciones en C++


Cuando a la hora de programar se repiten varias veces algunas tareas, resulta conveniente recurrir a las funciones. De esta forma, el código del programa será más simple, y reduciremos las posibilidades de error.

Para declarar una función, tendremos que elegir un nombre, que irá precedido de la palabra void.

Es importante declarar la función al principio del programa, y usar variables locales dentro de este procedimiento, para que no puedan ser modificadas desde el cuerpo del programa (main).

Para ver sus aplicaciones vamos a realizar un programa que genera una función que crea el texto Hola en pantalla separado por espacios tantas veces como lo indique el parámetro. Como se aprecia en el código mostrado, se declara una función denominada saludarVariasVeces, que será llamada desde el cuerpo del programa más adelante.

Asimismo, si queremos realizar un programa que cree una función para mostrar en pantalla la tabla de multiplicar del número que indique el parámetro, podemos usar de nuevo una función para no repetir la rutina.

El código para este programa y la salida se muestran a continuación.

Anuncios

Luces del coche fantástico en Arduino


En este proyecto vamos a reproducir el conocido juego de luces que mostraba el coche de Michael Knight. Hemos tomado como base el proyecto que comparte el blog Makinando del IES Luis Vélez de Guevara, pero cambiando el código, ya que programaremos en Scratch(S4A).

Para ello necesitaremos los siguientes componentes:

  • 4 diodos LED.
  • 4 resistencias de 220 ohmios.
  • 1 placa protoboard.
  • 1 placa Arduino Uno.
  • Cableado.

El montaje en la placa se puede ver en las siguientes imágenes del proyecto, en Fritzing y en la realidad.

El código en Scratch se basa en el uso de activar y desactivar cada uno de los leds mediante los bloques de movimiento de encendido y apagado sobre cada uno de los pines que alimentan los diodos. Para conseguir el efecto continuo de las luces se debe dar más tiempo al encendido que al apagado, y así conseguir cierto solape. Todos estos bloques se incluirán en un bucle para que se repita continuamente.

Finalmente, en este vídeo se puede comprobar el resultado final del proyecto.

Ficheros en C++


En ocasiones necesitamos almacenar la información con la que estamos trabajando. Para esto, tendremos que hacer uso de los ficheros.

Como ejemplos de aplicación en C++, vamos a hacer dos actividades. En la primera crearemos un programa que pida números y los guarde en un fichero llamado numeros.txt separados por espacios. El programa dejará de almacenar datos cuando incluyamos el 0.

El código y la salida del programa obtenida en el terminal la podemos observar en las siguientes imágenes.

En primer lugar hemos tenido que incluir la librería referente a ficheros con el comando #include <fstream>. Asimismo, con la orden ofstream fichero(“numeros.txt”) abrimos un fichero para escribir, con el nombre indicado entre comillas. Para ir almacenando la información en el fichero recurrimos a do-while, para que primero ejecute una acción y la mantenga mientras (while) se cumpla una condición, que será que el número introducido no sea 0 numero != 0. La orden para almacenar la información en fichero es fichero << numero << ” “.

Para terminar el programa cerraremos el fichero con la orden fichero.close().

La segunda actividad consiste en un programa que suma los números almacenados anteriormente en el fichero numeros.txt.

En las imágenes de abajo se aprecian el código del programa y su salida en el terminal.

En este programa se hace uso de do-while también. En primer lugar hemos tenido que incluir la librería referente a ficheros con el comando #include <fstream>. Con la orden ifstream fichero(“numeros.txt”) tenemos la posibilidad de leer los datos del archivo, y para calcular comenzamos inicializando esta variable a valor 0 y sumando cada uno de los valores (suma=suma+numero) mientras que no se llegue al final  del fichero (! fichero.eof()). Finalmente, como en el programa anterior, es importante cerrar el fichero con la orden fichero.close().

Montaje fotográfico con GIMP


GIMP es un software de tratamiento digital de imágenes, que nos permite, entre otras muchas opciones, realizar montajes fotográficos.

Para ello, se debe tener claro el concepto de capas, es decir, láminas que formarán parte de nuestro proyecto y que podrán ser trabajadas de una forma independiente.

Así, en el montaje que he realizado he partido de dos imágenes, una del Mihrab de la Mezquita de Córdoba y otra de John Lennon junto al resto de componentes de los Beatles. La imagen de la Mezquita es a color, mientras que la del cantante es en blanco y negro.

En principio, abrimos en GIMP la imagen de fondo, que será la de la Mezquita, nombrando a esa capa con ese nombre. A continuación, abrimos la imagen de los Beatles y recortamos con la herramienta de tijeras de selección la silueta de John Lennon. Es importante acabar por el mismo punto que se empezó, y entonces, hacer click en el interior de la silueta. En ese momento veremos que la silueta ha sido seleccionada, copiándola y pegándola a nuestro proyecto como una nueva capa.

El siguiente paso será, activando la capa de Lennon, ampliarla y borrar con la herramienta de goma de borrar los bordes, para perfeccionar el recorte que hemos hecho en la imagen inicial.

Normalmente, necesitaremos redimensionar la imagen superpuesta con la herramienta de escalado, así como desplazarla hasta el sitio adecuado con la herramienta mover.

Además, yo he transformado la imagen original de fondo, que estaba a color, en blanco y negro. Para ello en el menú color seleccionamos la opción desaturar.

Finalmente, existe la posibilidad de incluir frases en nuestro proyecto con la herramienta de texto, que nos permitirá abrir un cajetín y modificar el tamaño y tipo de letra, así como su color.

Para obtener la imagen a partir del proyecto xcf de GIMP, tendremos que exportarlo como imagen.

A continuación os muestro las dos imágenes que he utilizado para el proyecto, y el resultado final.

Imagen: Mihrab de la Mezquita de Córdoba (España). Ruggero Poggianella.

 

Imagen: John Lennon i Spring Court sneakers. Per Ljung.