0% ont trouvé ce document utile (0 vote)
13 vues28 pages

Introduction à la programmation en C

Transféré par

mbakevin5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues28 pages

Introduction à la programmation en C

Transféré par

mbakevin5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

11- Programmer en C

Introduction au langage C
Objectifs pédagogiques :
Installer un compilateur C ;
Écrire la structure d’un programme C ;
Inclure les bibliothèques stdio.h, stlib.h, math.h et conio.h ;
Utiliser les fonctions d’entrée/sortie classiques (scanf, printf, get,) ;
P
R Situation problème :
O Votre ami souhaite utiliser l’ordinateur pour exécuter ses algorithmes. Pour
G cela, votre petit frère lui propose la traduction de ces algorithmes en langage C avant
R de les exécutés. Ne connaissant rien sur ce langage, il fait donc appel à vous dans le
A but de l’expliquer quelques notions sur langage C.
M
M Consignes :
E 1. Définir langage de programmation
R 2. A part le langage C, quel autre langage de programmation connaissez -vous ?
3. Comment appelle-t-on un algorithme déjà traduit en langage de programmation ?
E 4. Comment appelle-t-on l’application qui permet d’exécuter un programme sur un
N ordinateur ?
5. Donner la structure du programme écrit en langage C.
C 6. Donner le rôle des bibliothèques en langage C. Puis énumérer quelques exemples.
7. Donner une fonction utilisée en langage C pour :
- Afficher un message
- Lire une variable.

I. DÉFINITION :
Programmation : c’est la traduction d’un algorithme en un langage de
programmation.
Langage de programmation : ensemble des mots et symboles permettant
d’écrire un programme.

138 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C
Programme : Suite d’instructions écrite dans un langage de programmation
quelconque et permettant de réaliser une ou plusieurs tâches.

II. INSTALLATION D’UN COMPILATEUR


Un compilateur : est une application qui transforme le code source d’un
programme en un fichier binaire exécutable par la machine.
Exemple de compilateur : GNU Assembler, Turbo Pascal, Turbo C, GNU Pascal,
Delphi, javac, GCJ (Gnu Compiler for Java), Jikes, Visual Basic, FreeBasic….
NB : chaque langage de programmation a son compilateur approprié. Par exemple P
Turbo Pascal, Delphi pour le langage Pascal et Javac , GCJ pour le langage Java. R
Pour écrire des programmes, il est nécessaire d’installer différents outils. Le O
premier et le plus important est l’installation d’un compilateur. G
Certains compilateurs sont déjà disponibles sur plusieurs SE, alors que R
d’autres sont spécifiques d’un système. Pour le plus connus sur Desktop : GCC (pour A
Windows, Android, Linux), Microsoft Visual Studio (MSVC). M
D’autres compilateurs sont intégrés dans les environnements de M
développement (IDE). Il suffit de les cocher lors de l’installation de ces IDE. E
Exemples des IDE: Code:: Blocks, Visual Studio, Qt Creator, Dev C++, Dev Pascal,
R
Eclipse…
E
III. STRUCTURE GÉNÉRALE D’UN PROGRAMME C N
Définition :
Une expression : est une suite de composants élémentaires syntaxiquement C
correcte. Elle est toujours suivie d’un point-virgule (;)
En C on n'a pas une structure syntaxique englobant tout, comme la
construction « Algorithme ... Fin. ». Un programme n'est qu'une collection de
fonctions assortie d'un ensemble de variables globales. Ainsi un programme C est
structuré comme suit :

Groupe WhatsApp « Les grandprofs Info »


139
11- Programmer en C
[Directives au pré processe ur]
[Déclaratio ns de v ariables extern es]
[Fonctions seconda ires]

int main ()
{
Déclarati ons de variable s inter nes
instructi ons
}

La ligne : int main() se nomme un "en-tête". Elle précise que ce qui sera
décrit à sa suite est en fait le ''programme principal". Elle peut avoir des paramètres
P formels.
R Le programme (principal) proprement dit est constitué des variables internes
O et des instructions et vient à la suite de cet en-tête. Il est délimité par les accolades
G "{" et "}".
R
A Exemple de programme C affichant "Bonjour".
M
M
E
R

