Vous êtes sur la page 1sur 11

Université Cadi Ayyad - Marrakech

Ecole Supérieure de Technologie


Safi
Algorithmique
DUT Génie Informatique  20 heures de cours ;
Module 1:  16 heures de travaux dirigés ;
Algorithmique et bases de la programmation Langage de programmation C
 26 heures de cours ;
 24 heures de cours Pratiques.

Année universitaire 2018/2019 V 1.0


2

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Introduction
 Algorithme et programme
 Représentation d’un algorithme
 Processus de la programmation
Structure d’un algorithme
 Variables et Constantes
 Types des variables
Instructions de base
 L’instruction d’affectation
 Opérateurs et Expressions
 Priorité des opérateurs
 Les instructions de lecture et écriture
Structures conditionnelles
 Structure simple
 Structure alternative
 Structures alternatives imbriquées
 Structures à choix multiples
Les structures répétitives
 La structure Pour
 La structure Tantque
 La structure Répéter Jusqu’a 3 4

1
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Comment cuire le riz ?


1. remplir une casserole d'eau ;
2. y ajouter une pincée de sel ;
3. la mettre sur le feu ;
4. attendre l'ébullition de l'eau ;
5. mettre le riz dans la casserole;
6. le laisser cuire 10 à 15 minutes ;
7. égoutter le riz.

5 6

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

7 8

2
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives


Organigrammes pseudo-code
non Condition oui …
vraie?

Si ( condition est vraie ) Alors
Bloc 1 d’instructions
Bloc 2 d’instructions Bloc 1 d’instructions Sinon
Bloc 2 d’instructions
FinSi


Suite de l’algorithme …

Plus rapide à écrire et plus facile à traduire en un langage de programmation.


Dès que l'algorithme commence à grossir, il devient illisible.
9 10

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Algorithme nomAlgorithme
Entête
Réflexion constantes
& const1←val1 : type1
Analyse …
constp←valp : typep
Codification variables
Problème du Var_1 : type_1
Algorithme Programme Déclaration des variables et
monde réel Résolution du problème Traduction ... des constantes
Exécution

Var_n : type_n
Debut
Instruction_1
Sens d’exécution ... Corps de l’algorithme
des instructions
Instruction_N
découverte d’erreurs
Résultats Fin
Correction
11 12

3
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

La quasi-totalité des algorithmes utilisent des données élémentaires pour


la résolution des problèmes. Ces données élémentaires sont sous forment de
"variables" ou de "constantes" .

Une variable/constante possède ces trois attributs:


 L’identificateur: son nom;  Un identifiant ne doit contenir
 La valeur: son contenu; que les caractères suivants:
[a-z][A-Z][0-9]et { _ };
 Le type : l’ensemble de ses valeurs.
 En plus un identifiant ne doit
pas commencer par un chiffre.

13 14

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Attention!!! toute variable/constante utilisée dans un algorithme doit


avoir fait l’objet d’une déclaration préalable.

Constantes
PI←3.14 : réel
MAXI←32 : entier
Variables
i, j, k : entier
x, y : réel
OK: booléen
Ch1, ch2 : chaîne de caractères
15 16

4
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

L’instruction d’affection est l’opération qui consiste à attribuer une valeur à une
Lors d’une affectation, l’expression de droite est évaluée et la valeur trouvée est
variable. On la notera par le signe ←.
VARIABLE ← valeur affectée à la variable de gauche.
Ainsi, A ← B est différente de B←A
Attention!!! Si dans une instruction d’affectation, la variable à laquelle on affecte la
valeur et la valeur affectée ont des types différents, cela provoquera une erreur. l'affectation est différente d'une équation mathématique :
On peut aussi attribuer à une variable la valeur d’une variable ou d’une  A+1←3 n'est pas possible en algorithmique et n'est
expression de façon générale. VARIABLE ← EXPRESSION pas équivalente à A←2;
Par exemple :  Les opérations x←x+1 et x←x-1 ont un sens en algorithmique et
A←5 se nomment respectivement incrémentation et décrémentation.
B←A*6+2
A←A+7
17 18

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Exercice 2: Quelles seront les valeurs des variables A et B après exécution des instructions
Exercice 1: Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
suivantes ?
Algorithme Exercice2
Algorithme Exercice1 Variables
Variables A, B, C : Entier
A, B : Entier Début
Début A←5
A ← 14 B←3
B←A+3 C←A+B
A ← 56 A←2
Fin C←B–A
Fin

19 20

5
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Exercice 3: Est-ce que cet algorithme permet d’échanger les valeurs de A et B (càd: mettre le
contenu de A dans B et celui de B dans A) ? Un opérateur est un signe qui relie deux variables/valeurs pour produire un résultat.
Les opérateurs dépendent du type de l'opération, ils peuvent être :
Algorithme Exercice3
 Opérateurs arithmétiques: +, -, *, /, Div (division entière),
