[PDF] Structures itératives - Python





Previous PDF Next PDF



Exercices avec Solutions

65. Page 5. Les Structures de Contrôle (Conditionnelles – Itératives). Exercices Corrigés d'Algorithmique – 1ére Année MI 5. EXERCICE 1. Ecrire un algorithme 



Les structures itératives

Pour écrire cet algo qui est une extension de l'exercice 9 de la séquence 2



1 Les boucles (les structures itératives)

Exercice N°1 : 1- Écrire un algorithme qui affiche tous les entiers pairs de 1 à 24. Solution : Algorithme pair. Variables i 



ALGO 1.1 œ Correction TD N°5.

Exercice 1. Calcul de la factorielle d'un entier naturel (avec une structure itérative « Pour »). Variables n : entier factorielle : entier.



Structures itératives - Python

Exercice 1 Proposer un script qui détermine le plus petit entier n tel que 2n > 1000. Déter- miner le nombre de multiplications effectuées. Corrigé: On peut 



TP 2. Structures de contrôle 1 Structure conditionnelle

Complément à l'exercice 10 du TP 1. 2 Structure conditionnelle itérative : boucle while ... Si oui la rédiger; sinon la corriger. En pa-.



Exercices et problèmes dalgorithmique

Corrigés des exercices et des problèmes . Avec les structures séquentielles et les approches itératives les structures arborescentes et les.



Chapitre 5 - Structure de boucle : while / dowhile

Dans cette seconde partie consacrée aux structures itératives nous aborderons les Question 5-1 Vérification des notions de base ? exercice de cours.



Corrigés de travaux pratiques

24 juil. 2014 Exercice 3. Un invariant de boucle est une propriété qui reste vraie à chaque itération de la boucle considérée. Ici la propriété.



Langage C : énoncé et corrigé des exercices IUP GéniE

Exercice 29 Soit un fi chier de données structuré en une suite de l ignes en une b ouc l e dont cha q ue itération l ira une l igne et l'im pri-.



Les Structures de Contrôle Itératives