E ) ;
N

C La première ligne de notre programme : #include <stdio.h> est en fait un


peu particulière. Il s'agit d’une "directive" qui est prise en compte avant la traduction
(compilation) du programme.
Ces directives, contrairement au reste du programme, doivent être écrites à
raison d'une par ligne et elles doivent obligatoirement commencer en début de ligne.
Leur emplacement au sein du programme n'est soumis à aucune contrainte (mais une
directive ne s'applique qu'à la partie du programme qui lui succède). D'une manière
générale, il est préférable de les placer au début.
La directive demande en fait d'introduire (avant compilation) des
instructions (en langage C) situées dans le fichier stdio.h. Notez qu'un même fichier

140 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C
en-tête contient des déclarations relatives à plusieurs fonctions. En général, il est
indispensable d'incorporer stdio.h.

Quelques bibliothèques (ou directives de préprocesseur) utilisés en langage C sont :


Bibliothèques Rôle
<stdio.h> Fournit la capacités centrales d’entrées/sorties
<math.h> Pour calculer des fonctions mathématiques
<stdlib.h> Pour exécuter les opérations de conversion, l’allocation des
mémoires, le contrôle de processus, le tri, la recherche, … P
<string.h> Pour manipuler les chaines de caractères R
NB : cette liste des bibliothèques standard C n’est pas exhaustive. O
G
IV. NOTION DES VARIABLES ET OPERATEURS R
A
M
Variable
Une variable est un objet manipulé dans l’exécution d’un programme. Elle M
est caractérisée par son identificateur (nom), son type et parfois sa valeur (le cas de E
constante). R
Quelques types prédéfinis en langages C sont :
E
- int (entier naturel )
N
- Char (caractères)
- float , double (nombre à virgule) C
Une variable doit être déclarée avant son utilisation. En C, toute instruction
composé d’un spécificateur de type et d’une liste d’identificateurs séparés par ne
virgule est une déclaration. Ainsi en C, une variable est déclarée de la manière
suivante : type identificateur ;
Exemples : int a ; et char a ; sont de déclarations

Groupe WhatsApp « Les grandprofs Info »


141
11- Programmer en C
Operateur
Le tableau ci-dessous résume quelques operateurs utilisés en langage C
Operateurs Symboles Operateurs Symboles
Affectation = égal ==
Reste de la
% diffèrent !=
division(modulo)
Multiplication * ET logique &&
Inférieur ou égal <= OU logique ||
P
R V. LES ENTRÉES/SORTIES EN C
O Durant l’exécution d’un programme, le processeur, qui est le cerveau de
G l’ordinateur, a besoin de communiquer avec le reste du matériel. Il doit en effet
R recevoir des informations pour réaliser des actions et il doit aussi en transmettre. Ces
A échanges d’informations sont les entrées et les sorties (ou input / output en anglais).
M
M Les sorties
E Le tableau ci-dessous décrit les trois fonctions d’affichage de données
R Fonctions Rôle
Printf() Pour écrire une chaîne de caractères formatée
E puts () Pour écrire une chaîne de caractères toute simple
N Putchar() Pour écrire un caractère
La syntaxe de l’utilisation de ces fonctions est :
C
fonction ("texte_ a_afficher… ") ;
Exemples :

La fonction Printf permet non seulement d'afficher des chaînes de caractères


simples, mais également la valeur d'une variable passée en paramètre. Pour ce faire, il
142 Groupe WhatsApp « Les grandprofs Info »
11- Programmer en C
suffit d’utiliser un indicateur de conversion : il s'agit du caractère spécial % suivi
d'une lettre qui varie en fonction du type de la variable.
Le tableau ci-dessous donne quelques indicateurs de conversion :

P
R
O
G
R
A
M
M
E
R
Après avoir inscrit un indicateur de conversion dans la chaîne de caractère
(dans les guillemets ""), il faut indiquer de quelle variable il faut afficher la valeur. Il E
suffit de rajouter une virgule après les ces derniers, suivis du nom de la variable, N
comme ceci :
C
printf ("% [lettre]", variable_ a_afficher);

