Vous êtes sur la page 1sur 76

Objectif et plan du cours

Objectif:

Apprendre les concepts de base de l'algorithmique et de la


programmation

Etre capable de mettre en uvre ces concepts pour analyser des


problmes simples et crire les programmes correspondants

Plan:

Gnralits (matriel dun ordinateur, systmes dexploitation, langages


de programmation, )

Algorithmique (affectation, instructions conditionnelles, instructions


itratives, fonctions, procdures, )

2
Systme Informatique?
Techniques du traitement automatique de linformation au
moyen des ordinateurs
Systme informatique = ordinateur + priphriques

lments dun systme informatique

Applications
(Word, Excel, Jeux, Maple, etc.)
Langages
(Java,C/C++, Fortran,etc.)
Systme dexploitation
(DOS,Windows, Unix, etc.)
Matriel
(PC, Macintosh, station SUN, etc.)

3
Quest-ce quun programme
dordinateur?
Allumez un ordinateur, vous nen tirerez rien!!

Pour le faire marcher il faut lui fournir un programme


Ordinateur = matriel + programme(s)

Un programme est une suite dinstructions dordinateur

Une instruction est un ordre compris par lordinateur et


qui lui fait excut une action, c-a-d une modification de
son environnement

4
Les catgories dordres

les ordinateurs, quels quils soient, ne sont


fondamentalement capables de comprendre que
quatre catgories d'ordres (en programmation, on
n'emploiera pas le terme d'ordre, mais plutt celui
d'instructions). Ces quatre familles d'instructions
sont :
laffectation de variables
la lecture / criture
les tests
les boucles

5
Actions dun ordinateur : Exemple

Attendre quun nombre soit tap au clavier


Sortir lcran le nombre entr
Attendre quun nombre soit tap au clavier
Sortir lcran le nombre entr
Additionner les deux nombres entrs
Sortir lcran le rsultat de laddition

Ces lignes forment un programme dordinateur

6
Quest ce quun systme dexploitation?
Ensemble de programmes qui grent le matriel et
contrlent les applications

Gestion des priphriques (affichage l'cran, lecture du


clavier, pilotage dune imprimante, )

Gestion des utilisateurs et de leurs donnes (comptes,


partage des ressources, gestion des fichiers et rpertoires, )

Interface avec lutilisateur (textuelle ou graphique):


Interprtation des commandes

Contrle des programmes (dcoupage en taches, partage


du temps processeur, )

7
Langages informatiques
Un langage informatique est un outil permettant de
donner des ordres (instructions) la machine

A chaque instruction correspond une action du processeur

Intrt : crire des programmes (suite conscutive


dinstructions) dstins effectuer une tache donne

Exemple: un programme de gestion de comptes bancaires

Contrainte: tre comprhensible par la machine

8
Langage machine
Langage binaire: linformation est exprime et manipule sous
forme dune suite de bits

Un bit (binary digit) = 0 ou 1 (2 tats lectriques)

Interchange) donne les


