No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Tipos de retorno en funciones

4/12
Recursos

Aportes 17

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Tipos de retorno en funciones 😄

<1. Funciones sin argumentos y sin valor de retorno

void functionName(); //Declarando la function.
functionName(); //Invocando o ejecutando a la function
void functionName()// definicion de la function
{
  //logica
}

2. Funciones con argumentos, pero sin valor de retorno

void functionName(float); //Declarando la function.
functionName(float); //Invocando o ejecutando a la function
void functionName(float) // definicion de la function
{
  //logica
}

3. Funciones sin argumentos, pero con valor de retorno

int functionName();

4. Funciones que tienen argumentos y valor de retorno

int functionName(int, float);
>

También es posible declarar e inicializar la función directamente, por ejemplo el código de la clase anterior quedaría así:

#include <stdio.h>


int integersPower(int base, int exp){
    int i,p;
    p=1;
    for(i=1; i<=exp; i++){
        p *= base;
    }
    return p;
}

int main()
{
    int i;
    for(i=0; i<10; i++){
        printf("exp = %d, result = %d \n", i, integersPower(2,i));
    }

    return 0;
}


Me parece más cómodo y te ahorras una línea de código, no sé si tendrá algún inconveniente

Sugerencia @equipoPlatzi utilizar una guía de estilo para poder escribir todos unos programas que sean legibles fácilmente independientemente de quien los escriba.

¿Por que se usa int main() para definir la función principal y no void main()?

caso de uso donde la función no necesita que devuelva nada

  • Una función que imprime por la salida estándar una letra. (En este caso la salida estándar es la pantalla)
#include <unistd.h>

void	putchar(char a)
{
	write(1, &a, 1);
}

De hecho en las funciones que no tienen argumentos y que no regresan nada las podemos declarar de la siguiente manera:

void functionName(void);

Tipos de retorno de funciones

Ya vimos lo que son las funciones, ahora toca ver que tipos de retorno pueden tener cada una. Para esto tenemos 4 tipos:

  1. Función sin argumentos y sin valor de retorno: Este tipo de función suele ser usada por menus o para manipular micro controladores
void functionName(); //Declarando la function.

functionName(); //Invocando o ejecutando a la function

void functionName()// definicion de la function
{
  //logica o statments
}
  1. Función con argumentos, pero sin valor de retorno: Este tipo de función suele ser usada para realizar calculos y no devolver algun valor, etc.
void functionName(float); //Declarando la function.

functionName(float); //Invocando o ejecutando a la function

void functionName(float) // definicion de la function
{
  //logica o statments
}
  1. Función sin argumentos, pero con valor de retorno: Este tipo de función puede ser usada para enviar un mensaje o valor.
int functionName(); //Declarando la function.

functionName(); //Invocando o ejecutando a la function

int functionName() // definicion de la function
{
  //logica
}
  1. Función con argumentos y con valor de retorno: Este tipo de función es la mas usada y es usada normalmente para tratar los datos.
int functionName(int); //Declarando la function.

functionName(dato); //Invocando o ejecutando a la function

int functionName(int dato) // definicion de la function
{
  //logica
}

De hecho hasta este punto del curso la mayoría de las funciones que he usado son de tipo void sin retorno, con y sin argumentos, y las otras funciones con retorno que he usado son solamente las que he visto en esta clase y en el curso de Programación Estructurada para la función de los factoriales.

Hola a todos, he creado una funcion que encuentra la raiz cuadrada exacta de un numero, este es el codigo:

int raiz_cuadrada_exacta(int numero)
{
    int i=1;
    while(i< numero)
    {
        if (i*i == numero)
        {
            return i;
        }
        else 
        {
            i += 1;
            continue;
        } 
    }
}
int main()
{
    printf("%d", raiz_cuadrada_exacta(144));
}

Ejemplo de uso de una función Void para recibir los parámetros de la función de potencia:

#include <stdio.h>
int nExponent (int base, int n);
void parametros();
int b;
int exponenteee;

int main(){
    parametros();
    for (int i = 1; i <= exponenteee; i++) {
        printf("\nn=%d resultado de la potencia= %d", i, nExponent(b,i));
    }
    

    return 0;
}

int nExponent (int base, int n){
    int r=1;
    for (int k = 0; k < n; k++){
        r=r*base;
    }
    return r;
}

void parametros(){
    printf("ingrese el la base: ");
    scanf("%d", &b);
    printf("\ningrese el exponente: ");
    scanf("%d", &exponenteee);
}

Buena clase

Van a haber cuatro tipos de funciones, dos de las cuales no van a retornar ningún tipo de valor, pero pueden tener argumentos o no.
Las otras dos funciones van a retornar u valor de salida, pero pueden tener o no argumentos de entrada.

Segun he visto en otros cursos, cuando tienes functionName(); tambien se le conoce como prototipo y se escribe ante de la funcion main.

Sintaxis de una función
/*
tipoRetorno nombreFuncion(param1, param2, … paramN) {
// sentences
}
*/

Con el paso de parámetros, estamos viendo como diversas partes del programa se comunican entre sí:
-funciones que no reciben argumentos ni
retornan valores
-funciones que reciben argumentos, pero
que no retornan valores
-funciones que reciben argumentos, y
retornan valores
-programas que llaman a otros programas sin paso de argumentos
-programas que llaman a otros programas , con paso de argumentos(usando sockets).

Cuando una función no retorna nada, se define void, cuando no recibe argumentos también sería void.

void miFuncion (void)
{
	sentencia_1;
	sentencia_n;
}

buena clase