Variables
Mod (reste de la division entière), ^(Puissance);
A, B : Entier
Début  Operateurs de comparaison: >, <, >= , <=, =, <> (diffèrent);
A ← 11
B←6  Operateurs logique: and (et logique), Or (ou logique);
A←B
B←A  Opérateurs sur les chaînes: & (concaténation).
Fin

Une expression est un ensemble de variables/valeurs reliées par des


Exercice 4: Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et
opérateurs et dont la valeur du résultat de cette combinaison est unique.
ce quel que soit leur contenu préalable.
21 10+6 x + 13 – y/3 nom & prenom 22

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant:
Considérons l’algorithme suivant :
Plus prioritaire o ()
o ^ Algorithme Calcul_Carre
o *,/ VARIABLES
o Mod A : ENTIER
Moins prioritaire o +,- Début
A ← 11* 11
Par exemple, 10 * 6 + 2 donne comme résultat 62. Fin

En cas de besoin, on utilise les parenthèses pour indiquer les opérations à


Le problème de cet algorithme, c’est que, si l’on veut calculer le carré
effectuer en priorité. Par exemple, 10 * (6 + 2) donne comme résultat 80. d’un autre nombre que 11, il faut réécrire à chaque fois l’algorithme;

23 24

6
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Les instructions de lecture et d'écriture permettent à la machine de L'écriture (instruction de sortie) permet d'afficher des résultats ou la valeur
communiquer avec l'utilisateur, On les appels aussi les entrées/sorties standards. d’une variable à l'écran.
La lecture (instruction d’entrée) permet d'entrer des donnés à partir du clavier. Syntaxe : Ecrire (NomVariable)

Syntaxe : Lire (NomVariable) ou de façon générale: Ecrire (Expression)


Lorsque le programme rencontre une instruction Lire, l’exécution du
programme s’interrompt, attendant la saisie d’une valeur au clavier. Exemples :

Dès que l’on frappe sur la touche ENTER, l’exécution reprend. Ecrire(x) /* Cette instruction affiche la valeur de la variable x*/
Ecrire("Hello") /* Cette instruction affiche le message « Hello» */
Ecrire("Le carré de 11est:", 11* 11) /* Cette instruction affiche «Le carré de 11est:121» */
Exemples :
lire(x) lire(angle) lire(age) Avant de lire une variable, il est fortement conseillé d’écrire des libellés à l’écran, afin de prévenir l’utilisateur de
25 ce qu’il doit frapper. 26

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Exercice 5:
Ecrire un algorithme qui lit le rayon d’un cercle, puis calcule et affiche son périmètre .
Exercice 1:
Écrire un algorithme qui affiche “Bonjour les DUT”.
Exercice 2:
Écrire un algorithme qui demande à l’utilisateur de saisir un nom et un prénom, puis affiche le
nom complet.
Exercice 3:
Écrire un algorithme qui demande à l'utilisateur de saisir deux nombres entiers, ensuite calcule
et affiche leur somme.
Exercice 4:
Écrire un algorithme qui demande à l'utilisateur de saisir un nombre entier, ensuite calcule et
affiche le carré de ce nombre. 27 28

7
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Algorithme nomAlgo
La structure simple permet d'exécuter un groupe d’instructions en fonction de réponses à
 Structure séquentielle ou linéaire Debut
Instruction 1
des conditions.
 Dans une structure séquentielle toutes les
instructions sont exécutées une seule fois les unes …
après les autres, dans l’ordre où elles ont été Instruction n Syntaxe :
écrites. Fin
 Structure conditionnelle SI (condition) ALORS
Si condition est vraie, on
 Contrairement à une structure séquentielle, Une Exemple : bloc d'instructions exécute le bloc d'instructions,
structure conditionnelle permet de faire exécuter Si feu vert alors je passe FIN SI
une instruction ou une séquence d'instructions Si le feu est rouge alors
que si une condition est vérifiée. je m’arrête
 Structure itératives ou répétitive Application: Écrire un algorithme qui permet de calculer le résultat de la
Exemple : division de deux entiers A et B .
 Permet de répéter l'exécution d’un groupe
d'instructions un certain nombre de fois. Afficher les nombres de
1 à 100.
29 30

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Une structure alternative est une situation dans laquelle on ne peut choisir que deux Les structures alternatives imbriquées sont des structures utilisées lorsqu'on a plus de deux
solutions possibles. cas possibles.
SI (condition1) ALORS
SI (condition2) ALORS
Format général: SI (condition3) ALORS

Syntaxe : SI (condition) ALORS SINON
Si condition est vraie, on
bloc 1 d'instructions exécute le bloc1 d'instructions, …
FIN SI
SINON
FIN SI
bloc 2 d'instructions Si la condition est fausse, on SINON
FIN SI exécute le bloc2 d'instructions. SI (condition2) ALORS

