énoncé - Accueil

publicité
Par : David Beaulieu
École de technologie supérieure
INF-130 Travail pratique #1
Utilisé par : David Beaulieu, Frédérick Henri, Hugues
Saulnier et Éric Thé
Travail en équipe de 2
Gestion de panneaux électriques
1
e
Remise à la 5 semaine
Objectifs
-
Se familiariser avec le langage Visual Basic for Applications d’Excel.
-
Utiliser l’ensemble des notions présentées à présent : les variables, les instructions conditionnelles et
itératives, les entrées/sorties, le découpage en sous-programmes, etc.
-
Respecter les exigences de programmation : l’indentation, l’utilisation de constantes, l’ajout de
commentaires, etc.
2
Description du problème : Gestion d’un panneau électrique
Que ce soit dans le domaine résidentiel ou le domaine industriel l’installation électrique demande une
gestion constante et rigoureuse.
À force d’apporter des modifications à un bâtiment et à son installation électrique, il devient parfois difficile de
savoir sur quel circuit est branché chacun des équipements et si la puissance des équipements dépasse la
puissance règlementaire du circuit.
3
Description de la tâche à accomplir
On vous demande de faire un programme informatique qui facilitera la gestion dans le temps d’un panneau
électrique. Celui-ci devra permettre de :
1. ajouter des circuits sur un panneau électrique;
2. ajouter des équipements électriques sur les divers circuits du panneau;
3. obtenir un portrait des charges sur chacun des circuits.
INF-130 Ordinateurs et programmation
A2015/Page 1
4
Définitions des termes techniques
Circuit : Ligne électrique de tension constante sur laquelle des équipements sont connectés en série.
Disjoncteur : Élément de protection d’un circuit dont la valeur est exprimée en Ampère (A).
UPS : Système permettant de fournir une tension durant un certain temps en cas de panne de courant. Son
nom provient de l’acronyme des mots « Uninterruptible power supply » qui signifient « Système
d’alimentation sans coupure » en français. La capacité d’un UPS à fournir une tension est exprimée en
Ampère/heure.
Tension d’entrée : La tension d’entrée correspond à la tension qui alimente le panneau. Dans le milieu
résidentiel, cette tension est de 240 Volts.
Tension de phase : La tension de phase correspond aux sous-tensions possibles de la tension d’entrée.
Dans le milieu résidentiel, cette tension est de 120 Volts.
Lois d’ohms : Puissance (en Watts) = Tension (en Volts) * Courant (en Ampères)
5
Description des modules fournis
5.1 Module m_interface
Ce module vous donne accès à plusieurs fonctions permettant de lire et d’écrire dans les feuilles Excel.
Votre première tâche consiste à bien lire les commentaires d’entête de chacune des fonctions qui s’y
trouvent. Prenez note qu’il vous est interdit de modifier ce module.
INF-130 Ordinateurs et programmation
A2015/Page 2
6
Description des modules à coder
Votre tâche consiste à coder 17 sous-programmes répartis dans 4 modules.
6.1 Module m_constantes
Ce module ne contient que des constantes liées au domaine de l’électricité et qui sont nécessaires à
l’écriture des modules m_gestion et/ou m_principal.
6.2 Module m_gestion
Ce module comporte dix fonctions servant à consulter les caractéristiques : des circuits, des
équipements et du panneau électrique.
6.3 Module m_saisies
Ce
module
contient
les
trois
fonctions publiques
saisir_chaine,
saisir_entier
et
saisir_entier_strictement_positif qui permettent respectivement de saisir une chaîne de
caractères et un entier au clavier.
6.4 Module m_principal
Ce module comporte la fonction privée saisir_tension ainsi que trois procédures associées aux
trois
boutons-macros
dans
la
feuille
« Équipements » :
ajouter_nouveau_equipement,
ajouter_nouveau_circuit et afficher_statistiques.
7
Ordre de développement suggéré et description des sous-programmes à coder
Réalisez les sous-programmes demandés dans l'ordre suivant. Commentez et testez vos sous-programmes
au fur et à mesure. Prenez noter qu’une procédure de test est exigée pour les dix premiers sousprogrammes.
7.1 Module m_gestion
1.
Fonction : position_circuit_liste
Cette fonction retourne la position d'un circuit dans la liste Excel.
Entrée :
− L’identifiant (ID) du circuit que l’on cherche.
Sortie : La position du circuit demandé dans la liste.
Requis :
− La fonction retourne 0 si l’identifiant du circuit demandé n’est pas dans la liste.
− La fonction retourne toujours une valeur dans l’intervalle [0, obtenir_nb_circuit()].
Spécifications :
− On présume qu’il n’y a pas de doublon d’identifiants dans la liste.
INF-130 Ordinateurs et programmation
A2015/Page 3
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
ID
ID
ID
ID
du
du
du
du
circuit
circuit
circuit
circuit
:
:
:
:
Valeur de retour
"A1"
"B1"
"C1"
"Z1"
1
5
9
0
2. Fonction : puissance_maximale_circuit
Cette fonction calcule la puissance maximale qu'un circuit peut supporter en fonction de la valeur de son
disjoncteur et en tenant compte du code électrique qui stipule qu’un disjoncteur ne doit pas être chargé à
plus de 80 % de sa capacité.
Entrée :
− L’identifiant (ID) du circuit dont on souhaite connaître la puissance maximale possible.
Sortie : La puissance maximale dont le circuit peut être chargé (en Watts).
Requis :
− La puissance est calculée avec la formule suivante :
= è ∗ ∗ 80%
− La fonction retourne 0 si l’identifiant du circuit demandé n’est pas dans la liste.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Valeur de retour
ID du circuit : "A3"
ID du circuit : "B2"
ID du circuit : "Z1"
3840
1920
0
3. Fonction : puissance_total_max_circuits
Cette fonction calcule la puissance maximale que tous les circuits peuvent supporter.
Entrée : Aucune.
Sortie : La puissance totale maximale (en Watts).
Requis :
− La puissance totale est calculée en faisant la somme de la puissance maximale de chacun des
circuits du panneau.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Aucune
INF-130 Ordinateurs et programmation
Valeur de retour
20 640
A2015/Page 4
4. Fonction : puissance_consommee_sur_circuit
Cette fonction calcule la puissance consommée par les équipements branchés sur un circuit donné.
Entrée :
− L’identifiant (ID) du circuit pour lequel on souhaite connaître la puissance qui est consommée par
les équipements qui y sont branchés.
Sortie : La puissance consommée sur le circuit (en Watts).
Requis :
− La puissance consommée sur le circuit est calculée en effectuant la somme des puissances des
équipements connectés à ce circuit.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
ID
ID
ID
ID
du
du
du
du
circuit
circuit
circuit
circuit
:
:
:
:
Valeur de retour
"A1"
"B4"
"C1"
"Z1"
150
3400
0
0
5. Fonction : circuit_moins_charge
Cette fonction trouve l’identifiant (ID) du circuit le moins chargé dont la tension (en Volts) correspond à la
tension spécifiée. La charge d’un circuit correspond à la puissance consommée par les équipements
branchés sur ce circuit.
Entrée :
− La tension des circuits parmi lesquels ont doit rechercher celui qui est le moins chargé (en Volts).
Cette tension doit être 120 ou 240 Volts.
Sortie : L’identifiant (ID) du circuit qui a la plus faible charge.
Requis :
− Si plusieurs circuits ont la même charge minimale, la fonction retourne l’identifiant (ID) du
premier de ces circuits.
− Si aucun circuit ne possède la tension spécifiée, la fonction retourne une chaine vide.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Tension du circuit : 120
Tension du circuit : 240
Tension du circuit : 33
INF-130 Ordinateurs et programmation
Valeur de retour
"A4"
"A3"
""
A2015/Page 5
6. Fonction : ratio_utilisation_circuit
Cette fonction calcule le ratio d'utilisation de la puissance d'un circuit.
Entrée :
− L’identifiant (ID) du circuit qui a la plus faible charge
Sortie : Le pourcentage d’utilisation du circuit sous forme d’entier dans l’intervalle [0, 100].
Requis :
− Le ratio est calculé avec la formule suivante :
=
é
∗ 100
!"
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
ID
ID
ID
ID
du
du
du
du
circuit
circuit
circuit
circuit
:
:
:
:
Valeur de retour
"B2"
"A3"
"C1"
"Z1"
6
78
0
0
7. Fonction : nb_emplacements_libres
Cette fonction calcule le nombre d’emplacements qui ne sont pas occupés sur le panneau électrique. Un
circuit dont la tension est égale à la tension d’entrée (240 Volts) occupe deux emplacements dans le
panneau. Un circuit dont la tension est égale à la tension de phase (120 Volts) n’occupe qu’un seul
emplacement dans le panneau.
Entrée : Aucune.
Sortie : Le nombre d’emplacements encore disponibles dans le panneau.
Requis :
− Le nombre d’emplacements libres correspond au nombre total d’emplacements moins le nombre
d’emplacements occupés par les circuits qui sont présents dans le panneau.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Aucune
Valeur de retour
9
8. Fonction : somme_amperage_circuits_panneau
Cette fonction calcule la somme des intensités des circuits présents dans le panneau électrique.
Entrée : Aucune.
Sortie : La somme des intensités des circuits (en Ampères).
Requis : Aucun.
INF-130 Ordinateurs et programmation
A2015/Page 6
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Valeur de retour
Aucune
165
9. Fonction : puissance_total_consommee
Cette fonction calcule la puissance totale consommée par l’ensemble des équipements.
Entrée : Aucune.
Sortie : La puissance consommée par tous les équipements (en Watts).
Requis :
− La puissance consommée par tous les équipements correspond à la somme de la puissance
consommée par chacun des équipements.
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Aucune
Valeur de retour
9 270
10. Fonction : calcul_temps_ups
Cette fonction calcule le temps, exprimé en heures, durant lequel l’UPS peut supporter la charge du
panneau.
Entrée : Aucune.
Sortie : Le temps (en heures).
Requis :
− Le calcul du temps se fait avec la formule suivante :
ℎ =
é′&'
é)
(
*
′é
Jeux d’essais
Note : Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant,
sans apporter de modification aux feuilles « Équipements » et « Circuits ».
Entrée
Aucune
INF-130 Ordinateurs et programmation
Valeur de retour
205,128
A2015/Page 7
7.2
Module m_saisies
11. Fonction : saisir_chaine
Cette fonction saisit une chaine de caractère au clavier.
Entrées :
− Le message de contexte que l'on veut afficher dans la boite de dialogue.
− Une référence à une variable dont le contenu sera modifié lorsque l’utilisateur entrera une chaine.
Sortie : VRAI si l’utilisateur à entrer une chaine et FAUX s’il n’a rien entré (bouton « Annuler »).
Requis :
− La fonction retourne FAUX si l’utilisateur appuie sur le bouton « Annuler ».
− Lorsque l’utilisateur annule la saisie ou appuie sur le bouton « Annuler », la variable référencée
par le second paramètre n’est pas modifiée.
Jeux d’essais
Entrées
Paramètres :
message_contexte : "Entrez une
chaine"
chaine_a_remplir : ?
Action :
L’utilisateur entre « test » et
appuie sur la touche Enter.
Paramètres :
message_contexte : "Entrez une
chaine"
chaine_a_remplir : ?
Action :
L’utilisateur appuie sur « Annuler ».
Valeur de retour
saisir_chaine = True
chaine_a_remplir =
"test"
saisir_chaine = False
chaine_a_remplir = ?
12. Fonction : saisir_entier
Entrées :
− Le message de contexte que l'on veut afficher dans la boite de dialogue.
− Une référence à une variable dont le contenu sera modifié lorsque l’utilisateur entrera un entier.
Sortie : VRAI si l’utilisateur a entré un entier et FAUX s’il n’a rien entré (bouton « Annuler »).
Requis :
− Tant que l’utilisateur entre une donnée qui n’est pas un nombre et n’appuie pas sur le bouton
« Annuler », la fonction affiche un message d’erreur et recommence la saisie.
− La fonction retourne FAUX si l’utilisateur appuie sur le bouton « Annuler ».
− Lorsque l’utilisateur annule la saisie ou appuie sur le bouton « Annuler », la variable référencée
par le second paramètre n’est pas modifiée.
INF-130 Ordinateurs et programmation
A2015/Page 8
Jeux d’essais
Entrées
Valeur de retour
Paramètres :
message_contexte : "Entrez un entier"
entier_a_remplir : ?
Action :
L’utilisateur entre « test » et appuie
sur la touche Enter.
Un message d’erreur s’affiche.
L’utilisateur entre « 23 » et appuie
sur la touche Enter.
Paramètres :
message_contexte : "Entrez un entier"
entier_a_remplir : ?
Action :
L’utilisateur appuie sur « Annuler ».
saisir_entier = True
entier_a_remplir = 23
saisir_entier = False
entier_a_remplir = ?
13. Fonction : saisir_entier_strictement_positif
Entrées :
− Le message de contexte que l'on veut afficher dans la boite de dialogue.
− Une référence à une variable dont le contenu sera modifié lorsque l’utilisateur entrera un entier
valide.
Sortie : VRAI si l’utilisateur a entré un entier valide et FAUX s’il n’a rien entré (bouton « Annuler »).
Requis :
− Tant que l’utilisateur entre une donnée qui n’est pas un nombre entier positif et n’appuie pas sur
le bouton « Annuler », la fonction affiche un message d’erreur et recommence la saisie.
− La fonction retourne FAUX si l’utilisateur appuie sur le bouton « Annuler ».
− Lorsque l’utilisateur annule la saisie ou appuie sur le bouton « Annuler », la variable référencée
par le second paramètre n’est pas modifiée.
Jeux d’essais
Entrées
Valeur de retour
Paramètres :
message_contexte : "Entrez un entier
positif"
entier_a_remplir : ?
Actions :
L’utilisateur entre « test » et
appuie sur la touche Enter.
Un message d’erreur s’affiche.
L’utilisateur entre « -23 » et appuie
sur la touche Enter.
Un message d’erreur s’affiche.
INF-130 Ordinateurs et programmation
A2015/Page 9
L’utilisateur entre « 15 » et appuie
sur la touche Enter.
saisir_entier_strictement_
positif = True
entier_a_remplir = 15
Paramètres :
message_contexte : "Entrez un entier
positif"
entier_a_remplir : ?
Action :
L’utilisateur appuie sur « Annuler ».
7.3
saisir_entier_strictement_
positif = False
entier_a_remplir = ?
Module m_principal
14. Fonction privée : saisir_tension
Entrée :
− Une référence à une tension (en volts) dont le contenu sera modifié lorsque l’utilisateur entrera un
entier valide.
Sortie : VRAI si l’utilisateur a entré un entier valide et FAUX s’il n’a rien entré (bouton « Annuler »).
Requis :
− La fonction débute en demandant à l’utilisateur d’entrer une tension en volts.
− Tant que l’utilisateur entre une donnée qui n’est pas 120 ou 240 et qu’il n’appuie pas sur le
bouton « Annuler », la fonction affiche un message d’erreur et recommence la saisie.
− La fonction retourne FAUX si l’utilisateur appuie sur le bouton « Annuler ».
− Lorsque l’utilisateur annule la saisie ou appuie sur le bouton « Annuler », la variable référencée
par le second paramètre n’est pas modifiée.
Jeux d’essais
Entrées
Paramètre :
tension_a_remplir : ?
Action :
L’utilisateur entre « test » et appuie
sur la touche Enter.
Un message d’erreur s’affiche.
L’utilisateur entre « 12 » et appuie
sur la touche Enter.
Un message d’erreur s’affiche.
L’utilisateur entre « 120 » et appuie
sur la touche Enter.
Paramètre :
tension_a_remplir : ?
Action :
L’utilisateur appuie sur « Annuler ».
INF-130 Ordinateurs et programmation
Valeur de retour
saisir_tension = True
tension_a_remplir = 120
saisir_tension = False
tension_a_remplir = ?
A2015/Page 10
15. Procédure : ajouter_nouvel_equipement
Cette procédure permet à l’utilisateur d’ajouter un nouvel équipement dans la liste Excel des
équipements.
Entrée : Aucune.
Sortie : Aucune.
Requis :
− La procédure demande à l’utilisateur le nom de l’équipement. Si l’utilisateur n’annule pas la
saisie, elle saisit la puissance consommée par l’équipement. Si l’utilisateur n’annule pas la saisie,
elle saisit la tension d’opération (le voltage de l’équipement). Enfin, si l’utilisateur n’annule
toujours pas cette troisième saisie, la procédure tente d’ajouter l’équipement.
− La procédure tente toujours de brancher le nouvel équipement sur le circuit du même voltage
dont la charge est minimale.
− S’il n’existe aucun circuit du même voltage que l’équipement, la procédure affiche un message
d’erreur.
− Si le circuit dont la charge est minimale ne peut pas supporter l’ajouter de l’équipement (donc,
lorsque la puissance consommée + puissance équipement > puissance maximale du circuit), la
procédure affiche un message d’erreur.
16. Procédure : ajouter_nouveau_circuit
Cette procédure permet à l’utilisateur d’ajouter un nouveau circuit dans la liste Excel des circuits.
Entrée : Aucune.
Sortie : Aucune.
Requis :
− La procédure demande à l’utilisateur l’identifiant (ID) du circuit. Si l’utilisateur n’annule pas la
saisie, elle saisit le courant du disjoncteur. Si l’utilisateur n’annule pas la saisie, elle saisit la
tension du circuit (le voltage). Enfin, si l’utilisateur n’annule toujours pas cette troisième saisie, la
procédure tente d’ajouter le circuit.
− La procédure va en premier lieu vérifier si l’identifiant (ID) du nouveau circuit n’est pas déjà
présent dans la liste des circuits. Si c’est le cas on affiche un message d’erreur et on annule le
reste de l’opération d’ajout. Cette validation peut être faite dès la saisie de l’identifiant (ID).
− La procédure valide s’il reste suffisamment d’emplacements dans le panneau électrique pour
accueillir un circuit de cette tension et si ce n’est pas le cas, elle affiche un message d’erreur.
− La procédure valide que la puissance disponible dans le panneau électrique est suffisante pour
accueillir le circuit (donc, que la puissance consommée + puissance équipement < puissance
maximale du circuit). Si ce n’est pas le cas, elle affiche un message d’erreur.
INF-130 Ordinateurs et programmation
A2015/Page 11
17. Procédure : afficher_statistiques
Cette procédure affiche des informations sur le panneau électrique, sur l’état de chaque circuit et sur la
le temps que l’UPS peut supporter la charge.
Entrée : Aucune.
Sortie : Aucune.
Requis :
− Afficher un message dont le format est identique à celui qui apparaît à la figure qui suit.
8
1
Contraintes de l'enseignant
Votre programme devra respecter les contraintes suivantes :
•
Il devra respecter les exigences de remise des travaux pratiques. D’ailleurs, la qualité du code
vaudra au moins autant de points que le fonctionnement du programme.
•
Il ne devra contenir aucune variable globale. La présence d’une variable globale entraînera la perte
de 25 % des points.
•
Il ne devra contenir aucun Goto, aucun Exit For et aucun Exit Function. La présence d’une
de ces instructions entraînera la perte de 10 % des points.
En cas de doute, n’hésitez pas à consulter votre enseignant.
BON TRAVAIL!
1
Pour obtenir les résultats présentés, utilisez le fichier Excel fourni par l’enseignant, sans apporter de modification aux feuilles
« Équipements » et « Circuits ».
INF-130 Ordinateurs et programmation
A2015/Page 12
Téléchargement