• Aucun résultat trouvé

0-M02 – Introduction `a la programmation Introduction `a l’algorithmique Cours n

N/A
N/A
Protected

Academic year: 2022

Partager "0-M02 – Introduction `a la programmation Introduction `a l’algorithmique Cours n"

Copied!
41
0
0

Texte intégral

(1)

Introduction Les variables Expressions bool´eennes Les tests Boucles

0-M02 – Introduction ` a la programmation Introduction ` a l’algorithmique

Cours n

1

Variables, tests et structures de contrˆ ole

Camille Coti

camille.coti@iutv.univ-paris13.fr

IUT de Villetaneuse, d´epartement R&T

2011 – 2012

(2)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Site web

Slides des cours, versions ´ electroniques des polys, TD, TP...

http://www.lipn.fr/~coti/cours

(3)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Introduction

´ Etymologie du mot ”informatique”

Form´ e de la contraction des mots information et automatique.

L’informatique est un outil de traitement automatique de l’information.

On doit alors d´ efinir comment des informations vont ˆ etre trait´ ees (automatiquement) par l’ordinateur.

La science informatique n’est pas plus la science des ordinateurs que l’astronomie n’est celle des t´ elescopes – Edsger Dijkstra

L’ordinateur est un outil qui traite l’information comme le programme lui

dit de la traiter.

(4)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Pourquoi l’algorithmique

Qu’est-ce qu’un algorithme ?

Un algorithme d´ efinit ce que fait un programme

Il d´ efinit quel comportement suivre selon la situation rencontr´ ee Algorithme : d´ efinition

S´ erie d’instructions qui doit ˆ etre ex´ ecut´ ee par un programme.

D´ efinition de Wikipedia :

Processus syst´ ematique de r´ esolution d’un probl` eme permettant de d´ ecrire les ´ etapes vers le r´ esultat;

Suite finie et non-ambigu¨ e d’instructions permettant de donner la r´ eponse

`

a un probl` eme.

(5)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Comment d´ ecrire un algorithme

D´ efinition de Wikipedia :

L’algorithmique est l’ensemble des r` egles et des techniques qui sont impliqu´ ees dans la d´ efinition et la conception d’algorithmes.

Algorithmique

Formalisme permettant de d´ ecrire la s´ erie d’instructions ex´ ecut´ ee par un programme ind´ ependamment d’un langage de programmation en particulier.

Les algorithmes sont d´ ecrits en pseudo-code, compr´ ehensible par le lecteur

humain mais assez pr´ ecis pour transcrire les structures et les instructions de

l’algorithme.

(6)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Par quoi est constitu´ e un algorithme

Un algorithme permet d’obtenir un r´ esultat ` a partir de donn´ ees d’entr´ ee. Il est donc constitu´ e des ´ el´ ements suivants :

Un d´ ebut et une fin ; Un nom ;

Des donn´ ees d’entr´ ee ; Des donn´ ees de sortie, qui sont le r´ esultat du calcul effectu´ e par l’algorithme ; Un ensemble d’instructions ex´ ecut´ ees par l’algorithme.

Exemple : algorithme de calcul d’une valeur absolue

d´ ebut fonction abs( i: Entier ): Entier

1

si i > 0 alors

2

r ←− i

3

sinon

4

r ←− −i

5

finsi

6

retourner r

7

fin fonction

8

(7)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Importance d’un bon algorithme

Compr´ ehension et mod´ elisation du probl` eme

L’algorithme mod´ elise le comportement du programme Correction du r´ esultat

Algorithme faux → r´ esultat du calcul faux Efficacit´ e du calcul

Coˆ ut d’un calcul = nombre d’op´ erations et quantit´ e d’information manipul´ ee

Ces quantit´ es sont d´ efinies par l’algorithme

Algorithme efficace → calcul efficace (et inversement) L’´ etude algorithmique d’un probl` eme est indispensable

La bonne conception d’un algorithme est fondamentale et absolument

n´ ecessaire pr´ ealablement ` a l’´ ecriture d’un programme informatique.

(8)

Introduction Les variables Expressions bool´eennes Les tests Boucles

G´ en´ ericit´ e des algorithmes

Les algorithmes sont ´ ecrits dans un langage de descriptions des algorithmes (pseudo-code)

