Vous êtes sur la page 1sur 52

15/10/2021

‫ﻛﻠﻴﺔ ﺍﻟﻌﻠﻮﻡ ﻭﺍﻟﺘﻘﻨﻴﺎﺕ ﺑﻄﻨﺠﺔ‬


Faculté des Sciences et Techniques de Tanger
Département Génie Informatique

Module : Algorithmique & Programmation 2


Niveau Tronc Commun GEGM

Cours préparé et enseigné par :


 Pr. Sanae KHALI ISSA

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Déroulement du cours

• Introduction Générale
• Les instructions de base du langage C
• Les instructions alternatives
• Les instructions répétitives
• Les tableaux
• Les chaines de caractères
• Les fonctions et les procédures
• La récursivité

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

1
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Introduction générale

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Schéma de résolution d’un problème

Problème Algorithme Programme Solution

Analyse
1. Identification des données
2. Détermination des traitements

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

2
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Schéma de résolution d’un problème

Problème Algorithme Programme Solution

Algorithme Somme ;
Variables x1, x2, S : réel ;
Début
Ecrire (‘Donner les deux valeurs : ‘);
Lire (x1,x2);
S ← x1+x2;
Ecrire (‘La somme des deux valeurs est : ‘ , S) ;
Fin

Pseudocode

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Schéma de résolution d’un problème

Problème Algorithme Programme Solution

Traduction
Utilisation d’un langage de
programmation tels que :
• Langage pascal
• Langage C
• Langage Python
• Langage C++
• Langage java
• Etc.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

3
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Schéma de résolution d’un problème

Problème Algorithme Programme Solution

#include <stdio.h>
main()
{
float x1,x2,S;
printf("Donner les deux valeurs :");
scanf("%f %f", &x1, &x2);
S=x1+x2;
printf("la somme est : %f", S)
}

Code C

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Schéma de résolution d’un problème

Problème Algorithme Programme Solution

Compilation & Exécution

Utilisation d’un environnement


de développement tels que :
• Borland C++
• Dev C++
• NetBeans
• JavaCreator
• Etc.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

4
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Définition d’un programme

Un programme est une suite d’instructions écrites dans un code


bien précis appelé langage de programmation pouvant être
compilés ou exécutés pour donner un résultat bien déterminé.

Il existe plusieurs types de langages de programmation : Langage C,


Langage Python, Langage C++, Langage Java, Langage C#, Etc.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Un peu d’histoire

Conception d’un langage structuré par Mise en point d’une définition explicite et
Dennis M. Ritchie afin de développer indépendante de la machine pour le
une version portable du système langage C sous le nom « Standard
d’exploitation UNIX (Laboratoires de Bell) AINSI-C»
1972 1983

1978 1988
Publication de la définition classique Apparition de la 2eme
du langage C sous le nom « Standard version du livre « The C
K & R-C » par Brain W. programming
Kernighan et Dennis M. Ritchie. language »

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

5
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Avantages du langage C

Extensible
Universel ( Portable sur
Modulaire Langage Exécution (Possibilité
Applications différents Indépendant
(décomposable Prés de la Rapide et d’ajouter
dans différents systèmes de la machine
en modules ) machine Efficace d’autres
domaines) d’exploitation
fonctions)

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les instructions de base du


Langage C

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

6
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Structure générale d’un programme en C

Exercice 1

Ecrire un algorithme qui calcule et affiche la moyenne d’un


étudiant pour un module donné.
 Chaque étudiant a deux notes CC1, CC2
 Chaque note a son propre coefficient CF1 pour la
première note et CF2 pour la deuxième note.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Structure générale d’un programme en C