Exemples :

Groupe WhatsApp « Les grandprofs Info »


143
11- Programmer en C
Remarque : Plutôt qu'appeler plusieurs fois la fonction printf pour écrire du texte,
on peut ne l'appeler qu'une fois et écrire plusieurs lignes. Pour cela, on utilise le signe
\ à chaque fin de ligne.

Les entrées
Pour récupérer les valeurs saisies par l’utilisateur, nous utilisons les fonctions
suivantes : scanf () et get ()
La syntaxe de l’utilisation de la fonction Scanf() est :
P scanf("%[lettre]", &variable qui_contiendra_notre_valeur);
R
NB : La fonction scanf a besoin de connaitre l’emplacement en mémoire de nos
O
variables afin de les modifier. Afin d’effectuer cette opération, on utilise le symbole
G
&. Donc, si vous oubliez le &, le programme plantera quand vous le lancerez, car
R
vous tenterez d’accéder à une adresse mémoire inexistante !
A
Exemple :
M
M
E
R

E
N

144 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

EXERCICES
Exercice 1
Vous souhaitez écrire un programme C qui demande à l’utilisateur de saisir un
nombre puis affiche ce nombre.
1. Donner la structure d’un programme C
2. Quelles sont les bibliothèques standard que vous avez besoin dans votre
programme C
3. Écrire l’algorithme qui permet de réaliser cette tâche. P
4. Traduire votre algorithme en langage C R
O
G
R
Exercice 2 A
1. Définir le terme suivant : compilateur, programme, programmation, langage de M
programmation. M
2. Citer deux exemples de compilateur C E
3. Donner deux exemples de langage de programmation. R
4. Donner le rôle des bibliothèques standard suivant : <stidio.h>, <stdlib.h> et
<math.h> E
5. Donner 03 exemples des fonctions C utilisées pour afficher les textes à l’écran. N
6. Donner deux exemples des fonctions C qui permet la récupération des données
de l’utilisateur. C
7. Donner la différence entre les fonctions puts() et printf()
8. Quel rôle joue le symbole & dans la récupération de la valeur d’une variable ?

Exercice 3
Écrire un programme C qui affiche « bonjour » suivi du nom de l’utilisateur.

Groupe WhatsApp « Les grandprofs Info »


145
11- Programmer en C
Exercice 4
Votre petit frère qui apprend la programmation vient d’écrire le programme suivant :

1 #include <math.h>
2 int main() {
3 int a ;
4 put("entrer un nombre");
5 scanf(%d,a) ;
6 printf("le nombre saisi est:",a);
P 7 return 0 ;
R 8 )
O
Travail demandé :
G
Ce programme est -il correct ? Si non relevez toutes les lignes incorrectes puis
R
corriger.
A
M
M
E
R

E
N

146 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

Les structures de contrôle en C

Objectifs pédagogiques :
Écrire la syntaxe des structures for, while et do…while en C;
Utiliser l’operateur conditionnelle (?) et virgule ;

Situation problème : P
Votre amie souhaite écrire un programme C qui calcule et affiche la table deR
multiplication d’un nombre positif saisi par l’utilisateur. Elle souhaite donc que ceO
programme affiche à chaque fois un message à l’utilisateur s’il saisi un nombre G
négatif. Rencontrant des problèmes sur l’écriture de ce programme, elle donc appel R
à vous dans le but de l’aider. A
Consignes : M
1. Qu’entend-on par structure de contrôle ? M
2. Énumérer les différentes structures de contrôle utilisées en programmation. E
3. Quelle structure utilise-t-on dans le cas où la condition se traite en deux cas R
possibles ?
4. Quelle structure utilise-t-on dans chacun des cas suivants : E
- La répétition connue d’un bloc instructions d’un programme ? N
- La répétition non connue d’un bloc instructions d’un programme ?
C

En programmation informatique, une structure de contrôle est une


instruction particulière d'un langage de programmation impératif pouvant dévier le
flot de contrôle du programme la contenant lorsqu'elle est exécutée. Le langage C
propose plusieurs structures de contrôle différentes, qui nous permettent de nous
adapter à tous les cas possibles. Il permet d’utiliser les conditions (structures
alternatives), des boucles (structures itératives).