Ind´ ependant du langage de programmation

→ Un algorithme peut ˆ etre impl´ ement´ e dans n’importe quel langage

Probleme Algorithme Programme Resultats

Analyse Codage Execution

(9)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Repr´ esentation des donn´ ees

D´ efinition

Une variable correspond ` a l’emplacement m´ emoire d’une donn´ ee. Elle sert ` a stocker une valeur d’un certain type ` a un instant donn´ e de l’ex´ ecution du programme.

Les variables d’un algorithmes sont :

D’entr´ ee : donn´ ees d’entr´ ee de l’algorithme

De sortie : r´ esultat du calcul effectu´ e par l’algorithme

Interne ` a l’algorithme : ni d’entr´ ee ni de sortie mais utilis´ ee ` a l’int´ erieur de

l’algorithme

(10)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Type de variables

D´ efinition

Le Type d’une variable est le type de donn´ ee qui pourra ˆ etre contenu dans cette variable.

Exemples :

Entier : tout nombre entier Bool´ een : vrai ou faux Caract` ere

Nombre r´ eel Chaˆıne de caract` eres Tableau...

On ne peut pas mettre une donn´ ee d’un type dans une variable d’un autre type

Exception : un transtypage est parfois possible (entier dans r´ eel...)

(11)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Affectation

Affectation d’une valeur ` a une variable

Pour ´ ecrire une valeur dans une variable, on dit que l’on affecte cette valeur ` a la variable. On le note de la fa¸ con suivante :

variable ←− valeur d´ ebut

1

maV ariable : Entier

2

maV ariable ←− 42

3

fin

4

On d´ eclare le type de la variable avant de l’utiliser

Les d´ eclarations sont g´ en´ eralement rassembl´ ees au d´ ebut de l’algorithme

(12)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Les tableaux

Tableaux

Un tableau est un type particulier de variable. Il contient un ensemble de variables de mˆ eme type, stock´ ees de fa¸ con contigu¨ e en m´ emoire.

Exemple : tableau d’entiers 3 5 2 1 12 5 2 9

Caract´ eristiques d’un tableau Un tableau a une taille fixe

Il contient un certain type de donn´ ees D´ eclaration d’un tableau

On le d´ eclare avec le type de donn´ ees qu’il contient et sa taille d´ ebut

1

monT ableau[10] :

2

T ableau d

0

Entiers fin

3

(13)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Les tableaux (suite)

Tableau ` a plusieurs dimensions

On donne la taille dans chaque dimension

Exemple en 2D (ordre C) : d’abord le nombre de lignes, puis le nombre de colonnes

Acc` es aux donn´ ees d’un tableau

Les cases du tableau sont num´ erot´ ees de 0 ` a N − 1 (si N est la taille du tableau)

On acc` ede aux donn´ ees d’un tableau en utilisant l’indice dans ce tableau

d´ ebut

1

/* Variables d’entree */

2

maM atrice[10][10] : T ableau d

0

Entiers

3

/* Variables de sortie */

4

i : entier

5

/* Affectation */

6

i ←− maM atrice[2][3]

7

fin

8

(14)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Bool´ een

Bool´ een

Un bool´ een est une variable ` a deux ´ etats : Vrai ou Faux. On repr´ esente aussi parfois ces deux ´ etats par 1 et 0.

Les op´ erateurs de comparaison renvoient un bool´ een. Exemple : 1 > 0 renvoie Vrai

1 == 0 renvoie Faux

Lorsqu’une condition est ´ evalu´ ee, on regarde sa valeur (bool´ een). Exemple : d´ ebut

1

maV ar : Entier

2

maV ar ←− 0

3

si maV ar < 5 alors

4

maV ar ←− maV ar + 1

5

finsi

6

fin

7

maV ar est initialis´ e ` a 0 On teste maV ar < 5

´ Equivalent ` a tester 0 < 5 La condition vaut Vrai

Donc on ex´ ecute le bloc d’instruction

