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 procidimiento, 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.

Estructuras básicas de datos en C++: Arrays


Un array o tabla es un conjunto de datos del mismo tipo, que ocuparán un espacio en la memoria. Para comprender esta forma de estructurar los datos, podemos considerar que configuro cajitas dentro de una gran caja donde almaceno datos.

La sintaxis para declarar un array comienza especificando el tipo de variable, seguido del nombre del array, incluyendo entre corchetes la cantidad de datos. Por ejemplo, una declaración de un array de diez números enteros se podría hacer de esta forma: int datos[10].

En programación resulta muy útil esta estructura básica de datos, y suele ir acompañada de algún bucle for, lo que redundará en una simplificación de las órdenes a escribir.

Vamos a ver algunas prácticas para trabajar el array.

Así, empezaremos creando un programa que pide cuatro números al usuario, los memoriza en una tabla, calcula su media aritmética, y muestra en pantalla tanto la media como los datos tecleados.

El código y la salida aparecen más abajo. Se puede apreciar que se ha utilizado un bucle for para ir rellenando los datos del array, y otro bucle for para mostrar los números solicitados en pantalla.

También podemos realizar un programa que almacena en una tabla el número de días que tiene cada mes, pide al usuario que indique un mes determinado (considerando 1=enero y 12=diciembre) y muestre en pantalla el número de días que tiene el mes indicado. En este caso usamos la estructura de datos array, configurando unos valores fijos en la declaración inicial.

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

Si queremos diseñar un programa que almacene en una tabla el número de días que tiene cada mes, pida al usuario que indique un mes determinado (considerando 1=enero y 12=diciembre) y un día, e indique qué número de día es dentro de ese año, tendremos que hacer uso de nuevo de la estructura de datos array, como se aprecia en el código del programa.

Por último, vamos a configurar un programa que pide al usuario diez números enteros e indica cuál es mayor. Para ello, los diez números se van a ir asignando a un array a través de un bucle for. Para determinar el número mayor, usaremos otro bucle for, empezando a considerar el primer número como el mayor, y actualizando esta información comprobando uno a uno con la orden if. Más abajo se presentan el código del programa y la salida.

Crucigrama sobre corriente eléctrica y magnitudes eléctricas


A continuación comparto un crucigrama que he elaborado sobre la corriente eléctrica y magnitudes eléctricas. De esta forma, repasaremos los conceptos vistos en clase.

Haciendo click en la imagen de abajo, procederemos a la descarga del crucigrama en pdf.

Más abajo encontraréis un enlace para la descarga de las solución del crucigrama propuesto.

SOLUCIÓN DEL CRUCIGRAMA

 

Neumática e hidráulica


Los circuitos neumáticos utilizan aire sometido a presión como medio para la transmisión de una fuerza. Por el contrario, en los circuitos hidráulicos el fluido es un líquido, que es capaz de transmitir presión a lo largo de un circuito.

Vamos a tratar este tema estudiando los apuntes que el profesor Pedro Landín comparte en su blog.

Asimismo, para entender esta tecnología es muy recomendable visitar la web librosvivos.net, donde explican de una forma muy clara cómo funcionan estos circuitos.

Además, en esta web del IES Aguilar y Cano podemos aprender un poco más sobre el concepto de presión y el principio de funcionamiento de una prensa hidráulica.

Para apoyar todos los conceptos vistos en los apuntes, podemos consultar la web del INTEF, que contiene una unidad con recursos bastante didácticos que nos pueden ayudar a comprender los conceptos en neumática e hidráulica.

 

Por último, en la wiki de Manuel Escorza aparece mucha información sobre neumática. Me parecen interesantes los ejercicios básicos que se proponen, puesto que se pueden ver las soluciones a través de animaciones.

 

La sucesión de Fibonacci. Otro ejemplo de bucle en C++


La sucesión de Fibonacci es una sucesión infinita de número en la que el primer valor es 0, el siguiente es 1 y los demás términos se calculan como suma de los dos que le preceden.

