Archivo de la etiqueta: funciones

Valores devueltos por una función en C++


En ocasiones, es útil que una función programada en C++ realice una serie de cálculos y nos devuelva el resultado para poder utilizarlo en cualquier parte del programa. Para ver este aspecto de la programación en C++ vamos a trabajar dos actividades.

En la primera actividad vamos a crear una función que devuelva la suma de los tres números que se indiquen como parámetros.

Se ha resuelto de dos formas distintas, en la primera haciendo uso de void, y en la otra manera, declarando la variable y terminado con la orden return. Nótese que haciendo uso de esta última forma podemos incluir la función en un cout como si fuese una variable.

Los códigos del primer y del segundo programa, y la salida se aprecian a continuación.

Asimismo, vamos a programar una función que reciba un número y devuelva el valor 1 si es primo y el valor 0 si no lo es. Con este programa podemos averiguar si el número que se pide es primo. La clave es tener en cuenta que para que un número sea primo tiene dos divisores. Así, usando el operador %, que devuelve el resto de una división, solucionaremos la programación de la función esPrimo.

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

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.

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().

Funciones matemáticas en C++


Para utilizar funciones matemáticas en C++ tenemos que incluir al principio del programa la orden #include <cmath>. Existen diferentes funciones a elegir, cada una con una sintaxis determinada.

Vamos a practicar este aspecto de la programación en C++. Así, más abajo aparece el código y la salida de un programa que calcula la raíz cuadrada del número que elija el usuario.

Como se puede observar hemos declarado las variables n1 y n2 como float, es decir, variables con números decimales. Asimismo, hacemos uso de la orden using namespace std, para no tener que repetir la orden std en todo el programa.

La salida es la que aprece a continuación.

Si queremos configurar un programa que calcule la raíz cúbica de un número solicitado al usuario, incluiremos la función matemática pow(x,y), que nos elevará la variable x al exponente y. Así, el código y la salida de una posible solución se muestran a continuación.

Si queremos hacer un programa que pida una cantidad de millas al usuario y calcule su equivalente en kilómetros, se muestra más abajo una posible solución y su salida. Como se puede comprobar no hace falta el uso de funciones matemáticas.

Por último, con el siguiente programa vamos a calcular la media de cinco números solicitados al usuario. Se hace uso en la declaración de variables de la orden double, para tener un mayor número de cifras decimales, y por tanto, aumentar la precisión.

Más abajo se exponen el código del programa y la salida.

Mapas de Karnaugh


Para simplificar funciones boolenas podemos tener en cuenta sus propiedades algebraicas. Este sistema puede resultar complejo, pero existe un método gráfico, el método de Karnaugh, que nos va a facilitar el proceso de simplicación.

En el blog del profesor Pedro Landín encontramos una ficha práctica para trabajar este método, en el que representaremos la tabla de la verdad de la función a simplificar, y haremos grupos de 1, 2, 4, 8, 16, … unos. A continuación traduciremos esos grupos en paquetes donde sólo aparecerán la suma de los productos de las variables que no cambian.

En la red se comparten herramientas para realizar la simplificación por el método de Karnaugh. En la web de Electrical Engineering tenemos Karnaugh Map Explorer 2.0, una aplicación sencilla pero eficaz para simplificar por Karnaugh.