28 256
Le code ASCII (American Standard Code for Information
correspondances entre les caractres alphanumriques et leurs
reprsentation binaire, Ex. A= 01000001, ?=00111111

Les oprations logiques et arithmtiques de base (addition,


multiplication, ) sont effectues en binaire

9
L'assembleur
Problme: le langage machine est difficile comprendre par l'humain

Ide: trouver un langage comprhensible par l'homme qui sera


ensuite converti en langage machine
Assembleur (1er langage): exprimer les instructions lmentaires
de faon symbolique

+: dj plus accessible que le langage machine


-: dpend du type de la machine (nest pas portable)
-: pas assez efficace pour dvelopper des applications complexes

Apparition des langages volus


10
Langages haut niveau
Intrts multiples pour le haut niveau:
proche du langage humain anglais (comprhensible)
permet une plus grande portabilit (indpendant du matriel)
Manipulation de donnes et dexpressions complexes (rels,
objets, a*b/c, )
Ncessit dun traducteur (compilateur/interprteur),
excution plus ou moins lente selon le traducteur

Code source Compilateur ou


Langage machine
en langage volu interprteur

11
Compilateur/interprteur
Compilateur: traduire le programme entier une fois pour toutes
Compilateur excution
exemple.c exemple
fichier source fichier excutable
+ plus rapide lexcution
+ scurit du code source
- il faut recompiler chaque modification

Interprteur: traduire au fur et mesure les instructions du


programme chaque excution
Interprtation+excution
exemple.bas
fichier source
+ excution instantane apprciable pour les dbutants
- excution lente par rapport la compilation
12
Langages de programmation:

Deux types de langages:


Langages procduraux : sont base de procdures. Une
procdure est une portion de programme crit en langage de haut
niveau qui accomplit une tche spcifique ncessaire au
programme.
Langages orients objets : sont des langages non procduraux
dans lesquels les lments du programme sont considrs comme
des objets qui peuvent s'changer des messages.

Choix dun langage?

13
exemples Langages de
programmation:
Blaise PASCAL, Langage compil et structur,

Pascal
mathmaticien et inventeur de driv d'ALGOL. c'est un
la premire machine langage de dveloppement
calculer 1971 standard pour les micro-
ordinateurs.
C'est une version amliore Langage de programmation

C
du langage de programmation structur et compil, trs
B du Bell Laboratory, cr en largement employ car ses
1972 programmes peuvent
facilement se transfrer d'un
type d'ordinateur un autre.

Maple Nasa 1980 de SUN couvrir tous les domaines


Dapplication formel

Java Microsystems 1990 Ce langage connat un


succs qu'aucun autre
langage n'avait encore connu.

14
Etapes de ralisation dun programme
Enonc du problme
Spcification
Cahier des charges
Analyse
Algorithme
Traduction en langage
Programme source
Compilation
Programme excutable
Tests et modifications
Version finale et rsultats

Do lintrt de lAlgorithmique
La ralisation de programmes passe par lcriture dalgorithmes

15
Pourquoi apprendre lalgorithmique
pour apprendre programmer ?
Un algorithme est une description complte et dtaille des actions
effectuer et de leur squencement pour arriver un rsultat donn

Intrt: sparation analyse/codage (pas de proccupation de syntaxe)


lalgorithmique exprime les instructions rsolvant un problme donn
indpendamment des particularits de tel ou tel langage.
Qualits: exact (fournit le rsultat souhait), efficace (temps dexcution,
mmoire occupe), clair (comprhensible), gnral (traite le plus grand
nombre de cas possibles),

Pour prendre une image, si un programme tait une dissertation,


lalgorithmique serait le plan. Mieux faire dabord le plan et rdiger
ensuite que linverse

16
Reprsentation dun algorithme
Historiquement, deux faons pour reprsenter un algorithme:
LOrganigramme: reprsentation graphique avec des symboles
(carrs, losanges, etc.)
offre une vue densemble de lalgorithme
reprsentation quasiment abandonne aujourdhui

Le pseudo-code: reprsentation textuelle avec une srie de


conventions ressemblant un langage de programmation (sans
les problmes de syntaxe)
plus pratique pour crire un algorithme
reprsentation largement utilise

17
Algorithmique

Notions et instructions de base

18
Structure gnrale dun algorithme

ALGORITHME nom de lalgorithme


CONST{ dfinition des constantes }
VAR{ dclaration des variables }
DEBUT
{
Corps de lalgorithme
}
FIN
19
Les catgories dordres

les ordinateurs, quels quils soient, ne sont


fondamentalement capables de comprendre que
quatre catgories d'ordres. Ces quatre familles
d'instructions sont :
Les variables et leurs affectation
la lecture / criture
les tests
les boucles

20
Notion de variable
Dans les langages de programmation une variable sert stocker
la valeur dune donne

Une variable dsigne en fait un emplacement mmoire dont


le contenu peut changer au cours dun programme (do le nom
variable)

Rgle : Les variables doivent tre dclares avant dtre


utilises, elle doivent tre caractrises par :
un nom (Identificateur)
un type (entier, rel, caractre, chane de caractres, )

21
Choix des identificateurs (1)
Le choix des noms de variables est soumis quelques rgles qui
varient selon le langage, mais en gnral:
Un nom doit commencer par une lettre alphabtique
exemple valide: A1 exemple invalide: 1A

doit tre constitu uniquement de lettres, de chiffres et du


soulignement _ (Eviter les caractres de ponctuation et les espaces)
valides: SMI2007, SMI_2007 invalides: SMI 2007, SMI-2007, SMI;2007

doit tre diffrent des mots rservs du langage (par exemple en


Java: int, float, else, switch, case, default, for, main, return, )

La longueur du nom doit tre infrieure la taille maximale spcifie


par le langage utilis
22
Choix des identificateurs (2)
Conseil: pour la lisibilit du code choisir des noms significatifs
qui dcrivent les donnes manipules
exemples: TotalVentes2006, Prix_TTC, Prix_HT

23
Types des variables
Le type dune variable dtermine lensemble des valeurs quelle peut
prendre, les types offerts par la plus part des langages sont:
Type numrique (entier ou rel)
Byte (cod sur 1octet): de 0 255
Entier court (cod sur 2 octets) : -32 768 32 767
Entier long (cod sur 4 ou 8 octets)
Rel simple prcision (cod sur 4 octets)
Rel double prcision (cod sur 8 octets)
Type logique ou boolen: deux valeurs VRAI ou FAUX

Type caractre: lettres majuscules, minuscules, chiffres, symboles,


exemples: A, a, 1, ?,
Type chane de caractre: toute suite de caractres,
exemples: " Nom, Prnom", "code postale: 1000",

24
Dclaration des variables
Rappel: toute variable utilise dans un programme doit avoir
fait lobjet dune dclaration pralable
En pseudo-code, on va adopter la forme suivante pour la
dclaration de variables
Variables liste d'identificateurs : type
Exemple:
Variables i, j,k : entier
x, y : rel
OK: boolen
ch1, ch2 : chane de caractres

Remarque: pour le type numrique on va se limiter aux entiers


et rels sans considrer les sous types
25
Linstruction daffectation
laffectation consiste attribuer une valeur une variable
(a consiste en fait remplir o modifier le contenu d'une zone mmoire)

En pseudo-code, l'affectation se note avec le signe


Mon_var e : attribue la valeur de e la variable Mon_var
- e peut tre une valeur, une autre variable ou une expression
- Mon_var et e doivent tre de mme type ou de types compatibles
- laffectation ne modifie que ce qui est gauche de la flche

Ex valides: i 1 j i k i+j
x 10.3 OK FAUX ch1 "SMI"
ch2 ch1 x 4 x j
(voir la dclaration des variables dans le transparent prcdent)
non valides: i 10.3 OK "SMI" j x
26
Quelques remarques
Beaucoup de langages de programmation (C/C++, Java, ) utilisent
le signe gal = pour laffectation . Attention aux confusions:

l'affectation n'est pas commutative : A=B est diffrente de B=A


l'affectation est diffrente d'une quation mathmatique :

A=A+1 a un sens en langages de programmation


A+1=2 n'est pas possible en langages de programmation et n'est
pas quivalente A=1

Certains langages donnent des valeurs par dfaut aux variables


dclares. Pour viter tout problme il est prfrable d'initialiser les
variables dclares

27
Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C aprs excution
des instructions suivantes ?

Var A, B, C: Entier
Dbut
A3
B7
AB
B A+5
CA+B
CBA
Fin

28
Exercices simples sur l'affectation (2)
Donnez les valeurs des variables A et B aprs excution des
instructions suivantes ?

Var A, B : Entier
Dbut
A1
B2
AB
BA
Fin

Les deux dernires instructions permettent-elles dchanger les


valeurs de A et B ?

29
Exercices simples sur l'affectation (3)

Ecrire un algorithme permettant dchanger les


valeurs de deux variables A et B

30
Expressions et oprateurs
Une expression peut tre une valeur, une variable ou une
opration constitue de variables relies par des oprateurs
exemples: 1, b, a*2, a+ 3*b-c,

L'valuation de l'expression fournit une valeur unique qui est le


rsultat de l'opration

Les oprateurs dpendent du type de l'opration, ils peuvent tre :


des oprateurs arithmtiques: +, -, *,/ (div), % (mod), ^ (puissance)
des oprateurs logiques: NON, OU, ET
des oprateurs relationnels: =, , <, >, <=, >=
des oprateurs sur les chanes: & (concatnation)

Une expression est value de gauche droite mais en tenant


compte de priorits
31
Priorit des oprateurs
Pour les oprateurs arithmtiques donns ci-dessus, l'ordre de
priorit est le suivant (du plus prioritaire au moins prioritaire) :

^ : (lvation la puissance)
* , div(multiplication, division)
Mod (modulo)
+ , - (addition, soustraction)
exemple: 2+3*7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthses pour
indiquer les oprations effectuer en priorit
exemple: (2 + 3) * 7 vaut 35

32
Les instructions d'entres-sorties:
lecture et criture (1)
Les instructions de lecture et d'criture permettent la machine de
communiquer avec l'utilisateur

La lecture permet d'entrer des donns partir du clavier

En pseudo-code, on note: lire (var1)


la machine met la valeur entre au clavier
dans la zone mmoire nomme var1
Remarque: Le programme s'arrte lorsqu'il rencontre une instruction
Lire et ne se poursuit qu'aprs la frappe dune valeur au clavier et de
la touche Entre
Conseil: Avant de lire une variable, il est fortement conseill dcrire
des messages lcran, afin de prvenir lutilisateur de ce quil doit
frapper
33
Les instructions d'entres-sorties:
lecture et criture (2)

L'criture permet d'afficher des rsultats l'cran (ou de les crire


dans un fichier)

En pseudo-code, on note: crire (var2)


la machine affiche le contenu de la
zone mmoire var2

34
Exemple (lecture et criture)
Ecrire un algorithme qui demande un nombre entier l'utilisateur, puis
qui calcule et affiche le double de ce nombre

Algorithme Calcul_double
Var A, B : entier
Dbut
crire("entrer la valeur de A ")
lire(A)
B 2*A
crire("le double de ", A, "est :", B)
Fin
35
Exercice (lecture et criture)
Ecrire un algorithme qui vous demande de saisir votre nom puis
votre prnom et qui affiche ensuite votre nom complet

Algorithme AffichageNomComplet
Var Nom, Prenom, Nom_Complet : chane de caractres
Dbut
crire("entrez votre nom")
lire(Nom)
crire("entrez votre prnom")
lire(Prenom)
Nom_Complet Nom & Prenom
crire("Votre nom complet est : ", Nom_Complet)
Fin

36
Exercice (respect des rgles)
Chacun de ces quatre algorithmes contient une erreur. Laquelle?
Algorithme1 Algorithme2
Variables Variables
Quantit : entier X, Y, Z : rel
Prix_unit : rel Dbut
Dbut Lire (X, Y, Z)
Lire (Quantit, Prix_unit) Z :=X-Y
Prix_total := Quantit * Prix_unit crire (Z)
crire (Prix_total) Fin
Fin
Algorithme3 Algorithme4
Variables Variables
A1, A2: entier X : rel
A3 : rel Dbut
Dbut Lire (X)
Lire (A1, A2) X := X-1
A2 := A1 * A3 X :=Pi * X
crire (A2) crire (X)
Fin Fin
37
Mthode de construction dun
algorithme simple (1/4)

Exemple :

crire un algorithme qui consiste a calculer lair S


dun cercle selon la formule S = Pi * R2
Rappel : Pi = 3.14159 et R le rayon du cercle

38
Mthode de construction dun
algorithme simple (2/4)
Mthodologie a suivre :
constantes : Pi = 3.14159

Variables : Rayon, Surface

Types : Rayon, Surface : rel

Expressions et affectation : Surface := Pi * (Rayon)2

Oprations dentre-sortie : Lire (Rayon),


crire (Surface)

39
Mthode de construction dun
algorithme simple (3/4)
Algorithme
Calcul_Aire
Constantes
Pi = 3,14159
Variables
Rayon, Surface : rels
Dbut
lire (Rayon)
Surface Pi * (Rayon^2)
crire (Surface)
Fin

40
Algorithmique

Les structures de contrle

41
Besoin a des concepts de
ruptures de squence
Algorithme
Rare les algorithme qui peuvent se
Calcul_Aire dcrire uniquement par un
Constantes enchanement squentiel
dopration lmentaire
Pi = 3,14159
Var
On a besoin a des concept de rupture
Rayon, Surface : rels

de squence comme les test et les
Dbut boucles
lire (Rayon) Ex :
un algorithme qui vrifie une
Surface := Pi * (Rayon)2
division par 0
crire (Surface) un algorithme qui calcule une srie
Fin numrique

42
Les structures de contrle

On distingue 3 groupes de structure de


contrle:
Les instructions alternatives
Les instructions rptitives
Les instructions de branchement

43
Les structures de contrle

Les instructions alternatives: cest un concept de tests


multiples, permet de comparer un objet une srie de valeurs, et
excuter si la condition est vrifier (Ex : recherche des nombres premier
dans une ensemble)
SiSinon
Selon
Les instructions rptitives: consiste a excut un bloc
dinstructions un certain nombre de fois si la condition est vrifier (Ex
: On veut afficher le 100 premiers nombres : Tant que i est plus petit que
100, afficher la valeur de i).
Tanque
Faire. Tantque
Rpter Jusqu
Pour

44
Les instructions alternatives : Si...Sinon
Les instructions alternatives servent n'excuter une instruction ou
une squence d'instructions que si une condition est vrifie

On utilisera la forme suivante: Si (condition) alors


instruction ou suite d'instructions1
Sinon
instruction ou suite d'instructions2
Finsi
la condition ne peut tre que vraie ou fausse
si la condition est vraie, se sont les instructions1 qui seront excutes

si la condition est fausse, se sont les instructions2 qui seront excutes


la condition peut tre une condition simple ou une condition compose de
plusieurs conditions
45
Les instructions alternatives : Si...Sinon
La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que
la condition est fausse, aucun traitement n'est ralis

On utilisera dans ce cas la forme simplifie suivante:

Si (condition) alors
instruction ou suite d'instructions1
Finsi

46
Exemple
Ecrire un algorithme qui permet dafficher
la valeur absolue dun rel donn :
1) Avec (SiAlorsSinon)
2) Avec (SiAlors)

