Funciones en C++.
Una función está formada por un conjunto de
sentencias que realizan una determinada tarea y que podemos invocar mediante un
nombre.
Un
programa C++ está formado por una o más funciones.
Utilizando funciones podemos construir
programas modulares. Además consiguen que no se repita el mismo código en
varias partes del programa: en lugar de escribir el mismo código cuando se
necesite, por ejemplo para validar una fecha, se hace una llamada a la función
que lo realiza.
Todo programa C++ tiene una función llamada main. La función main es el punto de entrada al programa y también
el punto de salida.
La estructura general de una función es la
siguiente:
[tipo_devuelto]
nombre_funcion([tipo parametro1][, tipo parametro2][, ....])
{
// instrucciones
[return valor;]
}
Los elementos que aparecen entre corchetes
son opcionales.
Después del nombre de la función y siempre
entre paréntesis puede aparecer una lista de parámetros, también llamados
argumentos, separados por comas. Estos parámetros se conocen como parámetros
formales.
Los parámetros formales son los datos que recibe la
función para operar con ellos. Una función puede recibir cero o más parámetros.
Se debe especificar para cada parámetro su tipo.
Una función puede devolver un dato a quien
la ha llamado. Esto se realiza mediante la instrucción return. El tipo del dato
devuelto debe coincidir con el tipo_devuelto que se ha indicado antes del
nombre de la función.
Ejemplo de función C++ : función
que sume dos números enteros
//Función C++ para sumar dos números
int suma(int a, int b)
{
int
c;
c
= a + b;
return
c;
}
Esta función se llama suma y recibe dos
números enteros a y b. La función suma los dos números y guarda el resultado en
c. Finalmente devuelve mediante la instrucción return la suma calculada.
Una función tiene un único punto de inicio,
representado por la llave de inicio. La ejecución de una función termina cuando
se llega a la llave final o cuando se ejecuta la instrucción return. La
instrucción return puede aparecer en cualquier lugar dentro de la función, no
tiene que estar necesariamente al final.
Con una función se deben
realizar tres operaciones: declaración, definición y llamada o invocación.
Declaración o prototipo de una función.
Declarar
una función es el paso previo antes de definir el conjunto de sentencias que la
componen.
En la declaración o prototipo de la función, indicamos
el nombre de la misma, el tipo de valor que devuelve y una lista parámetros separados
por comas. La declaración acaba con punto y coma.
[tipo_devuelto]
nombre_funcion([tipo parametro1][, tipo parametro2][, ....]);
La declaración de una función sirve para
comprobar que cuando se llame a la función, los parámetros que se utilizan son
correctos en cuanto a número y tipo, además de comprobar el tipo para el valor
de retorno. El compilador dará mensajes de error si se llama a una función con
tipos de datos o con números de parámetros distintos a los declarados.
Por ejemplo, la función suma del punto
anterior se declara así:
int suma(int a, int b);
En la
declaración de una función, no es necesario indicar los identificadores de los
parámetros. Solo es obligatorio poner el tipo. Además, los identificadores
usados en la declaración y en la definición no es preciso que sean los mismos.
Según
esto, la función suma la podemos declarar así:
int
suma(int, int);
Estamos
indicando que suma recibe 2 enteros y devuelve un entero. No es necesario poner
el nombre de las variables.
Definición de una función.
Definir una función consiste en escribir la
cabecera de la misma y a continuación, entre llaves, el cuerpo de la función, es
decir, sus instrucciones.
La cabecera de la función debe coincidir
con la declaración de la función y debe incluir el nombre de los parámetros. La
cabecera no acaba en punto y coma.
[tipo_devuelto]
nombre_funcion([tipo parametro1][, tipo parametro2][, ....])
{
//
instrucciones
[return valor;]
}
Los
parámetros definidos en la cabecera de la función se llaman parámetros
formales. Son las variables que reciben los valores de los
argumentos en la llamada a la función.
El
resultado de la función se devuelve a la instrucción que la ha llamado por
medio de la sentencia return. El tipo_devuelto indica de qué tipo es el
dato devuelto por la función. Puede ser cualquier tipo básico, o definido por
el usuario, pero no puede ser un array o una función. Si no se indica, se
supone que es int. La sentencia return puede aparecer más de una vez en el
cuerpo de la función aunque lo aconsejable es que aparezca sólo una sentencia
return. Si la función no devuelve ningún valor, se puede omitir o poner
simplemente return. La sentencia return provoca la finalización inmediata de la
función en el momento en que se ejecuta.
Llamar o invocar a una función.
Para
que una función se ejecute es necesario llamarla o invocarla desde alguna parte
del programa.
La
llamada a una función está formada por su nombre seguido de una lista de
argumentos entre paréntesis y separados por comas (cero o más argumentos) que
son los datos que se le envían a la función.
Los
argumentos que aparecen en la llamada a una función se llaman parámetros
actuales, porque son los valores que se pasan a ésta en el momento
de la ejecución.
Los
parámetros actuales y los formales deben coincidir en número, orden y tipo. Si
el tipo de un parámetro actual no coincide con su correspondiente parámetro
formal, el sistema lo convertirá al tipo de este último, siempre que se trate
de tipos compatibles. Si no es posible la conversión, el compilador dará los
mensajes de error correspondientes.
Si la
función devuelve un valor, la llamada a la función puede estar incluida en una
expresión que recoja el valor devuelto.
Cuando
se llama a una función, se crean en memoria las variables que aparecen en la
cabecera de la función. Las variables declaradas en la cabecera de una función así
como las que se declaran en el interior de la misma son variables locales de la
función. Esto significa que solo son accesibles dentro de la
función. Aunque tengan el mismo nombre que otras variables que puedan aparecer
en otras partes del programa se trata de variables distintas. La memoria que
ocupan las variables locales de una función se libera cuando acaba la ejecución
de la función y dejan de estar accesibles.
Cuando
se llama a una función, la ejecución del programa pasa a la función y cuando
ésta acaba, la ejecución continúa a partir del punto donde se produjo la
llamada.
Ejemplos de funciones en C++
Ejemplo 1:
El
siguiente programa lee por teclado un año y calcula y muestra si es bisiesto.
Para realizar el cálculo utiliza una función llamada bisiesto.
La función bisiesto recibe el año leído por
teclado, comprueba si es o no bisiesto y devuelve 1 si lo es ó 0 si no lo es.
//
Programa que lee un año y muestra si es o no bisiesto
#include <iostream>
using namespace std;
int bisiesto(int); //declaración o prototipo de la función
int main()
{
int anio;
cout<<"Introduce
a"<<(char)164<<"o: "; //164
ascii de ñ
cin >> anio;
if(bisiesto(anio)) //llamada a la función
cout <<
"Bisiesto" << endl;
else
cout << "No es
bisiesto" << endl;
system("pause");
}
int bisiesto(int a) //definición de la
función
{
if(a%4==0 and a%100!=0 or a%400==0)
return 1;
else
return 0;
}
En la llamada a la función bisiesto, el valor de la variable anio (parámetro actual) se copia en la variable a (parámetro formal) y la función
trabaja con esta variable. El valor 1 ó 0 devuelto por return en la función
pasa a ser el valor de la condición:
Ejemplo 2
Programa
que lee por teclado la fecha actual y la fecha de nacimiento de una persona y
calcula su edad.
El
programa utiliza tres funciones:
fecha_valida:
comprueba si la fecha leída es correcta.
bisiesto:
comprueba si un año es bisiesto. La llama la función fecha_valida
calcular_edad:
recibe las dos fechas y devuelve la edad.
//
Programa C++ que lee la fecha actual y la fecha de nacimiento
//
de una persona y calcula su edad
#include <iostream>
using namespace std;
int
bisiesto(int);
int
fecha_valida(int , int, int);
int
calcular_edad(int, int, int, int, int, int);
int main()
{
int diaa, mesa, anioa, dian,
mesn, anion, edad;
do
{
cout << "Introduce fecha
actual: " << endl;
cout << "dia
: "; cin >> diaa;
cout << "mes : "; cin
>> mesa;
cout <<
"a" << (char)164 << "o: "; cin >> anioa;
}while(!(fecha_valida(diaa, mesa, anioa)));
do
{
cout << endl <<
"Introduce fecha de nacimiento: " << endl;
cout << "dia
: "; cin >> dian;
cout << "mes : "; cin
>> mesn;
cout <<
"a" << (char)164 << "o: "; ; cin >> anion;
}while(!(fecha_valida(dian, mesn, anion)));
edad = calcular_edad(diaa, mesa, anioa,
dian, mesn, anion);
cout << endl
<< "Edad : " << edad << endl << endl;
system("pause");
}
int calcular_edad(int da, int ma, int aa, int dn, int mn, int an)
{
int edad = aa - an;
if(ma < mn)
edad--;
else if(ma == mn and da <
dn)
edad--;
return edad;
}
int
bisiesto(int a) //
definición de la función bisiesto
{
if(a%4==0 and a%100 !=0 or
a%400==0)
return 1;
else
return 0;
}
int fecha_valida(int d, int m, int a) //definición
de fecha_valida
{
if(d < 1 or d > 31 or m
< 1 or m > 12 or a < 1)
{
return 0;
}
switch(m)
{
case 4:
case 6:
case 9:
case 11: if(d > 30)
{
return 0;
}
break;
case 2: if(bisiesto(a))
{
if(d > 29)
{
return 0;
}
}
else if(d >
28)
{
return 0;
}
break;
}
return 1;
}
La
función fecha_valida se llama dos veces en el programa, una para comprobar si
la fecha actual es correcta y otra para comprobar si la fecha de nacimiento es
correcta. Esta Función devuelve 1 si es correcta y 0 en caso contrario. La
función fecha_valida llama a la función bisiesto para comprobar si el año es
bisiesto.
La
función calcular_edad recibe las dos fechas y calcula y devuelve la edad de la
persona. El valor de la variable edad que aparece en la sentencia return se
copia en la variable edad de la llamada.
Excelentísima esta la información!, me sirvió de mucha ayuda.
ResponderEliminarmuy bueno me ayudo mucho mientras estaba en la escuela :)
ResponderEliminarGracias, me alegro de que te haya servido de ayuda. Un saludo
Eliminarfalto ponerle la libreria stdlib.h para el system("PAUSE")
EliminarY que tenga funciones
EliminarLeer los datos de doce personas como son: nombre, edad, estatura, peso, posteriormente indicar cuál es el nombre de la persona de menor edad, el promedio de las estaturas y el de los pesos.
ResponderEliminarcomo lo aria con 4 funciones?
Que tipo de Función se utilizo en cada ejercicio ?
ResponderEliminarQue tipo de Función se utilizo en cada ejercicio ?
ResponderEliminarBuenas Cristina Vargas, los tipos estan declarados al inicio de cada código fuente. son todos de tipo 'int'( enteros ), saludos.
EliminarMuchas gracias por el trabajo que se tomó en realizar este aporte, muchas dudas se me han despejado, saludos !
ResponderEliminarGracias me alegro que te haya servido de ayuda.
EliminarGracias por el comentario Alessandro. Saludos
ResponderEliminarcopie el codigo y me sale 4 errores me puedes ayudar gracias. salu2
ResponderEliminarel codigo que copie fue el ultimo de la ( dia, mes, año
Eliminar)
Gracias muy Buena LA informacion
ResponderEliminarme puedes ayduar hacer etso kn funciones
ResponderEliminarSe requiere ingresar N estudiantes, con los siguientes datos: Nombre-Apellido, Semestre,
Nota1, Nota2, Nota3. Se desea Obtener:
El Promedio individual por estudiante
El Mejor y Peor Promedio (que deberá también ser reflejado en la columna
Observación)
El promedio General
Los Estudiantes que estén sobre y bajo el promedio general.
Gracias, por su labor,seguire hay.
ResponderEliminarPodrian apoyarme es un programa para calcular la funcion exponencial
ResponderEliminarse los agradezco de antemano
Me sale error en la llave al definir la funcion
#include
#include
#include
#include
#include
#include
#include
using namespace std;
void exponente(float,float);
int main ()
{
float a,b;
cout <<"\n";
cout <<"Ingrese un numero";
cin >>a;
cout <<"\n";
void exponente(float,float);
cout <<"El resultado es:"<< b<<endl;
}
void exponente (float,float);
{
b= exp(a);
return b;
return 0;
}
po normah io zi no zabe ni desi tu nombre
EliminarMe pueden ayudar a hacer un programa para presupuesto de una obra
Eliminarme pueden ayudar con el siguiente ejercicio:
ResponderEliminarEscribir el programa para solicitar al usuario 10 calificaciones comprendidas en el rango de 1 a 100, calcular y presentar la sumatoria y promedio de estas 10 calificaciones. La entrada de valores es para las calificaciones, debe hacerlo mediante una funcion de usuario.
sera que me pueden hacer el favor de ayudarme con este ejecicio
ResponderEliminarelabore un programa,en el cualse digiten N votosque seran otorgadosa3 candidatos ala presidencia. diseñar una funcion que reciba por parametros el consolidado de votos de cada uno de los candidatos y permita calcular e imprimir el candidato ganador y el porcentaje de votos obtenidos...
gracia
hola sera que me pueden ayudar debo hacer un programa que calcule la edad de la persona.. con el cin cout y la sentencia if else
ResponderEliminarEjercicios prácticos con if, if-else if
ResponderEliminar1. Prueba de divisibilidad
a. Solicita al usuario introduzca dos números enteros.
b. Si el residuo de n/d es igual a 0, desplegar “El número x es divisible entre el número y”. De lo contrario,
desplegar: “No es posible hacer la división sugerida”.
2. Meses del año
a. Solicita al usuario introduzca un número.
b. Imprimir en pantalla el mes correspondiente al número introducido.
3. Calificaciones
a. Solicita al usuario introduzca 5 calificaciones.
b. Realiza la suma y obtén el promedio.
c. Si el promedio es mayor o igual a 6, desplegar en pantalla APROBADO.
d. De lo contrario, desplegar en pantalla NO APROBADO.
4. Comparar número.
a. Solicita al usuario introduzca un número.
b. Indica si es positivo o negativo desplegando un aviso en pantalla.
5. Indicar la tarifa de la luz según el gasto de corriente eléctrica. Para un gasto menor de 1.000Kwxh, la tarifa es
1.2, entre 1.000 y 1.850Kwxh es 1.0 y mayor de 1.850Kwxh es 0.9.
a. Solicita al usuario que ingrese su gasto de energía para indicarle la tarifa.
b. Dependiendo de la tarifa, desplegar en pantalla el mensaje: “Su gasto es menor de 1.000Kwxh, la
tarifa que le corresponde es de 1.2”.
c. El mensaje debe corresponder a la tarifa que el usuario introduzca.
6. Calcula el porcentaje de personas que han ingresado al hotel para saber si aún cuentan con habitaciones
disponibles.
a. Si al hotel han ingresado 1200 personas, el hotel está ocupando únicamente el 20% de su capacidad
b. Solicita al usuario que ingrese el total de personas que han ingresado actualmente. De acuerdo a la
cantidad, despliega el mensaje en pantalla indicando: “Se encuentra ocupado el 20% del hotel. Hay
habitaciones disponibles”.
7. Seleccionar un tipo de vehículo según un valor numérico. El usuario verá en pantalla únicamente los números de
vehículos con los que cuenta la compañía. Al momento de ingresar el valor, el usuario verá en pantalla el tipo de
vehículo asignado. Desplegar un menú con la siguiente información.
a. Vehículo – 300
b. Vehículo – 500
c. Vehículo – 3000
Si el usuario selecciona la letra a, el vehículo que le corresponde es una motocicleta. Si el usuario
selecciona la letra b, el vehículo es de turismo. Si el usuario selecciona la letra c, el vehículo es autobús.
Con cualquier otro tipo de vehículo que introduzca, indicar: “Vehículo no autorizado en c con funciones ...
Excelente información me ayudo mucho
ResponderEliminarEscribir un algoritmo que lea un numero entero N desde teclado y realice la suma de los 10 numeros siguientes partiendo de N, mostrando el resultados por pantalla, ejemplo si N se almacena un 5, debe sumar los números 5,6,7,8,9,10,11,12,13,14
ResponderEliminarcomo puedo realisar esto (programa que calcule la raiz cuadrada de un numero, la hipotenusa de un triangulo rectangulo apartir de sus catetos y el cubo de un numero. debe presentar un menu que le prmita al usuario elegir cual de las tres operaciones desea realizar) pero en una app de telefono que se llama cpp n-IDE ME me ayudas porfavor..
ResponderEliminar1) De un arreglo global determinado (Integer edades []= {8, 10, 20, 6, 40, 2,5}; realice lo siguiente.
ResponderEliminara) Cree un método llamado posicionArreglo, que no retorne valor (void) cuya función es la de presentar la edad según el identificador enviado por parámetro.
b) Cree un método llamado impares, que no retorne valor (void) cuya finalidad es determinar cuántos números impares existe en el arreglo edades.
c) Cree un método llamado pares, que retorne valor (Integer) cuya finalidad es determinar cuántos números pares existe en el arreglo edades.
d) Construya el método main y llame cada uno de los métodos para probar el resultado de cada uno de los métodos: “Recuerde utilizar static en el arreglo global así como en sus métodos.
2) Construya una clase llamada “EquipoComputo” con los siguiente atributos
String marca;
String modelo;
String serie;
String procesador;
String memoria;
String discoDuro;
String tarjetaGrafica;
Double costo;
String ciudadOrigen;
Date fechaRegistro; y aplique lo siguiente:
a) Realice el encapsulamiento de los atributos.
b) Desde otra clase ProbarAccesorio, Cree un objeto de la clase Accesorio e ingrese a través del setter la información de las características de la clase Accesorio.
c) Finalmente imprima el detalle de un accesorio cualquiera que hubiese ingresado en el método anterior.
me puede ayudar con estos ejercicios
escriba un programa en c++que devuelva la parte fraccionaria de cualquier numero introducido por el usuario. po ejemplo si se introduce el numero 256.879,debera desplegarse el numero 0.879
ResponderEliminar¿Cómo se podría hacer con un procedimiento (void) donde indique si es mayor o menor de edad.
ResponderEliminaralguien que me ayude...con esto de funciones:
ResponderEliminarA un partido de futbol ingresan varios tipos de personas categorizadas según el tipo de entrada, el cual tiene un precio asociado:
• Norte - 40 soles
• Sur - 45 soles
• Oriente - 150 soles
• Occidente - 200 soles
Cada persona puede comprar varias entradas pero de un solo tipo.
Según el importe de compra (precio * cantidad) se pueden conseguir un descuento de esta manera:
• <=250 soles – 3.5% de descuento
• >250 soles y <=600 soles - 9% de descuento
• >600 soles – 11.5% de descuento
Por cada venta mostraras el total.
Haga un programa que permita la venta de entradas de manera repetitiva a una cantidad desconocida de personas.
Instale c÷÷en mi pc pero no compila es que acaso tengo que ins
ResponderEliminartalar un compilador tambien
Necesito ayudaa
ResponderEliminarDado el tipo de dato tfraccion, que almacena la información de una fracción con numerador y denominador mayor estricto que cero,
typedef struct
{
unsigned int num; /* Numerador */
unsigned int den; /* Denominador */
} tfraccion;
y considerando ahora los prototipos de funciones siguientes:
unsigned int mcd(unsigned int a, unsigned int b);
unsigned int mcm(unsigned int a, unsigned int b);
tfraccion leer_frac(int i);
void mostrar_frac(tfraccion f);
tfraccion sumar_frac(tfraccion f1, tfraccion f2);
tfraccion restar_frac(tfraccion f1, tfraccion f2);
tfraccion multiplicar_frac(tfraccion f1, tfraccion f2);
tfraccion dividir_frac(tfraccion f1, tfraccion f2);
Defina la función mcd para que retorne el máximo común divisor de los parámetros a y b.
Defina la función mcm para que retorne el mínimo común múltiplo de los parámetros a y b.
Nota: Recuerde que mcm(a,b) = a*b/mcd(a,b).
Defina la función leer_frac para que pida al usuario que introduzca desde el teclado la información de la fracción i (siendo i=1 o i=2, para indicar respectivamente si se refiere a la información de la fracción 1 o la fracción.
Hola podrían ayudarme con esto
ResponderEliminarInicializar las matrices A y B (Las cuales son arreglos bidimensionales de 3 x 3, poner sus datos en cero)
Solicitar los datos de la matriz A
Solicitar los datos de la matriz B
Mostrar los datos de la matriz A
Mostrar los datos de la matriz B
Sumar los datos de las matrices y guardarlos en C (C también es una matriz de 3x3)
Mostrar los datos de la matriz C
Salir
Cada una de las opciones se deberá de realizar en una función definida por el usuario.
Hola me podrían ayudar haciendo un sistema con funciones y clases
ResponderEliminar. Una clínica de la vista, requiere establecer un registro de caja de los servicios que presta, así como un control de los descuentos de acuerdo al tipo de cliente .
ResponderEliminarTipos de clientes
Cliente C solo descuento en consultas 5%
Cliente B descuento en consultas y compra de aros y lentes 10%
Cliente A descuento en consultas y compra de aros y lentes 15%
Alguien me ayuda?
cuales son las aplicaciones de una función o módulos en c++
ResponderEliminar1. Una cadena de farmacias distribuida entre diferentes ciudades. Cada farmacia tiene sus empleados propios y un farmacéutico.
ResponderEliminarPor cada ciudad existe un único farmacéutico; esto es, si en una ciudad hubiera más de una farmacia, el mismo farmacéutico estaría afectado a
todas las farmacias de esa ciudad. Cada farmacia tiene a su vez su stock de medicamentos. El mismo se mantiene por medicamento y presentación.
Los medicamentos se organizan según la o las mono drogas que lo componen, su presentación
(por ejemplo ampollas de 5 unidades, jarabe de 100ml, inyecciones por 10 unidades, pomada 60gr, etc.),
el laboratorio que lo comercializa, y su acción terapéutica (analgésico, antibiótico, etc.).
Por cada medicamento se mantiene su precio y la cantidad en existencia del mismo.
El sistema deberá permitir consultar la base de datos de diferentes alternativas para medicamentos compuestos por una mono droga,
medicamentos de un laboratorio, presentaciones de un medicamento, entre otras.*/
Nota1: mínimo 3 ciudades Bogotá-Medellín barranquilla
Nota2: empleados deben de estar asociados a los empleados y el farmacéutico 2 empleados
Nota 3: mínimo dos sedes (sucursal norte-sur) stock = 20 medicamentos = precio
Nota 4: no puedo vender mas de la cantidad permitida en stock por medicamento
Nota 5: revisar en las demás sucursales si existe el medicamento
Nota 6. ingresar el nombre de la persona y cedula del usuario
Nota 7. debemos de organizar los medicamentos por mono drogas (laboratorio-proveedor -alfa)
Nota8. Imprimir el nombre del usuario(cedula), nombre del farmacéutico, los medicamentos que compro+ el valor y el descuento si lo tiene
alguien podria ayudarme con esto
ResponderEliminarHay una página de Solucionarios de Matemáticas que te puede interesar
ResponderEliminare^{-x}-x+lnx+2 como puedo hallar esa funcion
ResponderEliminar