• Aucun résultat trouvé

15févie2008 É ieS Bi Uiveiédei eShia Ai

N/A
N/A
Protected

Academic year: 2022

Partager "15févie2008 É ieS Bi Uiveiédei eShia Ai"

Copied!
31
0
0

Texte intégral

(1)

Sébastien Verel

vereli3s.unie.fr

www.i3s.unie.fr/

verel

ÉquipeSoBi-UniversitédeNieSophia-Antipolis

15 février2008

(2)

Objetifs de la séane 5

1

Lireet enregistrerunevaleur dansuntableau

2

Reherhe desvaleurs extrémalesd'un tableau

3

Utilisationd'un aumulateur pourréaliserunalul dansun

tableau

4

Savoironevoir unjeude testspourun algorithme

5

Savoirinspeterles valeurs de ertainesdonnées d'un

algorithme

Questions prinipales dujour :

Comment traiterlesdonnées de manièreindexée?

(3)

A quoi ça sert?

Algorithme moyenne(n1 ,n2 ,n3 ,n4,n5 ,n6 ,n7 ,n8 ,n9 ,

n10 ,n11 ,n12 :réel): :réel

début

variable m:réel

m

← (

n1

+

n2

+

n3

+

n4

+

n5

+

n6

+

n7

+

n8

+

n9

+

n10

+

n11

+

n12

)/

12

retournerm

n

Ce n'estpas tenable:

lorsqu'on passeàune éhellede 1000 notesou plus,

(4)

Finalement souvenez-vous (m03)

Algorithme moyenne(n:entier):réel

début

variable m,a:réel

variable i:entier

pouride1ànfaire

lire(a)

m

m

+

a

npour

m

m

/

n

retournerm

n

ATTENTION:oublie de l'initialisationde aumulateur

(5)

Finalement souvenez-vous (m03)

Algorithme moyenne(n:entier):réel

début

variable m,a:réel

variable i:entier

m

0

pouride1ànfaire

lire(a)

m

m

+

a

npour

m

m

/

n

retournerm

n

Mais :

(6)

Vers une solution

Il faudraitnoter (enregistrer)lesnotesquelque part:

Algorithme moyenne(notes :???, n :entier):réel

notes :

12 8 17 5 16 18 18 11 14 12

il seraitpossible de leslirede nouveau sansavoirà demanderde

nouveau lesnotes.

Nous allonsapprendre àutliser estableauxde données

(7)

Plan

1

Introdution

2

Dénition de lastruture

3

Algorithmesur lestableaux

(8)

Besoin en tableaux

Le besoinde stokerpour traiterlesdonnées sonténormes:

les images:tableau en deux dimensions

répertoirede noms

les fatures

les alendriers

les plaards

...

(9)

Caratéristiques de es strutures de données

0 1 2 3 4 5 6 7 8

12 3 4 78 12 3 9 11 12

De taillenie:

le nombremaximum de donnéesest déterminée

les donnéessont"numérotables" :indexables

leture de donnéesdontl'indie (le rang)est déterminé

(10)

Délaration tableau

Délarationd'un tableaut de type typeElement aveN valeurs

variable t:tableau de N typeElement

0 1 2 3 4 5 6 7 8

12 3 4 78 12 3 9 11 12

variable t:tableau de 9entiers

Délarationd'un tableauontenant 12 aratères:

variable :tableau de 12 aratères

Délarationd'un tableauontenant n nombres réels(n est une

variable) :

variable tabReal:tableau de n réel

(11)

Remarques

les donnéesd'un tableau sontdumême type

tailledutableau :nombremaximalde donnée quepeut

ontenirle tableau

latailleest déterminéàladélaration

latailleest xe

(12)

Leture des valeurs

leture de lavaleur d'indiei dutableau t

t

[

i

]

0 1 2 3 4 5 6 7 8

12 3 4 78 12 3 9 11 12

t

[

3

]

apour valeur78

tousles t

[.]

sontdes variables lassiques:

t

[

3

] +

10a pourvaleur 88

t

[

7

] +

t

[

0

]

apourvaleur 23

(13)

Remarques

Beauoup de langage de programmationont pouronventionque

nous adopterons.

Supposons quelatailledutableau estn.

indie 0:premier élémentdu tableau

indie n

1 :dernierindiedu taille

Conséquene :iln'estpas possiblede lireunedonnée en

dehorsdesbornes (t

[

n

+

1

]

,t

[

n

]

ou t

[−

1

]

)

ATTENTION :

Il n'est paspossibled'aéder àtous leséléments dutableau