apr` es le mot-cl´ e alors

(15)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole

On peut ´ evaluer des expressions bool´ eennes en utilisant des op´ erateurs : Op´ erateurs logiques

ET logique : . OU logique : + OU exclusif : ⊕ N´ egation : ¯ ou !

Exemples : a.b a + b a ⊕ b

a + b =!(a + b) a + b = a+!b

Tables de v´ erit´ e :

. 0 1

0 0 0

1 0 1

+ 0 1

0 0 1

1 1 1

⊕ 0 1

0 0 1

1 1 0

La n´ egation transforme un Vrai en Faux et inversement : V rai = F aux

F aux = V rai

(16)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(17)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(18)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(19)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(20)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(21)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(22)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(23)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(24)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(25)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(26)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(27)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(28)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(29)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Un peu d’alg` ebre de Boole (suite)

Prenons a = V rai et b = F aux.

Exemples d’expressions bool´ eennes : a + b = V rai + F aux = V rai

a + b = V rai + F aux = V rai + V rai = V rai a.b = V rai.F aux = V rai.V rai = V rai = F aux

Attention aux parenth` eses ! (a + b).(c + d)

Exemples de compositions d’expressions bool´ eennes sur des variables en algorithmique :

(a > b)ET (a > 0)

Si a = 1 et b = 2 : (a > b) = F aux donc l’expression vaut F aux Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression vaut V rai

(a > b)OU(a > 0)

Si a = 1 et b = 2 : (a > b) = F aux et (a > 0) = V rai donc l’expression vaut V rai

Si a = 3 et b = 2 : (a > b) = V rai et (a > 0) = V rai donc l’expression

vaut V rai

(30)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Les tests

Un test est une structure conditionnelle : les instructions ex´ ecut´ ees d´ ependent de la r´ ealisation ou non d’une condition.

D´ efinition

Un test d´ efinit une condition et un comportement ` a suivre si elle est r´ ealis´ ee.

Optionnellement, il peut d´ efinir un comportement ` a suivre dans le cas contraire.

Syntaxe :

La condition est donn´ ee entre les mot-cl´ es si et alors

L’action r´ ealis´ ee si la condition est v´ erifi´ ee est donn´ ee apr` es le mot-cl´ e alors

Si on donne une action ` a r´ ealiser si la condition n’est pas v´ erifi´ ee, elle est introduite par le mot-cl´ e sinon Le test est termin´ e par le mot-cl´ e finsi

si condition alors

1

action1

2

sinon

3

action2

4

finsi

5

(31)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Condition d’un test

La condition d’un test est une expression bool´ eenne Valeurs possibles : VRAI ou FAUX

Elle est ´ evalu´ ee pour d´ ecider quel bloc d’instructions ex´ ecuter.

On peut tester :

l’´ egalit´ e entre deux variables : var1 == var2

la non-´ egalit´ e entre deux variables : var1! = var2

une relation d’ordre entre deux variables : var1 > var2

ou toute expression renvoyant V rai ou F aux

d´ ebut

1

maV ar : Entier

2

maV ar ←− 0

3

si maV ar < 5 alors

4

maV ar ←− maV ar + 1

5

finsi

6

fin

7

On peut combiner des expressions bool´ eennes en utilisant les op´ erateurs logiques ET et OU (attention aux parenth` eses) :

((var1 == var2) ET (var1 > 0)) OU (var2 < 0).

(32)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Blocs d’instructions

Un algorithme est structur´ e par blocs d’instructions contenant plusieurs instructions ` a ex´ ecuter s´ equentiellement.

Exemple : les instructions ` a ex´ ecuter si la condition d’un test est r´ ealis´ ee

Les lignes 5 et 6 sont un bloc La ligne 8 est un bloc

Des blocs peuvent ˆ etre imbriqu´ es Un bloc d’instructions peut ˆ etre inclus dans un autre bloc.

Les lignes 2 ` a 9 sont un bloc Les deux blocs dans la condition sont des blocs imbriqu´ es dans ce bloc

d´ ebut

1

maV ar : Entier

2

maV ar ←− 0

3

si maV ar < 5 alors

4

maV ar ←− maV ar + 1

5

afficher( mavar )

6

sinon

7

maV ar ←− 0

8

finsi

9

fin

10

Des instructions d’un bloc sont d´ ecal´ ees vers la droite au mˆ eme niveau

Un bloc est indiqu´ e par une ligne verticale sur la gauche

(33)

Introduction Les variables Expressions bool´eennes Les tests Boucles

Tests imbriqu´ es

On peut imbriquer des tests, c’est-` a-dire qu’un test peut ˆ etre effectu´ e dans le corps d’un autre test.

