Atelier 7 - While
Compréhension
Numéro 1
Sans l'exécuter, que va afficher le code suivant?
i: int = 0
while i < 5:
print(i)
i += 1
Numéro 2
Sans l'exécuter, que va afficher le code suivant?
n: int
p: int
n = 0
p = 0
while n < 5:
n += 2
p += 1
print("A : n = " + str(n) + ", p = " + str(p))
n = 0
p = 0
while n < 5:
n += 2
p += 1
print("B : n = " + str(n) + ", p = " + str(p))
Numéro 3
Sans l'exécuter, que va afficher le code suivant?
a: int = 1
b: int = 20
while a < b:
a += 3
b -= 2
print(a, b)
Numéro 4
Les numéros 8, 9, 11, 14, 15, 16 et 18 ne sont pas possibles avec un for, pourquoi? Vous pouvez répondre à cette question maintenant ou après avoir fait les numéros.
Écriture
Faire tous les numéros suivants avec un while, même s'ils sont plus simple avec un for.
Numéro 5
Comptez de 1 à 10, un numéro par ligne.
1
2
3
4
5
6
7
8
9
10
Vous pouvez essayer de l'afficher comme ceci:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10
Numéro 6
Afficher la série suivante de nombres entiers (1 nombre par ligne): 5, 10, 15, 20, 25, 30, …, 90, 95, 100
Numéro 7
Faites la somme de tous les nombres de 1 à 100.
La somme de tous les nombres entre 1 et 100: 5050
Numéro 8
Faites la somme de tous les nombres à partir de 1. Arrêtez immédiatement lorsque la somme dépasse 1000.
Réponse: 1035
Numéro 9
Faites la somme de tous les nombres à partir de 1. Arrêtez juste avant que la somme dépasse 1000.
Réponse: 990
Numéro 10
Calculez manuellement la factorielle d'un nombre saisi par l'utilisateur. Par exemple, la factorielle de 5 est 5 x 4 x 3 x 2 x 1.
Veuillez entrer un nombre: 7
7! = 5040
Numéro 11
Calculer et afficher les racines carrées de nombre entier lu. Les entiers négatifs sont refusés. Arrêter le programme lorsque l'entier lu est 0.
Exemple:
Entrez un entier positif: 2
Sa racine carrée est: 1.4142135623730951
Entrez un entier positif: -3
Un entier positif svp!
Entrez un entier positif: 5
Sa racine carrée est: 2.23606797749979
Entrez un entier positif: 0
Fin
Numéro 12
Afficher un triangle formé d'étoiles. La hauteur du triangle (c’est-à-dire son nombre de lignes) est lue.
Exemple:
Combien de lignes? 8
*
**
***
****
*****
******
*******
********
Numéro 13
Demandez 2 nombres à l'utilisateur, faites la multiplication entre ces 2 nombres en utilisant seulement le +. Ne pas considérer les nombres négatifs.
Veuillez entrer un nombre: 3
Veuillez entrer un nombre: 4
3 * 4 = 12
Numéro 14
Demandez 2 nombres à l'utilisateur, calculez le PGCD entre ces 2 nombres.
Veuillez entrer un nombre: 25
Veuillez entrer un nombre: 15
Le PGCD de 25 et 15 est 5
Numéro 15
Demandez 2 nombres à l'utilisateur, calculez le PPCM entre ces 2 nombres.
Veuillez entrer un nombre: 8
Veuillez entrer un nombre: 12
Le PPCM de 8 et 12 est 24
Numéro 16
Demandez un nombre à l'utilisateur, inversez ce nombre (1234 deviendra 4321). Vous ne devez pas convertir le nombre en string, ni utiliser len.
Veuillez entrer un nombre: 1234
L'inverse de 1234 est 4321
Numéro 17 - Défi
Demandez 2 nombres à l'utilisateur. Faites l'exposant en utilisant seulement des additions.
Veuillez entrer un nombre: 2
Veuillez entrer un nombre: 8
2 ** 8 = 256
Numéro 18 - Défi
Demandez un nombre plus grand que 1 à l'utilisateur, reposer la question s'il ne respecte pas la règle jusqu'à ce que le nombre soit valide.
Avec ce nombre, calculez et affichez le nombre d'étapes dans la conjecture de Syracuse:
- Si le nombre est pair, diviser par deux;
- Si le nombre est impair, multiplier par trois plus un;
- Arrêter rendu lorsque le nombre vaut 1;
Optionnel: affichez chaque nombre de la suite.
Exemples:
Entrez un nombre plus grand que 1: -5
Entrez un nombre plus grand que 1: 1
Entrez un nombre plus grand que 1: 2
La suite débutant par 2 a 2 éléments.
Entrez un nombre plus grand que 1: 7
La suite débutant par 7 a 16 éléments.
Exemple avec le optionnel:
Entrez un nombre plus grand que 1: 7
7
22
11
34
17
52
26
13
40
20
10
5
16
8
4
2
1
La suite débutant par 7 a 17 éléments.
Analyse
Voici 3 problèmes accompagnés d'une solution déjà écrite (générée par une IA). Certaines contiennent une erreur, d'autres fonctionnent mais pourraient être améliorées. Analysez chaque solution et expliquez ce qui pourrait être corrigé ou amélioré.
Numéro 19
Affichez les nombres de 1 à 5.
i: int = 1
while i <= 5:
print(i)
Numéro 20
Calculez la somme des nombres de 1 à 10.
total: int = 0
i: int = 1
while i < 10:
total += i
i += 1
print(total)
Numéro 21
Comptez de 5 à 1, un nombre par ligne, puis affichez "GO".
n: int = 5
compteur: int = 0
fini: bool = False
while not fini:
print(n)
n -= 1
if n == 0:
fini = True
print("GO")