Groupe WhatsApp « Les grandprofs Info »


147
11- Programmer en C

Structure alternative (if...else...)


Il s’agit de tester une condition et d’effectuer une série d’instructions si la
condition est vraie et si elle est fausse, effectuer une autre série d’instructions.
Il existe deux formes de structures conditionnelles :

La forme réduite
if (condition) {

P bloc instructions 1
R }
O
G Exemple : le programme C qui prend en entrée un nombre puis affiche le
R message « positif » si c’est ce nombre est supérieur à 0 est :
A #include <Stdio.h>
M int main (void) {
M int n ;
E printf ("saisir un nombre");
R scanf("%d",&n);
if (n>0) {
printf("Positif");
E
}
N
Return 0;
}
C

La forme complète
if (condition) {

bloc instructions 1

} else {

bloc instructions 2

148 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C
Exemple : le programme C qui permet d’étudier la parité d’un nombre saisi par
l’utilisateur est :

#include <Stdio.h>
int main (void) {
int n ;
printf ("saisir un nombre");
scanf("%d",&n);
if (n%2==0) {
printf("%d",n,"est paire");
P
} else { R
printf("%d",n,"est impaire"); O
} G
Return 0; R
} A
M
L’opérateurs conditionnel ?
M
L’opérateur conditionnel ? est un opérateur ternaire. Sa syntaxe est la suivante :
condition ? expression 1 : expression 2 ; E
Cette expression est égale à expression 1 si condition est satisfaite, et à expression 2 R
sinon.
Exemple : le programme C qui calcule la valeur absolue d’un nombre est : E
N
#include <Stdio.h>
int main (void) { C
int x, abs;
abs=((x>=0)? x : -x) ;
printf(" abs= %d",abs);
}
Return 0;
}

Groupe WhatsApp « Les grandprofs Info »


149
11- Programmer en C
L’opérateur virgule
Une expression peut être constitué d’une suite d’expressions séparées par des
virgules : expression 1, expression 2 , …… , expression n ;
Cette expression est alors évaluée de gauche à droite. Sa valeur sera la valeur

de l’expression de droite. Par exemple, le programme

#include <Stdio.h>
P int main (void) {
R int a, b ;
O b=((a=3),(a+2)) ;
G printf(" b= %d",b);
}
R
Return 0;
A
}
M
M retournera 5 à la sortie.
E NB : la virgule séparant les arguments d’une fonction ou les déclarations des variables
R n’est pas l’opérateur virgule.

E
Structures itératives
N
Toutes les structures itératives répètent l’exécution de traitement(s). Deux
cas sont cependant à envisager, selon que :
C
- Le nombre de répétitions est connu à l’avance : c’est le cas des boucles itératives.
- Le nombre de répétitions n’est pas connu ou est variable : c’est le cas des boucles
conditionnelles.

Boucle for
Cette structure est une boucle itérative ; elle consiste à répéter un certain
traitement un nombre de fois fixé à l’avance. Cette structure est donnée par :
for (initialisation ; condition ;incrémentation ) {

bloc instructions;

}
150 Groupe WhatsApp « Les grandprofs Info »
11- Programmer en C
Exemple : Affichage de nombres plus petit ou égal à 5.

