0% ont trouvé ce document utile (0 vote)
72 vues32 pages

Algorithmique & Programmation Langage C: M2: Module Informatique

Ce document présente un cours sur l'algorithmique et la programmation en langage C, destiné aux étudiants en génie de l'environnement. Il couvre les concepts de base tels que les algorithmes, les variables, les constantes, les instructions de base, et les structures conditionnelles. Les objectifs incluent l'apprentissage des bases de la programmation et la capacité à résoudre des problèmes simples par le biais d'algorithmes.

Transféré par

chadi.mouhoubfxt
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)
72 vues32 pages

Algorithmique & Programmation Langage C: M2: Module Informatique

Ce document présente un cours sur l'algorithmique et la programmation en langage C, destiné aux étudiants en génie de l'environnement. Il couvre les concepts de base tels que les algorithmes, les variables, les constantes, les instructions de base, et les structures conditionnelles. Les objectifs incluent l'apprentissage des bases de la programmation et la capacité à résoudre des problèmes simples par le biais d'algorithmes.

Transféré par

chadi.mouhoubfxt
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

07/12/2021

Département Environnement et Energies Renouvelables

DUT Génie de l’environnement

M2 : Module Informatique

Algorithmique & Programmation


Langage C
Semestre 1

Y. ELKABDANI
[Link]@[Link]

Années Universitaires: 2021/2022

Plan :

 Chapitre I : Généralités et éléments de base de la programmation.

 Chapitre II : Les variables et les constantes.

 Chapitre III : Les instructions de base de la programmation.

 Chapitre IV : Les structures conditionnelles alternatives et répétitives.

 Chapitre V : Les Fonctions et les procédures.

1
07/12/2021

Objectifs du cours

1. Apprendre les concepts de base de l'algorithmique et de la programmation.

2. Savoir transcrire les différentes étapes de résolution d'un problème sous forme
d'algorithme.

3. Etre capable de mettre en œuvre ces concepts pour analyser des problèmes simples et
écrire les programmes correspondants.

Chapitre I : Généralités et éléments de base de la


programmation

2
07/12/2021

Chapitre I : Généralités et éléments de base de la programmation


I. 1. Notion sur l’algorithme et programmation

Extrait d’un dialogue entre un touriste perdu et un homme citoyen.


 Pourriez-vous m’indiquer le passage de la gare, s’il vous plait ?
 Oui bien sûr : vous allez tout droit jusqu’au prochain rond-point, vous prenez à gauche
de rond-point et ensuite allez tout droit jusqu’à la fin de boulevard ensuite prenez à droite
vous trouvez la gare juste en face de vous.
 Merci.

Dans cette conversation, la réponse de l’homme est la description d’une suite ordonnée d’instructions (allez tout
droit, prenez à gauche, prenez à droite) qui manipulent des données (rond-point, boulevard) pour réaliser la
taché désirée (aller à la gare).

Ces d'instructions ordonnées qui permettront de résoudre un problème s'appellent :

Algorithme

Chapitre I : Généralités et éléments de base de la programmation


I. 2. Définition d’un algorithme

 Un algorithme est une suite d’instructions écrite en langage d’algorithmes qui résout un problème et qui
peuvent être programmés par n’importe quel langage.
 Un algorithme est un ensemble d'opérations de calcul élémentaires, organisé selon des règles précises dans le
but de résoudre un problème donné. Pour chaque donnée du problème, l'algorithme retourne une réponse
après un nombre fini d'opérations

Un algorithme doit être


Précis :
 l'ordre des étapes qui le constituent
 à quel moment il faut arrêter une action
 à quel moment il faut en commencer une autre
 comment choisir entre différentes possibilités

Déterministe :
 Une suite d'exécutions à partir des mêmes données doit produire des résultats identiques.

Fini dans le temps et productif


 C’est-à-dire s'arrêter au bout d'un temps fini en fournissant le résultat attendu.

3
07/12/2021

Chapitre I : Généralités et éléments de base de la programmation


I. 3. Historique de l’algorithme et langage C

Le mot algorithme vient du nom du célèbre mathématicien arabe « Abu Abdullah


Muhammad ibn Musa al-Khwarizmi » perse du 9ième siècle, le concept d’algorithme a été
développer pour but de résoudre des équations mathématiques.

Le langage C est un langage de programmation développé à partir de 1972 dans les laboratoires
Bell, dans le but d’écrire le système d’exploitation par Denis Ritchie. En raison de sa
puissance et de sa souplesse, le langage C s’est rapidement répandue, les programmeurs ont
commencé à l’utiliser pour écrire toutes sortes de programmes

Chapitre I : Généralités et éléments de base de la programmation


I. [Link] général de programmation

Algorithme Langage C

Algorithme Nom_algorithme Partie En-tête #include<bibliothèques> Partie En-tête


main ( )
Variables Identificateur : Type; Partie déclarative
{
Début
Type Identificateur ;
Les instructions ; Corps de l’algorithme Les instructions; Corps de programme
}
Fin

Retenir
A retenir que chaque partie de l’algorithme et de langage C possède des mots clés spécifiant la nature, ainsi que
l’étape de description.

4
07/12/2021

Chapitre I : Généralités et éléments de base de la programmation