On effectue un test ligne 4

Si la condition est r´ ealis´ ee, on ex´ ecute le bloc situ´ e entre les lignes 5 et 8

On effectue alors un autre test ligne 6

Si la condition est r´ ealis´ ee, on ex´ ecute le bloc ligne 7

Sinon, on ex´ ecute le bloc ligne 10.

Le test situ´ e entre les lignes 6 et 8 est imbriqu´ e dans le test situ´ e entre les lignes 4 et 11.

d´ ebut

1

maV ar : Entier

2

maV ar ←− 0

3

si maV ar < 5 alors

4

maV ar ←− maV ar + 1

5

si maV ar > 2 alors

6

afficher( mavar )

7

finsi

8

sinon

9

maV ar ←− 0

10

finsi

11

fin

12

(34)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Les boucles

Condition d’arrˆ et

La condition d’arrˆ et d’une boucle est une condition (une expression bool´ eenne) qui d´ etermine le moment o` u une boucle doit arrˆ eter d’ex´ ecuter le bloc

d’instructions.

Une boucle sert ` a r´ ep´ eter un bloc d’instructions tant qu’une condition de continuation est satisfaite ou que la condition d’arrˆ et n’est pas satisfaite.

Exemples d’utilisation :

Parcours d’un tableau, calcul it´ eratif...

Une boucle utilise un bloc d’instructions : c’est tout le bloc d’instructions correspondant qui est r´ ep´ et´ e.