for (i=0 ;i<=5 ; i++ ) {

printf(" i=%d",i);

Boucle while
Parfois, pour réaliser une tâche, on doit effectuer plusieurs fois les mêmes
P
instructions, sans que le nombre de fois soit déterminé à l’avance. On utilise alors
R
une boucle conditionnelle. Dans cette structure, le même traitement est effectué tant
O
qu’une condition reste valide ; la boucle s’arrête quand celle-ci n’est plus remplie.
G
Cette structure répétitive est ainsi formulée :
R
While (condition vraie) { A
M
bloc instructions; M
} E
R
Exemple : affichage des nombres plus petit que 5
i=0 ; E
While (i < 5) {
N
printf("i=%d",i);
i++; C
}

Boucle do…while
Une variante de structure répétitive avec boucle conditionnelle consiste à
répéter un traitement jusqu’à ce qu’une certaine condition soit vérifiée. Dans ce cas,
la boucle est exécutée au moins une fois, après quoi on teste la condition. On la
traduit par l’instruction :

Groupe WhatsApp « Les grandprofs Info »


151
11- Programmer en C

do {

bloc instructions;

} While (condition);

Exemple : affichage des nombres plus petit que 5


i=0;
P do {
R printf("i=%d",i) ;
O i++;
G } While (i<5) ;
R
A
M
M
E
R

E
N

152 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

EXERCICES
Exercice 1
Soit le programme suivant :

P
R
O
G
R
A
M
Ecrire un programme C réalisant exactement la même chose, en utilisant :
M
a) Une instruction while;
E
b) Une instruction do ... while
R
Exercice 2
E
Écrire un programme C pour calculer la moyenne de notes fournies au clavier. Le
nombre de notes n’est pas connu à priori et l’utilisateur peut en fournir autant qu’il N
le désire. Pour signaler qu’il a terminé on convient de fournir une note négative non
comptée dans la moyenne. C

Exercice 3
Écrire un programme C pour Déterminer si un nombre entier fourni en donnée est
premier ou non

Exercice 4
Écrire un programme qui affiche la table de multiplication des nombres de 1 à 10

Groupe WhatsApp « Les grandprofs Info »


153
11- Programmer en C

Exercice 5
Soit le programme C ci-dessous :
#include <Stdio.h>
int main (void) {
int a,b,m;
m =((a>b)? a : b) ;
printf("%d",m);
}
P
Return 0;
R
}
O
G
a. Que fait ce programme ?
R
b. Traduire ce programme en utilisant la structure alternative.
A
M
M
E
R

E
N

154 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

Les tableaux en C
Objectif pédagogique :
Déclarer un tableau en C ;

Situation problème :
Votre camarade Ali souhaite écrit un programme C qui calculera la moyenne
arithmétique de 50 nombres. Votre petit frère lui conseil d’utiliser le tableau dans P
son programme pour stocker les 50 nombres. Ne connaissant pas comment utiliser R
le tableau en C, il fait appel à vous dans le but de l’aider. O
Consignes : G
1. Définir tableau R
2. Donner l’intérêt de l’utilisation d’un tableau A
3. Donner les caractéristiques d’un tableau M
4. Donner la syntaxe de déclaration d’un tableau en langage C M
5. Expliquer comment, on remplit un tableau avec ses éléments en C E
6. Expliquer comment on accède aux différents éléments d’un tableau en C. R

E
I. DÉCLARATION D’UN TABLEAU N
Un tableau est un ensemble fini d’éléments de même type, stockés en
mémoire à des adresses contiguës. C
La déclaration d’un tableau à une dimension se fait de la façon suivante :
type nom-du-tableau[nombre-éléments] ;
où nombre-éléments est une expression constante entière positive. Par exemple : int
tab [10] ; indique que tab est un tableau de 10 éléments de type int.
Pour plus de clarté, il est nécessaire de donner un nom à la constante
nombre-éléments par une directive au préprocesseur, par exemple
# define nombre-éléments 10

De façon similaire, on peut déclarer un tableau à plusieurs dimensions. Par


exemple pour un tableau à deux dimensions :

Groupe WhatsApp « Les grandprofs Info »


155
11- Programmer en C
type nom-du-tableau[nombre-lignes] [ nombre-colonnes] ;
Exemple : int tab [10][8] est un tableau à deux dimensions de 10 lignes et de 8
colonnes.

II. AJOUT DES ÉLÉMENTS D’UN TABLEAU


Pour remplir les différents éléments du tableau, on pourra affecter à chaque
case de ce tableau une valeur.

P Exemple :
R int tab[2] ;
O tab[0]=10 ; 10 9
G
tab[1]= 9 ;
R
A
M Évidemment, à ce rythme-là, l’affectation est longue, surtout si votre tableau
M est de grande taille. C’est pourquoi on utilise la boucle itérative for.
E On peut initialiser le tableau lors de sa création par une liste de constantes
R de la façon suivante :
type nom-du-tableau[N ]={ constante-1,…,constante-N} ;
E Par exemple, on peut écrire :
N # define N 4
int tab[N]={1,2,3,4} ;
C 1 2 3 4

