Enoncé exercice 1
Ecrire un programme C qui permet d’afficher le message suivant: Bonjour.
Correction exercice 1
La première chose avec laquelle doit commencer ce programme sera la définition des directives du préprocesseur (lignes 1-2), ce qui revient à indiquer les bibliothèques nécessaires au fonctionnement des fonctions du programme.
Pour cet exercice on n’aura besoin que des deux bibliothèques stdio.h et stdlib.h. La première bibliothèque va permettre de faire marcher la fonction d’affichage printf, et la deuxième est invoquée pour pouvoir utiliser l’instruction system(« pause ») (ligne 6), qui permettra de bloquer la console d’exécution pour pouvoir prendre le temps nécessaire pour la visualisation du message affiché. Il faudra essayer d’enlever cette instruction pour sentir son effet, même si elle n’est plus nécessaire pour quelques IDE (éditeurs) qui maintiennent la console automatiquement après l’exécution de toutes les instructions du programme.)
A l’intérieur de la fonction main et à l’aide de printf (ligne 5) on va afficher le message Bonjour, suivi du caractère \n. Ce dernier va permettre de faire un retour à la ligne juste après l’affichage de Bonjour.
Finalement et en ce qui concerne l’instruction return 0 (ligne 7) il faut juste pour l’instant prendre l’habitude de la mettre à la fin du programme chaque fois qu’on utilise int main, et elle ne sera pas nécessaire dans le cas où on n’utilise que le main sans mentionner le int.
Solution exercice 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("Bonjour\n");
system("pause");
return 0;
}
Enoncé exercice 2
Ecrire un programme C qui permet de lire en entrée un entier constitué de trois chiffres et d’afficher celui-ci inversé. Exemple: si l’entrée est 123 on affiche 321.
Correction exercice 2
Tout d’abord on va commencer par la déclaration des variables dont on aura besoin dans ce programme (ligne 5). La déclaration des variables en C se fait obligatoirement au début du programme juste après le int main. Trois variables de type int seront largement suffisantes pour réaliser ce programme :
- La variable a : cette variable va contenir le nombre entré par l’utilisateur.
- La variable c : celle-ci va contenir elle aussi l’entier entré, afin de le conserver pour l’affichage final, puisque le contenu de la variable a sera altéré comme on le verra plus tard.
- La variable b : va abriter le nombre inversé.
Après la déclaration des variables, on affiche à l’aide de la fonction printf un message où on demande à l’utilisateur d’entrer un entier composé de trois chiffres (ligne 6). Et avec la fonction scanf définie dans la bibliothèque stdio.h on va lire ce dernier vers la variable entière a. Pour ce faire, on utilisera le format %d réservé au type int (ligne 7).
Avant de se lancer dans l’inversion du nombre contenu dans la variable a, on va conserver la valeur initiale de a dans la variable c via une simple opération d’affectation (ligne 8).
Pour inverser l’entier a on doit pouvoir accéder à ses différents chiffres un par un. Ceci est possible grâce aux deux opérateurs % et /.
La quantité a%10 (ligne 9) représente le chiffre des unités de a. Ex: 234%10 = 4. A titre de rappel l’opérateur % appelé modulo représente le reste de la division entière de la première opérande sur la deuxième. En multipliant maintenant le chiffre des unités ainsi obtenu par cent, on le fera alors passer à la 3ème position. Ex: b = (234%10)*100 = 4*100 = 400.
En suivant la même approche, on pourra constituer le deuxième chiffre du nombre inversé. Mais tout d’abord il faudra accéder au deuxième chiffre de a.
Le chiffre des unités de a n’étant plus utile, on peut s’en débarrasser en divisant a par dix (ligne 10). Ex: 234/10 = 23. A ce stade on peut récupérer le nouveau chiffre des unités de a qu’on doit multiplier ensuite par dix pour le faire passer à la deuxième position. Ex: (23%10)*10 = 3*10 = 30.
Ce qu’il faut faire maintenant, est de faire la somme des deux nombres obtenus dans ces deux premières étapes pour constituer le chiffre des centaines et celui des dizaines de b. Ex: 400+30 = 430. Il faut noter que dans le code, l’obtention du chiffre des dizaines et l’addition sont faites dans une seule instruction (ligne 11).
La constitution du chiffre des unités de b se basera sur les mêmes principes précédents (lignes 12-13).
Reste à signaler que a/=10 et b+=a sont des manières abrégées d’écrire a=a/10 et b=b+a.
Finalement et lors de l’affichage, la variable c qui représente le nombre lu en entrée sera affichée à la place du premier %d de la fonction printf et le second %d sera substitué par la valeur de b (ligne 14).
Solution exercice 2
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c;
printf("donnez un entier de 3 chiffres\n");
scanf("%d",&a);
c=a;
b=(a%10)*100;
a=a/10;
b=b+(a%10)*10;
a/=10;
b+=a;
printf("le nombre %d inverse est %d\n",c,b);
system("pause");
return 0;
}
Enoncé exercice 3
Ecrire un programme C qui permet de lire deux nombres réels, et d’afficher ensuite leur produit, avec une précision de trois chiffres après la virgule.
Correction exercice 3
Dans cet exercice on veut écrire un programme qui calcule le produit de deux réels. La première chose à faire est la déclaration des variables dont on aura besoin. Trois variables x, y et p seront donc déclarées de type float (ligne 5). Un message ensuite est affiché à travers la fonction printf demandant à l’utilisateur de saisir les deux nombres (ligne 6). Ces deux réels vont être lus vers les deux variables x et y à l’aide de la fonction scanf (ligne 7). Et on peut remarquer par cette occasion l’indication du %f , qui représente le format dédié au type float.
Par la suite, on affecte à la variable p la valeur du produit de x et y, calculé en utilisant l’opérateur * (ligne 8).
Pour afficher le résultat, un %.3f est utilisé avec la fonction printf , et qui impose d’afficher le contenu de la variable de type float correspondante, qui est ici p, avec une précision de 3 chiffres après la virgule (ligne 9). Il est à signaler qu’une opération d’arrondi peut avoir lieu, donc à la place de 3,2348 on aura 3,235.
Solution exercice 3
#include<stdio.h>
#include<stdlib.h>
int main()
{
float x,y,p;
printf("Entrez deux reels:\n");
scanf("%f%f",&x,&y);
p=x*y;
printf("le produit de %f et %f est: %.3f\n",x,y,p);
system("pause");
return 0;
}