• Aucun résultat trouvé

i eme duveteurseral'indexi − 1.

N/A
N/A
Protected

Academic year: 2022

Partager "i eme duveteurseral'indexi − 1. "

Copied!
6
0
0

Texte intégral

(1)

Types de données indexés

Liene 2 MASSsemestre 2,2007/08

Exerie 1 : Veteurs

a- Un veteur est une suite nie de nombresréels. De plus,les veteurstoussontde dimension

n

déterminé. Lastruture de donnéetableau de talle

n

est donbien adaptéeàla représentation desveteurs.

Lepremierindexd'un tableauétant

0

,laoordonnée

i eme

duveteurseral'index

i − 1

.

b- Algorithme somme(u,v: tableauderéel,n: entier): tableauderéel

début

variable i: entier

variable w: tableauderéel

pouride 0à

n − 1

faire

w[i] ← u[i] + v[i]

npour

retourner

w

n

- Algorithme distane(u,v: tableauderéel,n : entier): réel

début

variable i: entier

variable d: réel

d ← 0

pouride 0à

n − 1

faire

d ← d + (u[i] − v[i]) 2

npour

retourner

d

n

d- Algorithme produitSalaire(u,v: tableauderéel,n : entier): réel

début

variable i: entier

variable p: réel

p ← 0

pouride 0à

n − 1

faire

p ← p + u[i] × v[i]

npour

retourner

p

(2)

Ilestpossiblededélarerlavariablesuivante:

Variable M : tableau de tableaux de réels

Questions :

a- Ensuivantlogiqueoùhaqueasedutableauontientequiestmarquéaprèsle"de",onpourrait

penser représenteruntableau detableaux paruntableaudontlesasesontiennentuntableau.

Maise n'estpasfaileàreprésenter(trop large)et pasfailedeparourirvisuellement. Ilvaut

mieux représenter un tableau de tableaux par un retangle où haque ligne un tableau. Par

exemple,si

M

est untableaux detaille

4

ontiennantdestableauxdetaille

7

,nousreprésentons

M

par:

b- Algorithme somme(M:tableau detableauderéel,n: entier): réel

début

variable i,j: entier

variable s: réel

s ←

0

pouride 0à

n − 1

faire

pourjde 0à

n − 1

faire

s ← s + M [i][j]

npour

npour

retourner

s

n

- Algorithme somme(M:tableau detableauderéel,n: entier): réel

début

variable i: entier

variable s: réel

s ←

0

pouride 0à

n − 1

faire

s ← s + M [i][i]

npour

retourner

s

(3)

d- Algorithme somme(M:tableau detableauderéel,n: entier): réel

début

variable i,j: entier

variable s: réel

s ←

0

pouride 0à

n − 1

faire

pourjde 0à

i − 1

faire

s ← s + M [i][j]

npour

npour

retourner

s

n

Exerie 3 : Attente de bus

a- Il fautune struture apable de ontenirtous lesretards. Chaque retard peutêtre indexépar un

numérodejoursdel'année2007. Untableaupeutêtreutiliserpouresalgorithmes. Maintenantquelle

taille hoisir ? Si onhoisit dene pasavoirde asepour lesjoursnon-ouvrables,on pourra parourir

touteslesasesdutableau,maisilfaudrafaireattentiondanslealuldujourdelasemaine. Ilfaudra

aussialulerorretementlesindiesdesasesorrespondaumoisdejuin. Al'opposé,sionhoisitde

taille 365,il faudrafaireattentionauparoursdesasesmaislesjoursdanslasemaineserontfailesà

aluler.

Dans la suite, nous allonshoisir une taille de

n = 365

. Les lundis seront aux indies

i

tels que

i modulo 7 = 0

,lesmardistelsque

i modulo 7 = 1

,et. Noussuposeronsqueleretarddu

i eme

joursde

l'annéeest ontenudans laase d'indie

i − 1

,et quelesasesorrespondantauxsamediet dimanhe ainsiquelesjoursfériésontiennentzéro. Ilya

J =

joursdeserviesdansl'année.

b -

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

début

variable i: entier

variable max: réel

max ←

0

pouride 0à

n − 1

faire

si

max < R[i]

alors

max ← R[i]

nsi

npour

retourner

max

n

-

Algorithme stats(R:tableauderéel,n: entier,m,s: réel): rien

début

variable i: entier

variable m,s: réel

m ←

0

s ←

0

n − 1

(4)

m ← m + R[i]

s ← s + R[i] × R[i]

npour

m ← m/J

s ← s/J − m × m

n

d -

Mois ind. début ind. n

janvier 0 30

février 31 58

mars 59 89

avril 90 119

mai 120 150

juin 151 180

Ilyavait

22

joursdeservieenjuin2007.

Algorithme moyenneJuin(R:tableauderéel,n: entier): réel