III. ACCÈS AUX ÉLÉMENTS D’UN TABLEAU


On accède à un élément du tableau en lui appliquant l’operateur []. Les
éléments d’un tableau sont toujours numérotés de 0 à nombre-éléments-1
Par exemple l’instruction printf("%d",tab[2]) ; affiche le troisième élément du
tableau (contenu du tableau à l’indice i=2).
On pourra afficher tous les éléments du tableau en utilisant la boucle for. Le
programme ci-dessous réalise la tâche.

156 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

#include <Stdio.h>
#define N 10
int main () {
int tab[N];
int i;
……………
for (i=0;i<N;i++) {
printf("tab[%d]=%d\n",I,tab[i]);
}
Return 0;
P
R
}
O
G
R
A
M
M
E
R

E
N

Groupe WhatsApp « Les grandprofs Info »


157
11- Programmer en C

EXERCICES
Exercice 1
Écrire un programme C qui calcule la moyenne de 5 nombres saisi par l’utilisateur.

Exercice 2
1. Définir tableau puis donner 03 éléments qui caractérisent un tableau.
2. Quel inconvénient présente le remplissage d’un tableau en utilisant l’affectation ?
P Quelle autre méthode proposeriez-vous pour résoudre ce problème ?
R
O Exercice 3
G 1. Écrire un programme C qui permet de rechercher le plus petit élément d’un
R tableau à 20 éléments.
A 2. Écrire un programme C qui permet de rechercher le nom d’un candidat parmi les
M noms de 50 candidats admis à un concours.
M 3. Écrire un programme C qui permet de faire la somme de 10 éléments d’un
E tableau.
R 4. Écrire un programme C permettant de créer les tableaux ci-dessous :

E Tableau 1 :
N 12 13 14 15 222
Tableau 2 :
C 2 3 4 5 22 1 2 1 2 3
11 22 11 22 3 4 12 14 14 6

158 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

Les sous-programmes en C
Objectif pédagogique :
Déclarer et appeler un sous-programme en C ;

Situation problème :
Votre ami Isaac a utilisé le langage C pour créer une calculatrice qui effectue
les opérations d’addition, de soustraction, de division et de multiplication. Il constate P
que le code source de son programme est touffu et volumineux ce qui lui rend R
difficile la compréhension de son code. Il cherche donc un moyen très efficace pour O
mieux structurer son programme. Pour cela il fait appel à vous dans le but de l’aider. G
Consignes : R
1. Que doit faire votre ami Isaac pour organiser et mieux comprendre son code ? A
2. Comment appelle-t-on le sous-programme en C ? M
3. Donner la syntaxe de définition d’une fonction en C M
4. Comment fait-on appel à une fonction en langage C ? E
R
I. DÉFINITION D’UNE FONCTION
L’écriture et la compréhension d’un programme peut s’avérer difficile E
lorsque le nombre d’instructions devient trop important. A ce moment, le N
programme devient lourd et son exécution par l’ordinateur devient beaucoup plus
lente. Pour pallier ce problème, on a mis sur pied la notion de sous-programme C
informatique dont l’objectif principal est de scinder un programme complexe et
touffu en plusieurs sous-programmes plus simples et plus efficaces. En C, les sous
programmes sont appelés les fonctions.
A part la fonction principale main() qui est obligatoire, les autres fonctions
d’un programme C sont dites fonctions secondaires.
Une fonction en C se définit de la manière suivante :
type nom-fonction (type-1 argument-1,…,type-n argument-n)
{
[ déclarations des variables locales]
listes d’instructions

Groupe WhatsApp « Les grandprofs Info »


159
11- Programmer en C
}
La première ligne de cette définition est l’en-tête de la fonction. Dans cet
en-tête, type désigne le type de la fonction, c’est-à dire le type de la valeur qu’elle
retourne.
NB :
Contrairement à d’autres langage de programmation, en C, il n’y a pas la notion
de procédures et de sous-programme. Une fonction qui ne renvoie pas de valeur est
une fonction dont le type est spécifié par le mot clé void. Les arguments de la
fonction sont appelés paramètres formels, par opposition aux paramètres effectifs.
P
Si la fonction ne possède pas de paramètres, on remplace la liste de paramètres
R
formels par le mot clé void.
O
Le corps de la fonction débute par des déclarations de variables locales à cette
G
fonction. Il se termine par l’instruction de retour à la fonction appelante, return, dont
R
la syntaxe est : return(expression) ;
A
La valeur expression est la valeur que retourne la fonction. Son type doit être de le
M
même que celui qui a été spécifié dans l’entête de la fonction. Si la fonction ne
M
retourne pas de valeur(fonction de type void), sa définition s’achève par return ;
E
Exemples :
R
Une fonction calculant le produit de deux nombres est :
E int produit (int a, int b) {
N int p ;
p=a*b;
C return p ;
}