I. 5. Notion de pseudo-code (pseudo langage)
En programmation, la notion de pseudo-code également appelé (Langage de Description d'Algorithmes) est une façon de
décrire un algorithme en langage presque naturel, sans référence à un langage de programmation particulier
Exemple
Algorithme (Pseudo langage ) Langage C
Algorithme calcul_somme #include <stdio.h>
Variables A, B, SUM : entier; main()
Début {
Ecrire (“entre la valeur de A :”); int A, B, SUM;
printf("entre la valeur de A : ");
Lire (A);
scanf("%d",&A);
Ecrire (“entre la valeur de B :”)
printf("entre la valeur de B : ");
Lire (B); scanf("%d",&B);
SUM ← (A+B); SUM = A+B;
Ecrire (“la somme de A et B =”, SUM); printf("la somme de A et B = %d" ,SUM);
Fin }

Retenir
 l’avantage de pseudo-langage est permis de d’écrire tout algorithme de façon formelle tout on reste compréhensible

Chapitre I : Généralités et éléments de base de la programmation


I. [Link] de développement d’un programme

Tout problème à programmer doit être résolu, d’abord sous forme d’algorithme, puis converti en programmation dans le
langage de votre choix en effet un algorithme est indépendant du langage de programmation utilisé. Le cycle de
développement d’un programme ou d’une application informatique peut se résumer dans la figure ci-dessous

Problème
• La première étape consiste à analyser le problème, c’est-à-dire en cerner les
Réflexion et analyse limites et le mettre en forme dans un langage descriptif appelé algorithme.
Algorithme
• L’étape suivante consiste à traduire l’algorithme dans un langage de
Codage et programmation programmation spécifique, il s’agit de la phase de programmation.
Programme
• Le programme est ensuite transforme en langage machine lors d’une étape
Compilation Exécution appelée compilation. La compilation est une phase réalisée par l’ordinateur
Résultats
grâce à un compilateur.

Parmi les langages de programmation on peut citer : langage C++, Visual Basic, java et JavaScript etc

5
07/12/2021

Chapitre II : Les variables et les constantes

Chapitre II : Les variables et les constantes


II. [Link] de variable

 Une variable est un objet dont la valeur n’est pas invariable.


 Une variable peut être représentée par une case mémoire, qui contient la valeur d'une donnée.
 Chaque variable possède un nom unique appelé identificateur par lequel on peut accéder à son contenu.

Exemple
On peut avoir en mémoire une variable prix et une variable quantité

Variable Valeur
Les données ainsi que les résultats des calculs intermédiaires, sont rangés
Prix 100
dans des cas mémoires qui correspondant a des variable
Quantité 20

Une variable est caractérisée par son nom (identificateur), sa contenu (valeur) ainsi que son (type)

6
07/12/2021

Chapitre II : Les variables et les constantes


II. [Link] et déclaration des variables

La partie de déclaration consiste a énumérer toutes les variables dont on aura besoin au cours de programme.

Syntaxe de variable
Algorithme Langage C

Variable Identificateur : type; Type Identificateur ;

Exemples
Algorithme Langage C

Variable X : entier; int X ;


X=25; X=25;
Variable Y : Réel; float Y;
Y=3,7; Y=3,7;

Chapitre II : Les variables et les constantes


II. [Link] et déclaration des variables

Je veux mémoriser un prix d'un produite dans une variable, j'ai le choix de l'appeler :
P 1Prix Prix Prixdeproduite

• Le premier cas est trop court, si je n'ai pas lu la description de programme, je suis totalement perdu.
• Le deuxième cas ne convient pas non plus car on évitera les noms commencent par un nombre dans les noms de variable.
• Le dernier cas est certes très précis, mais tellement long qu'il en devient illisible.
• Le troisième cas semble le plus approprié

Retenir

Un Nom d’une variable doit être:


Porteur de sens pour pouvoir comprendre facilement un programme en cours de sa lecture ou de son déroulement.
Il doit toujours être présent dans la partie déclaration des variables (avant de l’utiliser).
Il ne doit pas commencer par un chiffre.
Il ne doit pas contenir un symbole ou bien un caractère accentué sauf la caractère alphabétique.

7
07/12/2021

Chapitre II : Les variables et les constantes


II. 3. Types de données des variables

Les types de variable est l’ensemble des valeurs qu’elle peut prendre une variable, par exemple une variable de type
logique booléen (Vrai et faux). Il existe plusieurs types utilisés en algorithme et programmation

Le tableau suivant regroupe les types entiers standards

Algorithme declaration Langage C Déclaration Valeurs limites


Caractère Variable C: caractère; Char Char C; 0 a 255
Entier Variable X: entier; Int Int X; -32768 à 32767
Entier long Variable X: entier long; Long Long L; -2147483648 à 2147483647
Réel Variable Y: réel; Float Float Y; −10−3 7 à 10
Double Variable D: double; Double Double D; −10−307 à 10308
Double long Variable A: double long; long double long double A; −10−4932 à 104932
Exercice : Quel type de variable convient le mieux pour stocker les valeurs suivantes ?
 Le pH  Le nom d’un espèce
 La distance entre deux pays  La note la plus haute d’un examen
 Salaire mensuel  La température

Chapitre II : Les variables et les constantes


II. 3. Types de données des variables
Symbole correspondant a
Opération
Algorithme Exemple Langage C Exemple
Addition + X+Y + X+Y
Sustraction - X-Y - X-Y
Multiplication * X*Y * X*Y
Division / X/Y / X/Y
Modulo Mod X Mod Y % X%Y
Inferieur < X<Y < X<Y
Inferieur ou égal ≤ X≤Y ≤ X≤Y
Superieur > X>Y > X>Y
Superieur ou égal ≥ X≥Y ≥ X≥Y
Egalité = X=Y == X == Y
Inégalité # X#Y != X != Y
ET logique ET X ET Y && X && Y
OU logique OU X OU Y ││ X ││ Y
NON logique NON X NON Y ! X!Y

8
07/12/2021

Chapitre II : Les variables et les constantes


II. 4. Les operateurs logiques
L'opérateur ET (&&) exige que la condition 1 et la condition 2 soient vraies pour exécuter la première partie
du code. Si une seule des conditions est fausse, alors la procédure exécute le code situé après la condition

If faut que a ET b positif pour dire que le produit


positif
 En algorithme (a > 0 ET b > 0)
 En langage C (a > 0 && b > 0)
L'opérateur OU (││) exige qu'une seule des conditions soit vraie pour exécuter la première partie du code.

If faut que a et b positif OU a et b négatif pour dire


que le produit positif
• En algorithme (a > 0 ET b > 0) OU (a < 0 ET b < 0)
• En langage C (a > 0 && b > 0) ││ (a < 0 && b < 0)

L'opérateur NON ( ! ) c'est pour inverse une condition .

Le NON de la variable a =1 est 0


• En algorithme NON(a)
• En langage C !(a)

Chapitre II : Les variables et les constantes


II. 4. Notion de constante
Comme une variable, une constante est une valeur correspond un emplacement mémoire dont la valeur est fixe et
qui ne varie pas durant l’exécution d’un programme.
Syntaxe de déclaration
Algorithme Langage C

#define Identificateur valeur


Constante Identificateur = valeur;
Const Type Identificateur = valeur;
Exemples

Algorithme Langage C
Constante T = 25; #define T 25 Const int T=25;
Constante Pi = 3.14; #define Pi 3.14 Const float Pi=3.14;
Constante Nom = ESTE; #define Nom ESTE Const char Nom=ESTE;
Retenir

Les constantes dont leur valeurs stockée ne sera jamais modifiée au cours de l’exécution de programme.

9
07/12/2021

Chapitre III : Les instructions de base d’un algorithme

Chapitre III : Les instructions de base d’un algorithme


III. [Link] d’affectation

Une Instruction d’affectation permet d’affecter une valeur a une variable elle est symbolisée en algorithme par une
flèche (←) et par (=) pour langage C.

Syntaxe de déclaration

Algorithme Langage C

Variable ← expression; Variable = expression;


A ← 100; // A reçoit la valeur 100 A = 100; // A reçoit la valeur 100
B ← (A*2) // B reçoit le résultat de (A*2) B = (A*2) // B reçoit le résultat de (A*2)
C ← ‘DUT' // C reçoit l’expression DUT C = ‘DUT' // C reçoit l’expression DUT

10
07/12/2021

Chapitre III : Les instructions de base d’un algorithme


III. [Link] d’affectation
Exemples

Algorithme Langage C
Algorithme calcul #include <stdio.h>
Variables A, B, C, D : entiers; main(){
Début int A, B, C, D;
1. A ← 10; 1. A = 10;
2. B ← 20; 2. B = 20;
3. C ← A+B; 3. C = A+B;
4. D ← C*A; 4. D = C*A;
Fin }

N° De ligne
Variable
1 2 3 4
A 10 10 10 10
B - 20 20 20
C - - 30 30
D - - - 300

Chapitre III : Les instructions de base d’un algorithme


III. [Link] d’entrée (lecture)
Une instruction d’entrée ou de lecture donne la main a l'utilisateur pour saisir une donnée au clavier la valeur saisie sera
affectée a une variable.

Syntaxe de déclaration Format


Signification
d'affichage
Algorithme Langage C
%d Entier Décimal
Lire(Identificateur); scanf("formats d'affichage" ,&variable) ; %ld Long Entier
%f Flottant (Réel)
Lire (a); scanf("%d",&a);
%lf Double
Lire (a, b, c); scanf("%d %d %d", &a, &b, &c);
%c Caractère
%s Chaine De Caractère
Retenir
 Lorsque le programme rencontre cette instruction l’exécution d’interrompt et attend que l’utilisateur tape
une valeur cette valeur est rongée en mémoire dans la variable désignée.
 on utilise l’operateur d’adressage & pour les variables scalaires

11
07/12/2021

Chapitre III : Les instructions de base d’un algorithme


III. [Link] de sortie (Ecriture)
)
Instruction de sortie est une fonction d’impression formatée, ce qui signifie que les données sont converties selon le
format particulier, l’instruction de sortie permet d’afficher des information a l’écran.

