DEV Community

Gabriel de Oliveira
Gabriel de Oliveira

Posted on • Edited on

Portfólio - Aula 3

Nesse portfólio contem dois programas relacionados ao tema da aula três, que foi Paradigmas Imperativos: Matemáticos. A aula abordou a diferença entre um programa escrito da forma imperativa e recursiva, visando o tempo de resposta.

Abaixo um programa que realiza um cálculo exponencial:

//expo_Iterativa

#include <stdio.h>

double test(int base, int expo) {
    int result = 1;
    int i;

    for (i = 0; i < expo; i++) {
        result *= base;
    }

    return result;
}

int main() {
    int base;
    int expo;

    printf("Digite a base: ");
    scanf("%d", &base);

    printf("Digite o expoente: ");
    scanf("%d", &expo);

    int result = test(base, expo);

    printf("O resultado de %d elevado a %d é: %.d", base, expo, result);

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Execute aqui: https://onlinegdb.com/KMbU4xUNP

A seguir a versão recursiva:

//expo_recursiva

#include <stdio.h>

double test(int base, int expo) {
    if (expo == 0)
        return 1;
    else if (expo > 0)
        return base * test(base, expo - 1);
    else
        return 1 / test(base, -expo);
}

int main() {
    int base;
    int expo;

    printf("Digite a base: ");
    scanf("%d", &base);

    printf("Digite o expoente: ");
    scanf("%d", &expo);

    int r = test(base, expo);

    printf("O resultado de %.d elevado a %d é: | %.d |", base, expo, r);

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Execute aqui: https://onlinegdb.com/G3SfdRkL2

Top comments (0)