☀️
420-1G2-HU Logique de programmation
  • 👋Bienvenue dans le cours de logique de programmation!
  • Bases de la logique de programmation
    • Concepts de la programmation
    • Les opérateurs
      • Exercices
    • Les commentaires
  • Les données
    • Les données et types simples
    • Les variables, les constantes et les opérations de base
    • Les opérations d'écriture et de lecture
    • Les opérations sur les chaînes de caractères
    • Laboratoire 1 - données
    • Laboratoire 2 - données
  • Les collections de données
    • Les listes
    • Les opérations sur les listes
    • Laboratoire listes - solution
    • Les dictionnaires
      • Exercices
  • Différents types de traitements
    • Structures logiques séquentielle
    • Structures logiques conditionnelles (if/else/elif)
    • Structures logiques répétitives (boucles)
      • Exercices de base
      • Laboratoire boucles - solution
  • Modularisation
    • Création et appels des fonctions
    • La documentation des fonctions
    • Annotation de types dans les fonctions
    • Laboratoire - fonctions (niveau débutant)
    • Révision express fonctions
    • Les modules
      • Laboratoire
  • La portée des variables
  • Débogage
    • 🫂Le débogueur, c'est ton ami!
      • Introductions aux outils de débogage
      • Techniques de débogage
    • Les erreurs et exceptions
      • Introduction aux notions d’erreurs
      • Les exceptions et leurs gestion
      • Exercices de base - avec solutions
      • Laboratoire débogage et gestion des erreurs -solution
  • Tests unitaires
    • Tests unitaires
    • Exercice
  • Cryptographie
    • Introduction à la cryptographie
  • Les fichiers
    • Accès aux fichiers
  • Résolution de problèmes
    • Résolution de problèmes : exercice introductif
    • Étapes d'analyse et de résolution de problèmes
  • Activités avec Légos
    • Introduction à la programmation
    • Consolidation sur les fonctions avec des blocs
    • Pratiquer les boucles avec des blocs
  • Laboratoires
    • Simulation combat - dragon vs chevalier
    • Simulateur de bataille - Les anneaux du pouvoir
    • Jeu de cartes
    • Lien logique mathématique
      • Algèbre de Boole
    • Crypto variée
    • Après Noël
  • git - système de gestion de versions
    • Introduction à Git
    • Étapes de création des dépôts Git
  • Classes inversées
    • Résolution de problèmes, fonctions et traitements conditionnels
  • Examens
    • Examen 2 - 2023
    • Examen 3 - 2023
    • Examen 2 - 2024
  • Révision
    • Fonctions, gestion d'erreurs et tests unitaires
    • Résolution de problème
  • Trucs utiles
    • Check-list
Powered by GitBook
On this page
  • But
  • Exercice 1
  • Exercice 2
  • Exercice 3
  • Exercice 4
  1. Modularisation

Laboratoire - fonctions (niveau débutant)

But

  • Se familiariser avec les bases des fonctions.

  • Résolution de problèmes.

Notez qu'initialement les traitement conditionnels n'étaient pas demandés dans ce lab. Cependant, les solutions incluent des traitements conditionnels pour plus de pratique.

Exercice 1

Des étudiants souhaitent avoir une application de mathématiques qui les aide à comprendre les propriétés des triangles, précisément, elle doit les aider à identifier si un triangle est rectangle ou non. Créez un tel programme en utilisant les fonctions.

Voici la formule de vérification qu'un triangle est rectangle :

a2+b2=c2a^2 + b^2 = c^2a2+b2=c2
Solution

Pseudo-code

# ************************* Les fonctions ******************************
Nom de la fonction qui vérifie si un triangle est réctangle : triangle_est_rectangle
# *************************** entrées/sorties ***************************
   Paramètres (entrées) : a, b et c
   Retour (sorties) : vrai ou faux (booleen, True ou False)
# ************************** Début pseudo-code **************************
début fonction triangle_est_rectangle : 
     si a**2 + b**2 == c**2 alors 
        retourner True
     sinon 
     retourner False
   
Fin de la fonction triangle_est_rectangle