Syntaxe de déclaration

Algorithme Langage C

Ecrire(expression); Printf("message et formats d'affichage" ,variable) ;


Ecrire (A); Printf("%d",A);
Ecrire (A, B, C); Printf("%d %d %d", A, B, C);
Somme ← A+B; Somme = A+B;
Ecrire ("La somme de A+B =",Somme); Printf("La somme de A+B = %d", Somme);

Il existe un certain nombre de caractères particuliers dont les principaux sont résumés dans le tableau
suivant
sémantique Retour a la ligne tabulation backspace
caractère \n \t \d

Chapitre III : Les instructions de base d’un algorithme


III. [Link] Commentaires

Les commentaires sont essentiels pour éclairer le code. Un commentaire est un texte qui est ignoré par l'ordinateur
lorsqu'il exécute le programme, mais qui peut être lu par le développeur lorsqu'il lit le programme

// commentaire sur une ligne /*commentaire


Syntaxe
/* Commentaire */ sur plusieurs lignes*/

Algorithme somme #include <stdio.h>


Variables A, B: entier ; // déclaration des variables main(){
Début int A, B, SUM; // déclaration des variables
Ecrire (“entre la valeur de A :”); printf("entre la valeur de A : ");
Lire (A); /* lecture de variable*/ scanf("%d",&A); // lire la valeur de A
Ecrire (“entre la valeur de B :”); printf("entre la valeur de B : ");
Lire (B); scanf("%d",&B);
A ← (A+B); // résultat SUM = A+B; /* SUM recoit la spmme de A et B */
Ecrire (“la somme =”, A);
printf("la somme de A et B = %d" ,SUM);
Fin
}

