Dans ce laboratoire (lab), vous apprendrez à déterminer si un nombre est un carré parfait en utilisant le langage de programmation C. Un carré parfait est un nombre qui peut être exprimé comme le produit d'un entier multiplié par lui-même. Par exemple, 16 est un carré parfait car il est égal à 4 × 4, et 25 est un carré parfait car il est égal à 5 × 5.
À la fin de ce laboratoire, vous comprendrez le concept de carrés parfaits et serez capable d'écrire un programme C qui vérifie si un nombre fourni par l'utilisateur est un carré parfait ou non.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
c(("C")) -.-> c/BasicsGroup(["Basics"])
c(("C")) -.-> c/ControlFlowGroup(["Control Flow"])
c(("C")) -.-> c/FileHandlingGroup(["File Handling"])
c(("C")) -.-> c/UserInteractionGroup(["User Interaction"])
c/BasicsGroup -.-> c/variables("Variables")
c/ControlFlowGroup -.-> c/if_else("If...Else")
c/ControlFlowGroup -.-> c/for_loop("For Loop")
c/FileHandlingGroup -.-> c/create_files("Create Files")
c/UserInteractionGroup -.-> c/user_input("User Input")
c/UserInteractionGroup -.-> c/output("Output")
subgraph Lab Skills
c/variables -.-> lab-123221{{"Déterminer un carré parfait en C"}}
c/if_else -.-> lab-123221{{"Déterminer un carré parfait en C"}}
c/for_loop -.-> lab-123221{{"Déterminer un carré parfait en C"}}
c/create_files -.-> lab-123221{{"Déterminer un carré parfait en C"}}
c/user_input -.-> lab-123221{{"Déterminer un carré parfait en C"}}
c/output -.-> lab-123221{{"Déterminer un carré parfait en C"}}
end
Comprendre les carrés parfaits
Avant de commencer à coder, comprenons ce qu'est un carré parfait et comment nous pouvons déterminer si un nombre est un carré parfait.
Un carré parfait est un nombre qui est le carré d'un entier. En d'autres termes, c'est un nombre qui peut être écrit sous la forme n², où n est un entier.
Exemples de carrés parfaits :
1 = 1² (1 × 1)
4 = 2² (2 × 2)
9 = 3² (3 × 3)
16 = 4² (4 × 4)
25 = 5² (5 × 5)
Pour déterminer si un nombre est un carré parfait, nous pouvons vérifier s'il existe un entier dont le carré est égal au nombre donné.
Créons un répertoire pour notre projet et naviguons jusqu'à celui-ci :
mkdir -p ~/project/perfect-square
cd ~/project/perfect-square
Maintenant, créons un nouveau fichier C pour notre programme :
Dans l'éditeur WebIDE, accédez au panneau de l'explorateur de fichiers sur le côté gauche.
Cliquez avec le bouton droit sur le dossier perfect-square et sélectionnez "Nouveau fichier".
Nommez le fichier perfect_square.c et appuyez sur Entrée.
Création de la structure de base du programme
Maintenant, créons la structure de base de notre programme C. Nous devons inclure les fichiers d'en-tête nécessaires et configurer la fonction principale.
Ouvrez le fichier perfect_square.c dans l'éditeur WebIDE en cliquant dessus dans le panneau de l'explorateur de fichiers. Ensuite, ajoutez le code suivant :
#include <stdio.h>
int main() {
int number;
// Demande à l'utilisateur d'entrer une valeur
printf("Enter a number to check if it's a perfect square: ");
scanf("%d", &number);
// Nous ajouterons le code pour vérifier le carré parfait à l'étape suivante
return 0;
}
Comprenons le code :
#include <stdio.h> - Cela inclut la bibliothèque standard d'entrée-sortie, qui fournit des fonctions telles que printf et scanf.
int main() - C'est la fonction principale où l'exécution du programme commence.
int number; - Nous déclarons une variable entière pour stocker l'entrée de l'utilisateur.
printf("Enter a number..."); - Cela affiche une invite à l'utilisateur.
scanf("%d", &number); - Cela lit une entrée entière de l'utilisateur et la stocke dans la variable number. L'opérateur & est utilisé pour obtenir l'adresse mémoire de la variable où l'entrée sera stockée.
Enregistrez le fichier en appuyant sur Ctrl+S ou en cliquant sur Fichier > Enregistrer.
Implémentation de l'algorithme de vérification des carrés parfaits
Maintenant, implémentons la logique pour vérifier si le nombre saisi par l'utilisateur est un carré parfait. Il existe plusieurs façons de vérifier si un nombre est un carré parfait. Nous allons utiliser une approche simple où nous vérifions si le carré de tout entier compris entre 1 et le nombre est égal au nombre.
Mettez à jour votre fichier perfect_square.c avec le code suivant :
#include <stdio.h>
int main() {
int number;
int isPerfectSquare = 0; // Drapeau pour indiquer si le nombre est un carré parfait
// Demande à l'utilisateur d'entrer une valeur
printf("Enter a number to check if it's a perfect square: ");
scanf("%d", &number);
// Vérifie si le nombre est négatif
if (number < 0) {
printf("%d is negative, and negative numbers cannot be perfect squares.\n", number);
return 0;
}
// Vérifie si le nombre est un carré parfait
for (int i = 0; i <= number; i++) {
if (i * i == number) {
isPerfectSquare = 1;
printf("%d is a perfect square. It is %d squared.\n", number, i);
break; // Sort de la boucle dès que nous trouvons la réponse
}
// Optimisation : si i*i dépasse le nombre, il n'est pas nécessaire de vérifier plus loin
if (i * i > number) {
break;
}
}
// Si ce n'est pas un carré parfait, informe l'utilisateur
if (isPerfectSquare == 0) {
printf("%d is not a perfect square.\n", number);
}
return 0;
}
Comprenons le nouveau code :
Nous avons ajouté un drapeau isPerfectSquare pour suivre si le nombre est un carré parfait.
Nous vérifions si le nombre est négatif, car les nombres négatifs ne peuvent pas être des carrés parfaits.
Nous utilisons une boucle for pour itérer de 0 au nombre.
À l'intérieur de la boucle, nous vérifions si i * i est égal au nombre. Si c'est le cas, nous définissons notre drapeau, affichons un message et sortons de la boucle.
Nous avons ajouté une optimisation : si i * i dépasse le nombre, nous pouvons arrêter de vérifier car toutes les valeurs suivantes dépasseront également le nombre.
Enfin, si le drapeau est toujours à 0, nous informons l'utilisateur que le nombre n'est pas un carré parfait.
Enregistrez le fichier (Ctrl+S ou Fichier > Enregistrer).
Compilation et test du programme
Maintenant que nous avons terminé le code pour vérifier les carrés parfaits, compilons-le et testons-le. Nous allons utiliser le compilateur GCC pour compiler notre programme C.
Accédez au répertoire contenant notre code (si vous n'y êtes pas déjà) :
cd ~/project/perfect-square
Compilez le programme :
gcc perfect_square.c -o perfect_square
Cette commande compile le fichier perfect_square.c et crée un fichier exécutable nommé perfect_square. Si la compilation réussit, vous ne verrez aucun message de sortie.
Maintenant, exécutons le programme :
./perfect_square
Le programme vous demandera d'entrer un nombre. Testons-le avec différentes entrées :
Entrez un nombre qui est un carré parfait, comme 16.
La sortie devrait être : 16 is a perfect square. It is 4 squared.
Entrez un nombre qui n'est pas un carré parfait, comme 10.
La sortie devrait être : 10 is not a perfect square.
Entrez un nombre négatif, comme -4.
La sortie devrait être : -4 is negative, and negative numbers cannot be perfect squares.
Vous pouvez exécuter le programme plusieurs fois pour tester avec différentes entrées.
Essayons également un cas limite, le nombre 0 :
./perfect_square
Entrez 0 lorsque le programme vous le demande.
La sortie devrait être : 0 is a perfect square. It is 0 squared.
Félicitations ! Vous avez créé avec succès un programme C qui vérifie si un nombre est un carré parfait.
Résumé
Dans ce laboratoire (lab), vous avez appris à créer un programme C qui détermine si un nombre est un carré parfait. Voici les concepts clés abordés :
Les carrés parfaits sont des nombres qui peuvent être exprimés comme le carré d'un entier.
Les concepts de base de la programmation en C, notamment les variables, les instructions conditionnelles et les boucles.
La prise d'entrée utilisateur avec scanf et l'affichage de sortie avec printf.
L'utilisation d'une boucle pour vérifier si un nombre est un carré parfait en testant chaque valeur possible.
L'optimisation de la solution en sortant de la boucle lorsque cela est nécessaire.
La gestion de cas limites tels que les nombres négatifs et zéro.
Ce laboratoire a démontré comment les concepts mathématiques peuvent être implémentés en programmation. Vous pouvez étendre ce programme en ajoutant plus de fonctionnalités, comme trouver le prochain carré parfait après un nombre donné ou vérifier si un nombre est un cube (n³) au lieu d'un carré.
We use cookies for a number of reasons, such as keeping the website reliable and secure, to improve your experience on our website and to see how you interact with it. By accepting, you agree to our use of such cookies. Privacy Policy