Calculer des Puissances et Exposants en C

CBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à calculer les puissances et les exposants en programmation C. Le laboratoire couvre deux étapes principales : la lecture des valeurs de base et d'exposant de l'utilisateur, puis le calcul de la puissance à l'aide d'une boucle manuelle ou de la fonction intégrée pow(). À la fin de ce laboratoire, vous aurez une compréhension solide de la manière de réaliser des calculs de puissance en C, une opération fondamentale dans de nombreuses applications mathématiques et scientifiques.

Lecture de la Base et de l'Exposant

Dans cette étape, vous apprendrez à lire les valeurs de base et d'exposant pour calculer les puissances dans un programme C. Nous allons créer un programme simple qui invite l'utilisateur à saisir ces valeurs.

Tout d'abord, créons un nouveau fichier C dans le répertoire ~/project :

cd ~/project
nano power_calculation.c

Maintenant, saisissez le code suivant pour lire la base et l'exposant :

#include <stdio.h>

int main() {
    int base, exponent;

    // Demander à l'utilisateur de saisir la base
    printf("Entrez le nombre de base : ");
    scanf("%d", &base);

    // Demander à l'utilisateur de saisir l'exposant
    printf("Entrez l'exposant : ");
    scanf("%d", &exponent);

    // Afficher les valeurs saisies
    printf("Base : %d\n", base);
    printf("Exposant : %d\n", exponent);

    return 0;
}

Compilons et exécutons le programme :

gcc power_calculation.c -o power_calculation
./power_calculation

Exemple de sortie :

Entrez le nombre de base : 5
Entrez l'exposant : 3
Base : 5
Exposant : 3

Explication du code :

  • La fonction scanf() est utilisée pour lire l'entrée entière de l'utilisateur.
  • %d est le spécificateur de format pour les entiers.
  • &base et &exponent transmettent les adresses mémoire où les valeurs d'entrée seront stockées.
  • Le programme lit et affiche simplement les valeurs de base et d'exposant.

Cette étape établit les bases pour le calcul des puissances en obtenant d'abord les données nécessaires de l'utilisateur.

Utilisation d'une Boucle ou de la Fonction pow()

Dans cette étape, vous apprendrez deux méthodes pour calculer les puissances en C : l'utilisation d'une boucle manuelle et l'utilisation de la fonction intégrée pow() de la bibliothèque mathématique.

Tout d'abord, modifions le fichier power_calculation.c précédent pour implémenter le calcul de puissance :

cd ~/project
nano power_calculation.c

Méthode 1 : Utilisation d'une Boucle

#include <stdio.h>

int calculate_power_loop(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}

int main() {
    int base, exponent;

    printf("Entrez le nombre de base : ");
    scanf("%d", &base);

    printf("Entrez l'exposant : ");
    scanf("%d", &exponent);

    int power_result = calculate_power_loop(base, exponent);

    printf("%d élevé à la puissance de %d est : %d\n", base, exponent, power_result);

    return 0;
}

Méthode 2 : Utilisation de la Fonction pow()

#include <stdio.h>
#include <math.h>

int main() {
    int base, exponent;

    printf("Entrez le nombre de base : ");
    scanf("%d", &base);

    printf("Entrez l'exposant : ");
    scanf("%d", &exponent);

    // Remarque : pow() renvoie un double, nous devons donc effectuer un cast vers int
    int power_result = (int)pow(base, exponent);

    printf("%d élevé à la puissance de %d est : %d\n", base, exponent, power_result);

    return 0;
}

Compilez le programme avec la bibliothèque mathématique :

gcc power_calculation.c -o power_calculation -lm

Exemple de sortie :

Entrez le nombre de base : 2
Entrez l'exposant : 3
2 élevé à la puissance de 3 est : 8

Explication du code :

  • La méthode de boucle multiplie manuellement la base par elle-même exponent fois.
  • La fonction pow() de math.h fournit un calcul de puissance intégré.
  • Le flag -lm est nécessaire pour lier la bibliothèque mathématique lors de la compilation.
  • Nous effectuons un cast du résultat de pow() vers int pour correspondre à notre calcul d'entiers.

Affichage du Résultat

Dans cette étape, vous améliorerez le programme de calcul de puissance pour fournir une sortie plus détaillée et formatée, démontrant différentes manières de présenter les résultats en C.

Modifions le fichier power_calculation.c :

cd ~/project
nano power_calculation.c

Ajoutez le code complet suivant :

#include <stdio.h>
#include <math.h>

void print_power_result(int base, int exponent, int result) {
    // Formatage de base
    printf("Résultat de base : %d^%d = %d\n", base, exponent, result);

    // Formatage avec alignement
    printf("Résultat formaté : %2d élevé à la puissance de %2d égale %5d\n",
           base, exponent, result);

    // Notation scientifique pour les grands nombres
    printf("Notation scientifique : %d^%d = %.2e\n", base, exponent, pow(base, exponent));
}

int calculate_power_loop(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}

int main() {
    int base, exponent;

    printf("Entrez le nombre de base : ");
    scanf("%d", &base);

    printf("Entrez l'exposant : ");
    scanf("%d", &exponent);

    int power_result = calculate_power_loop(base, exponent);

    // Appel de la fonction pour afficher les résultats
    print_power_result(base, exponent, power_result);

    return 0;
}

Compilez le programme :

gcc power_calculation.c -o power_calculation -lm

Exécutez le programme :

./power_calculation

Exemple de sortie :

Entrez le nombre de base : 5
Entrez l'exposant : 3
Résultat de base : 5^3 = 125
Résultat formaté :  5 élevé à la puissance de  3 égale   125
Notation scientifique : 5^3 = 1.25e+02

Explication du code :

  • print_power_result() démontre plusieurs formats d'affichage.
  • L'affichage de base montre le calcul simple.
  • L'affichage formaté utilise des spécificateurs de largeur pour l'alignement.
  • La notation scientifique est utile pour les grands nombres.
  • %.2e affiche le nombre en notation scientifique avec 2 décimales.

Résumé

Dans ce laboratoire, vous avez appris à lire les valeurs de base et d'exposant saisies par l'utilisateur, puis à calculer la puissance en utilisant deux méthodes différentes : une boucle manuelle et la fonction intégrée pow(). Vous avez implémenté la fonction de calcul de puissance basée sur une boucle et l'appel de la fonction pow(), puis comparé les résultats. Cela vous a permis de comprendre les différentes approches pour calculer les puissances et les exposants en programmation C.