Une fonction qui imprime les N éléments d’un tableau est :

void imprime-tab (int *tab, int N) {


int i ;
for(i=0; i<N; i++){
printf("%d \t ", tab[i]);
}
return ;
}

160 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C
II. APPEL D’UNE FONCTION
L’appel d’une fonction se fait par l’expression
nom-fonction (paramètre-1,…,paramètre -n)
NB : L’ordre et le type des paramètres effectifs doivent concorder avec les ceux
donnés dans l’en-tête de la fonction.

III. DÉCLARATION D’UNE FONCTION


La déclaration d’une fonction en langage C peut être faite soit avant, soit
après la fonction principale main(). Toutefois, il est indispensable que le compilateur P
connaisse la fonction au moment ou elle celle-ci est appelée. Si une fonction est R
définie après son premier appel (en particulier si sa définition est placée après la O
fonction main), elle doit être impérativement déclarée au préalable. Une fonction G
secondaire est déclarée par son prototype, qui donne le type de la fonction et celui R
de ses paramètres, sous la forme : A
type nom-fonction(type-1,…,type-n ) ; M
Exemple : M
E
int produit (int , int) ; Déclaration de la fonction
R

int produit (int a , int b){ Définition de la fonction


E
return a*b;
N
}
C
int main() { Appel de la fonction
int c=2,d=5 ;

printf("%d\n",produit(c,d));
}

Groupe WhatsApp « Les grandprofs Info »


161
11- Programmer en C

IV. NOTION DE VARIABLE LOCALE ET GLOBALE


Définitions :
Une variable globale : est une variable déclarée en dehors de toute fonction.
Elle est connue d compilateur dans toute la portion de code qui suit sa déclaration.
Une variable locale : est une variable déclarée en l’intérieur d’une fonction
(ou d’un bloc d’instructions) du programme.
NB : Les variables locales n’ont en particulier aucun lien avec des variables globales
de même nom.
P
R
O
G
R
A
M
M
E
R

E
N

162 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C

EXERCICES
Exercice 1
On veut écrire un programme C qui calcule la moyenne de 50 nombres saisis par
l’utilisateur.
a. Écrire une fonction nommée Lecture qui permet de lire les 50 nombres puis les
stockent dans un tableau de taille 50.

b. Écrire une autre fonction nommée somme qui permet de sommer les 50 nombres P
stockés dans le tableau. R
c. Écrire une autre fonction nommée moyenne qui calcule la moyenne de ces 50 O
nombres. G
d. Écrire la fonction principale faisant appel à ces fonctions pour résoudre le R
problème posé. A
M
Exercice 2 M
1. Définir fonction E
2. Quel mot clef utilisé en C et qu’on place devant le nom de la fonction pour R
signifier qu’elle ne retourne pas une valeur ?
3. Donner la différence entre une variable globale et une variable locale. E
4. Écrire une fonction en C qui permet de calculer x n où x et n sont les nombres N
entiers.
5. Écrire une fonction en C qui permet de déterminer le type d’une personne selon C
son âge.
NB : mineur (si âge <= 14), adulte (si âge > 14)

Groupe WhatsApp « Les grandprofs Info »


163
11- Programmer en C

Exécution d’un programme C


Objectif pédagogique :
Tester un programme dans un compilateur

