mirror of
https://github.com/arthur-pbty/nsi.git
synced 2026-06-15 08:13:17 +02:00
add exercise 4.1.1, 4.1.2, 4.2, 4.3
This commit is contained in:
@@ -0,0 +1,58 @@
|
|||||||
|
# Ecrire une fonction carre() qui retourne le carré d'un nombre:
|
||||||
|
# >>> print(carre(11.11111))
|
||||||
|
# 123.4567654321
|
||||||
|
|
||||||
|
# Le script prend en compte :
|
||||||
|
# les erreurs de saisie de l'utilisateur,
|
||||||
|
# les nombres entiers et les nombres décimaux,
|
||||||
|
# les nombres négatifs et les nombres positifs,
|
||||||
|
# les calcules exemple : 10**3, 10/3, (1/4)*5
|
||||||
|
|
||||||
|
def carre(a):
|
||||||
|
return a*a
|
||||||
|
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
a = input("Entrez un nombre: ")
|
||||||
|
a = float(a)
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
a = eval(a)
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
print("Oops! Ce n'était pas un nombre valide. Essayez encore...")
|
||||||
|
print(str(a) + "² =", "{:.10g}".format(carre(a)))
|
||||||
|
|
||||||
|
# Amélioration du script avec une interface graphique
|
||||||
|
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
def carre(a):
|
||||||
|
return a*a
|
||||||
|
|
||||||
|
def carre2():
|
||||||
|
a = entree.get()
|
||||||
|
try:
|
||||||
|
a = float(a)
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
a = eval(a)
|
||||||
|
except:
|
||||||
|
a = "Oops! Ce n'était pas un nombre valide. Essayez encore..."
|
||||||
|
sortie.configure(text = str(a) + "² = " + "{:.10g}".format(carre(a)))
|
||||||
|
|
||||||
|
fenetre = Tk()
|
||||||
|
fenetre.title("Calculatrice de carré")
|
||||||
|
fenetre.geometry("300x100")
|
||||||
|
|
||||||
|
entree = Entry(fenetre, width=30)
|
||||||
|
entree.pack()
|
||||||
|
|
||||||
|
bouton = Button(fenetre, text="Calculer", command=carre2)
|
||||||
|
bouton.pack()
|
||||||
|
|
||||||
|
sortie = Label(fenetre, text="")
|
||||||
|
sortie.pack()
|
||||||
|
|
||||||
|
fenetre.mainloop()
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Avec une boucle while et la fonction carre(), écrire un script qui affiche le carré des nombres entiers de 1 à 100:
|
||||||
|
# >>>
|
||||||
|
# 1² = 1
|
||||||
|
# 2² = 4
|
||||||
|
# 3² = 9
|
||||||
|
# ...
|
||||||
|
# 99² = 9801
|
||||||
|
# 100² = 10000
|
||||||
|
# Fin du programme
|
||||||
|
|
||||||
|
def carre(a):
|
||||||
|
return a*a
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
while i <= 100:
|
||||||
|
print(str(i) + "² =", carre(i))
|
||||||
|
i += 1
|
||||||
|
print("Fin du programme")
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# Ecrire une fonction airedisque() qui retourne l'aire de la surface d'un disque de rayon R.
|
||||||
|
# >>> print(airedisque(2.5))
|
||||||
|
# 19.6349540849
|
||||||
|
|
||||||
|
# Ajouter un paramètre qui précise l'unité de mesure
|
||||||
|
# >>> print(airedisque2(4.2, 'cm'))
|
||||||
|
# 55.4176944093 cm²
|
||||||
|
|
||||||
|
# Le script prend en compte :
|
||||||
|
# les erreurs de saisie de l'utilisateur,
|
||||||
|
# les nombres entiers et les nombres décimaux,
|
||||||
|
# les nombres négatifs et les nombres positifs,
|
||||||
|
# les calcules exemple : 10**3, 10/3, (1/4)*5,
|
||||||
|
# les unités de mesure exemple : cm, m, km, mm, ...
|
||||||
|
|
||||||
|
from math import pi
|
||||||
|
|
||||||
|
def airedisque2(R, unite):
|
||||||
|
return str(pi * R * R) + " " + unite + "²"
|
||||||
|
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
R = input("Entrez un nombre: ")
|
||||||
|
R = float(R)
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
R = eval(R)
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
print("Oops! Ce n'était pas un nombre valide. Essayez encore...")
|
||||||
|
unite = input("Entrez l'unité de mesure: ")
|
||||||
|
print(airedisque2(R, unite))
|
||||||
|
|
||||||
|
# Amélioration du script avec une interface graphique
|
||||||
|
|
||||||
|
from math import pi
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
def airedisque2():
|
||||||
|
R = entree.get()
|
||||||
|
try:
|
||||||
|
R = float(R)
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
R = eval(R)
|
||||||
|
except:
|
||||||
|
R = "Oops! Ce n'était pas un nombre valide. Essayez encore..."
|
||||||
|
unite = entree2.get()
|
||||||
|
sortie.configure(text = str(pi * R * R) + " " + unite + "²")
|
||||||
|
|
||||||
|
fenetre = Tk()
|
||||||
|
fenetre.title("Calculatrice d'aire de disque")
|
||||||
|
fenetre.geometry("300x150")
|
||||||
|
|
||||||
|
label = Label(fenetre, text="Saisir le rayon du disque :")
|
||||||
|
label.pack()
|
||||||
|
entree = Entry(fenetre, width=30)
|
||||||
|
entree.pack()
|
||||||
|
|
||||||
|
label2 = Label(fenetre, text="Saisir l'unité de mesure :")
|
||||||
|
label2.pack()
|
||||||
|
entree2 = Entry(fenetre, width=30)
|
||||||
|
entree2.pack()
|
||||||
|
|
||||||
|
bouton = Button(fenetre, text="Calculer", command=airedisque2)
|
||||||
|
bouton.pack()
|
||||||
|
|
||||||
|
sortie = Label(fenetre, text="")
|
||||||
|
sortie.pack()
|
||||||
|
|
||||||
|
fenetre.mainloop()
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# Ecrire une fonction qui retourne la factorielle d'un nombre entier N.
|
||||||
|
# On rappelle que : N ! = 1×2×...×(N-1)×N
|
||||||
|
# >>> print(factorielle(50))
|
||||||
|
# 30414093201713378043612608166064768844377641568960512000000000000
|
||||||
|
|
||||||
|
def factorielle(N):
|
||||||
|
if N == 0:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return N * factorielle(N-1)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
N = input("Entrez un nombre entier: ")
|
||||||
|
N = int(N)
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
N = eval(N)
|
||||||
|
N = int(N)
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
print("Oops! Ce n'était pas un nombre valide. Essayez encore...")
|
||||||
|
print("factorielle(" + str(N) + ") =", factorielle(N))
|
||||||
|
|
||||||
|
# Amélioration du script avec une interface graphique
|
||||||
|
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
def factorielle(N):
|
||||||
|
if N == 0:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return N * factorielle(N-1)
|
||||||
|
|
||||||
|
def factorielle2():
|
||||||
|
N = entree.get()
|
||||||
|
try:
|
||||||
|
N = int(N)
|
||||||
|
except ValueError:
|
||||||
|
try:
|
||||||
|
N = eval(N)
|
||||||
|
N = int(N)
|
||||||
|
except:
|
||||||
|
N = "Oops! Ce n'était pas un nombre valide. Essayez encore..."
|
||||||
|
sortie.configure(text = "factorielle(" + str(N) + ") = " + str(factorielle(N)))
|
||||||
|
|
||||||
|
fenetre = Tk()
|
||||||
|
fenetre.title("Calculatrice de factorielle")
|
||||||
|
fenetre.geometry("300x100")
|
||||||
|
|
||||||
|
entree = Entry(fenetre, width=30)
|
||||||
|
entree.pack()
|
||||||
|
|
||||||
|
bouton = Button(fenetre, text="Calculer", command=factorielle2)
|
||||||
|
bouton.pack()
|
||||||
|
|
||||||
|
sortie = Label(fenetre, text="")
|
||||||
|
sortie.pack()
|
||||||
|
|
||||||
|
fenetre.mainloop()
|
||||||
|
|
||||||
|
|
||||||
|
# Comparez avec le résultat de la fonction factorial() du module math.
|
||||||
|
|
||||||
|
from math import factorial
|
||||||
|
print("factorial(" + str(N) + ") =", factorial(N))
|
||||||
Reference in New Issue
Block a user