en même temps:seulementélément parélément(traitement

(14)

Remarques

0 1 2 3 4 5 6 7 8

12 3 4 78 12 3 9 11 12

i

3

laase aprèsi

t

[

i

+

1

]

12

laase avant i

t

[

i

1

]

4

(15)

Aetation des valeurs

Aetation dela valeura àlaase d'indiei dutableau t

t

[

i

] ←

a

0 1 2 3 4 5 6 7 8

12 3 4 78 12 3 9 11 12

t

[

3

] ←

15

t

[

2

] ←

t

[

0

]

t

[

8

] ←

t

[

1

]

2

+

1

(16)

Remarques sur l'aetation

t :tableaude 5 entiers

t

[

0

] ←

3

t

[

1

] ←

6

t

[

2

] ←

98

t

[

3

] ←

23

t

[

4

] ←

91

t

[

0

]

seomporteomme unevariablelassique

La ase d'avanti reçoitlaase i :

i

3

t

[

i

1

] ←

t

[

i

]

La ase d'après i reçoitlaase d'avant :

i

3

t

[

i

+

1

] ←

t

[

i

]

(17)

Quand utiliser un tableau?

Les questionsque l'ondoit seposer :

Le nombrede donnéesest-ildéterminéàl'avane?

Le nombremaximalde donnéesest-ildéterminéàl'avane?

Les donnéesont-elles besoind'êtreindexées(numérotées)?

A-t-on besoin d'aéder àunedonnée dontl'indexedoit être

déterminé?

Si oui,oui,oui, oui,

(18)

em Maple

Les tableauxen maple peuvent ommeneràpartir de n'importe

quel indie.

Toutefois, essaieronstoujoursde faireommenerles tableauxà

partirde l'indie 0.

Délarationd'un tableaut de taille9 :

t := array(0..8)

Il fautseulement délarer l'indieinitialet nal.

Il n'est pasnéessaire de délarerle type desdonnées.

Leture :

t[3℄ + 1;

Aetation:

t[4℄ := 6;

(19)

Itération et tableaux

L'itération devient l'outilindispensablepourparourir untableau.

Algorithme enregistrer(n:entier): tableaude réel

début

variable a:réel

variable i:entier

variable t:tableau de n réels

pour ide 0 àn-1 faire

lire(a)

t

[

i

] ←

a

npour

(20)

Itération et tableaux

Mieux

Algorithme enregistrer(n:entier): tableaude réel

début

variable i:entier

variable t:tableau de n réels

pour ide 0 àn-1 faire

lire(t

[

i

]

)

npour

retournert

n

(21)

En maple

leture := pro(n)

# n : entier nombre d'élément du tableau

# sortie : tableau de n valeurs

loal i, t;

t := array(0..n-1);

for i from 0 to n-1 do

t[i℄ := readstat();

od;

RETURN(eval(t));

(22)

Calul de la moyenne

Algorithme moyenne(t :tableau de réel, n:entier) :réel

début

variable m:réel

variable i:entier

m

0

pour ide 0 àn-1 faire

m

m

+

t

[

i

]

npour

m

m

/

n

retournerm

n

(23)

En maple

moyenne := pro(t, n)

# t : tableau de n entiers, ontenant les notes

# n : entier, nombre de notes

# sortie : valeur moyenne des notes

loal i, m;

m := 0;

for i from 0 to n-1 do

m := m + t[i℄;

od;

(24)

Utilisation d'un aumulateur

Commedans leas de alulde la moyenne,

un ertainnombred'algorithmes néessitede mémoriserunalul

partiel.

On nommesouvent paraumulateur lavariable quipermetde

mémorisere résultat.

ATTENTION!

Il faut toujoursaeter unevaleur initiale(initialiser)à

l'aumulateur avantle ommenement dualul.

(25)

Somme des arrés

Caluler S

n

= P

n

1

k

=

0

u 2

k

ave u

k

stokél'inide k dutableau t :

Algorithme sommeCarre(t:tableau deréel, n :entier) :réel

début

variable m:réel

variable i:entier

m

0

pour ide 0 àn-1 faire

m

m

+

t

[

i

]

2

npour

(26)

En maple

sommeCarre := pro(t, n)

# t : tableau de n entiers, ontenant les uk

# n : entier, nombre de termes

# sortie : entier, somme des arrés

loal i, m;

m := 0;

for i from 0 to n-1 do

m := m + t[i℄^2;

od;

RETURN(m);

end;

(27)

Trouver le maximum des éléments d'un tableau

Algorithme max2(a ,b :réel):réel

début

sia

>

balors

retournera

sinon

retournerb

nsi

n

Algorithme max3(a ,b, :réel):réel

début

retournermax2(max2(a ,b),)

n

(28)

Trouver le maximum des éléments d'un tableau

Algorithme max(t:tableauderéel,n:entier):réel

début

sin

=

1alors

retournert

[

0

]

sinon

retournermax2(max(t,n

1),t

[

n

1

]

)

nsi

n

(29)

Element maximum

Trouver lemaximum desélémentsd'un tableau

Algorithme maximum(t :tableaude réel, n :entier):réel

début

variable max:réel

variable i:entier

max

t

[

0

]

pour ide 1 àn-1 faire

si max

<

t

[

i

]

alors

max

t

[

i

]

nsi

(30)

En maple

maxTab := pro(t, n)

# t : tableau de n nombres

# n : entier, nombre d'éléments

# sortie : réel, maximum du tableau

loal i, m;

m := t[0℄:

for i from 0 to n-1 do

if m < t[i℄ then

m := t[i℄:

fi:

od:

RETURN(m);

SébastienVerel Struturesdedonnéesindexées

(31)

Objetifs de la séane 5

1

Lireet enregistrerunevaleur dansuntableau

2

Reherhe desvaleurs extrémalesd'un tableau

3

Utilisationd'un aumulateur pourréaliserunalul dansun

tableau

4

Savoironevoir unjeude testspourun algorithme

5

Savoirinspeterles valeurs de ertainesdonnées d'un

algorithme

Questions prinipales dujour :

Références

Documents relatifs

Attention toutefois quelques trus datent3. Et bien sur, les reommandations

Connaître les mots lefs d'un langage impératif simple.. Connaître les opérations de bases

booléen est une expression dont la valeur est soit Vrai soit Faux. Cette expression peut

−→ utiliser un shéma itératif à nombre d'itérations déterminé. −→ appeler aussi souvent

ne retourner auune valeur : on notera le type de retour rien. Algorithme deviner(n : entier)

A l'aide d'un système physique dont l'état est aléatoire :.. Valeur préise d'une résistane, appartition des

les nombres plus petit que le nombre pivot sont à gauhe de

A-t-on besoin d'un traitement séquentiel des données. Le nombre de données est-il déterminé