Les Structures de Contrôle Itératives Exercice n°1 : Soit l'algorithme suivant: 0 Début Traitement 1 Ecrire (''donner une chaine '') Lire (Ch) 2 Ecrire (''donner la position'') Lire (p) 3 Ecrire (''donner le nombre des caractères'') Lire (nb) 4 Ch1? '''' i ? p Tant que (i p+nb) faire Ch1? Ch1+Ch[i] i ? i+1



Les structures algorithmiques de contrôle

Une structure de contrôle itérative (boucle) permet de un traitement un certain nombre de fois Le nombre de répétition peut être : + connu à l’avance structure itérative complète + ou non connu à l’avance structure itérative à condition d’arrêt

Qu'est-ce que la structure itérative?

B. Les structures de contrôle itératives I.La structure itérative complète 1. Présentation Cette structure exprime la répétition d'un traitement un nombre fini de fois connu à l’avance. 2. Syntaxe en algorithme et en pascal Syntaxe en algorithme Syntaxe en pascal Pour Compteur de Vi à Vf Faire Instruction 1 Instruction 2 Traitement …

Comment fonctionne une méthode itérative ?

Les méthodes itératives sont utilisées soit pour la résolution de systèmes linéaires de très grande taille, soit lorsque l’on dispose d’une estimation de la solution que l’on veut améliorer. Une méthode itérative consiste à construire une suite de vecteurs x(0) ,(1) ¢¢¢ (k),...

Quels sont les principes généraux des méthodes itératives?

IV.1.1 Principes généraux Les méthodes itératives sont utilisées soit pour la résolution de systèmes linéaires de très grande taille, soit lorsque l’on dispose d’une estimation de la solution que l’on veut améliorer.

Qu'est-ce que la fonction itérative ?

Vous l’avez donc compris, une fonction itérative vous permet de réaliser un calcul de façon itératif, c’est-à-dire pour chaque ligne de votre base de données. Ok, mais alors, dans Power BI, qu’est-ce qu’on fait ? Surtout, on évite d’ajouter des colonnes et on met en place des fonctions itératives.

Structures itératives

12 septembre 2021

I La boucle "Tant que»

1) Un exemple introductif : décollage de la fusée

On désire écrire un script qui affiche successivement en passant à la ligne (après chaque nombre)

10,8,6,4,2, décollage. On pourrait bien sûr écrire

print(10) print(8) print(2) print("décollage") Mais si je remplace 10 par 100, vous ne serez plus d"accord. On vademander à l"ordinateur de répéter une tâche tant qu"une condition n"est pas réalisée. temps←10

Tant que temps>0

afficher temps temps←temps - 2

FinTantque

afficher "décollage"

Pour mieux comprendre, on peut "tracer» cet algorithme, c"est-à-dire regarder l"évolution des

variables au cours de chaque itération. temps1086420 temps > 0VVVVVF Au départ,tempsvaut 10, donc la conditiontemps >0est vraie, on exécute donc les instruc- tions de la boucle tant que. À chaque itération, la valeur detempsest diminuée de 2, donc inexorablement à un moment donné,tempsvaudra 0 et donc la conditiontemps >0sera fausse et l"algorithme se terminera. Ceci illustre les deux points fondamentaux d"une boucle "Tant que» : • il faut pouvoir entrer dans la boucle • il faut sortir de la boucle 1

2) La syntaxe PythonOn retiendra le mot cléwhile, le symbole : et l"indentation.

instructions_avant_boucle while condition_realise: instructions_dans_boucle instructions_apres_boucle

Cela donne pour notre exemple précédent :

temps = 10 while temps > 0: print(temps) temps = temps -2 print("décollage")

3) Exemples modèles

Exercice 1Proposer un script qui détermine le plus petit entierntel que 2n>1000. Déter- miner le nombre de multiplications effectuées.

Corrigé:On peut répondre de tête : en effet, on sait que 210= 1024 (valeur référence), donc

2

9= 512 ainsi l"entiernrecherché est 10. On peut aussi utiliser le logarithme... Ceci étant dit,

présentons plusieurs méthodes algorithmiques. script 1 : cible = 1000 n = 0 while 2**n <= cible: n = n + 1 print(n)script 2 :cible = 1000n = 0puissance_deux = 1while puissance_deux <= cible: puissance_deux = 2*puissance_deux n = n + 1 print(n)

Les deux scripts sont corrects et renvoient 10, mais ils n"ont pas la même efficacité. "Traçons»

le premier script : n012···910

2n124···5121024

2n?1000VVV···VF

Ainsin= 10. A chaque itération, il calcule 2net donc effectuenmultiplications. Puisqu"on calcule 2

1,22,29,...,210donc on effectue 1 + 2 + 3 +...+ 10 =10×11

2= 55 multiplications.

On peut faire beaucoup mieux, car si l"on a dèjà calculé 2 n-1, il suffit de multiplier par 2 pour obtenir 2 n. C"est ce que met en forme le deuxième script, qui n"effectue donc que 10 multiplications. 2 Remarque : le script ci-dessous qui ressemble beaucoup au premier, renvoie aussi la réponse correcte 10, mais il est faux! script 3 : cible = 1000 n = 0 while 2**n < cible: n = n + 1 print(n) En effet, si je prend pour cible 1024 à la place de 1000, on obtientla trace suivante : n012···910

2n124···5121024

2n<1024VVV···VF

Il renvoie alors 10 comme réponse, au lieu de 11! Il faut ainsi être très vigilant avec les conditions d"arrêt d"une boucle "tant que». Exercice 2 (Temps d"attente du double six)Écrire un script qui simule le lancer de deux dés et affiche le nombre de lancers nécessaires avant l"obtention du double six. On pourra importer la fonctionrandintdu modulerandompour tirer un entier aléatoire, en exécutant l"instructionfrom random import randint.

Corrigé:Voici un premier code possible :

de1 = 0 de2 = 0 nbre_lancers = 0 while de1 + de2 != 12: de1 = randint(1,6) de2 = randint(1,6) nbre_lancers += 1 # ou nbre_lancers = nbre_lancers + 1 print(nbre_lancers) Attention : certains seront peut-être tentés de remplacer lacondition duwhilepar celle- ci :while (de1 != 6) and (de2 !=6). C"est une erreur de logique, la négation de (de1 =

6 et de2 = 6) est (de1?= 6 ou de2?= 6). On pouvait donc remplacer parwhile (de1 !=

6) or (de2 !=6)

Voici un deuxième code possible utilisant une variable booléenne, ce qui donne un code assez élégant et tout aussi performant que le précédent : nbre_lancers = 0 pas_double_six = True # variable booléenne while pas_double_six: de1 = randint(1,6) de2 = randint(1,6) if de1 == 6 and de2 == 6: pas_double_six = False nbre_lancers += 1 print(nbre_lancers) 3 Remarque : comme il y a une chance sur 36 d"obtenir le double 6, le temps d"attente moyen est de 36. Exercice 3 (Le juste prix)On veut écrire un script qui demande à l"utilisateur de deviner

un nombre entre 1 et 100 qui a été choisi aléatoirement. Si la réponse de l"utilisateur est fausse,

le programme indique si sa réponse est trop grande ou trop petite et l"utilisateur peut à nouveau

faire une proposition. Le programme ne doit se terminer que si labonne réponse est donnée.

1. Proposer un script

2. Modifier le script précédent de sorte que le programme affiche àla fin le nombre de

réponses nécessaires pour trouver le juste prix.

3. Comment modifier le programme pour qu"il s"arrête à partir de dix mauvaises réponses?

Corrigé:

import random x = random.randint(1,100) # x est le prix à deviner reponse = 0 nbre_reponses = 0 while reponse != x: reponse = int( input("Donner un nombre entier entre 1 et 100:")) nbre_reponses += 1 if reponse > x : print("C"est moins") elif reponse < x : print("C"est plus") else: print("C"est la bonne réponse") print("Vous avez réussi avec " + str(nbre_reponses) + " réponses")

Voici quelques prolongements possibles :

• Si l"utilisateur est malin et utilise une technique de dichotomie, au pire combien de ré- ponses devra-t-il fournir pour deviner un nombre entre 1 et 100000000?

• On inverse les rôles. C"est l"utilisateur qui choisit un entier.On doit écrire un programme

qui trouve la bonne réponse de manière performante. Exercice 4 (Algorithme d"Euclide)L"algorithme d"Euclide permet de calculer le pgcd dequotesdbs_dbs3.pdfusesText_6
[PDF] structure alternative

[PDF] algorithme cours seconde

[PDF] la boucle tant que algorithme

[PDF] algorithme boucle tant que exercice corrigé pdf

[PDF] exercice algorithme boucle tant que pdf

[PDF] la boucle pour

[PDF] les fonctions en javascript

[PDF] cours javascript debutant pdf

[PDF] les evenements en javascript

[PDF] javascript pour les nuls pdf gratuit

[PDF] boucle for liste python

[PDF] openclassroom python

[PDF] liste append

[PDF] append python

[PDF] parcourir une liste python