[PDF] [PDF] Preuves de programmes

Résultat clé pour la terminaison d'une boucle while : il n'existe pas de suite infinie, à dans le style PYTHON, on prend chaque élément appartenant à la liste



Previous PDF Next PDF





[PDF] TP3 - Boucle for, listes, boucle while

Dans le Shell Python, construisez une liste l1 contenant les entiers de 1 à 12 compris Afectez ensuite cete liste à une seconde variable l2 : l2 = l1 Modifez des 



[PDF] TP Python 3

On peut l'utiliser dans une boucle ou bien encore le convertir en liste Exercice 1 : Afficher des étoiles (programme TP3_1) a) écrire un programme TP3_1 py qui 



[PDF] Les boucles FOR et WHILE - Normale Sup

Mettre en œuvre une boucle WHILE ; • Appliquer les Mise en œuvre d'une boucle FOR 5 4 La liste est la structure de donnée la plus utilisée en Python



[PDF] TP Listes et boucles en Python ISN 1 Les listes Une liste est une

Listes et boucles en Python ISN Le premier élément d'une liste possède l' indice 0 Réalise une boucle en faisant parcourir à la variable var toute la liste list



[PDF] TP : BOUCLES ET LISTES EN PYTHON - Sup 3 - Prépa - Carnot

b) Écrire une fonction str2list_compr(chaine) répondant à la question avec liste en compréhension 4 c) Quel est le résultat de list('texte')? 5 On veut établir la liste 



[PDF] Exercices corrigés

2010 – 2011 Informatique Scientifique version 2 2 Python 3 Exercices corrigés Affichez chaque élément d'une liste en utilisant une boucle for 7 Affichez les 



[PDF] 4 Listes