Situation problème :
Votre amie Claudine a écrit un programme qui calcule la somme des 10
P nombres en utilisant le langage C. Elle souhaite donc tester ce programme pour savoir
R s’il réalise vraiment la tâche demandée. Rencontrant des difficultés, elle fait appel à
O vous dans le but de l’aider.
G Consignes :
R 1. De quoi a-t-elle besoin pour tester son programme ?
A 2. Donner le rôle d’un compilateur.
M 3. Décrire les étapes qu’elle doit suivre pour résoudre son problème.
M
E I. TESTER UN PROGRAMME C EN UTILISANT LE COMPILATEUR GCC
R Le C est un langage compilé (par opposition aux langages interprétés). Cela
signifie qu’un programme C est décrit par un fichier texte, appelé fichier source. Ce
E fichier n’étant évidemment pas exécutable par le microprocesseur, il faut le traduire
N en langage machine. Cette opération est appelée la compilation et est effectuée par
un programme appelé compilateur. Elle se décompose en fait en 4 phases successives
C :
1. Le traitement par le préprocesseur : le fichier source est analysé par le
préprocesseur qui effectue des transformations purement textuelles (remplacement
de chaînes de caractères, inclusion d’autres fichiers source … ).
2. La compilation : la compilation proprement dite traduit le fichier généré par le
préprocesseur en assembleur.
3. L’assemblage : cette opération transforme le code assembleur en un fichier binaire,
c’est-`a-dire en instructions directement compréhensibles par le processeur.
4. L’édition de liens : un programme est souvent séparé en plusieurs fichiers source,
pour des raisons de clarté mais aussi parce qu’il fait généralement appel à des librairies
des fonctions standard déjà écrites. Une fois chaque code source assemble, il faut

164 Groupe WhatsApp « Les grandprofs Info »


11- Programmer en C
donc lier entre eux les différents fichiers objets. L’édition de liens produit alors un
fichier dit exécutable.
Pour compiler votre code source C en utilisant le compilateur gcc , on utilise
la commande suivante : gcc [options] fichier.c [-llibrairies]
Par défaut, le fichier exécutable s’appelle [Link]. Le nom de l’exécutable peut
être modifié à l’aide de l’option -o nom-de-fichier
fichier.c est le nom de votre programme C que vous avez tapé dans votre éditeur
texte. Un programme C est toujours enregistré sous l’extension .c
Les éventuelles librairies sont déclarées par la chaîne -llibrairie . Dans ce cas,
P
le système recherche le fichier liblibrairie.a dans le répertoire contenant les librairies
R
pré-compilées (généralement /usr/lib/). Par exemple, pour lier le programme avec
O
la librairie mathématique, on spécifie -lm. Le fichier objet correspondant est libm.a.
G
Lorsque les librairies pré-compilées ne se trouvent pas dans le répertoire
R
usuel, on spécifie leur chemin d’accès par l’option -L
A
Exemple : la commande gcc -o programme1 programme1.c compile le code source
M
du programme nommé programme1.c pour produire un fichier exécutable nommé
M
programme1
E
Après compilation de votre programme C, il faut donc ouvrir le fichier
R
exécutable pour tester votre programme.

II. T EST ER UN PROGRAMME C EN UTILISANT UN IDE : CAS DE CODE::BLOCKS E


L’exécution d’un programme écrit en langage C se fait traditionnellement en N
utilisant un compilateur (gcc). Les fichiers sources sont écrits en utilisant un éditeur
de texte et les programmes seront compilés depuis un terminal ou une invite de C
commande.
Pour faciliter la compilation des programmes C, l’on a mis sur pied des
outils adaptés appelés environnements de développement integré (IDE : Integrated
development environment).
Un environnement de développement intégré permet de prendre en charge
les différentes opérations de compilation : il regroupe donc l'édition de texte (créer
le code source) et les outils de compilation (activation du compilateur gcc par
exemple) directement depuis le même logiciel. Il évite ainsi le lancement d'un
terminal ou d'une invite de commande pour lancer les opérations de compilation.

Groupe WhatsApp « Les grandprofs Info »


165

Vous aimerez peut-être aussi