Autor Tema: ¿Es main una función en C? Funciones con y sin parámetros en lenguajeC CU00549F  (Leído 1934 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes. Dejo una posible solución de los ejercicios de la entrega CU00549F del tutorial de programador en lenguaje C desde cero.

Citar
EJERCICIO Nº1

Escribe una función que use un bucle for para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos recibidos como parámetros.

Ejemplo: la función recibe como base el 4 y como exponente el 3. El resultado devuelto debe ser el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.

Escribe un programa donde se pida al usuario base y exponente y se muestre el resultado de calcular la potencia (base elevada al exponente). Tras esto, se debe pedir al usuario si quiere repetir con otros datos o no (s/n). En caso de que el usuario elija s se le volverá a pedir base y exponente, y en caso contrario el programa debe finalizar.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int potencia(int base, int exponente);

int main() {
    int base;
    int exponente;
    char respuesta = 's';
    while (respuesta=='s' || respuesta=='S') {
        printf("Introduce la base: ");
        scanf("%d",&base);
        printf("Introduce el exponenete: ");
        scanf("%d",&exponente);
        printf("%d elevado a %d es: %d\n\n", base, exponente, potencia(base,exponente));
        printf("Quiere repetir con otros datos o no (s/n)?: ");
        scanf("%*c%c%*c", &respuesta);
    }

    return 0;

}

int potencia(int base, int exponente){
    int resultado=1;
    int i;
    for(i=0; i<exponente; i++){
        resultado=resultado*base;
    }

    return resultado;
}

Citar
EJERCICIO Nº 2

Estudia el siguiente código y responde a las preguntas:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios curso C aprenderaprogramar.com
void stars2 (int n) {
    int i;
    for (i=1; i<=n; ++i) {
        printf ("*");
    }
    printf ("\n");
}

int main (void) {
    int a;
    a=10;
    stars2 (20);
    stars2 (a);
    stars2 (a+2);
    return (0);
}

Citar
a) ¿Cuántas funciones se declaran en este código? ¿Es main una función?

Se declaran 2 funciónes. Sí, main es la función principal del código.

Citar
b) Explica cuántos parámetros reciben y de qué tipo son los parámetros para cada una de las funciones que existan en este código.

La función stars2(int n) recibe un parámetro cuyo argumento es de tipo int. La función main() no recibe ningún parámetro, su parámetro está vacío (void).

Citar
c) ¿Cuántas veces se invoca la función stars2 en el código? ¿Qué ocurre con cada una de esas invocaciones? ¿Cuál es el valor devuelto por la función stars2?

La función stars2 se invoca 3 veces en la función main. En la primera invocación se le pasa un parámetro con valor 20, en la segunda se le pasa un parámetro con valor una variable de tipo int (es el tipo que espera la función stars2) y tiene un valor 10. En la tercera invocación se le pasa un parámetro con valor 12 (a+2). Según que valor recibe la función stars2 mediante el parámetro de tipo int tantas veces se repite el bucle for dentro de la misma. La función stars2 no devuelve ningún valor porque es un precedimiento (procedure). En su declaración no se define ningún valor para devolver, sino "void" lo que quere decir que no devolverá nada dicha función.

Citar
d) ¿Qué ocurre si escribimos stars2(0)? ¿Por qué?

Cuando a la función stars2 se le pasa un parámetro con valor 0 no se imprimirá nada, sólo una nueva línea (\n). Esto ocurre porque el parámetro sirve para condición de la salida del bucle for en la función stars2. Pero como el valor iniciar del bucle es i=1 y si la condición es: "i<=0" ya no entraría en el bucle con lo cual no se ejecutarán las intrucciones en el mismo.

« Última modificación: 11 de Julio 2016, 22:52 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Buenas perfecto

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".