Para crear un programa en C++ que genere la sucesión de Fibonacci necesitaremos un bucle con la orden for. Así, si le pedimos al usuario el número de términos que desea ver de esta sucesión, tendremos que establecer como valor máximo para el bucle esta variable.

Como se observa en el código mostrado, al principio se hace uso de la orden if para tener en cuenta los casos en que el usuario indique que quiere visualizar un término o dos.

El código de este programa y su salida se muestran a continuación.

Bucles en C++


A la hora de programar, existen ocasiones en las que nos puede interesar comprobar una condición de forma repetida. Para ello hacemos uso de los bucles.

Como estamos viendo hasta ahora, voy a explicar cómo usar diferentes órdenes en C++ a través de ejemplos. Así, si queremos crear un programa que pida al usuario su contraseña, tantas veces como sea necesario, hasta que introduzca un número, la posible solución se muestra a continuación.

Como se puede observar, la orden utilizada es while, que repite el bucle de forma repetida mientras que se cumpla la condición que se establece entre paréntesis. El signo !, significa la negación de lo que hay a continuación.

La salida de este programa aparaece en la imagen de abajo.

Otro ejemplo de uso del while lo encontramos en un programa que escriba en pantalla, de mayor a menor, los números pares del 26 al 10. Como se observa, el bucle se repite mientras se cumpla la condición de que el número sea mayor o igual a 10.

La salida se muestra a continuación.

Asimismo, si queremos hacer un programa que pida un código de usuario y una contraseña para entrar a un sistema, también podemos hacer uso de la orden while. Como se puede advertir en la imagen de abajo, necesitamos que se cumplan dos condiciones en el bucle, por lo que incluimos el operador && (Y).

La salida de este programa con bucle se muestra a continuación.

Por último, si deseamos hacer un programa que de al usuario la oportunidad de adivinar un número del 1 al 100, en un máximo de seis intentos, teniendo en cuenta que en cada intento avisará al usuario si se ha pasado o se ha quedado corto, además de la orden while, nos hará falta la orden for. La sintaxis de esta última orden se plantea poniendo entre paréntesis los siguientes parámetros valor inicial, condición para que se cumpla y fórmula del incremento del bucle, separados por punto y coma. En este programa el bucle for se ha configurado para que contabilice los intentos, por eso sus llaves de apertura y cierre abarcan casi todo el código. Además, anidado hay otro bucle con while para evitar que el usuario introduzca un valor por debajo de 1 o por encima de 100. Nótese el uso del operador || (O).  Para averiguar si el número propuesto es el correcto, o si nos hemos pasado o quedado corto, se usa la orden if.

Como se puede observar, para que se genere un número aleatorio, se han utilizado las órdenes:

srand(time(NULL));
int numero=rand()%100, propuesto;

De esta forma, la semilla para generar el número aleatorio es la hora del sistema, y el número será como máximo 100.

Además, tenemos que añadir #include <cstdlib> y #include <ctime> para poder usar las órdenes anteriores. La salida se aprecia abajo.

 

 

Fotomontaje con GIMP


El programa de tratamiento de imágenes GIMP nos permite realizar fotomontajes.

Para ello necesitamos trabajar con capas. En una capa incluiremos el fondo del montaje. En la otra capa, insertaremos la imagen que previamente hemos recortado.

Finalmente, fusionamos las dos capas, y retocamos con brillo, contraste u otro parámetro de color para proporcionar al montaje mayor verosimilitud.

Mi alumnado de 1º de Bachillerato ha trabajado con diferentes montajes, y aquí presento algunos ejemplos de los resultados obtenidos.

En su blog,  Antonio Castro nos explica cómo ha realizado el fotomontaje de esta curiosa carrera de Fórmula 1.

En el blog de Carmen Estévez, también queda explicado este montaje en la Mezquita de Córdoba.

Finalmente, en su blog, Paula León nos detallan cómo crear este fotomontaje del rey león con políticos.