47
Exemple (SiAlorsSinon)
Algorithme AffichageValeurAbsolue (version1)
Var x : rel
Dbut
Ecrire (" Entrez un rel : " )
Lire (x)
Si (x < 0) alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin

48
Exemple (SiAlors)
Algorithme AffichageValeurAbsolue (version2)
Var x,y : rel
Dbut
Ecrire (" Entrez un rel : " )
Lire (x)
y x
Si x < 0 alors
y -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin

49
Exercice (tests)
Ecrire un algorithme qui demande un nombre entier l'utilisateur,
puis qui teste et affiche s'il est divisible par 3
Algorithme Divsible_par3
Var n : entier
Dbut
Ecrire (" Entrez un entier : " )
Lire (n)
Si (n MOD 3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n'est pas divisible par 3")
Finsi
Fin
50
Conditions composes
Une condition compose est une condition forme de plusieurs
conditions simples relies par des oprateurs logiques:
ET, OU, NON et OU exclusif (XOR)

Exemples :
x compris entre 2 et 6 : (x > 2) ET (x < 6)

n divisible par 3 ou par 2 : (n MOD 3=0) OU (n MOD 2=0)

L'valuation d'une condition compose se fait selon des rgles


prsentes gnralement dans ce qu'on appelle tables de vrit

51
Tables de vrit
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 NON C1
VRAI FAUX
FAUX VRAI

52
Tests imbriqus
Les tests peuvent avoir un degr quelconque d'imbrications
Si condition1 alors
Si condition2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
Finsi

53
Tests imbriqus: exemple (version 1)
Variable n : entier
Dbut
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors
Ecrire ("Ce nombre est ngatif")
Sinon
Si n = 0 alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
54
Tests imbriqus: exemple (version 2)
Variable n : entier
Dbut
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors Ecrire ("Ce nombre est ngatif")
Finsi
Si n = 0 alors Ecrire ("Ce nombre est nul")
Finsi
Si n > 0 alors Ecrire ("Ce nombre est positif")
Finsi
Fin
Remarque : dans la version 2 on fait trois tests systmatiquement alors que
dans la version 1, si le nombre est ngatif on ne fait qu'un seul test
Conseil : utiliser les tests imbriqus pour limiter le nombre de tests et placer
d'abord les conditions les plus probables (minimiser la complexit)
55
Tests imbriqus: exercice
Le prix de photocopies dans une reprographie varie selon le
nombre demand: 0,5 DT la copie pour un nombre de copies
infrieur 10, 0,4DT pour un nombre compris entre 10 et 20 et
0,3DT au-del.

Ecrivez un algorithme qui demande lutilisateur le nombre de


photocopies effectues, qui calcule et affiche le prix payer

56
Tests imbriqus: corrig de l'exercice
Var copies : entier
prix : rel
Dbut
Ecrire ("Nombre de photocopies : ")
Lire (copies)
Si (copies < 10) Alors
prix copies*0.5
Sinon Si copies < 20
prix copies*0.4
Sinon
prix copies*0.3
Finsi
Finsi
Ecrire (Le prix payer est : , prix)
Fin

57
Les instructions alternatives :
Les choix multiples (selon ...)
Il est parfois ncessaire de choisir entre plusieurs
possibilits selon la valeur d'une variable
On peut rsoudre cette question par des Si
embots, mais cette reprsentation devient vite trs
lourde
L'instruction selon ... offre une solution plus
lgante et lisible.
Syntaxiquement quivalente une srie de si-
sinon-si
Plus performante : Plus lisible, facile maintenir,
facile comprendre.
58
Les choix multiples (selon ...) :
Syntaxe algorithmique

59
Les choix multiples (selon ...) :
Exemple

Cas
Cas

Cas

60
Exercice
Ecrire un algorithme pour raliser une calculatrice
simplifie. Cette calculatrice doit tre utilise par un lve
pour effectuer des oprations arithmtiques (+,-,*, /, Div,
Mod) sur des entiers. (pas de division par 0)
Lopration effectuer est choisie partir d'un menu qui
prsente les diffrentes options possibles. Un numro
squentiel est associ chacune de ces options.

61
Exercice : organigramme

62
Algorithmique

Les boucles

63
Les types de boucle
On distingue 2 types de boucles:

Les boucles compteur ou dfinie


On sait lavance combien de fois la boucle devra tourner et
une variable (le compteur ) compte les rptitions
Choisir 10 nombres au hasard. On fera dix fois lopration choisir
un nombre au hasard.
Ex : la boucle Pour

Les boucles vnement ou indfinie


On ne sait pas lavance le nombre de fois que la boucle sera
excute.
a peut dpendre du nombre dessais que lusager a effectus.
Ex : la boucle Tanque, la boucle faire Tanque et La boucle
Rpter Juqu.

64
Les boucles Tant que

TantQue (condition)
instructions
FinTantQue Vrai
condition instructions

Faux

65
Boucle Tant que : exemple simple

Algorithme Exemple
Variable x : entier
Debut
x 0
TantQue (x<>5)
x x+1
FinTantQue
Ecrire (" La valeur de x est = ", x)
Fin

66
Exercice 1

En utilisant linstruction tantque,


crivez un algorithme qui Lit des
nombres entrs au clavier tant que leurs
somme ne dpasse pas 100.

67
Exercice 2
Ecrire un algorithme qui lit un entier
positif n puis affiche tous ses diviseurs.

68
Les boucles Pour
Pour compteur de initiale finale pas valeur du pas

instructions

FinPour

i initiale

Vrai
i n'a pas atteint finale instructions i i + pas

Faux

69
Les boucles Pour
Remarques :

Compteur est une variable de type entier (ou caractre). Elle doit
tre dclare

Pas est un entier qui peut tre positif ou ngatif. Pas peut ne pas
tre mentionn, car par dfaut sa valeur est gal 1. Dans ce cas, le
nombre d'itrations est gal finale - initiale+ 1

Initiale et finale peuvent tre des valeurs, des variables dfinies


avant le dbut de la boucle ou des expressions de mme type que
compteur

70
Droulement des boucles Pour
1) La valeur initiale est affecte la variable compteur

