Autor Tema: Funciones con y sin parametros en C. Signaturas Argumentos. LenguajeC CU00549F  (Leído 3268 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas amigos aquí dejo una posible solución al ejercicio CU00549F del curso de programacion en lenguaje C para dummies.

Me falta el ejercicio 1 que me tiene algo liado, cuando lo tenga lo pondré.

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?

1 void stars2 (int n), no main es don de va el cuerpo del programa.

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.

Un solo parametr de tipo int.

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?

Se invoca 3 veces.
rimero aparece por pantalla una línea de 20 asteriscos, luego otra de 10 porque toma el valor de la variable a, y luego 12 porque toma el valor de la variable a + 2.
Tres líneas de asteriscos.


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

Que en la primera línea desaparecen los asteriscos.
Al ponerle valor 0 la dejamos sin valor y aparecen por pantalla la línea de asteriscos.


Saludos....  ;D
« Última modificación: 05 de Julio 2016, 15:16 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

¿Ya has puesto el ejercicio 1 o lo tienes pendiente? Si lo vas a poner ponlo en este mismo hilo, a continuación de estos mensajes.

Del ejercicio 2:

main sí es una función (una función especial). Se llama función principal del programa y es donde va el cuerpo principal del programa desde donde se pueden llamar a otras funciones.

La función main no recibe parámetros.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas tardes al fin he podido continuar con los ejercicios, aquí dejo mi propuesta al primer ejercicio CU00549F

Citar
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>

double potencia(double nBase, int nExponente);

int main()
{
    double base = 0;
    int exponente = 0;
    char respuesta = 's';
    int i=0;
    for (i=0;respuesta == 's' || respuesta == 's';i++){
    printf(" \nEscriba el n%cmero base de la potencia: ", 163);
    scanf("%lf", &base);
    printf(" \nEscriba el n%cmero exponente de la potencia: ", 163);
    scanf("%d", &exponente);
    printf("\nEl resultado de %.2lf elevado a  %d es: %.2lf\n", base, exponente, potencia(base, exponente));
    printf("\n\nDesea repetir la potencia con otros datos s/n: ");
    fflush(stdin);
    scanf("%c", &respuesta);
    }
    return 0;

}

double potencia(double nBase, int nExponente){
    int i = 0;
    double resultado = nBase;
    for (i=0; i<nExponente-1; i++){
        resultado = resultado * nBase;
    }
    return resultado;
}

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Todo bien!
Responsable de departamento de producción aprenderaprogramar.com

 

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".