FIN SI
FIN SI
Application: Écrire un algorithme qui lit un entier non nul puis affiche s’il est
Application: Écrire un algorithme qui lit trois entiers A, B et C, et affiche le
positif ou négatif.
plus grand.
31 32

8
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Lorsqu’on doit comparer une même variable avec plusieurs valeurs, comme par exemple:
Exercice: SI (a=1) ALORS
instruction1
Écrire un programme qui donne l’état de l’eau (solide, gazeux, liquide) selon sa température. SINON SI (a=2) ALORS
instruction2
SINON SI (a=4) ALORS
instruction4
SINON . . .
FINSI
FINSI
FINSI

On peut remplacer cette suite de si par l’instruction cas.


Cas (variable) Vaut:
valeur_1 : instruction1
Syntaxe : valeur_2 : instruction2
...
valeur_n : instruction n
Sinon : instruction n+1
FinCas
33 34

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Les mois de l’année sont codés de 1 à 12. Les structures répétitives aussi appelées boucles, permettent de répéter l'exécution
Exemple:
d'un groupe d'instructions autant de fois qu'il est nécessaire : soit un nombre déterminé de
 1: Janvier;
 2:Février; fois, soit tant qu'une condition est vraie.
 …
 12:Décembre. Il existe trois grands types principaux de structures répétitives :

Écrire un algorithme qui affiche le mois correspondant à un code entré  Pour;


par l’utilisateur.
 Tantque;

 Repeter Jusqua.
35 36

9
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

La structure Pour permet de répéter un groupe d’instructions un certain nombre de fois. Exemple1: Écrire un algorithme qui affiche les nombres de 1 à 10.
Syntaxe : Algorithme Compteur
Pour compteur ← val_initial A val_final Pas i VARIABLES
i : ENTIER
Instructions à répéter Début
Pour i ← 1 a 10
Ecrire (i)
Fin Pour Fin Pour
Fin
 Compteur est une variable de type entier qui va prendre successivement toutes les valeurs entières entre val_initial et
Exemple2: Écrire un algorithme qui affiche les nombres paires de 1 à 10.
val_final;
Algorithme CompteurNbrPaires
 Pour chaque valeur prise par compteur, la liste des instructions est exécutée; VARIABLES
 L'incrémentation par i de la variable est implicite; i : ENTIER
Début
 Pas i peut ne pas être mentionné, car par défaut sa valeur est égal à 1. Pour i ← 2 a 10 pas 2
Ecrire (i)
On utilise la boucle "POUR" lorsque le nombre d'itérations (de répétitions) est Fin Pour
connu à l'avance. 37 Fin 38

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Cette structure permet de répéter un groupe d’instructions tant qu’une condition est
Exercice 1:
Écrire un algorithme qui demande à l’utilisateur un nombre entier, puis calcule sa satisfaite, lorsque la condition est fausse, le processus itératif s’arrête.
factorielle.
NB: la factorielle de 7, notée 7 ! vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 TantQue (condition)
Syntaxe :
Instructions à répéter
Exercice 2:
Écrire un algorithme qui demande à l’utilisateur deux entiers positifs X et n, puis Fin TantQue
calcule par multiplications successives X à la puissance n.
 On utilise la boucle "TANTQUE" lorsque le nombre d'itérations (de répétitions) n’est pas
connu à l'avance;

 Il est possible que les instructions à répéter ne soient jamais exécutées;

39  Pour que la boucle se termine, il est nécessaire qu’une instruction modifie la condition. 40

10
Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Comme son nom l'indique, permet de répéter un groupe d’instructions jusqu'à ce qu'une
Exemple: Écrire un algorithme qui affiche les nombres de 1 à n, avec n saisi par l’utilisateur.
condition soit satisfaite.
Algorithme Compteur
Répéter
VARIABLES
i,n : ENTIER Syntaxe : Instructions à répéter
Début
Ecrire(‘’Entrer un nombre’’)
Lire (n) Jusqu’à (condition)
i←1
Tantque(i<=n)
 On utilise la boucle "Répéter jusqu’à" lorsque le nombre d'itérations (de répétitions) n’est
Ecrire (i)
pas connu à l'avance;
i++
Fin Tantque  A la différence de la boucle "TANTQUE", la boucle "REPETER" est exécutée au moins une fois;
Fin
41  Pour que la boucle se termine, il est nécessaire qu’une instruction modifie la condition. 42

Introduction Structure d’un algorithme Instructions de base Structures conditionnelles Les structures répétitives

Application: Écrire un algorithme qui calcule et affiche la somme d’une liste des nombres saisis
par l’utilisateur dont le dernier est 0.

Algorithme Calcul_Somme
VARIABLES
som,nbr : ENTIER
Début
som ← 0
Répéter
Ecrire(‘’Entrer un nombre ’’)
Lire(nbr)
som ← som+nbr
Jusqu’à (nbr=0)
Ecrire(‘’la somme est:’’ som)
Fin
43 44

11

Vous aimerez peut-être aussi