MI L1 USTHB 2020/2021
TP 1 : ALGORITHMIQUES
OBJECTIF:
L’objectif de ce TP est de rendre l’étudiant capable de concevoir un algorithme répondant à un
problème formellement posé comme calculer la moyenne d’un tableau de nombres.
Quel outil utiliser ?
Un IDE (Integrated Development Environment) pour le langage C est un logiciel qui contient une
interface graphique, un éditeur, un compilateur et un debugger et qu’il est capable de compiler et
d’exécuter ,’importe quel programme écrit en langage C.
L'éditeur de texte permet d'ecrire et mettre a jour le texte du programme source, de sauvegarder
ce texte dans un fichier, ...
Le compilateur permet de compiler le programme source.
Il y'a plusieurs IDEs pour le langage C disponibles: TurboC, Dev-C++, CodeBlocks, Visual
Studio, Eclipse C, Netbeans C, Xcode ...
On utilisera comme IDE en TP Dev-C++. Les étudiants peuvent utiliser un autre IDE de leur
choix.
-Si vous travaillez sous Windows, vous pouvez télécharger DevC++ à partir de ce lien par
exemple :
Télécharger DEV-C++ 5.11.492 pour Windows - Filehippo.com
1. La structure générale d’un programme :
#include <stdio.h>
int main() {
// Afficher un message..
printf("Bonjour\n");
return 0;
}
- Main est la fonction principale d’un programme. Elle permet de le lancer. Le programme
se compile et s’exécute à partir de la fonction Main. Elle est donc indispensable.
ZERROUKI. H
MI L1 USTHB 2020/2021
Le mot « include » dans un programme permet d’ajouter des fichiers pour la compilation.
Ces fichiers qui existent déjà et qui sont appelés au début de programme s’appellent les
bibliothèques / librairies.
- La syntaxe d’un commentaire est la suivante:
// Ceci est un commentaire en langage C.
/*
*/
L’instruction return 0 indique la fin de programme et retourne la valeur 0.
- La syntaxe d’un programme en C doit être respectée comme dans n’importe quel langage
de programmation. Chaque instruction se termine par un point-virgule. Chaque instruction
doit être écrite comme elle a été définie dans la syntaxe du langage.
2. Les variables :
- Une variable est un ensembles de cases mémoires qui permettent de stocker des données
(nombres/ caractères,… ) pour être utilisée dans le programme (calcul, affichage,
lecture,ect).
- Chaque variable doit avoir un nom.
3. Lecture / Ecriture:
Un programme a toujours besoins de récupérer les données introduites par l’utilisateur. Il s’agit
de l’opération de lecture. De même, pour afficher les résultats, une opération d’écriture est
indispensable.
L’instruction qui permet de lire à partir de l’écran (console) est scanf.
Le spécificateur de format pour scanf détermine comment les données reçues doivent être
interprétées.
int var;
scanf("%d", &var);
Pour mémoriser les données dans la variable adéquate, il faut mettre dans l’attribut de scanf
l’adresse de la variable qui est noté par : &NOMvariable. Le programme connaitra ainsi
l’emplacement de la variable dans la mémoire et peut mettre les valeurs introduites dans les cases
mémoires dédiées à cette variable. L'adresse d'une variable est indiquée par le nom de la variable
précédé du signe &.
ZERROUKI. H
MI L1 USTHB 2020/2021
la fonction scanf s'arrête si elle tombe au cours de sa lecture sur un espace, une tabulation ou une
entrée.
Exemple :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char nom[20] = {0};
printf("Quelle est votre spécialité? ");
scanf("%s", nom);
printf("Ah ! Vous éudiez donc en %s !\n\n", nom);
return 0;
}
4. Les types de données en langage C
Type Description Taille (*) Valeur
Void Type générique
Char caractère/octet 1 octets comme signed ou unsigned char
unsigned char caractère/octet non signé 1 octets 0 à 255
signed char caractère/octet signé 1 octets -128 à 127[1][2]
ZERROUKI. H
MI L1 USTHB 2020/2021
Short entier court signé 2 octets -32 768 à 32 767
unsigned short entier non signé 2 octets 0 à 65 535
Int entier signé 2 ou 4 octets (en fonction du compilateur)
Unsigned entier non signé 2 ou 4 octets (en fonction du compilateur)
Long entier signé long 4 octets -2 147 483 648 à 2 147 483 647
unsigned long entier non signé long 4 octets 0 à 4 294 967 295 (2^32-1)
Float flottant 4 octets Mantisse : +- 6 chiffres significatifs
Double flottant 8 octets Mantisse : +- 12 chiffres significatifs
long double flottant 10 octets
Ùlur9
- La structure de l’instruction conditionnelle if else
if (cond) {
else {
}
- Les opérations logiques et de comparaison.
ZERROUKI. H
MI L1 USTHB 2020/2021
Exercice 01 : Écrire un algorithme qui prend de l'utilisateur deux entiers puis affiche le signe du
produit sans faire la multiplication. (Exercice 1 de TD)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int x,y;
printf(" Introduire les valeurs de x et de y : \n");
scanf("%d",&x);
scanf("%d",&y);
if ( (x>0 && y >0 ) || (x<0 && y<0 ))
printf ( " le signe su produit est positif");
else
printf ( " le signe su produit est négatif");
return 0;
}
Après l’écriture du code source (le programme) , enregistrer le fichier, puis
compiler le programme (exécuter puis compiler) ensuite lancer le programme
(exécuter puis exécuter ou run)
ZERROUKI. H
MI L1 USTHB 2020/2021
Exercice 02 : Écrire un algorithme qui prend l'utilisateur deux entiers puis fait la mutation entre ces
deux valeurs. Exemple : le cas où A=3 et B=9 devient A=9 et B=3.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a,b;
int x ;
printf(" Introduire les valeurs de a et de b : \n");
scanf("%d",&a);
scanf("%d",&b);
x=a ;
a=x ;
b=x ;
printf(" la nouvelle valeurs de a devient %d , la nouvelle valeur de b devient %d ",a,b);
return 0;
}
ZERROUKI. H
MI L1 USTHB 2020/2021
Exercice 3 : Écrire un algorithme qui donne le maximum de 3 nombres réels donnés par
l'utilisateur.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
float a,b,c;
float max ;
printf(" Introduire trois valeurs réelles : \n");
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
if ( a > b ) max = a ;
else
max = b
if (c > max)
max = c;
printf(" la valeur maximale est %f ",max);
return 0;
}
ZERROUKI. H