12
07/12/2021

Chapitre III : Les instructions de base d’un algorithme


III. 5. Exercices

Exercice 1
Écrire un algorithme qui permet de saisir les valeurs de A et B , par la suite calculer la
somme et afficher le résultat.

Exercice 2
Écrire un algorithme qui permet de calculer et afficher la moyenne de deux nombre
entiers.

Exercice 3
Écrire un algorithme qui permet de calculer et afficher a l’utilisateur la surface d’un
cercle

Chapitre IV : Les structures conditionnelles alternatives et


répétitives

13
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


IV. 1. Les structures alternatives
La structure alternative ou conditionnelle permet d’exécuter ou non une série d’instructions selon la valeur d’une
condition, il permettent de structurer un ensemble d’instructions.
Condition (Si… Alors… FinSi)
Dans un programme, selon qu’une condition est vraie ou fausse, on peut effectuer un traitement ou un autre : on parle de
traitements conditionnels.
On traduit la structure alternative par les instructions suivants
Syntaxe Exemple

Variable a, b, max, min : entier


Si condition alors Condition
Traitement 1; Si (a<b) alors
Traitement 2; max ← b;
………......... min ← a;
Traitement 3; Finsi
FinSi Traitements

Chapitre IV : Les structures conditionnelles alternatives et répétitives

Condition ( If ) en langage C

L'instruction if sélectionne le traitement (bloc d'instructions) à faire si une condition est vérifiée.

Syntaxe Exemple

If (condition) #include <stdio.h>