Il est possible que le bloc d’instructions ne soit pas ex´ ecut´ e du tout (si la

condition d’arrˆ et est d´ ej` a satisfaite) ou un nombre infini de fois (souvent un

bug).

(35)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Boucle Pour

On d´ efinit un compteur et :

Une initialisation de ce compteur i ← 0

Une condition d’arrˆ et pour sortir de la boucle

` a 9

Un pas qui modifie le compteur ` a la fin de chaque it´ eration

pas 1

On termine le bloc avec finpour

Exemple : algorithme de remplissage d’un tableau de 10 cases.

d´ ebut

1

tab[10] : T ableau d

0

entiers

2

pour i ←− 0 ` a 9 pas 1 faire

3

tab[i] = 2 ∗ i

4

finpour

5

fin

6

(36)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Boucle Pour (suite)

Le pas est n’importe quel modificateur sur le compteur : il peut ˆ etre n´ egatif, non lin´ eaire...

d´ ebut

1

pour i ←− 10 ` a 0 pas −2 faire

2

afficher( i )

3

finpour

4

fin

5

Affichage par le programme : 10

8 6 4 2 0

d´ ebut

1

pour i ←− 1 ` a 35 pas ∗2 faire

2

afficher( i )

3

finpour

4

fin

5

Affichage par le programme : 1

2 4 8 16 32

La boucle s’ex´ ecute tant que i est

inf´ erieur ` a 35 : on s’arrˆ ete ` a 32.

(37)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Boucle Tant que... faire

La boucle Tant que ex´ ecute un bloc d’instructions tant qu’une condition est vraie : c’est la condition de boucle.

La condition de boucle est d´ efinie apr` es le mot-cl´ e Tant que

L’action ` a effectuer est donn´ ee entre les mot-cl´ es faire et fintq : on d´ efinit un bloc d’instructions qui est r´ ep´ et´ e

Attention aux boucles infinies !

Il faut que la condition de boucle finisse par ˆ etre invalid´ ee...

Exemple : algorithme de calcul des puissances de 2 inf´ erieures ` a 50.

d´ ebut

1

puissance : Entier

2

puissance ←− 1

3

tant que puissance < 50 faire

4

afficher( puissance )

5

puissance ←− puissance ∗ 2

6

fintq

7

fin

8

Affichage : 1

2

4

8

16

32

(38)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Boucle Tant que... faire (suite)

d´ ebut

1

puissance : Entier

2

puissance ← 1

3

tant que puissance < 50 faire

4

afficher( puissance )

5

puissance ← puissance ∗ 2

6

fintq

7

fin

8

D´ etail de l’ex´ ecution : puissance vaut 1

puissance est-il inf´ erieur ` a 50 ? oui donc on ex´ ecute le bloc

Affichage : 1 puissance vaut 2

Retour ` a la ligne 4 : puissance est-il inf´ erieur ` a 50 ? oui donc on ex´ ecute le bloc

Affichage : 2 puissance vaut 4 ...

Lorsque puissance prend la valeur 64 :

la condition ligne 4 n’est plus satisfaite

et on sort de la boucle

(39)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Equivalence entre les boucles ´ for et tant que ... faire

On peut ´ ecrire une boucle faire ... tant que ´ equivalente ` a une boucle for : Le compteur est initialis´ e avant d’entrer dans la boucle faire ... tant que La condition de boucle est la mˆ eme que la condition d’arrˆ et de la boucle for

Le compteur est modifi´ e ` a la fin du bloc d’instruction ex´ ecut´ e par la boucle faire ... tant que

d´ ebut

1

pour i ←− 0 ` a 9 pas 1 faire

2

tab[i] = 2 ∗ i

3

finpour

4

fin

5

d´ ebut

1

i : entier

2

i ←− 0

3

tant que i < 10 faire

4

tab[i] = 2 ∗ i

5

i ←− i + 1

6

fintq

7

fin

8

(40)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Boucle Faire ... tant que

La boucle Faire ... tant que ex´ ecute un bloc d’instructions puis ´ evalue une condition de boucle

Le bloc d’instructions est r´ ep´ et´ e si la condition de boucle est satisfaite

d´ ebut

1

puissance : Entier

2

puissance ← 1

3

faire

4

afficher( puissance )

5

puissance ← puissance ∗ 2

6

tant que puissance < 20 ;

7

fin

8

D´ etail de l’ex´ ecution : puissance vaut 1 Affichage : 1 puissance vaut 2

puissance est-il inf´ erieur ` a 20 ? oui donc on r´ e-ex´ ecute le bloc : retour ` a la ligne 4

Affichage : 2 puissance vaut 4 ...

Lorsque puissance a pris la valeur 32 :

la condition ligne 7 n’est plus satisfaite

et on sort de la boucle

(41)

Introduction Les variables Expressions bool´eennes Les tests Boucles Boucle Pour Boucle Tant que ... faire Boucle Faire ... tant que

Diff´ erence entre les boucles Faire ... tant que et Tant que ... faire

La boucle Faire ... tant que commence par ´ evaluer la condition de boucle

Puis elle ex´ ecute le bloc d’instructions si la condition de boucle est valid´ ee La boucle Tant que ... faire ex´ ecute le bloc d’instructions puis elle

´

evalue la condition de boucle

Algorithme d’attente ` a un stop : d´ ebut

1

vitesse : Entier

2

faire

3

vitesse ←− 0

4

tant que voituresArrivent == V rai ;

5

vitesse ←− 50

6

fin

7

Algorithme d’attente ` a un feu rouge : d´ ebut

1

vitesse : Entier

2

tant que couleurF eu == rouge faire

3

vitesse ←− 0

4

fintq

5

vitesse ←− 50

6

fin

7

Avec un stop on s’arrˆ ete, puis on regarde si on peut avancer. ` A un feu de

circulation, on s’arrˆ ete si le feu est rouge ; si le feu n’est pas rouge, on avance.

Références

Documents relatifs

a) Modifier l’algorithme précédent pour qu’il affiche le nombre nb de fois où l’on obtient PILE à l’issue de ces n lancers. On ne demandera plus d’afficher la valeur de k.

Cette belle histoire n’est cependant pas terminée et maintenant que nous avons réussi à construire un socle solide, il est urgent d’assurer le vrai basculement pour une part

[r]

Schéma électrique équivalent ci-dessus

Compilation et ex´ ecution Le langage Java Classes Cr´ eation d’une classe Constructeur et destructeur H´ eritage. 1 Compilation et

Documentation Java Surcharge des m´ ethodes Attributs et m´ ethodes de classe Les collections Les listes Les ensembles Outils sur les

Plusieurs types d’exceptions possibles pour une seule m´ ethode Trairement selon l’erreur rencontr´ ee. On r´ ecup` ere des informations sur l’exception

´ Ecrit le tableau de caract` eres tab sur le flux de sortie courant public void write( String s ) throws IOException. ´ Ecrit la chaˆıne de caract` eres s sur le flux de