• Aucun résultat trouvé

1.2 Recherche dans un tableau

N/A
N/A
Protected

Academic year: 2021

Partager "1.2 Recherche dans un tableau"

Copied!
3
0
0

Texte intégral

(1)

L ES ALGORITHMES VUS EN COURS ET EN T D

OBJECTIF:L’objectif de ce tp est de rendre l’élève capable :

• concevoir un algorithme répondant à un problème précisément posé, en particulier :

◦ rechercher un élément dans une liste

◦ rechercher le maximum dans une liste de nombres

◦ calculer la moyenne et la variance d’un tableau de nombres

◦ rechercher un mot dans une chaîne de caractères

• traduire enPython, un algorithme en pseudocode

• comparer de façon expérimentale les vitesses de convergence de différents algorithmes

1 Les algorithmes du B.O. à connaître

Q - 1 :Programmer enPythonles algorithmes suivants.

REMARQUE:On pourra générer des tableaux denvaleurs dansNà l’aide de la bibliothèquerand. Par exemples, pour tableau den=nvalde valeurs prises entre 0 etnmax:

[r.randint(0,nmax) for i in range(nval)]

1.1 Indice du maximum

Algorithm 1Indice du maximum entrée:T un tableau denvaleurs

résultat:iMaxl’indice du maximum du tableau indiceMax(T)

1: n=taille(T)

2: iMax=i0

3: max←T[0]

4: pouri entre 1 et nfaire

5: siT[i]> maxalors

6: iMax←i

7: max←T[i]

8: fin si

9: fin pour

10: renvoi: iMax

1.2 Recherche dans un tableau

Algorithm 2Recherche dans un tableau

entrée:T un tableau de nvaleurs et x un élément (pas forcément du tableau)

résultat:-1 si x<T, l’indice de la première occur- rence de xdans le tableauT

recherche(T,x)

1: i←0

2: n←taille(T )

3: tant quei<n et T[i],xfaire

4: i←i+1

5: fin tant que

6: sii=nalors

7: i←-1

8: fin si

9: renvoi: i

LYCÉE CARNOT(DIJON) 1/3 INFO ENMPSI & PCSI - TP1 - ALGO-PROG-2

(2)

1.3 Moyenne et variance

Algorithm 3Moyenne et variance entrée:T un tableau denvaleurs résultat:Moy, la moyenne deT Var, la variance deT

MoyVar(T)

1: n←taille(T )

2: som←0

3: somCar←0.

4: pouri entre 0 et n-1faire

5: som←som+T[i]

6: somCar←somCar+T[i]2

7: fin pour

8: moy←som/n

9: renvoi: moy, somCar/n-moy2

1.4 Recherche dichotomique dans un tableau trié

Algorithm 4Recherche dichotomique dans un tableau trié

entrée:T un tableau denvaleurs etxun élément (pas forcément du tableau)

résultat:-1 si x<T, l’indice d’unxdans le tableauT

1: DichoSearch(T,x)

2: n←taille(T )

3: min,max,mil←0,n-1,(min+max)//2

4: tant quemin<max et T[mil],xfaire

5: siT[mil]<xalors

6: min←mil+1

7: sinon

8: max←mil-1

9: fin si

10: mil←(min+max)//2

11: fin tant que

12: siT[mil],xalors

13: rep←-1

14: sinon

15: rep←mil

16: fin si

17: renvoi: rep

1.5 Recherche d’un mot dans une chaîne de caractères

Algorithm 5Teste la présence d’un mot à partir d’une position dans une chaîne de caractères.

entrée:motetchainedeux chaînes de caractères, i, un indice

résultat:vraisimotcorrespond aux premiers ca- ractères de chaineà partir de l’indicei; f aux si- non

1: TestMot(mot,chaine,i)

2: j,m←0,taille(mot )

3: tant que j<m et mot [j]=chaine[i+j]faire

4: j←j+1

5: fin tant que

6: renvoi: j==m

Algorithm 6Recherche d’un mot dans une chaîne de caractères.

entrée:motetchainedeux chaînes de caractères résultat: l’indice de la première occurrence de motdanschaine; sinon -1

ChercheMot(mot,chaine)

1: i,n,m,pos,pastrouv←

0,taille(chaine),taille(mot),0,vrai

2: tant quei≤n-m et pastrouvfaire

3: pastrouv←non(TestMot(mot ,chaine, i ))

4: i←i+1

5: fin tant que

6: sipastrouvalors

7: i←-1

8: fin si

9: renvoi: i

LYCÉE CARNOT(DIJON) 2/3 INFO ENMPSI & PCSI - TP1 - ALGO-PROG-2

(3)

REMARQUE:Pour créer une chaîne aléatoire de caractères, on peut commencer à faire un mot contenant toutes les lettres de l’alphabet, puis prendre au hasard une lettre parmi les 26 pour composer le mot :

lettres="azertyuiopqsdfghjklmwxcvbn"

nmax=len(lettres)-1 MotdePass=""

for i in range(nval):

MotdePass+=lettres[r.randint(0,nmax)]

2 Les algorithmes du Td

Q - 2 :Résoudre enPythonles problèmes suivants :

2.1 Boucles inconditionnelles

• Factorielle(n): calculern!

• Puissance(x,n): calculer xn

• Somme(L): faire la somme des tous les éléments de la listeL

• Maximum(L): déterminer le maximum de la listeL

• Occurences(x,L): déterminer le nombre d’occurrences de xdansL

• Miroir(chaine): inverser l’ordre des lettres du motchaine

2.2 Boucles conditionnelles

Q - 3:Faire évoluer la taille n ∈n

101,102, . . . ,108o

des problèmes suivants et compter pour chaque algorithme le nombre total d’itérations avant convergence nit en fonction de n. Tracer l’évolution denit(n). Est-ce cohérent avec l’étude de la complexité ?

• PpPuissdedeux(n): déterminer la plus petite puissance de 2 majorant un entier natureln

• Palindrome(chaine): déterminer sichaineest un palindrome ou non

• IsFact(n): déterminer sinest une factorielle

LYCÉE CARNOT(DIJON) 3/3 INFO ENMPSI & PCSI - TP1 - ALGO-PROG-2

Références

Documents relatifs

La commande bar prend en argument un tableau et renvoie un diagramme en bâton représentant ses valeurs, avec en abscisse les numéros des cases du tableau..

Associe chaque définition au mot qui convient. a-Phagocytose 2) Processus par lequel les microbes sont détruits par certaines catégories de cellules. b-Antigène 3) Capacité

Pour chaque graphique, tracer le tableau de signes, le tableau de vvariations …. Eventuellement lire des images

surveillant général propose à tous les élèves de voter pour choisir le condidat qui va les représenter.. Le tableau suivant résume

Écrire un programme qui déclare et remplie un tableau de 10 entiers en les mettant toutes à zéro puis d'acher les valeurs de ce tableau.. Même question sauf que les valeurs doivent

Indique en dessous De chaque coccinelle le nombre total des points sur les deux ailes.. DECOUVRIR LE MONDE Objectifs  Compléter un tableau à

[r]

Dans cet exercice, on souhaite déterminer l’e ff et à long terme d’une baisse ou d’une hausse à taux constant à partir de la valeur initial 1 (on peut imaginer 1hectare, 1