Aller au contenu

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')