Lorsque l'on affiche une liste, Python la restitue telle qu'elle a été saisie boucle prendra les valeurs successives de la liste animaux (car les éléments de la 



[PDF] Boucles for

Liste d' instructions fin pour Exemple Python Afficher les carrés des entiers 1,2,3 ,4,5 et calculer la somme de ces carrés : s = 0 for k in range(1,6): print(k**2) 



[PDF] Preuves de programmes

Résultat clé pour la terminaison d'une boucle while : il n'existe pas de suite infinie, à dans le style PYTHON, on prend chaque élément appartenant à la liste



[PDF] Les boucles FOR sous Python - Pascal Delahaye Le Vercors - Free

Même si elles diff`erent de part leur syntaxe et leur utilisation, elles correspondent toutes les 3 `a une collection ordonnées de valeurs 1 la liste [1, 2 , 3, 4] a pour 

[PDF] openclassroom python

[PDF] liste append

[PDF] append python

[PDF] parcourir une liste python

[PDF] tuple python

[PDF] liste de liste python

[PDF] instruction python

[PDF] album anglais maternelle

[PDF] découvrir l'anglais avec des albums de jeunesse cycle 3

[PDF] album anglais cycle 3

[PDF] liste album anglais cycle 3

[PDF] album anglais ce2

[PDF] découvrir l'anglais avec des albums de jeunesse cycle 2

[PDF] album jeunesse en anglais

[PDF] album anglais cycle 1

8

Preuves de programmes

?Faire la preuve d"un programme consiste à démontrer deux points : • saterminaison:lefaitquece programmes"arrêteaprèsunnombrefinid"étapes.Avec ce que l"on a vu jusqu"à présent, le seul point qui peut empêcher la terminaisond"un programme est la présence de boucleswhilemal construites; • sacorrection: lefait quelesrésultatsproduitspar leprogrammesontbienceux atten- dus. Pour simplifier, on s"intéresse dans la suite à faire la preuve defonctionsPYTHON. ?Résultat clé pour laterminaisond"une bouclewhile: il n"existe pas de suite infinie, à valeurs entières et positives qui soit strictement décroissante. Conséquence : si on arrive

à mettre en évidence une quantité?, à valeurs entières et positives, telles que?décroit

strictement à chaque tour de la boucle, alors la boucle terminenécessairement. ?Résultat clé pour lacorrectiond"une bouclewhile: si on ar- rive à mettre en évidente une propriétéPtelle que •Pest vraie au point?; •si Pest vraie au point?,alors Pest vraie au point?, alorsPsera vraie au point?. Une telle propriétéPest appe- lée uninvariant de boucle. Noter l"analogie avec le principe de récurrence en mathématiques. tant que(condition)

Instructions. . .

fin tant que Exemple Python.Somme des termes d"une listeL(si la listeest vide,alorslasommeestnulle).Onnoten=len(L).

Le principe du programme :

• On a une variablesqui vaut initialement 0; • On parcourt tous les termes de la liste et chaque terme est ajouté às. Ainsi, unefois que toutelalistea été parcourue,scontient la somme de tous les termes de la liste.?defsomme(L):s= 0 i=0 # Point 1 whileiinfinie qui soit à valeurs entières, positives et strictement décroissante, la bouclewhilene

peut être effectuée qu"un nombre fini de fois, donc la fonction termine. ?Pour montrer la correction de cette fonction, on démontre que la propriété :

P:s=L[0]+···+L[i-1]

est un invariant de boucle. Tout d"abord,Pest vraie au point 1 (indiqué par un commen- taire). SupposonsPvraie au point 2, c"est à dires=L[0]+···+L[i-1]. Notonss?la nouvelle valeur desau point 3 eti?la nouvelle valeur deiau point 3, on ai?=i+1 et : s Par conséquentPest vraie au point 3. La propriétéPest bien un invariant de boucle, elle est donc vraie au point 4 (justeà la sortiede la boucle). Au point 4, on ai=n=len(L), donc s=L[0]+···+L[n-1]. Par conséquent la fonction est correcte. Exemple Python.Déterminer le maximum des élé- ments d"une liste de longueurn?1. Le principe du pro- gramme : • On a une variablemqui vaut initialementL[0]; • On parcourt tout les termesL[1],...,L[n-1] et à chaque foisque l"onrencontreuntermestrictement supérieur àm, on donne àmla valeur de ce terme. Ainsi, une fois que toute la liste a été parcourue,m contient le plus grand terme de la liste.? entière, positiveet strictementdécroissante à chaque tour de la boucle, donc la fonction termine. defmaximum(L):m=L[ 0] i= 1 # Point 1 whileim: m=L[i] i=i+ 1 # Point 3 # Point 4 returnm ?Pour montrer la correction de cette fonction, on démontre que la propriété :

P:m=max(L[0],...,L[i-1])

est un invariant de boucle. En effet, cette propriété est vraie au point 1 (indiqué par un commentaire).SupposonsPvraie au point2,c"est àdirem=max(L[0],···,L[i-1]). Notons m ?la nouvelle valeur demau point 3 eti?la nouvelle valeur deiau point 3 (i?=i+1), on distinguedeux cas. SiL[i]>m, alorsm?=L[i] et : max:m,L[i]>m)=L[i]=m?

SiL[i]?m, alorsm?=met :

max:m,L[i]?m)=m=m? Dans tous les cas,Pest vraie au point 3. La propriétéPest bien un invariant de boucle, elle est donc vraie au point 4. Au point 4, on ai=n=len(L), doncm=max(L[0],···,L[n-1]).

Par conséquent la fonction est correcte.

Deux exemples fondamentaux à connaitreTrois manières de calculer la somme des termes d"une liste?Premièreversion: dans le style PYTHON, onprend chaque élémentappartenantà la liste.

defsomme(L):

Calcule la somme des éléments de L

L : liste d"éléments de type int ou float

s=0 forx in L:s=s+x returns ?Deuxième version : avec une bouclefor, on parcourt tous lesindicesde la liste (qui vont de 0 jusqu"à len(L)-1). defsomme(L):

Calcule la somme des éléments de L

L : liste d"éléments de type int ou float

s=0 fori in range(len(L)):s=s+L[i] returns ?Troisième version : on remplace la boucleforpar une bouclewhile. defsomme(L):

Calcule la somme des éléments de L

L : liste d"éléments de type int ou float

s=0 i=0 whileiDétermine le maximum de L L : liste (non vide) d"éléments de type int ou float m=L[0] i= 1 whileim: m=L[i] i=i+ 1 returnm ?Deuxième version : avec une bouclefor. defmaximum(L):

Détermine le maximum de L

L : liste (non vide) d"éléments de type int ou float m=L[0] fori in range(1,len(L)): ifL[i]>m: m=L[i] returnm ?Troisième version : dans le style PYTHON, en parcourant les éléments de la liste. defmaximum(L):

Détermine le maximum de L

L : liste (non vide) d"éléments de type int ou float m=L[0] forx in L[1:]: ifx>m: m=x returnm

Remarque.La notationL[

1:]désigne la liste obtenueà partirdeLen ne gardant que les

quotesdbs_dbs3.pdfusesText_6