début

variable i: entier

variable m : réel

m ←

0

pouride

151

à

180

faire

m ← m + R[i]

npour

m ← m/22

retourner

m

n

e-Ilyavait

53

lundien2007.

Algorithme moyenneLundi(R:tableauderéel,n: entier): réel

début

variable i: entier

variable m : réel

m ←

0

i ←

0

tant que

i < 365

faire

m ← m + R[i]

i ← i + 7

ntant que

m ← m/53

retourner

m

n

Algorithme moyenneJour(R: tableauderéel,n: entier): tableauderéel

début

variable i: entier

variable retardMoy: tableaude7réel

pouride

0

à

6

faire

retardM oy[i] ← 0

npour

pouride

0

à

n − 1

faire

(5)

retardM oy[i modulo 7] ← retardM oy[i modulo 7] + R[i]

npour

retardM oy[0] ← retardM oy[0]/53

pouride

1

à

6

faire

retardM oy[i] ← retardM oy[i]/52

npour

retourner

retardM oy

n

f-

Algorithme pourentageSup10(R:tableauderéel,n: entier): réel

début

variable i: entier

variable nb: réel

nb ←

0

pouride 0à

n − 1

faire

si

R[i] > 10

alors

nb ← nb + 1

nsi

npour

retourner

nb/J

n

g-

Algorithme pourentageSupMoyenne(R:tableauderéel,n: entier) : réel

début

variable i: entier

variable m,s,nb: réel

stats(R,n,m,s)

nb ←

0

pouride 0à

n − 1

faire

si

R[i] > m

alors

nb ← nb + 1

nsi

npour

retourner

nb/J

n

h -

Pour haune des 52 semaines de l'année, on indique dans un tableau résultats le numéro de la

semaineoùleretardaétéleplusgrand. Lenombre

− 1

indiquequ'ilyapasderetarddanslasemaine.

Algorithme plusGrandRetard(R:tableauderéel,n : entier,numSemaine: entier) : entier

début

variable i: entier

variable max,jour: réel

max ←

0

jour ← − 1

pouride

numSemaine × 7

à

numSemaine × 7 + 6

faire

si

R[i] > 0

et

max < R[i]

alors

max ← R[i]

(6)

npour

retourner

jour

n

Algorithme jourDuPlusGrandRetard(R: tableauderéel,n: entier): tableaud'entier

début

variable i: entier

variable Jretard: tableau de52entier

pouride 0à

51

faire

Jretard[i] ←

plusGrandRetard(R, n,i) npour

variable max: réel

variable jour: réel

retourner

Jretard

n

i -

Algorithme frequeneJour(R:tableauderéel,n: entier) : tableaud'entier

début

variable i: entier

variable nbRetard: tableaude7entier

variable max,jour: réel

pouride

0

à

6

faire

nbRetard[i] ← 0

npour

pouride 0à

n − 1

faire

si

R[i] > 0

alors

nbRetard[i modulo 7] ← nbRetard[i modulo 7] + 1

nsi

npour

max ←

0

jour ← 0

pouride

0

à

6

faire

si

max < nbRetard[i]

alors

max ← nbRetard[i]

jour ← i

nsi

npour

retourner

jour

n

Exerie 4 : Milliard de seondes

Nepasoublierlesannéesbissextiles...

Références

Documents relatifs

mande de paiement de subside (formulaire 2, en: 3 exemplaires) et établira une facture égale- ment en 3 exemplaires, avec indication du N° de la demande, le nombre et le genre des

L’idée peut donc être, pour commencer, de faire un essai, donc de prendre un prix en particulier et de faire la baisse de 30 % puis la hausse de 30 %, pour voir ce que cela donne..

Soit ABCD un carré. On multiplie la longueur d’un coté par. a) La nouvelle longueur des côtés est-elle plus grande ou plus petite que celle de départ ? b) Par combien son aire

Niveau 2 : Pour ceux qui pensait avoir compris comment calculer le périmètre d’un cercle, je proposais deux exercices pour poursuivre l’entraînement

Semaine 4 – Jour 1 Pour ce premier jour de la semaine, je vous proposais de revenir sur la multiplication de fractions que vous avez dû faire en cinquième.. On avait déjà revu

Semaine 4 – Jour 1 Pour ce premier jour, je vous proposais de revenir sur l’activité de recherche dans laquelle je vous demandais d’essayer de mesurer la longueur du tour d’un

Pour aujourd’hui, après avoir regardé et corrigé vos exercices sur Pythagore de la semaine dernière (merci de reprendre la correction sur votre cahier en partie rédigée), je

Merci, cette fin de semaine encore, de m’envoyer un message pour me dire si vous avez réussi à faire, si vous avez compris la réciproque de Pythagore… et si vous allez bien!.