On donne l'algorithme suivant permettant d'afficher à l'écran les entiers pairs compris entre 1 et 99.
for i in range(1,100) :
if i%2==0 :
print(i)
Comment modifier cet algorithme pour afficher les entiers impairs compris entre 1 et 99 ?
On veut afficher les nombres impairs de 1 à 99. On va donc garder la boucle for.
En revanche, on modifie la boucle conditionnelle if.
En effet, l'opérateur % permet de donner le reste de la division euclidienne :
- Si i%2==0, alors le reste de la division euclidienne de i par 2 est 0, cela signifie que le nombre est pair.
- Si i%2==1, alors le reste de la division euclidienne de i par 2 est 1, cela signifie que le nombre est impair.
On remplace donc l'instruction :
if i%2==0 :
par :
if i%2==1 :
On donne l'algorithme suivant permettant de compter le nombre d'apparitions du nombre 5, au cours de 10 générations aléatoires de nombres entiers entre 1 et 6 :
from random import randint
s=0
for i in range(1,11) :
r=randint(1,6)
if r==5 :
s=s+1
Comment modifier cet algorithme pour générer des nombres entiers entre 1 et 10 ?
L'instruction permettant de générer des nombres entiers aléatoires compris entre deux entiers a et b est randint(a,b).
Dans l'algorithme donné, on utilise randint(1,6) pour générer un nombre entre 1 et 6.
On remplace 6 par 10 pour obtenir un nombre aléatoire entre 1 et 10.
On remplace donc :
r=randint(1,6)
par :
r=randint(1,10)
On donne l'algorithme suivant permettant d'afficher le double de la somme de deux nombres générés aléatoirement entre 1 et 5 si la somme des deux nombres est strictement supérieure à 10 :
from random import randint
a= randint(1,5)
b=randint(1,5)
if a + b > 10:
print(2*(a+b))
Comment modifier cet algorithme pour afficher le double du carré de la somme de a et b ?
L'opérateur puissance en Python est : **.
Ainsi, au lieu de calculer 2*(a+b), on va d'abord calculer le carré de la somme, soit : (a+b)**2.
Puis en calculer le double : 2*(a+b)**2.
On remplace donc :
print(2*(a+b))
par :
print(2*(a+b)**2)
On donne l'algorithme suivant permettant d'afficher le plus grand de deux nombres générés aléatoirement entre 1 et 10 :
from random import randint
a= randint(1,10)
b=randint(1,10)
if a> b :
print(a)
elif a<b :
print(b)
Comment modifier cet algorithme pour afficher « les nombres sont égaux » si les deux nombres sont égaux ?
Afin de prendre en compte le cas où a et b sont égaux, on ajoute une condition dans la boucle conditionnelle.
On ajoute donc à la fin du code :
else:
print("les nombres sont égaux")
On donne l'algorithme suivant permettant d'afficher l'aire d'un carré de côté c donné par l'utilisateur tant que celui-ci veut poursuivre :
rep = "Oui"
while rep == "Oui":
print("Entrer la longueur du côté du carré")
c= input()
print(c**2)
rep = input("Voulez-vous renseigner une autre valeur (Oui ou Non) ?\n")
Comment modifier cet algorithme pour afficher le périmètre du carré ?
On sait que l'aire d'un carré est égale au carré de son côté. Cela correspond au calcul (c**2).
Le périmètre d'un carré est égal à son côté multiplié par 4. Cela correspond au calcul (c*4).
On remplace donc :
print(c**2)
par :
print(c*4)