# ***********************************************************************
Début du programme principal : 
   - Lire la valeur de a (l'utilisateur doit entrer la valeur de a)
   - Lire la valeur de b
   - Lire la valeur de c
   
   triangle_est_rect = triangle_est_rectangle(a, b, c)
   
   si triangle_est_rect == True, alors 
      afficher : "Le triangle dont les valeurs sont " a"," b "et" c "est un triangle rectangle"
   Sinon, 
      afficher "Le triangle dont les valeurs sont " a"," b "et" c "n'est pas un triangle rectangle"
Fin du programme principal
# ***********************************************************************

Programme en Python

def triangle_est_rectangle(a, b, c):
    """
    Vérifie si un triangle est rectangle.

    :param a: La longueur du premier côté du triangle.
    :param b: La longueur du deuxième côté du triangle.
    :param c: La longueur du troisième côté du triangle (hypoténuse).
    :return: (booléen) True si le triangle est rectangle, False sinon.
    """

    if a**2 + b**2 == c**2:
        return True
    else:
        return False


if __name__ == "__main__":
    a = float(input("Entrez la valeur de a: "))
    b = float(input("Entrez la valeur de b: "))
    c = float(input("Entrez la valeur de c: "))

    triangle_est_rect = triangle_est_rectangle(a, b, c)

    if triangle_est_rect:
        print(f"Le triangle dont les valeurs sont {a}, {b} et {c} est un triangle rectangle.")
    else:
        print(f"Le triangle dont les valeurs sont {a}, {b} et {c} n'est pas un triangle rectangle.")

Plan de test :

a
b
c
Résultat

3

4

5

Le triangle est rectangle

5

12

12

Le triangle n'est pas rectangle

29

420

421

Le triangle est rectangle

24

143

170

Le triangle n'est pas rectangle

52

73

93

Le triangle n'est pas rectangle

Exercice 2

Écrivez un programme qui fera la conversion d’un angle. L’utilisateur devra fournir un angle en degrés et le programme devra le convertir en radians.

La formule de conversion est la suivante :

rad=π/180×degreˊsrad = π/180×degrésrad=π/180×degreˊs

Plan de tests

Valeurs d'entrée
Résultat observé

Angle en degrés : 0°

Angle en degrés : 79°

Angle en degrés : 360°

Angle en degrés : 58.6°

Angle en degrés : -45°

Exercice 3

Vous travaillez en tant que programmeur pour une application de gestion de profils. Votre tâche est d'écrire un programme qui récupère les informations d'un utilisateur pour lui créer un profil personnalisé (nom, prénom, date de naissance, profession, adresse de résidence et adresse courriel). Ce profil doit ensuite être affiché à l’écran.

L'adresse courriel de l'utilisateur doit être construite de manière automatique à partir des données saisies en respectant le format suivant :

[prénom].[nom]@[domaine]

Le nom de domaine ne change pas et doit être « cegepoutaouais.qc.ca »

Inspirez-vous des laboratoires précédents pour créer un affichage professionnel.

Solution

Pseudo-code

# ************************* Les fonctions ******************************
 Fonction qui créé l'adresse courriel : creer_courriel
# *************************** entrées/sorties ***************************
   Paramètres (entrées) : nom et prenom 
   Retour (sorties) : l'adresse courriel
# ************************** Début pseudo-code **************************
début fonction creer_courriel
   Définir la constante NOM_DOMAINE = "cegepoutaouais.qc.ca"
   adresse_courriel = nom + "." + prenom + "@" + NOM_DOMAINE
   retourner adresse_courriel 
   
Fin fonction 
# **********************************************************************

Fonction qui lit les informations du profil et qui affiche le profil: afficher_profil
# *************************** entrées/sorties ***************************
   Paramètres (entrées) : aucun 
   Retour (sorties) : Aucun (affichage du profil)
# ************************** Début pseudo-code **************************
Début fonction afficher_profil
   Lire le nom (on demande à l'utilisateur d'entrer le nom)
   Lire le prénom 
   Lire la date de naissance (demander un format, ex: JJ/MM/AAAA)
   Lire la profession
   Lire l'adresse de résidence
   adresse_courriel = creer_courriel(nom, prenom)
   
   nom_complet = prenom + " " + nom
   
   Afficher toutes les informations lues et l'adresse courriel au format suivant :
   "********************************************************************"
      Profil d'Alain:
      Nom complet: Alain Connu
      Date de naissance: 15/03/1860
      Profession: Chercheur introuvable
      Adresse de résidence: 42 Rue des Mystères, 00000 Fictionville
      Adresse courriel: Alain.Connu@cegepoutaouais.qc.ca
   "********************************************************************"
Fin fonction

# ***********************************************************************
Début du programme principal :
   afficher_profil()
Fin du programme principal
# ***********************************************************************

Programme en Python

def creer_courriel(nom, prenom):
    """
    Crée une adresse courriel à partir du nom et du prénom.
    :param nom: Le nom d'une personne.
    :param prenom: Le prénom d'une personne.
    :return: L'adresse courriel générée.
    """

    NOM_DOMAINE = "cegepoutaouais.qc.ca"
    adresse_courriel = nom + "." + prenom + "@" + NOM_DOMAINE

    return adresse_courriel

def afficher_profil():
    """
    Lit les informations de l'utilisateur et affiche le profil complet.
    :return: Aucun (on affiche le profil)
    """

    prenom = input("Entrez le prénom: ")
    nom = input("Entrez le nom: ")
    date_naissance = input("Entrez la date de naissance au format JJ/MM/AAAA : ")
    profession = input("Entrez la profession: ")
    adresse_residence = input("Entrez l'adresse de résidence: ")

    adresse_courriel = creer_courriel(nom, prenom)

    nom_complet = prenom + " " + nom

    print("\n********************************************************************")
    print(f"Profil de {prenom}:")
    print(f"Nom complet: {nom_complet}")
    print(f"Date de naissance: {date_naissance}")
    print(f"Profession: {profession}")
    print(f"Adresse de résidence: {adresse_residence}")
    print(f"Adresse courriel: {adresse_courriel}")
    print("********************************************************************")

if __name__ == "__main__":
    afficher_profil()

Exercice 4

Vous êtes développeur pour une entreprise de services financiers qui aide ses clients à gérer leurs investissements. Une de vos missions consiste à créer un programme pour vérifier automatiquement si des valeurs spécifiques, comme les prix des actions ou les taux d'intérêt, se situent dans une plage prédéfinie. Cela permet aux analystes financiers de savoir rapidement si les données respectent les seuils de tolérance ou les conditions fixées par les clients.

Solution

Pseudo-code

# ************************* Les fonctions ******************************
Fonction qui vérifie si une valeur est dans un intervalle : valeur_dans_intervalle
# *************************** entrées/sorties ***************************
   Paramètres (entrées) : valeur, seuil_inferieure, seuil_superieure
   Retour (sorties) : vrai ou faux (booléen, True ou False)
# ************************** Début pseudo-code **************************
début fonction valeur_dans_plage : 
     si limite_inferieure <= valeur <= limite_superieure alors 
        retourner Vrai
     sinon 
        retourner Faux
Fin de la fonction valeur_dans_plage
# ***********************************************************************

Début du programme principal :
   Lire la valeur
   Lire la limite inférieure
   Lire la limite supérieure

   valeur_valide = valeur_dans_intervalle(valeur, limite_inferieure, limite_superieure)
   si valeur_valide == True alors
      afficher "La valeur " valeur " est dans la plage prédéfinie de " limite_inferieure " à " limite_superieure "."
   sinon
      valeur_valide "La valeur " valeur " n'est pas dans la plage prédéfinie de " limite_inferieure " à " limite_superieure "."
Fin du programme principal
# ***********************************************************************

Programme en Python

def valeur_dans_intervalle(valeur, seuil_inferieur, seuil_superieur):
    """
    Vérifie si une valeur est dans un intervalle spécifié.
    :param valeur: La valeur à vérifier.
    :param seuil_inferieur: Le seuil inférieur de l'intervalle.
    :param seuil_superieur: Le seuil supérieur de l'intervalle.
    :return: (bool) True si la valeur est dans l'intervalle, sinon False.
    """
    return seuil_inferieur <= valeur <= seuil_superieur

if __name__ == "__main__":
    valeur = float(input("Entrez la valeur à vérifier: "))
    limite_inferieur = float(input("Entrez le seuil inférieur: "))
    limite_superieur = float(input("Entrez le seuil supérieur: "))

    valeur_valide = valeur_dans_intervalle(valeur, limite_inferieur, limite_superieur)

    if valeur_valide:
        print(f"La valeur {valeur} est dans la plage prédéfinie de {limite_inferieur} à {limite_superieur}.")
    else:
        print(f"La valeur {valeur} n'est pas dans la plage prédéfinie de {limite_inferieur} à {limite_superieur}.")

Plan de tests

Valeur à vérifier
Seuil inférieur
Seuil supérior
Résultat observé

134.73

120

139

La valeur 134.73 est dans la plage prédéfinie de 120.0 à 139.0.

10.5

9.8

10.5

La valeur 10.5 est dans la plage prédéfinie de 9.8 à 10.5.

228.67

137.62

228.65

La valeur 228.67 n'est pas dans la plage prédéfinie de 137.62 à 228.65.

74.22

71.13

77.16

La valeur 74.22 est dans la plage prédéfinie de 71.13 à 77.16.

57.30

57.30

68.74

La valeur 57.3 est dans la plage prédéfinie de 57.3 à 68.74.

PreviousAnnotation de types dans les fonctionsNextRévision express fonctions

Last updated 8 months ago