2) On compare la valeur du compteur et la valeur de finale :


a) Si la valeur du compteur est > la valeur finale dans le cas d'un pas
positif (ou si compteur est < finale pour un pas ngatif), on sort de la
boucle et on continue avec l'instruction qui suit FinPour

b) Si compteur est <= finale dans le cas d'un pas positif (ou si compteur
est >= finale pour un pas ngatif), instructions seront excutes

i. Ensuite, la valeur de compteur est incrmente de la valeur du pas


si pas est positif (ou dcrment si pas est ngatif)

ii. On recommence l'tape 2 : La comparaison entre compteur et


finale est de nouveau effectue, et ainsi de suite

71
Exemple

Calcul de x la puissance n avec la boucle


Pour et la boucle TantQue
x : un rel non nul
n : entier positif ou nul

72
Boucle Pour : remarque
Il faut viter de modifier la valeur du compteur (et de finale)
l'intrieur de la boucle. En effet, une telle action :

perturbe le nombre d'itrations prvu par la boucle Pour


rend difficile la lecture de l'algorithme
prsente le risque d'aboutir une boucle infinie

Exepmle : Pour i allant de 1 5


i i -1
crire(" i = ", i)
Finpour

75
Lien entre Pour et TantQue
La boucle Pour est un cas particulier de Tant Que (cas o le nombre
d'itrations est connu et fix) . Tout ce qu'on peut crire avec Pour peut tre
remplac avec TantQue (la rciproque est fausse)

Pour compteur allant de initiale finale pas valeur du pas

instructions

FinPour
peut tre remplac par : compteur initiale
(cas d'un pas positif) TantQue compteur <= finale
instructions
compteur compteur+pas
FinTantQue

76
Dtecter lerreur dans les deux
essaie tant que et pour
Algorithme Algorithme
Essai de tant que Essai pour
Variables Variables
n : entier K, N : entier
Dbut Dbut
n 15 n 200
tant que (n<>0) pour K variant de 1 n
crire (n) crire (K)
nn-2 K n 100
Fin de tant que Fin pour
Fin Fin

77
Algorithme de la fonction factorielle :
Exemple

crire deux algorithmes qui calculent


pour un entier positif donn n la valeur
n!, un de ces algorithmes doit utilis la
boucle Pour et lautre la boucle Tanque

Entre : n de type naturel


Sortie : factoriel (n) = 1*2*3*..*(n-1)*n

78
Algorithme de la recherche des
nombres premiers : Exemple

Problme: crire lalgorithme estPremier,


qui partir dun entier strictement positif
donn, dtermine si ce nombre est premier
ou non.
Ex : 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47. (listes des nombres premier <=50)

80

Vous aimerez peut-être aussi