Académique Documents
Professionnel Documents
Culture Documents
forme :
# include <stdio.h>
“
La structure d‟un programme en C est sous la
void main()
{
printf ("bonjour");
}
Structure générale d’un programme en C
“
<stdio.h>, pour « Standard Input/Output Header » ou « En-tête Standard
d'Entrée/Sortie », est l'en-tête de la bibliothèque standard du C déclarant les macros,
les constantes et les définitions de fonctions utilisées dans les opérations
d'entrée/sortie. Il descend du « portable I/O package » (ou « paquet d'entrée/sortie
portable ») écrit par Michael Lesk dans les Laboratoires Bell au début des années
70. Pour des raisons de compatibilité avec le C, le C++ intègre un
équivalent : <cstdio>.
Les fonctions déclarées dans <stdio.h> sont extrêmement populaires car, faisant
partie de la bibliothèque standard du C, elles sont garanties de fonctionner sur
n'importe quelle plate-forme supportant le langage C. Certaines applications dédiées
à une plate-forme particulière peuvent cependant avoir des raisons d'utiliser les
routines d'entrée/sortie de cette plate-forme, plutôt que celles fournies par cet en-
tête.
https://fr.wikipedia.org/wiki/Stdio.h
8
Structure générale d’un programme en C
“
- main() : est une sorte d'entête. Elle précise ce qu’il
sera décrit à sa suite est en fait le programme
principal.
- Le programme principal proprement dit vient à la
suite de cet entête. Il est délimité par les accolades
{…}.
- En langage C toute instruction doit être suivi d’un «
; ».
- Le langage C fait la distinction entre les
majuscules et les minuscules.
9
Caractère de fin de ligne
Exemple :
#include <stdio.h>
void main()
{
printf("Bonjour \n");
printf("Monsieur ");
}
Résultat:
Bonjour
Monsieur
Variables et leurs types
Exemple :
# include <stdio.h>
void main()
{ int n;
n=10;
printf("valeur de n : %d", n); /* %d : est le format d'écriture
*/
}
Variables et leurs types
int : est une instruction qui permet de déclarer une variable de type entier, on verra
que dans le langage C existe plusieurs types de variables.
- L'affectation d'une valeur à une variable se fait à l’aide du signe « = ».
- En langage C comme en Pascal les déclarations des types des variables sont
obligatoires et doivent être regroupé au début du programme.
- L’instruction printf permet d'afficher sur l'écran une ou plusieurs valeurs selon un
format.
Le format est toujours précisé entre "…".
- La présence du caractère % signifie que ce qui arrive à sa suite est non plus du
texte à afficher tel quel mais un code de format, le code de format %d précise qu’il
faut considérer la valeur reçue comme un entier.
# include <stdio.h>
void main()
{
int a, b, c;
a=20; b=40;
c=a+b;
printf("La somme de %d et %d est: %d ", a, b, c);
}
Résultat: La somme de 20 et 40 est: 60
Le type caractère et le code format « %c »
Exemple :
#include <stdio.h>
void main()
{
char x;
x='e';
printf("Lettre = %c ", x);
}
Résultat: Lettre = e
scanf : est une instruction qui permet de lire des informations de type quelconque.
Exemple :
#include <stdio.h>
void main()
{
int n,p;
printf("Donnez deux nombres SVP : ");
scanf("%d %d", &n, &p); /* & : signifie l'adresse de… */
printf("Leur somme est : %d ", n+p); /* %d : est le format d'écriture */
}
Résultat:
Donnez deux nombres SVP : 30 50
Leur somme est : 80
L’instruction « scanf »
scanf : est une instruction qui permet de lire des informations de type quelconque.
Exemple :
#include <stdio.h>
void main()
{
int n,p;
printf("Donnez deux nombres SVP : ");
scanf("%d %d", &n, &p); /* & : signifie l'adresse de… */
printf("Leur somme est : %d ", n+p); /* %d : est le format d'écriture */
}
Résultat:
Donnez deux nombres SVP : 30 50
Leur somme est : 80
L’instruction « scanf »
Exemple 2 :
#include <stdio.h>
void main()
{
int n,p,np;
printf("Donnez deux nombres SVP : ");
scanf("%d %d", &n, &p);
np=n+p ;
printf("Leur somme est : %d ",np);
}
Résultat:
Donnez deux nombres SVP : 30 50
Leur somme est : 80
L’instruction « scanf »
Remarque :
Les identificateurs
Exemple :
#include <stdio.h>
void main()
{
int i, n;
i =5;
n =i++ - 5; /* il fait i -5 puis il incrimente le i */
printf("i= %d n= %d ",i ,n);
}
Résultat:
i= 6 n= 0
- L‟opérateur « -- » joue de la même façon que « ++ » le rôle de la
décrémentation.
Travaux pratiques
Exercice 1
Exercice 2
Exercice 3
PTTC = PNET+(PNET*TVA)/100
Les types de base du langage C
L’instruction « if » :
If (expression logique)
{
Bloc d’instruction
}
Les types de base du langage C
L’instruction « if » :
Syntaxe :
If (expression logique)
{
Bloc d‟instruction _1
}
else
{
Bloc d‟instruction_2
}
else : est facultatif,
Les types de base du langage C
Les « if » imbriquées :
Exemple
Ecrivez un programme qui lit trois valeurs entières (A, B et C) au
clavier et qui affiche la plus grande des trois valeurs, en utilisant:
a) if - else et une variable d'aide MAX
b) if - else if - ... - else sans variable d'aide
c) les opérateurs conditionnels et une variable d'aide MAX
d) les opérateurs conditionnels sans variable d'aide
Les types de base du langage C
Solution1 #include <stdio.h>
main()
{
int A, B, C;
int MAX;
printf("Introduisez trois nombres entiers :");
scanf("%i %i %i", &A, &B, &C);
if (A>B)
{
MAX=A;
}
else
{
MAX=B;
}
if (C>MAX)
{
MAX=C;
}
printf("La valeur maximale est %i\n", MAX);
}
Les types de base du langage C
Solution2 #include <stdio.h>
main()
{
int A, B, C;
printf("Introduisez trois nombres entiers :");
scanf("%i %i %i", &A, &B, &C);
if (A>B && A>C)
{
printf("le maximum est %i\n",A);
}
else if (B>C)
{
printf("le maximum est %i\n",B);
}
else
printf("le maximum est %i\n",C);
}
Les types de base du langage C
Exercice 1
Écrire un programme qui demande deux
nombres à l’utilisateur et l’informe ensuite si le
produit est négatif ou positif (on inclut le
traitement du cas où le produit peut être nul).
Les types de base du langage C
#include <stdio.h>
main()
{
int A, B , C;
printf("Introduisez deux nombres entiers :");
scanf("%i %i",&A, &B);
C=A*B;
if (C>0)
{
printf("le signe est positif %i",C);
}
if (C==0)
{
printf("le signe est null %i",C);
}
if (C<0)
{
printf("le signe est négatif %i",C);
}
}
Les types de base du langage C
Exercice 2
Ecrivez un programme qui calcule les solutions réelles d'une
équation du second degré ax2+bx+c = 0 en discutant la formule.
Utilisez une variable d'aide D pour la valeur du discriminant b2-4ac et
décidez à l'aide de D, si l'équation a une, deux ou aucune solution
réelle.
Utilisez des variables du type int pour A, B et C.
Considérez aussi les cas où l'utilisateur entre des valeurs nulles pour
A; pour A et B; pour A, B et
C. Affichez les résultats et les messages nécessaires sur l'écran.
Solution
#include <stdio.h> if (A==0 && B==0 && C==0) /* 0x = 0 printf(”x1 = %.4f + i%.4f\n”, (double)(-
#include <math.h> */ B),(double)(sqrt(-D)/(2*A))) ;
printf(”x2 = %.4f + i%.4f\n”, (double)(-
main() printf("Tout réel est une solution de B),(double)(-sqrt(-D)/(2*A))) ;
{ cette équation.\n"); }
int A, B, C; else if (A==0 && B==0) /* else if (D==0) /* b^2-4ac = 0 */
printf("Calcul des solutions Contradiction: c # 0 et c = 0 */ {
réelles et complexes d'une printf("Cette équation ne possède pas printf("Cette équation a une seule
solution réelle :\n");
équation du second \n"); de solutions.\n");
{
printf(" x = %.4f\n", (double)-B/(2*A));
printf("degré de la forme else if (A==0) /* bx + c = 0 */ }
ax^2 + bx + c = 0 \n\n"); printf("La solution de cette équation du else /* b^2-4ac > 0 */
printf("Introduisez les premier degré est :\n"); {
valeurs pour a, b, et c : "); printf(" x = %.4f\n", (double)C/B); printf("Les solutions réelles de cette
équation sont :\n");
scanf("%i %i %i", &A, &B, } printf(" x1 = %.4f\n", (double)(-
&C); else if (D<0) /* b^2-4ac < 0 */ B+sqrt(D))/(2*A));
D = pow(B,2) - 4.0*A*C; { printf(" x2 = %.4f\n", (double)(-B-
printf("Les solutions complexes de sqrt(D))/(2*A));
cette équation sont les suivantes :\n"); }
return 0;
}
Les types de base du langage C
Exercice 3
Ecrivez un programme qui lit trois valeurs entières (A,
B et C) au clavier. Triez les valeurs A, B et C par
échanges successifs de manière à obtenir :
val(A) val(B) val(C)
Affichez les trois valeurs.
Les types de base du langage C
L’instruction swich :
Syntaxe :
swich (expression ) /* expression entière */
{
case constante_1 : {suite d’instructions_1}
case constante_2 : {suite d’instructions_2}
……
……
case constante_n : { suite d’instructions_ n}
default : { suite d’instructions}
}
Les types de base du langage C
Exemple :
# include <stdio.h>
void main()
{ int n;
printf("Donnez un entier de un chiffre <= 5: ");
scanf("%d",&n);
switch(n)
{
case 0 : {printf(" zero \n"); break;}
case 1 : {printf(" un \n"); break;}
case 2 : {printf(" deux \n"); break;}
case 3 : {printf(" trois \n"); break;}
case 4 : {printf(" quatre \n"); break;}
case 5 : {printf(" cinq \n"); break;}
} /* break permet la sortie de l‟instruction switch*/
}
Les types de base du langage C
Les boucles :
a- La boucle « do…while » :
Syntaxe : expression est évaluée après chaque
do itération. Si le résultat est vrai alors
{ les instructions sont exécutées sinon
Bloc d‟ instructions on sort de la boucle
} exemple
i =0;
while (expression) n = 20;
do
{
i++;
}
while(i<n)
Les types de base du langage C
# include <stdio.h>
exemple Résultat :
void main()
Donnez un nombre > 0 : 5
{ int i, n;
1
printf("Donnez un nombre >0 : ");
2
scanf("%d", &n);
3
i=0;
4
do
5
{
i=i+1;
printf("%d \n",i);
}
while (i < n);
}
Exercice
Ecrivez un programme qui lit N nombres entiers
au clavier et qui affiche leur somme, leur produit
et leur moyenne. Choisissez un type approprié
pour les valeurs à afficher. Le nombre N est à
entrer au clavier.
43
Solution
#include <stdio.h> I=1;
main() do
{ {
int N; printf(« Donner un nombre a calculer: ");
int NOMB; scanf("%d", &NOMB);
int i; SOM += NOMB;
int SOM; PROD *= NOMB;
double PROD; i++;
printf("Nombre de données : "); }
scanf("%d", &N); while(i<=N);
SOM=0; printf("La somme des %d nombres est %d \n", N, SOM);
PROD=1; printf("Le produit des %d nombres est %f \n", N, PROD);
printf("La moyenne des %d nombres est %f \n", N,SOM/N);
44
Les types de base du langage C
La boucle « while »
Syntaxe : expression est évaluée avant chaque
While (expression) itération. Si le résultat est vrai alors les
{
(Bloc d‟ instructions)
instructions sont exécutées sinon on
} sort de la boucle
exemple
i =0;
n = 20;
while (i<n)
{
i++;
}
Les types de base du langage C
Exemple:
#include <stdio.h>
void main() Résultat :
{ int n, som; Donnez un nombre : 48
som=0; Donnez un nombre : 10
while(som<100) Donnez un nombre : 50
{ Somme = 108
printf("Donnez un nombre :");
scanf("%d",&n);
som+=n; /*som=som+n;*/
printf("Somme = %d ",som);
}
}
Exercice
Refaire l’exercice précédent en utilisant la boucle
while
47
solution
#include <stdio.h> while(I<=N)
Void main() {
{ printf("%d. nombre : ", I);
int N; scanf("%d", &NOMB);
int NOMB; SOM += NOMB;
int I; PROD *= NOMB;
int SOM; I++;
double PROD; }
printf("Nombre de printf("La somme des %d nombres est %d \n", N, SOM);
données : "); printf("Le produit des %d nombres est %f \n", N, PROD);
scanf("%d", &N); printf("La moyenne des %d nombres est %f \n", N,SOM/N);
SOM=0;
PROD=1; }
I=1;
48
Les types de base du langage C
La boucle « for »
Syntaxe :
for ([expression_1] ;[ expression_2] ;[ expression_3])
{
(Bloc d‟instructions)
}
exemple
// somme des 100 premiers entiers
int i,s;
s= 0
for(i=0;i<=100;i = i+1)
{
s = s+i; / / ou s+=i;
}
Les types de base du langage C
Exemple :
# include <stdio.h>
void main()
{ int i;
for (i=1;i<=5;i++)
{
printf("Bonjour ");
printf("%d fois \n",i);
}
Les types de base du langage C
TD 2
Les tableaux en langage C
Chapitre 3
Les tableaux
Les tableaux en langage C
Introduction :
Supposons qu'on veut conserver les notes d'une classe de
30 étudiants pour extraire quelques informations. Par
exemple : calcul du nombre d'étudiants ayant une note
supérieure à 10
Le seul moyen dont nous disposons actuellement consiste
à déclarer 30 variables, par exemple N1, …, N30. Après
30 instructions lire, on doit écrire 30 instructions Si pour
faire le calcul
Les tableaux en langage C
Définition:
Un tableau est un ensemble d'éléments de même
type désignés par un identificateur unique
Une variable entière nommée indice permet
d'indiquer la position d'un élément donné au sein
du tableau et de déterminer sa valeur
Les tableaux en langage C
Déclaration algorithmique:
La déclaration d'un tableau s'effectue en précisant le type de ses
éléments et sa dimension (le nombre de ses éléments)
Syntaxe:
variable tableau identificateur[dimension] : type
Exemple :
variable tableau notes[30] : réel
On peut définir des tableaux de tous types : tableaux d'entiers, de
réels, de caractères, de booléens, de chaînes de caractères, …
Les tableaux en langage C
Déclaration En C:
Un tableau est un ensemble d'éléments de même type désignés par un
identificateur unique
Une variable entière nommée indice permet d'indiquer la position d'un élément
donné au sein du tableau et de déterminer sa valeur
La déclaration d'un tableau s'effectue en précisant le type de ses éléments et sa
dimension (le nombre de ses éléments)
Syntaxe: type identificateur[dimension] ;
Exemple : float notes[30] ;
On peut définir des tableaux de tous types : tableaux d'entiers, de réels, de
caractères, de chaînes de caractères, …
Les tableaux en langage C
remarques
L'accès à un élément du tableau se fait au moyen de l'indice.
Par exemple, notes[i] donne la valeur de l'élément i du
tableau notes
Selon les langages, le premier indice du tableau est soit 0,
soit 1. Le plus souvent c'est 0 (c'est ce qu'on va adopter en
syntaxe). Dans ce cas, notes[i] désigne l'élément i+1 du
tableau notes
Un grand avantage des tableaux est qu'on peut traiter les
données qui y sont stockées de façon simple en utilisant des
boucles.
Les tableaux en langage C
Remplissage d’un tableau
Un tableau peut être rempli élément par élément à l’aide d’une série
d’affectations:
◦ T[0] = valeur 1
◦ T[1] = valeur 2
◦ ...
◦ T[n-1] = valeur n
Il est également possible de lire les éléments du tableau à partir du
clavier:
for(i=0;i<n;i++)
{
printf (‘’Entrer un entier : ‘’);
scanf (‘’%d ‘’,&T[i]);
}
Les tableaux en langage C
}
Les tableaux en langage C
Affichage d’un tableau
Affichage des éléments d’un tableau
for(i=0;i<n;i++)
{
printf (‘’la valeur de la case %d est:%d \n ‘’,i,T[i]);
}
Les tableaux en langage C
Affichage d’un tableau
Exemples 1
Écrire un programme qui :
– déclare et initialise le tableau de
variables entières.
– pour chaque case du tableau
affiche le contenu de la case
Les tableaux en langage C Exemples 1 Correction
#include <stdio.h> for(i = 0;i < 5;i ++)
void main() {
{ printf("tab[%d] = %d\n",i,tab[i]);
int tab[5];
int i; }
for(i = 0;i < 5;i ++) }
{
printf("entrer une valeure");
scanf("%d" , & tab[i] );
}
Les tableaux en langage C
Exemples 2
Ecrire un programme en C qui permet de
remplir un tableau par 10 notes.
Afficher le nombres d’élèves qui ont une
note supérieur ou égale à10.
Les tableaux en langage C
#include <stdio.h> for(i = 0;i < 10;i ++)
void main() {
{ if (tab[i]>=10)
int tab[50]; nb = nb +1 ;
int i, nb;
nb=0; }
for(i = 0;i < 10;i ++) printf("le nombre des valeures
{ supérieure à 10 est" "%d",nb);
printf("entrer une valeure") }
scanf("%d" , & tab[i] );
}
Les tableaux en langage C
Les tableaux en langage C
Exercice 1 :
Exercice 4 :
Ecrire un programme qui saisit un entier au clavier et qui recherche si
cet entier appartient au tableau (réponse de type oui/non).
Exercice 5 :
69
Solution(Exercice2)
#include <stdio.h> somme =0;
void main() for(i = 0;i < 5 ;i ++)
{ {
int tab[50]; somme= somme +tab[i];
int i, nb,somme;
nb=0; }
for(i = 0;i < 5 ;i++) printf("la somme est " "%d",somme);
{ }
printf("entrer une valeure");
scanf("%d" , & tab[i] );
}
70
Solution(Exercice3)
#include <stdio.h> printf("entrer une valeure");
void main() scanf("%d" , & tab[i] );
{ }
int tab[50]; for(i = 0;i < 5 ;i++)
int i, nb,x; {
nb=0; tab[i] =tab[i]+x;
printf("entrer la valeur X"); printf("tab[%d] = %d\n",i,tab[i]);
scanf("%d" , & x );
for(i = 0;i < 5 ;i++) }
{ }
71
Solution(Exercice4)
void main() if (tab[i]== x)
{ {
int tab[50]; tr= 1;
int i, nb,x,j; j=i;
nb=0; }
int tr; }
printf("entrer la valeur chercher"); if (tr==1)
scanf("%d" , & x ); {
for(i = 0;i < 5 ;i++) printf("la valeur existe dans la
{ position" "%d",j);
printf("entrer une valeure"); }
scanf("%d" , & tab[i] ); else
} {
tr=0; printf("la valeur non existe");
for(i = 0;i < 5 ;i++) }
{ }
72
Solution(Exercice5)
void main() nb=0; if (tr==1)
{ tr=0; {
int tab[50]; for(i = 0;i < 5 ;i++) printf("la valeur existe dans la premiere position"
int i, nb,x,p,d; { "%d\n",p);
nb=0; if (tab[i]== x) printf("la valeur existe dans la derniere position"
int tr; { "%d\n",d);
printf("entrer la valeur tr= 1; printf("le nombre d'apparition" "%d",nb);
chercher"); p=i; }
scanf("%d" , & x ); break; else
for(i = 0;i < 5 ;i++) } {
{ } printf("la valeur non existe");
printf("entrer une valeure"); for(i = 0;i < 5 ;i++) }
scanf("%d" , & tab[i] ); { }
} if (tab[i]== x)
{
tr= 1;
d=i;
nb=nb+1;;
}
}
73
Les fonctions
Les fonctions
Exemples 2
Les fonctions
Exemples 2
Les fonctions
Exemples 2
Les fonctions
Exemples 2
Les fonctions
Exemples 2
Les tableaux en langage C
Exemples 2
Les tableaux en langage C
Exemples 2
Les tableaux en langage C
Exemples 2
Les tableaux en langage C
Exemples 2
Les tableaux en langage C
Exemples 2
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <stdio.h>
main()
{
int A, B, C, AIDE;
printf("Introduisez trois nombres (A, B, C)");
scanf("%d %d %d", &A, &B, &C);
AIDE=A;
A=C;
C=B;
B=AIDE;
printf("A = %d B = %d C = %d ", A, B, C);
117
#include <stdio.h>
main()
{
int A, B;
printf("Introduisez deux nombres entiers : ");
scanf("%d %d", &A, &B);
printf("Division entiere : %d\n", A/B);
printf("Reste : %d\n", A%B);
}
#include <stdio.h>
main()
{ int PNET, TVA;
double PTTC;
printf("Entrez le prix net de l'article : ");
scanf("%d", &PNET);
printf("Entrez le taux de la TVA (en %) : ");
scanf("%d", &TVA);
PTTC = PNET+(PNET*TVA)/100;
printf("Le prix TTC est %.2lf DHS\n",PTTC);
}
119