# include <stdio.h>
# include <math.h> Directives du préprocesseur
# include <string.h> Liste des bibliothèques
….
main ()
{
Déclaration des données ;
instruction 1; // commentaires
La fonction principale main()
instruction 2;

instruction n;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

7
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Structure générale d’un programme en C

Exemple

# include <stdio.h>
main()
{
float CC1, CC2, M; // M représente la moyenne à calculer
int CF1, CF2;
printf("Donner les deux notes :");
scanf("%f %f", &CC1, &CC2);
printf("Donner les deux coefficients :");
scanf("%d %d", &CF1, &CF2);
M= (CC1*CF1+CC2*CF2)/(CF1+CF2);
printf("la moyenne est : %f ", M);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Notion d’une donnée

 Une donnée est un emplacement en


mémoire dans lequel on peut mettre une X - 1,3
valeur.
 Une donnée est identifiée par son adresse N 12
en mémoire et son identificateur. a D
 Pour déclarer une donnée, il faut spécifier
son identificateur, sa nature et son type L M

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

8
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Notion d’une donnée

Identificateur d’une donnée

L’identificateur d’une donnée peut être formé par des lettres


et des chiffres et des lignes de soulignement ( _ ) dont le 1er caractère
est obligatoirement une lettre.

Exemple :

N1, Nombre_1, Somme, etc.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Notion d’une donnée

Adresse d’une donnée

L’adresse d’une donnée représente son adresse dans la


mémoire. Elle est représentée par le symbole :
& Identificateur_variable.

Exemple :

&N1 : adresse de la variable N1


&Nombre_1 : adresse de la variable Nombre_1

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

9
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Notion d’une donnée

Types des données

Types Taille en Format de


Signification Plage des valeurs
prédéfinis mémoire type

char caractère 1 octet -128 à 127 %c

int Nombre entier 2 octets -32768 à 32767 %d ou %i

3,4 *10 -38 à 3,4 *10


float Nombre réel 4 octets 38 %f

Nombre réel avec 1.7 *10 - 308


double 8 octets %f ou %e
double précision à 1.7 *10 308

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Notion d’une donnée

Nature des données

La nature d’une donnée peut être Variable ou Constante :

Type_Variable Iden_Var1, Iden_Var2, … ; Const Type_Constante


Ou bien Identificateur_Constante
Type_Variable Identificateur_Variable = = Valeur_Constante;
Valeur initiale;
Ex :
Ex :
Const float Pi = 3,14;
int N1;
float Nombre_1;
char L = ‘a’;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

10
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction d’écriture en C

Pour afficher un message :

printf ( ″ Texte a afficher ″ ) ;

Pour afficher la valeur d’une variable :

printf ( ″ format_Variable1 format_Variable2 … ″ ,


Id_Var1, Id_Var2, … ) ;

Exemple :

printf (" La moyenne est : " ) ;


printf ("%f ", M) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction de lecture en C

Pour demander l’attribution d’une valeur à une variable :

scanf ( ″ format_Variable1 format_Variable2 … ″ , Adr_Var1,


Adr_Var2, … ) ;

Exemple :

scanf ("%f ", &CC1) ;


scanf ("%f %f ", &CC2, &TP) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

11
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les opérateurs mathématiques

Opérateurs arithmétiques
+ Addition Opérateurs de comparaison
- Soustraction < inférieur à
* Multiplication <= inférieur ou égal à
/ division > supérieur à
% Reste de la division >= supérieur ou égal à

Opérateurs logiques == égal à


!= différent
&& ET logique
|| OU logique
! Négation logique

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les opérateurs mathématiques

Opérateurs d’affectation

Identificateur_Variable = Valeur simple ;


Ou bien
Identificateur_Variable = Expression arithmétique ;

Exemple :

M= (CC1*CF1+CC2*CF2)/(CF1+CF2);

NB :
Lorsque les types des deux opérandes sont différents il y’a conversion implicite
vers le type de la variable résultante.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

12
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les opérateurs mathématiques

Opérateur d’incrémentation (ajouter un à l’ancienne valeur)

identificateur_Variable ++ ;

Opérateur de décrémentation (soustraire un de l’ancienne valeur)

identificateur_Variable - - ;

Exemple :

A++ ; // Ajouter un à la valeur de A , équivalent à A=A+1;


B - - ; // Soustraire un de la valeur de B, équivalente à B=B-1;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les opérateurs mathématiques

Opérateurs d’assignations

Additionne les deux valeurs op1 et op2,


op1+= op2 op1=op1 +op2 le résultat est stocké dans op1
Soustrait les deux valeurs op1 et op2, le
op1-= op2 op1= op1 – op2 résultat est stocké dans op1

Multiplie les deux valeurs op1 et op2, le


op1*= op2 op1= op1*op2 résultat est stocké dans op1
Divise les deux valeurs op1 et op2, le
op1/= op2 op1= op1/op2 résultat est stocké dans op1

Exemple :

A+=2; // Ajouter 2 à A et stocker la nouvelle valeur dans A

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

13
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Série N1

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les instructions alternatives

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

14
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les instructions alternatives

Exercice 2

Ajouter à l’algorithme de l’exercice 1 une partie de comparaison :

 Si l’étudiant a une note supérieure ou égale à 10,


l’algorithme affichera le message « Module validé »
 Si l’étudiant a une note comprise entre 10 et 5 (5 est
inclus), l’algorithme affichera le message « Module à
rattraper »
 Si l’étudiant a une note inférieure strictement à 5,
l’algorithme affichera le message « Module non validé »

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction alternative simple

Syntaxe générale

if ( expression logique)
{ NB:
Instruction 1; La valeur d’une
Instruction 2; Instructions à exécuter
expression logique
… si l’expression logique
est soit 1 (dans le
Instruction n; est vraie
cas vrai), soit 0
} (dans le cas faux)

Exemple

if ( M >= 10)
printf ( ″ Module Validé ″ );

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

15
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction alternative complète

Syntaxe générale

if ( expression logique) Exemple


{
Instruction 1; à exécuter si
l’expression if ( M >= 10)

Instruction n; logique est vraie printf (″ Module validé ″);
} else
else printf (″ non validé ou à
{ rattraper ″ );
Instruction 1; à exécuter si
… l’expression
Instruction n; logique est fausse
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction alternative imbriquée

Syntaxe générale

if ( expression logique 1)
{
Instructions à exécuter si l’expression logique 1 est vraie
}
else
if (expression logique 2 )
{
Instructions à exécuter si l’expression logique 2 est vraie
}
else
{
Instructions à exécuter si l’expression logique 2 est fausse
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

16
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction alternative imbriquée

Exemple

if ( M >= 10)
printf (″ Module Valide ″);
else
if (M >= 5 )
printf (″ Module à rattraper ″ );
else
printf (″ Module non valide ″ );

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction à choix multiple

Exercice 3

Ecrire un algorithme qui demande à l’utilisateur de saisir un nombre


de 1 à 12 puis il affiche le mois qui correspond au nombre introduit.

L’algorithme traitera le cas où le nombre saisi n’appartient pas à


l’ensemble {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} en affichant un message
d’erreur.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

17
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction à choix multiple

Syntaxe générale

switch ( IdentificateurVariable)
{
case Valeur1 : Instructions à exécuter si IdentificateurVariable = Valeur1;
break ; // sert à sortir de l’instruction switch

case ValeurN: Instructions à exécuter si IdentificateurVariable = ValeurN;
break ; // sert à sortir de l’instruction switch
default : Instructions à exécuter si IdentificateurVariable n’appartient pas
à la liste des valeurs {Valeur1, Valeur2, … , ValeurN}
break ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instruction à choix multiple

Exemple

switch ( Nombre)
{
case 1 : printf ( ″ Mois Janvier ″ );
break ;

case 12 : printf ( ″ Mois Decembre ″ );


break ;

default : printf ( ″ la valeur saisie doit être comprise entre 1 et 12 ″ );


break ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

18
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les instructions répétitives

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Instructions répétitives

Exercice 4

Ecrire un algorithme qui demande à l’utilisateur de saisir un


ensemble des chiffres d’une manière séquentielle.
(L’algorithme s’arrête quand l’utilisateur saisie le
chiffre 0).

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

19
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle while

Syntaxe générale

while ( expression logique) Exemple


{
Instruction 1; à exécuter tant printf (″ Entrer une valeur :″);
… que l’expression
logique est vraie scanf (″ %d ″, &N);
Instruction n;
while ( N != 0)
}
{
printf (″ Entrer une valeur :″);
scanf (″ %d ″, &N);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle do … while

Syntaxe générale

Exemple
do
{
Instruction 1; do
à exécuter tant
… que l’expression {
Instruction n; logique est vraie printf (″ Entrer une valeur :″);
} scanf (″ %d ″, &N);
}
while ( expression logique) ; while ( N != 0) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

20
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle for

Exercice

Ecrire un algorithme qui demande à l’utilisateur d’afficher


l’ensemble des chiffres de 1 jusqu'à à N. (La valeur de N est
choisie par l’utilisateur).

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle for

Syntaxe générale

for ( Expression 1 ; Expression 2 ; Expression 3 )


{
Instruction 1 ;
Instruction 2 ;
… Expression 1 : opération d’initialisation
Instruction n ; permettant d’initialiser un compteur
} Compteur = variable représentant le nombre de
fois d’exécution des instructions mentionnées
entre les accolades { instruction 1; … ;
instruction n }

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

21
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle for

Syntaxe générale

for ( Expression 1 ; Expression 2 ; Expression 3 )


{
Instruction 1 ;
Instruction 2 ;
Expression 2 : expression logique

Instruction n ; Tantque l’expression logique est vraie, on
} répété l’exécution des instructions
mentionnées entre les accolades {
instruction 1; … ; instruction n }

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle for

Syntaxe générale

for ( Expression 1 ; Expression 2 ; Expression 3 )


{
Instruction 1 ;
Instruction 2 ;
… Expression 3 : opération d’assignation permettant
Instruction n ;
de modifier la valeur de compteur
}
L’opération d’assignation permet de préciser le
pas de changement de la valeur du compteur

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

22
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La boucle for

Exemple

Printf (″Entrer la valeur de N : ″ );


Scanf (″ %d ″ , &N);
for (i=1; i<=N ; i++)
Résultat d’exécution
{
printf (″%d \n″, i); Entrer la valeur de N : 4
} 1
2
3
4

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Série N2

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

23
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Définition d’un tableau

Un tableau est une variable composée d’un ensemble des

données de même type, stockées de manière contiguëe en


mémoire (les unes à la suite des autres).

On peut distinguer deux types des tableaux :

 Tableau à une seule dimension


 Tableau à deux dimensions

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

24
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec une seule dimension

Valeur 1 Indice 0
Valeur 2 Indice 1

Nom du tableau Indices

Valeur n Indice n-1

Mémoire de l’ordinateur

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec une seule dimension

Syntaxe de déclaration

Type Identificateur_Tableau [Nombre_Elements_Tableau];

Avec :
Type : type des éléments du tableau, il peut être int, float, char, …

Exemple :

int T [200] ; // déclaration d’un tableau T de 200 entiers

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

25
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec une seule dimension

Initialisation d’un tableau

Type Identificateur_Tableau [ Nombre_elements_tableau ] = {


Valeur1, Valeur 2, …, ValeurN };

Exemple :

int T [20] = {0}; // initialisation des éléments du tableau par la valeur 0.


int T[20] = {}; // initialisation des éléments du tableau par la valeur 0.
float T2[10] = {1.2, -4, 9 }; /* initialisation des trois premières cases
du tableau par les valeurs 1.2, -4 et 9 successivement. les autres cases
seront initialisées par la valeur 0 */

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec une seule dimension

Remplissage d’un tableau

#include <stdio.h>
main()
{
int N, T1[N] ; // N doit être déclarée avant la déclaration du tableau
T1,
printf(″Determiner la taille du tableau : ″); scanf (″% i″ , &N);
printf (″ Donner les elements du tableau : \n ″ ) ;
for (int i = 0; i < N; i++)
scanf (″ % i ″, &T1[i]) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

26
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec une seule dimension

Affichage des élements d’un tableau

#include <stdio.h> Résultat d’exécution


#include <stdlib.h>
Contenu du tableau :
main()
1.20 -4.00 9.00 0.00
{ float T2[4] = {1.2, -4, 9 };
printf (″ Contenu du tableau : \n ″ ) ;
for (int i = 0; i < 4; i++) NB:
printf (″ % 0.2f \t ″, T2[i]) ;
Pour afficher tous les
system (″ pause ″) ;
éléments du tableau, on
}
commence toujours par

i=0

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec deux dimensions

Colonnes (0, 1, …, 4)

M[1][0]

M[1][4]

Lignes (0, 1, …, 4)

M[3][3]

Mémoire de l’ordinateur

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

27
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec deux dimensions

Syntaxe de déclaration

Type Identificateur_Tableau [nombre_lignes]


[nombre_colonnes] ;
Avec :
Type : type des éléments du tableau, il peut être int, float, char, …

Exemple :

int M [20][20] ; / * déclaration d’un tableau M de 20 x 20 entiers ( 20 lignes et


20 colonnes */

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec deux dimensions

Initialisation d’un tableau

Type Identificateur_Tableau [Nombre_lignes] [Nombre_colonnes]


= {{Valeur1, Valeur 2, …, ValeurN}, {Valeur1, Valeur2, …,
ValeurN}, …} ;

Exemple :
int T1 [2][3] = { {1, 2, 0}, {4, 6, 7}}; 1 2 0
float T2[5][3]={}; // initialisation du tableau T2 par des 0.
int M[10][3] = {{10, 12}}; /* initialisation de M[0][0] 4 6 7
par 10 et M[0][1] par 12, les autres cases seront
initialisées par la valeur 0 */ Tableau T1

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

28
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec deux dimensions

Remplissage d’un tableau

# include <stdio.h>
main()
{
int M[10][10] ;
printf (″ donner les elements de la matrice: \n ″ ) ;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
scanf (″%d", &M[i][j] ) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les tableaux avec deux dimensions

Affichage des éléments d’un tableau

# include <stdio.h>
main()
{ int T2[2][3] = { {11, 12, 10}, {24, 16, 17}}; Résultat d’éxécution
printf ("Contenu du tableau : \n" ) ;
for (int i = 0; i < 2; i++) Contenu du tableau :
{ for (int j = 0; j < 3; j++) 11 12 10
printf ("%d\t ", T2[i][j]) ; 24 16 17
printf("\n");
}
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

29
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Série N3

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les chaines de caractères

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

30
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Définition d’une chaine de caractères

 En langage C, le type des variables « Chaine » n’existe pas.


 Une chaine de caractères est un tableau de caractères dont le
dernier élément est le caractère ‘\0’
 Pour un texte de N caractères, il faut prévoir N+1 octets.

Exemple :

‘B’ ‘O’ ‘N’ ‘J’ ‘O’ ‘U’ ‘R’ ‘\0’

La taille de cette chaine est 8 octets

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Déclaration d’une chaine de caractères

Syntaxe générale

char Identificateur_chaine [Nombre_Lettres_Chaine] ;


Avec :
Nombre_Lettres_Chaine : nombre de lettres maximal de la chaine

Exemple :

char Mot[200] ; /* déclaration d’une chaine ayant un nombre maximale


de lettres 200 caractères */

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

31
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Initialisation d’une chaine de caractères

Syntaxe générale

char Identificateur_chaine [Nombre_Lettres_Chaine] =


{‘Valeur1’, ‘Valeur2’, …, ‘ValeurN’};

Ou bien
char Identificateur_chaine [Nombre_Lettres_Chaine] = ″
Valeur_initiale ″;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Initialisation d’une chaine de caractères

Exemples

// Déclaration et initialisation d’une chaine par la valeur NULL


char Texte1 [20] = {};
char Texte2 [20] = ″″;
// Déclaration et initialisation d’une chaine par le mot « Bonjour »
char Texte3 [] = {‘B’, ‘O’, ‘N’, ‘J’, ‘O’, ‘U’, ‘R’};
char Texte4 []= ″ BONJOUR ″ ;
char Texte5[8]= {‘B’, ‘O’, ‘N’, ‘J’, ‘O’, ‘U’, ‘R’}; // la taille de cette
chaine est 9 (8 caractères + ‘\0’)
char Texte6[10]= {‘B’, ‘O’, ‘N’, ‘J’, ‘O’, ‘U’, ‘R’}; /* les deux
dernières cases de la chaine Texte3 seront initialisées par 0 */

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

32
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Ecriture d’une chaine de caractères

La fonction printf La fonction puts

printf (″%s″ , Id_Chaine) ; puts (Id_Chaine) ;

Exemples

… …
char Mois [] = ″ janvier″ ; char Mois [] = ″ janvier″ ;
printf (″%s \n″ , Mois ) ; = puts (Mois ) ;
… …

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Lecture d’une chaine de caractères

La fonction scanf La fonction gets

scanf (″%s″ , Id_Chaine) ; gets (Id_Chaine) ;

Exemples

… …
char Mois [] ; char Mois [] ;
scanf (″%s″ , Mois ) ; = gets (Mois ) ;
… …

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

33
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Lecture d’une chaine de caractères

Remarque

Les deux fonctions gets et puts existent dans la bibliothèque


stdio.lib

Différence entre scanf et gets :

La fonction scanf (″%s″ , Mois) permet de saisir un seul mot.


La fonction gets (Mois) permet de saisir plusieurs mots
séparés par des espaces

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions prédéfinies

Question

Comment faire si on veut affecter une valeur simple ou bien résultante


d’une expression à UNE CHAINE DE CARACTERES ?

Proposition

main()
Solution
{ char Texte1[10], Texte2[10] ;
Texte1 = ″ Programme″ ; Utilisation de la fonction


Texte2 = Texte1 ;
strcpy

Fausse !!

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

34
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcpy

Définition

La fonction strcpy sert à affecter une valeur simple de type


char à une chaine (Id_Chaine) ou bien copier le contenu d’une
chaine (Id_Chaine2) vers une autre chaine (Id_Chaine1).

Syntaxe générale

strcpy (Id_Chaine, ″ Valeur″) ;


strcpy (Id_Chaine1, Id_Chaine2) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcpy

Exemple

#include <stdio.h>
#include <string.h> Syntaxe générale
main()
{ Programme
char Texte1[10], Texte2[10] ; Programme
strcpy (Texte1, ″ Programme″ ) ;
strcpy (Texte2, Texte1) ;
puts (Texte1) ;
puts (Texte2) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

35
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strncpy

Définition

La fonction strncpy sert à copier N caractères depuis une


chaine (Id_Chaine2 ) vers une deuxième chaine (Id_Chaine1).

Syntaxe générale

strncpy (Id_Chaine1, ″Valeur″, N) ;


Ou bien
strncpy (Id_Chaine1, Id_Chaine2, N) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strncpy

Exemple

#include <stdio.h>
#include <string.h> Résultat d’exécution
main()
{ char Texte1[10], Texte2[10] ; Prog
strncpy (Texte1, ″ Programme″,4 ) ; Pro
strncpy (Texte2, Texte1,3) ;
puts (Texte1);
puts (Texte2) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

36
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strlen

Définition

La fonction strlen sert à calculer la longueur d’une chaine


(nombre de caractères constituant la chaine sans compter le
caractère \0 )

Syntaxe générale

strlen (Id_Chaine) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strlen

Exemple

#include <stdio.h>
Résultat d’exécution
#include <string.h>
main() La longueur du texte est 9
{ char Texte[100] ;
int L=0;
strcpy (Texte, ″Programme″ ) ;
L= strlen (Texte);
printf (″la longueur du texte est %d ″, L) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

37
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcat

Définition

La fonction strcat sert à ajouter une valeur de type char ou


bien le contenu d’une chaine (Id_Chaine2) à la fin d’une autre
chaine (Id_Chaine1)

Syntaxe générale

strcat (Id_Chaine, ″ Valeur″) ;


strcat (Id_Chaine1, Id_Chaine2) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcat

Exemple

#include <stdio.h>
#include <string.h>
main() Résultat d’éxécution
{ char Texte1[100] = ″Programme″ ;
char Texte2[100] = ″ Informatique″ ; Programme Informatique
strcat (Texte1, Texte2) ; Programme Informatique Correct
puts (Texte1) ;
strcat (Texte1, ″ Correct″ ) ;
puts (Texte1) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

38
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strncat

Définition

La fonction strncat sert à ajouter N caractères depuis une


chaine (Id_Chaine2) à la fin d’une chaine (Id_Chaine1).

Syntaxe générale

strncat (Id_Chaine1, ″Valeur″, N) ;


Ou bien
strncat (Id_Chaine1, Id_Chaine2, N) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strncat

Exemple

#include <stdio.h>
#include <string.h> Résultat d’exécution
main()
{ char Texte1[100] = ″Programme″ ; Programme Info
char Texte2[100] = ″ Informatique″ ; Programme Info Cor
strncat (Texte1, Texte2, 5) ;
puts (Texte1) ;
strncat (Texte1, ″ Correct″, 4 ) ;
puts (Texte1) ;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

39
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcmp

Question

Comment faire si on veut COMPARER le contenu d’une chaine de


caractères avec une valeur simple ou bien avec le contenu d’une autre
chaine de caractères ?

Proposition

char Texte1[10], Texte2[10] ; Solution


if (Texte1 == ″ Programme″) … ;
if (Texte2 == Texte1) … ; Utilisation de la fonction

strcmp
Fausse !!

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcmp

Définition

La fonction strcmp sert à comparer lexicographiquement


deux chaines de caractères (Id_Chaine1) et (Id_Chaine2).
La fonction strcmp renvoie une valeur :
 Positive si Id_Chaine2 précède Id_chaine1
 Négative si Id_Chaine1 précède Id_Chaine2
 Nulle si les deux chaines sont égales

Syntaxe générale

strcmp (Id_Chaine1, Id_Chaine2) ;


Ou bien strcmp (Id_Chaine1, ″ Valeur ″) ;

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

40
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

La fonction strcmp

Exemple

#include <stdio.h>
#include <string.h>
if (strcmp (Mot1, Mot2) == 0)
main()
printf (″%s egale a %s″, Mot1, Mot2);
{
else
char Mot1[10], Mot2[10];
if (strcmp (Mot1, Mot2) <0)
puts (″Entrer le premier mot ″);
printf (″%s precede %s″, Mot1,
gets ( Mot1);
Mot2);
puts (″Entrer le deuxieme mot ″);
else
gets ( Mot2);
printf (″%s precede %s″, Mot2,
Mot1);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions prédéfinies

Remarque

Pour utiliser les différentes fonctions prédéfinies :


 strcpy et strncpy
 strlen
 strcat et strncat
 strcmp
Il faut importer la bibliothèque string.lib en écrivant l’entête
include <string.h> dans les programmes.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

41
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions prédéfinies

Exercice d’application

On considère le bloc d’instructions suivant :


1. char A[] = "un\ndeux\ntrois\n";
2. char B[12] = "un deux trois";
3. char C[] = 'abcdefg';
4. char D[10] = 'x';
5. char E[5] = "cinq";
6. char F[] = "Cette " "phrase " "est coupée";
7. char G[2] = {'a', '\0'};
8. char H[4] = {'a', 'b', 'c'};

********************
a. Lesquelles des chaînes suivantes sont initialisées correctement ?
b. Corrigez les déclarations fausses puis indiquez pour chaque chaîne de
caractères le nombre d'octets qui sera réservé en mémoire.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions prédéfinies

Exercice d’application - Solution

Nombre
Déclaration & Initialisation Correcte (C )/fausse (F)
d’octets

char A[] = "un\ndeux\ntrois\n"; Correcte 15 octets


char B[12] = "un deux trois"; F : char B[14] = "un deux trois"; 14 octets
char C[] = 'abcdefg'; F : char C[] = “abcdefg”; 8 octets
char D[10] = 'x'; F: char D[10] = “x”;
2 octets
ou char D[10]={‘x’};
char E[5] = "cinq"; Correcte 5 octets
char F[]="Cette " "phrase " "est coupée"; Correcte 24 octets
char G[2]= {'a', '\0'}; Correcte 2 octets
char H[4] = {'a', 'b', 'c'}; Correcte 4 octets

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

42
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Série N4

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions et les procédures

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

43
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions et les procédures

 Un programme écrit en langage C est un ensemble des fonctions.


 Chaque programme (en langage C) doit contenir une fonction

principale qui s’appelle main().


 Le langage C contient des fonctions prédéfinies tels que :
− printf (…)
− gets (…)
− sqrt (…)
− pow (…)
− strlen (…)
− Etc.
 De plus, c’est possible de créer d’autres fonctions (C est un langage
extensible).

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

C’est quoi une fonction ?

Un bloc d’instructions rédigé à l’extérieur de la fonction principale


main d’un programme :
− portant un nom particulier choisi par le programmeur.
− pouvant avoir des paramètres ou NON.
− Pouvant retourner une valeur ou NON.

On distingue trois catégories :


− Fonctions qui ne retourne aucune valeur précise, appelée aussi
procédures
− Fonctions qui retourne une valeur précise.
− Fonctions récursives ou fonctions imbriquées

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

44
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Syntaxe générale d’une fonction

Pour écrire une fonction en Langage C, il faut respecter la syntaxe suivante :

Type_fonction Nom_fonction (liste des paramètres possibles)


{
Déclaration des variables locales ;
Instruction 1;
Instruction 2;
… − Les variables locales sont des variables
Instruction n;
propres à une fonction.
}
− Elles sont utilisées seulement à l’intérieur de
la fonction où elles sont déclarées.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les procédures

Définition

Ce sont des fonctions qui ne retourne aucune valeur, son type alors est
Void, ils peuvent AVOIR ou NON des paramètres.

Cas 1 : SANS paramètres

Void Nom_procedure(Void) // ou bien Void Nom_procedure ()


{
Déclarations des variables locales ;
Instruction 1;
Instruction 2;

Instruction n;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

45
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les procédures

Cas 1 : SANS paramètres – Exemple

#include <stdio.h>
void afficher_numeros(void)
main()
{ int i,N;
{
printf("entrer la valeur de N : ");
afficher_numeros();
scanf("%d", &N);
}
for (i=0;i<=N;i++)
printf("%d ", i);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les procédures

Cas 2 : AVEC paramètres

Void Nom_procedure (Type_Par1 Id_Par1, Type_Par2 Id_Par2, …)


{
Déclarations des variables locales ;
Instruction 1;
Instruction 2;

Instruction n;
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

46
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les procédures

Cas 2 : AVEC paramètres - exemple

#include <stdio.h>
void afficher_numeros(int N)
{
main()
int i;
{
for (i=0;i<=N;i++)
int A;
printf("%d ", i);
printf("entrer la valeur de N : ");
}
scanf("%d", &A);
afficher_numeros(A);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions avec valeur de retour

Définition

 Ce sont des fonctions qui retourne une valeur précise.


 Leur type peut être int, float, char, etc.
 La valeur retournée par cette fonction doit être de même type que la fonction.
 Elle peut AVOIR ou NON des paramètres.

Cas 1 : SANS paramètres

Type_fonction Nom_fonction(Void) // ou bien Type_fonction Nom_fonction()


{ Déclarations des variables locales ;
Instruction 1;
Instruction 2;

Instruction n;
return (Identificateur_Variable); // ou bien return (Valeur_simple);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

47
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions avec valeur de retour

Cas 1 : SANS paramètres - exemple

#include <stdio.h>
int somme()
{ int a,b,s;
printf("Entrer la valeur 1 : "); scanf("%d",&a);
printf("Entrer la valeur 2 : "); scanf("%d",&b);
s=a+b;
return(s);
} main()
{
int z;
z=somme();
printf("la somme est %d", z);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions avec valeur de retour

Cas 2 : AVEC paramètres

Type_fonction Nom_fonction(Type_Par1 Id_Par1, Type_Par2 Id_Par2, …)


{
Déclarations des variables locales ;
Instruction 1;
Instruction 2;

Instruction n;
return (Identificateur_Variable); // ou bien return (Valeur_simple);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

48
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions avec valeur de retour

Cas 2 : AVEC paramètres - exemple

#include <stdio.h>
int somme(int a, int b)
{
int s;
s=a+b;
return(s); main()
} { int x,y,z;
printf("Entrer la valeur 1"); scanf("%d",&x);
printf("Entrer la valeur 2 "); scanf("%d",&y);
z=somme(x,y);
printf("la somme est %d", z);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions et les procédures

Remarques

La fonction main() est une fonction de type int qui retourne la


valeur 0 si l’exécution du programme est faite correctement.

Exemple d’un programme avec valeur de retour est différente de 0

#include<stdio.h> Résultat d’exécution


int main()
{ entrer une valeur 12
int x; --------------------------------
printf("entrer une valeur "); Process exited after 9.725 seconds
scanf("%d", x); with return value 3221225477
return (0); Appuyez sur une touche pour
} continuer...

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

49
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions et les procédures

Exemple d’un programme avec valeur de retour est égale à 0

#include<stdio.h> Résultat d’exécution


int main()
{ entrer une valeur 12
int x;
printf("entrer une valeur "); --------------------------------
scanf("%d", &x); Process exited after 2.753 seconds
} with return value 0
Appuyez sur une touche pour
continuer...

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions et les procéduresc

Remarques

Les procédures (AVEC ou SANS paramètres) sont utilisées souvent pour


les instructions de saisie et d’affichage des données.
Ex: saisir les valeurs des données, remplissage d’un tableau, afficher les
éléments d’un tableau, trier un tableau, etc.

Les fonctions avec une valeur de retour (AVEC ou SANS paramètres)


sont utilisées souvent pour calculer ou chercher une valeur précise afin de
l’envoyer à la fonction principale main ().
Ex: calculer le produit, la puissance, chercher le max d’un tableau, calculer la
longueur d’une chaine, comparaison entre des variables, etc.

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

50
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions récursives

Définition

Une fonction récursive est une fonction ayant des paramètres et


ayant aussi une valeur de retour dans laquelle on fait appel à la
fonction ELLE-MÊME.

int factorielle (int x)


Exemple d’une fonction { int f=1;
calculant la factorielle if (x==0)
return (1);
d’un entier else
for(int i=2 ; i<=x ; i++)
Méthode itérative f=f*i;
return (f);
}

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Les fonctions récursives

Définition

Une fonction récursive est une fonction ayant des paramètres et


ayant aussi une valeur de retour dans laquelle on fait appel à la
fonction ELLE-MÊME.

int factorielle (int x)


Exemple d’une fonction {
calculant la factorielle if (x==0)
d’un entier return (1);
else
return (x*factorielle(x-1));
Méthode récursive }

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

51
15/10/2021

Module : Algorithmique & Programmation 2 : Tronc Commun GEGM

Série N5

Professeur Sanae KHALI ISSA -- Département Génie Informatique -- FST de Tanger

52

Vous aimerez peut-être aussi