{ main( ){
Traitement 1; int a;
Traitement 2; True
printf(« donnez la valeur de a: ");
………......... scanf ("%d",&a);
Traitement 3;
if (a==0){
}
printf("zéro\n"); // condition vrai
}
printf("FIN\n"); // condition fausse
}

14
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition (Si… Alors…Sinon…FinSi)

Permet de choisir dans une alternative, en fonction du résultat, VRAI ou FAUX, d’un test (booléenne).
Si la condition VRAIE, Alors les instructions-1 sont exécutées, et l’ensemble d’instructions-2 est ignoré, la
machine sautera directement à la première instruction située après le FinSi. De même, au cas où la condition était
FAUSSE (avait comme valeur Faux), la machine saute directement à la première ligne située après le Sinon et
exécute l’ensemble d’instructions2.

Syntaxe : Exemple :

Variable a, b, max, min : entier


Si condition alors
Traitements-1
………......... Si (a<b) alors
Sinon max ← b;
Traitements-2 Sinon
………......... min ← a;
Finsi Finsi

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition ( If … else ) en langage C

Lorsque if est utilisée avec else, elle indique également le traitement à faire si la condition n'est pas vérifiée.

Syntaxe Exemple

#include <stdio.h>
If (condition)
main( ){
{ True
Traitement 1; int a,b;
Traitement 2; printf("Introduire a et b : ");
……….........; scanf ("%d%d",&a,&b);
else if (a==b){
Traitement 3; printf(" a égale à b \n ");
Traitement 4; else
……….........; printf("a différent de b\n");
} }
}

15
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition (Si… Alors…Sinon Si…Sinon…FinSi)

Testes imbriqués :
Le test imbriqué est une généralisation de la structure de contrôle conditionnelle, lorsque le nombre de traitements
différents est plus grand que deux.

Syntaxe :
Si condition-1 alors
Instructions1;
SinonSi condition-2 alors
Instructions2;
SinonSi condition-3 alors
Instructions-3;
Sinon
Instructions;
FinSi

L’instruction qui sera exécutée sont les l’instructions dont la condition est VRAIE. Si aucune condition n’a la valeur
VRAIE, c’est l’instructions qui suit le Sinon qui sera exécutée.

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition (Si… Alors…Sinon Si…Sinon…FinSi)

Même exemple précèdent , un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir entre trois
réponses possibles (solide, liquide ou gazeuse).

Algorithme Temp_Eau
Variable Temp : Entier
Début
Ecrire ("Entrez la température de l’eau :");
Lire (Temp);
Si Temp =< 0
Alors Ecrire ("C’est de la glace");
Sinon
Si Temp < 100 Alors
Ecrire("C’est du liquide");
Sinon
Ecrire("C’est de la vapeur");
C’est du vapeur Finsi
Finsi
Fin

16
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition ( If … Else if …. Else ) en langage C

Testes imbriqués :
La condition if…else if…else est une structure conditionnelle encore plus complète que la condition if…else puisqu’elle
va nous permettre cette fois-ci de générer et de prendre en charge autant de cas que l’on souhaite.

Syntaxe :

If condition-1
Instructions1;
Else if condition-2
Instructions2;
Else if condition-3
Instructions-3;
Else
Instructions;

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition ( If … Else if …. Else ) en langage C

Par exemple, un programme devant donner l’état de l’eau selon sa température doit pouvoir choisir entre trois réponses
possibles (solide, liquide ou gazeuse).

#include <stdio.h>
main( ){
Float Temp;
printf ("Entrez la température de l’eau :");
scanf ("%f" ,&Temp);
if (Temp =< 0){
printf (" C’est de la glace \n ");
}
Else if (Temp < 100 ){
printf (" C’est du liquide \n");}
C’est du vapeur
Else
printf (" C’est de la vapeur");
}

17
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition à choix multiples

La structure conditionnelle à choix multiple est une structure algorithmique utilisée de préférence dans des structures à
plusieurs traitements selon des conditions, il permet de choisir le traitement à effectuer en fonction de la valeur ou de
l'intervalle de valeurs d'une variable ou d'une expression.
Syntaxe :
Algorithme Langage C

Selon (Variable de contrôle) faire Switch (Variable de contrôle)


Valeur-1 : action(s)1; {
Valeur-2 : action(s)2; Case Valeur-1 : action(s)1;
.... Breck;
Valeur-n : action(s)n; Case Valeur-2 : action(s)2;
Sinon Breck;
action(s); Defult action(s);
FinSelon }

Lorsque la machine rencontre cette instruction, il vérifie la valeur de la variable de sélection (Variable de contrôle)
et il la compare aux différentes valeurs. Les valeurs sont évaluées dans l'ordre, les unes après les autres, et dès
qu'une de celle-ci est vérifiée l'action associée est exécutée.

Chapitre IV : Les structures conditionnelles alternatives et répétitives


Condition à choix multiples
Remarques

 Valeur-i peut être un ensemble des valeurs qui seront séparées par des pointes ou intervalle des valeurs
(Valeur-i .. Valeur-f)
Exemple :
Algorithme Ma_note
Valeur Commentaire Variables N : Entier;
Début
0à9 C'est nul
Ecrire("Donnez la note de votre BAC:");
10 à 12 Passable Lire(N);
13 à 14 Assez bien Selon N faire
15 à 16 Bien 0 .. 9 : Ecrire("C'est nul");
10 ..12 : Ecrire("Passable");
Exercice 13 ..14 : Ecrire("Assez bien");
1. Ecrire un algorithme permettant d’afficher 15 ..16 : Ecrire("bien");
le mois en toute lettre selon son numéro saisi Sinon
Ecrire("La note saisi est incorrecte :");
au clavier.
FinSelon
2. Récrire cet algorithme en langage C Fin

18
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


IV. 2. Les structures répétitives

Une structure répétitive, encore appelée boucle, est utilisée quand une instruction ou une liste d’instructions,
doit être répétée plusieurs fois, la répétition est soumise à une condition.

Prenons par exemple, un programme pose une question à laquelle l’utilisateur doit répondre par O (Oui) ou N
(Non). Mais l’utilisateur, risque de taper autre chose que la réponse attendue. Alors, dans tout l’algorithme on
met en place ce qu’on appelle un contrôle de saisie, afin de vérifier que les données entrées au clavier
correspondent bien à celles attendues par l’algorithme

Chapitre IV : Les structures conditionnelles alternatives et répétitives


IV. 2. Les structures répétitives

On pourrait essayer avec une structure de contrôle Si

Algorithme Restaurant
Variable Rep : Caractère; Si l’utilisateur ne se trompe qu’une seule fois, et entre une
Début valeur correcte à la deuxième demande, c’est parfait. Par
Ecrire ("Voulez vous un café ? (O/N)"); contre, s’il commet une deuxième erreur, il faudrait rajouter
Lire (Rep); un SI. Et ainsi de suite, on peut rajouter des centaines de SI,
Si (Rep < > " O " ET Rep < > " N ") Alors et écrire un algorithme lourd.
Ecrire( " Saisie erronée. Recommencez ");
Lire (Rep);
FinSi La solution à ce problème consiste à utiliser une structure
Fin répétitive (Les boucles)

Algorithme Langage C
 la boucle Pour  la boucle For
 La boucle Tant que  La boucle While
 La boucle Faire Tant que  La boucle Do While

19
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


La boucle (Pour…Faire) en langage C (For)

La boucle Pour, For (en langage C) est une instruction permet de répéter l’exécution d’un bloc d’instructions, elle
utilise un compteur d’itération, une valeur initiale et une valeur finale du compteur. Le compteur est incrémenté
automatiquement.

Syntaxe : Algorithme Langage C


Pour compteur ← val_initiale à val_finale; For (Initialisation;Condition;Instruction) {
Faire Instruction(s); Instruction(s);
FinPour }

Chapitre IV : Les structures conditionnelles alternatives et répétitives


La boucle (Pour…Faire) en langage C (For)
Exemples :

Algorithme Somme #include <stdio.h>


Variables Som, N, i : entier; main(){
Début Int Som, N, i ;
Ecrire (" Donnez la valeur, N "); printf (" Donnez la valeur N " );
Lire (N);
scanf (''%d'',&N);
Som ← 0;
Som=0;
Pour i ← 1 jusqu’à N Faire
Som ← Som + i; For (i =1; i<=N; i++) {
FinPour Som = Som + i; }
Ecrire(''La somme des '', N, '' premiers entiers est : '', Som); Printf(''La somme des %d premiers entiers est %d: '', N,Som);
Fin }
Remarques

 Par défaut la variable compteur est incrémentée de 1 à chaque tour de boucle.


 Pour modifier la valeur d’incrémentation, il suffit de rajouter le mot Pas et la valeur de ce pas à la boucle Pour.
 La même chose pour langage C en peut modifier la valeur d’incrémentation il suffit de modifier l'instruction dans la
boucle for (i =1; i<=N; i+=2)

20
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


(TantQue … Faire … FinTantQue) en langage C (While)

La boucle TantQue permet de répéter un traitement tant que la condition est vraie.

Syntaxe : Algorithme Langage C


TantQue condition faire while (condition){
Traitement(s); Traitement(s);
FinTantQue }

Chapitre IV : Les structures conditionnelles alternatives et répétitives


(TantQue … Faire … FinTantQue) en langage C (While)

Exemple :

Algorithme Somme
Variables Som, N, I : entier;
Début
Som ← 0;
I ← 1;
Ecrire (" Donnez la valeur, N ");
Lire (N);
Tantque (I <= N) faire
Som ← Som + I;
I ← I + 1;
FinTantQue
Ecrire(''La somme des '', N, '' premiers entiers est : '', Som);
Fin

Exercice
Récrire cet algorithme en langage C on utilisant l’organigramme précédant

21
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


La boucle (Répéter …Jusqu'à) (Faire … Tantque) en langage C (Do … while)

La boucle permet de répéter les instructions jusqu’à la vérification de la condition, c’est-a-dire de répéter une
instruction jusqu'à ce qu'une condition soit vraie.
Syntaxe :
Algorithme Langage C

Répéter Faire Do { Instruction(1); Instruction(n);


Instruction(s); Instruction(s); }
Jusqu'à condition(s); Tantque condition(s); While condition(s);

Chapitre IV : Les structures conditionnelles alternatives et répétitives


La boucle (Répéter …Jusqu'à) (Faire … Tantque) en langage C (Do … while)

Algorithme Somme
Variables Som, N, I : entier;
Début
Som ← 0;
I ← 1;
Ecrire (" Entrer la valeur, N ");
Lire (N);
Faire
Som ← Som + I;
I ← I + 1;
Tantque (I <= N);
Ecrire(''La somme des '', N, '' premiers entiers est : '', Som);
Fin

Remarques

Les instructions de la boucle Répéter ou bien Faire Tantque sont exécutées au moins une fois, car l’évaluation de la
condition vient après le passage dans la boucle.

22
07/12/2021

Chapitre IV : Les structures conditionnelles alternatives et répétitives


La différence entre les boucles Tant que (While) et Faire Tantque (Do while)

Les instructions de la boucle Tantque ( While ) peuvent ne jamais être exécutées si la condition n’est pas vérifiée, lors
de la première évaluation.
Cependant, la boucle Faire Tantque ( Do While ) s’exécute jusqu’à ce que la condition soit vérifiée a ce point la
condition permet la sortie de la boucle Répéter

Retenir

 On utilise la boucle Pour quand l’on connaît le nombre d’itérations à l’avance.


 Les boucles Répéter et TantQue sont utilisées lorsqu’on ne sait pas au départ combien de fois il faudra exécuter
ces boucles.
 A la différence de la boucle TantQue , la boucle Répéter est exécutée au moins une fois.
 La condition d’arrêt de la boucle Répéter est la négation de la condition de poursuite de la boucle TantQue.

Chapitre IV : Les structures conditionnelles alternatives et répétitives

Exercices

Exercice 1
Ecrire un algorithme qui demande un nombre entier à l’utilisateur et afficher N fois le message suivant
(Ecole Superieure de Technologie Essaouira LP MGE).

Exercice 2
Ecrire un algorithme permettant d’afficher la saison en introduisant le numéro du mois.

Exercice 3
Réécrire les algorithmes précédents, en utilisant les instructions de langage C

23
07/12/2021

Chapitre V : Les procédures et les fonctions

Chapitre V : Les procédures et les fonctions


Introduction
Nous savons que la construction d’un algorithme, pour résoudre un problème donné, repose sur
l’écriture d’un certain nombre d’instructions dans un ordre séquentiel et logique. Il apparaît fréquemment
qu’un même ensemble d’instructions se réalise à divers emplacements de l’algorithme. Pour éviter la peine
de recopier une même série d’instructions et aussi pour diminuer la taille de l’algorithme, on fera appel les
Sous-algorithmes.
V. 1. Sous-algorithmes

Un sous-algorithme est un bloc ou bien élément d’algorithmique faisant partie d’un algorithme. Il est déclaré
dans la partie entête (avant le début de l’algorithme) puis appelé dans le corps de l’algorithme.

Intérêt :
 Réaliser un découpage d’une tâche en sous-tâche.
 Optimiser le nombre d’instructions dans un programme
 Effectuer une seule description d’une tâche commune.
 Concevoir un programme de manière descendante en entrant de plus en plus dans les détails.
 Faciliter la mise au point et la correction des erreurs.

24
07/12/2021

Chapitre V : Les procédures et les fonctions


Principe des sous algorithme
Il s’agit d’écrire des programmes en utilisant des sous algorithmes à l’intérieur de algorithme ou bien
programme principale, et chacun exécutant une tâche précise.
Syntaxe général

Sous-algorithme Nom (liste des paramètres formels: types)


déclarations des variables locales Sous-algorithme
Début
Corps du sous-algorihtme Algorithme principale
Fin
Algorithme Nom
Déclaration des variables Appel du sous-algorithme
Début
Instructions
Appel du sous-algorithme
Instructions
Fin

Chapitre V : Les procédures et les fonctions

En algorithmique, comme langage C, il existe deux types de sous-programmes. Les fonctions et procédures.

V. 1. les fonctions prédéfinie

En langage C : les fonctions mathématique sont prédéfinie dans la bibliologique Math.h pour
utiliser les fonctions de cette librairie, il faut inclure la librairie par la directive
#include <math.h>

25
07/12/2021

Chapitre V : Les procédures et les fonctions

En algorithmique, comme langage C, il existe deux types de sous-programmes. Les fonctions et procédures.
V. 2. les fonctions

Une fonction est un bloc d’instructions qui retourne obligatoirement une et une seule valeur résultat à
l’algorithme appelant. Une fonction n’affiche jamais la réponse à l’écran car elle la renvoie simplement à
l’algorithme appelant.

Syntaxe exemple
Fonction Nom (paramètres formels: types): type fonction Fonction somme (a, b : entier) : entier
Déclaration des variables; Variables c : entier;
Début Début
Instructions et le corps de la fonction; c ← a+b;
Nom ← resultat; somme ← c;
FinFonction Finfonction

Chapitre V : Les procédures et les fonctions


V. 3. Appel d’une fonction
Une fois la fonction est définie, il est possible, à tout endroit de l’algorithme principal, de faire appel à elle
en spécifiant son nom suivi par la liste des paramètres effectifs

Syntaxe Nom de la fonction ( liste des paramètres effectifs )

Exemple Algorithme calcul


Fonction sommecarre (a, b : entier) : entier // déclaration de la fonction
Variables c : entier;
Début
c ← (a*a)+(b*b);
sommecarre ← c;
Finfonction
Debut // début de l’algorithme principale
Variables x, y, resultat : entiers;
resultat ← sommecarre(x,y); // appel de la fonction
Ecrire ('‘ la somme carre de x et y est ='', resultat )
Fin

26
07/12/2021

Chapitre V : Les procédures et les fonctions


V. 4. les procédures

• Une procédure est un bloc d’instructions nommé et déclaré dans l’entête de l’algorithme et appelé dans
son corps à chaque fois que le programmeur en a besoin.
• Une procédure est un sous-programme qui ne retourne pas de valeur.

Syntaxe Exemple

Procédure Minimum (a, b:réels)


variables min : entier;
Procedures Nom (paramètres formels et types)
Début
Déclaration des variables;
Si (a ≤ b) alors
Début
min ← a;
Instructions et le corps de la procédure;
sinon min ← b;
FinProcédure Ecrire (le minimum est , min);
Fin

Chapitre V : Les procédures et les fonctions


V. 5. Appel d’une procédure
Tout comme le cas d’une fonction, l’appel d’une procédure se réalise, à tout endroit de l’algorithme principal, par
l’occurrence du nom de cette procédure suivi par la liste des paramètres effectifs.

Syntaxe Exemple
Algorithme factoriel
Nom de la procédure (paramètres et leurs types) Procédure FAT (n: entier)
Variables y, i : entier;
Retenir Début
y ← 1; Pour i ← 1 à n faire
 Les paramètres placés dans la déclaration d'une
y ← y ∗ i;
procédure sont appelés paramètres formels. Ces Fin pour
paramètres peuvent prendre toutes les valeurs Ecrire (’le factoriel de ce nombre entier est’, y);
possibles mais ils sont abstraits (n'existent pas Finprocédure
réellement). Variables A: entier;
 Les paramètres placés dans l'appel d'une Début
procédure sont appelés paramètres effectifs. ils Lire (A);
contiennent les valeurs pour effectuer le traitement. FAT(A);
Fin

27
07/12/2021

Chapitre V : Les procédures et les fonctions


V. 6. Les passages de paramètres
Il existe deux types d’association entre les paramètres du sous-programme (fonction ou procédure) et
variables du programme appelant (algorithme principale) : Passage par valeur et Passage par adresse

• Passage par valeur

le paramètre transmis n'est jamais affecté par les modifications dans la procédure ou la fonction (on ne
récupère pas les résultats ) le contenu des paramètres effectifs ne peut pas être modifié par les instructions de
la fonction ou de la procédure. Car nous ne travaillons pas directement avec la variable, mais sur une copie

• Passage par adresse

le paramètre transmis dans ce cas peut être modifié et on récupère les résultats la procédure utilise l'adresse du
paramètre effectif. Lorsqu'on utilise l'adresse du paramètre, on accède directement à son contenu. La valeur de
la variable effectif sera donc modifiée. Les paramètres passés par adresse sont précédés du mot clé Var.

Chapitre V : Les procédures et les fonctions


V. 6. Les passages de paramètres
Passage par valeur Passage par adresse

Procédure P1(A : entier) Procédure P2(Var A : entier)


Début A ← A * 2; Début A ←A * 2;
Ecrire (A); Ecrire (A);
FinProcédure FinProcédure

Algorithme principal Algorithme principal


Variable N : entier Variable N : entier
Début Début
N ← 5; N ← 5;
P1(N); P2(N);
Ecrire(N); Ecrire(N);
Fin Fin

N P1(N) Ecrire(N) N P2(N) Ecrire(N)


5 10 5 5 10 10

28
07/12/2021

Chapitre V : Les procédures et les fonctions


V. 7. les fonctions en langage C
 Une fonction est un bloc d’instructions qui retourne obligatoirement une et une seule valeur résultat à
programme appelant
Syntaxe

type Nom de fonction (liste déclarations de paramètres)


{
liste-de-déclarations;
liste-d'instructions;
}

• Type : est le type de la valeur rendue par la fonction.


• Nom : Nom de la fonction.
• Liste des paramètres : est la liste (séparés par des virgules) des déclarations des paramètres formels.
•La liste d'instructions : est l'ensemble des instructions qui seront exécutées sur appel de la fonction

Chapitre V : Les procédures et les fonctions


V. 7. les fonctions en langage C
Exemple

int triple(int nombre)


{
int resultat = 0;
resultat = 3 * nombre; // On multiplie le nombre fourni par 3
return resultat; // On retourne la variable résultat qui vaut le triple de nombre
}

Appel d’une fonction


Nom de la fonction ( liste des paramètres effectifs );

Exemple int main()


{
int nombreEntre = 0, nombreTriple = 0;
nombreTriple = triple(nombreEntre);
}

29
07/12/2021

Chapitre V : Les procédures et les fonctions


V. 8. les procédures en langage C

Une procédure est une série d’instructions regroupées sous un nom, qui permet d’effectuer des actions par un
simple appel de la procédure dans un algorithme ou dans un autre sous-algorithme. Une procédure renvoie
aucune valeur et leur type est déclare Void .

Syntaxe
Void Nom de procédure (liste déclarations de paramètres)
{
liste-de-déclarations;
liste-d'instructions;
}

Appel d’une fonction

Nom de la procédure ( liste des paramètres effectifs );

Chapitre V : Les procédures et les fonctions


V. 8. les procédures en langage C
Exemple
Je suis la ligne : 1
void Nligne(int nombreDeLignes) Je suis la ligne : 2
{ Je suis la ligne : 3
int i; Je suis la ligne : 4
for (i = 0 ; i < nombreDeLignes ; i++) Je suis la ligne : 5
{ Je suis la ligne : 6
printf("Je suis la ligne N° : \n"); Je suis la ligne : 7
} Je suis la ligne : 8
} Je suis la ligne : 9
int main() Je suis la ligne : 10
{
Nligne(10);
}

30
07/12/2021

Chapitre V : Les procédures et les fonctions


V. 9. exemples des fonctions en langage C

#include <stdio.h>
int sommecarre(int a, int b)
{ int w;
w=(a*a)+(b*b)
return w; }
int main()
{ int y,x;
printf("donnez la valeurs de x et y");
Scanf("%d%d" ,&x,&y);
printf("la somme des carres de x et y = %d ", sommecarre(x,y));
}

donnez la valeurs de x et y
5
4
la somme des carres de x et y = 41

Chapitre V : Les procédures et les fonctions


V. 9. exemples des fonctions en langage C

#include <stdio.h>
double aireRectangle(double largeur, double hauteur)
{
return largeur * hauteur;
}
int main()
{
printf("Rectangle de largeur 5 et hauteur 10. Aire = %f\n", aireRectangle(5, 10));
printf("Rectangle de largeur 2.5 et hauteur 3.5. Aire = %f\n", aireRectangle(2.5, 3.5));
printf("Rectangle de largeur 4.2 et hauteur 9.7. Aire = %f\n", aireRectangle(4.2, 9.7));
}

Rectangle de largeur 5 et hauteur 10. Aire = 50.000000


Rectangle de largeur 2.5 et hauteur 3.5. Aire = 8.750000
Rectangle de largeur 4.2 et hauteur 9.7. Aire = 40.740000

31
07/12/2021

printf("fin du cours");

32

Vous aimerez peut-être aussi