Fonctions - Exercices supplémentaires

Fonctions - Exercices supplémentaires#

Exercice 1#

  1. Écrivez une fonction qui convertit des bits en octets.

  2. Écrivez une fonction qui convertit des octets en bits.

  3. Convertissez 3664000 bits en octets.

  4. Convertissez 512 octets en bits.

Astuce

Un octet contient 8 bits.

# Écrire le programme ici

Exercice 2#

Pour les prochaines vacances, vous décidez de partir en vacances au Japon. Vous avez de l'argent sur un compte épargne et de l'argent que vous avez gagné en travaillant cet été.

Écrivez un programme qui permet de convertir en YEN les montants qui sont sur un compte épargne et sur un compte courant afin de déterminer le montant que vous aurez à disposition.
Le taux est de 1 CHF = 174 YEN.

def convertit_chf_en_yen(montant_chf):
  # à compléter

compte_courant_chf = 1540
compte_epargne_chf = 2467

# Complétez le programme
budget_yen =
print("Tu auras", budget_yen, "YEN.")

Exercice 3#

Écrivez une fonction qui prend en paramètre un code de réduction et retourne le pourcentage de rabais donné par ce code de réduction. Le code déjà donné utilise cette fonction pour calculer le prix final d'un article après y avoir appliqué la réduction. Les réductions sont les suivantes :

  • 20% (0.2) pour le code SUN

  • 35% (0.35) pour le code STX

  • 50% (0.5) pour le code MAX

  • 0% (0) pour les autres codes

def calcule_reduction(code):
 # à compléter

# ne pas modifier le code ci-dessous
prix = float(input("Quel est le prix de l'article? "))
code_reduc = input("Quel est le code de réduction? ")

reduction = calcule_reduction(code_reduc)
prix_final = prix * (1 - reduction)
print("Le prix final est de", prix_final, "CHF.")

Exercice 4#

Pour calculer le prix de l'amende à payer en cas de dépassement de vitesse, consultez le document suivant: Liste sanctions

Écrivez une fonction qui retourne le prix de l'amende à payer en fonction de la vitesse autorisée et la vitesse mesurée par le radar. Traitez seulement le cas où le dépassement de vitesse a lieu sur l'autoroute et n'excède pas 25 km/h.

def amende(vit_autorisee, vit_mesuree):
  # à compléter

# ne pas modifier le code ci-dessous
print(amende(120,140))
print(amende(120,145))
print(amende(120,120))

Astuce

Pour faciliter la compréhension de code, il est courant de créer des fonctions qui testent une certaine condition. Par exemple, la fonction est_pair(n) retourne True si la nombre est pair et False sinon.

1def est_pair(nombre):
2  if nombre % 2 == 0:
3    return True
4  else:
5    return False
6
7print(est_pair(107))

Exercice 5#

Écrivez un programme qui demande à l'utilisateur un nombre entier strictement positif et affiche tous ses diviseurs. Ce programme doit:

  1. contenir un procédé qui vérifie que la réponse de l'utilisateur est bien un nombre strictement positif. Si ce n'est pas le cas, lui demander un autre nombre.

  2. contenir une fonction est_diviseur() qui teste si un nombre est diviseur d'un autre nombre.

  3. contenir une fonction est_premier() qui teste si un nombre est premier.

def est_diviseur(nombre, diviseur):
  # à compléter

def est_premier(nb_diviseurs):
  # à compléter

n = int(input("Choisir un nombre entier strictement positif:"))

# Complétez le programme

Important

L'ordre des paramètres lors de l'appel de la fonction doit être le même que lors de la définition de la fonction.

Exercice 6#

La suite de Syracuse est une suite d'entiers naturels définie de la manière suivante:

  • si le nombre est pair, diviser par 2,

  • sinon multiplier par 3 et ajouter 1.

Cette suite à la particularité de toujours se terminer par 4, 2, 1.

Écrivez un programme qui demande à l'utilisateur de choisir un nombre et affiche la suite de Syracus (jusqu'à ce que la suite arrive à 1).

def syracuse(n):
  # à compléter

n = int(input("Choisir un nombre entier plus grand que 0."))

# Complétez le programme