Thème 4 : Fonctions
Formes creuses
Algorithme
On crée une fonction par forme. Pour la ligne, on écrit une version de ligne pleine et une creuse, avec le motif au début et à la fin et des espaces entre les deux. On peut utiliser cette fonction pour créer les autres formes.
Programme
def ligne(longueur, motif):
for iCol in range(longueur):
print(motif, end = "")
print()
def ligneCreuse(longueur, motif):
if longueur > 1:
print(motif, end = "")
for iEspace in range(longueur - 2):
print(" ", end = "")
print(motif)
def rectangle(hauteur, largeur, motif):
if hauteur > 1:
ligne(largeur, motif)
for iLigne in range(hauteur - 2):
ligneCreuse(largeur, motif)
ligne(largeur, motif)
def triangle(hauteur, motif):
for iLigne in range(1, hauteur):
ligneCreuse(iLigne, motif)
ligne(hauteur, motif)
longueurLigne = int(input())
ligne(longueurLigne, "X")
print()
hauteurRectangle = int(input())
largeurRectangle = int(input())
rectangle(hauteurRectangle, largeurRectangle, "#")
print()
hauteurTriangle = int(input())
triangle(hauteurTriangle, "@")
Convertisseur d'unités
Algorithme
Pour commencer, on peut définir des constantes correspondant aux valeurs du sujet (montré en C et C++). On utilise ensuite ces constantes pour créer trois fonctions de conversion : une pour chaque unité de départ. Note : nous referons prochainement ces corrections pour utiliser des constantes plutôt que des fonctions.
Programme
def mètresVersPieds(mètres):
return mètres / .3048
def grammesVersLivres(grammes):
return grammes * .002205
def celsiusVersFarenheit(celsius):
return 32 + celsius * 1.8
nbValeurs = int(input())
for loop in range(nbValeurs):
valeur, unité = input().split()
valeur = float(valeur)
if unité == 'm':
print(mètresVersPieds(valeur), 'p')
elif unité == 'g':
print(grammesVersLivres(valeur), 'l')
elif unité == 'c':
print(celsiusVersFarenheit(valeur), 'f')