Horaires du Musée Bata : le script Scratch pour bien choisir

L’erreur la plus fréquente consiste à confondre deux conditions différentes…

Horaires du Musée Bata : le script Scratch pour bien choisir

Horaires du Musée Bata: le script Scratch pour bien choisir

L’erreur la plus fréquente consiste à confondre deux conditions différentes:

Musée Bata de la chaussureToronto

Billets et tarifs

Musée Bata de la chaussure

4,5/5 · 145 avisTarifs vérifiés le 27 août 2026Disponible à brève échéance

Billetterie officielle et achat en ligne

Plein tarif16 CAD
Enfant5 CAD
Tarif réduit8 CAD

Site officiel — batashoemuseum.ca

Tarifs indicatifs, susceptibles de changer — prix et disponibilités confirmés sur la page du partenaire.Lien partenaire — billetterie GetYourGuide
  • le musée est-il ouvert;
  • le billet est-il gratuit.

Pour le Musée Bata de la chaussure à Toronto, ces conditions ne produisent pas le même résultat. Le dimanche, l’entrée est gratuite pour tous les visiteurs, mais les horaires commencent à midi. Du lundi au samedi, le musée ouvre dès 10 h, mais l’entrée suit une autre logique tarifaire.

La règle brute est donc la suivante:

Un bon choix de créneau dépend d’abord du jour, puis de l’heure, puis du profil du visiteur.

Cette situation est adaptée à un exercice d’algorithmique. Il faut déclarer des variables, appliquer des conditions, gérer les cas particuliers et vérifier le résultat. Scratch permet de visualiser chaque étape sans masquer la logique.

Les horaires du Musée Bata de la chaussure

Le Musée Bata de la chaussure se trouve au 327 Bloor Street West, à Toronto. La station de métro St. George est située à environ une minute à pied. La localisation simplifie l’accès, mais elle ne modifie pas les conditions d’ouverture.

Les horaires réguliers sont les suivants:

JourOuvertureFermetureRègle particulière
Lundi à samedi10 h 0017 h 00Entrée selon le profil du visiteur
Dimanche12 h 0017 h 00Entrée gratuite pour tous
25 décembreFerméFerméFermeture annuelle
26 décembreFerméFerméFermeture annuelle
1er janvierFerméFerméFermeture annuelle

La première variable utile est donc jour. La deuxième est heure. La troisième peut être date, si le programme doit gérer les fermetures annuelles.

L’ordre des tests est déterminant.

1. Tester d’abord si la date correspond à une fermeture annuelle.

2. Sinon, déterminer le jour de la semaine.

3. Ensuite, comparer l’heure à l’intervalle d’ouverture.

4. Enfin, calculer la règle d’entrée applicable.

Si l’algorithme commence par le tarif, il peut annoncer une entrée gratuite alors que le musée est fermé. Le calcul serait techniquement exécuté, mais le résultat serait faux.

Transformer l’heure en nombre

Scratch compare plus facilement des nombres que des textes. Il est donc préférable de convertir l’heure en une valeur numérique.

Exemples:

  • 10 h 00 devient 10;
  • 12 h 30 devient 12,5;
  • 16 h 45 devient 16,75.

Pour convertir des minutes en fraction d’heure, il faut appliquer la formule:

heure décimale = heure + minutes / 60

Ainsi:

  • 10 h 30 donne 10 + 30 / 60, donc 10,5;
  • 16 h 15 donne 16 + 15 / 60, donc 16,25.

Cette conversion évite une erreur classique. Comparer séparément les heures et les minutes demande davantage de blocs et multiplie les risques de mauvaise priorité opératoire.

Si l’heure est saisie sous la forme 16 h 45, le programme peut utiliser deux variables:

  • heure;
  • minutes.

La condition d’ouverture devient alors plus précise:

  • du lundi au samedi: heure > 10 ou heure = 10 et minutes >= 0, puis heure < 17;
  • le dimanche: heure >= 12 et heure < 17.

Dans un exercice de collège, une heure entière suffit généralement. Il faut cependant connaître la limite du modèle: avec heure = 17, le programme doit conclure que le musée est fermé. L’intervalle est ouvert à gauche et fermé à droite:

10 <= heure < 17

Le musée accueille donc les visiteurs à partir de 10 h, mais pas à 17 h.

Modéliser les tarifs sans mélanger les catégories

Le prix dépend du profil du visiteur. Les catégories disponibles sont distinctes:

  • adulte;
  • sénior;
  • étudiant de 18 ans ou plus, avec une carte valide;
  • enfant de 5 à 17 ans;
  • enfant de 0 à 4 ans.

La gratuité du dimanche s’applique à tous les visiteurs. Elle doit donc être testée avant la catégorie individuelle.

La structure logique est:

1. Si le jour est dimanche, alors l’entrée est gratuite.

2. Sinon, si l’âge est compris entre 0 et 4 ans, alors l’entrée est gratuite.

3. Sinon, identifier le profil tarifaire.

4. Si aucune catégorie ne correspond, demander une correction de la saisie.

La priorité des opérateurs doit rester explicite. La condition suivante est correcte pour un enfant de 5 à 17 ans:

âge >= 5 et âge <= 17

La condition suivante est incorrecte si elle est écrite sans parenthèses:

âge >= 5 ou âge <= 17

Elle est presque toujours vraie. Un âge de 40 vérifie âge >= 5. Un âge de 2 vérifie âge <= 17. Le programme classerait donc presque tout le monde dans la catégorie enfant.

La méthode consiste à traduire chaque intervalle avec deux bornes reliées par et.

Les catégories comme variable

Deux modèles sont possibles.

Modèle 1: utiliser l’âge

Le programme demande l’âge et déduit la catégorie:

  • si âge <= 4, catégorie très jeune enfant;
  • sinon, si âge <= 17, catégorie enfant;
  • sinon, demander si la personne est étudiante ou sénior;
  • sinon, catégorie adulte.

Ce modèle est simple, mais il ne suffit pas à distinguer un étudiant adulte d’un adulte sans réduction. Une variable supplémentaire est nécessaire.

Modèle 2: utiliser une catégorie saisie

Le programme demande directement une catégorie parmi:

  • adulte;
  • sénior;
  • étudiant;
  • enfant.

Ce modèle réduit les calculs, mais il exige une saisie correcte. Une faute comme Etudiant ou eleve peut empêcher la comparaison avec la valeur attendue.

Pour un programme Scratch destiné à l’apprentissage, le premier modèle est plus intéressant. Il fait apparaître les conditions imbriquées et oblige à traiter les cas limites.

La gratuité est une règle de priorité. Elle doit être calculée avant le tarif individuel.

Concevoir l’algorithme de sélection d’un créneau

Le programme ne doit pas seulement répondre à la question du tarif. Il doit produire une décision complète:

  • visite possible ou non;
  • créneau compatible ou non;
  • gratuité ou tarif selon le profil;
  • motif du refus si la visite ne peut pas avoir lieu.

La variable principale peut s’appeler résultat. Elle reçoit une phrase finale. Les autres variables servent au calcul intermédiaire:

  • date;
  • jour;
  • heure;
  • âge;
  • étudiant;
  • fermé;
  • entrée.

Étape 1: vérifier les fermetures annuelles

Le programme doit tester les trois dates connues:

  • 25 décembre;
  • 26 décembre;
  • 1er janvier.

Dans Scratch, une seule variable texte peut contenir la date. Le test peut être construit avec des blocs ou:

date = 25 décembre ou date = 26 décembre ou date = 1er janvier

Si la condition est vraie, le programme affiche que le musée est fermé. Il arrête ensuite le traitement. Il n’est pas nécessaire de calculer le tarif.

Une autre méthode consiste à créer une variable booléenne fermé:

1. mettre fermé à non;

2. si la date correspond à une fermeture, mettre fermé à oui;

3. si fermé = oui, annoncer la fermeture;

4. sinon, poursuivre.

La deuxième méthode est plus longue. Elle devient utile si le programme doit réutiliser la variable dans plusieurs blocs.

Étape 2: déterminer l’amplitude horaire

Le jour de la semaine peut être saisi sous forme de texte. Les valeurs possibles sont:

  • lundi;
  • mardi;
  • mercredi;
  • jeudi;
  • vendredi;
  • samedi;
  • dimanche.

La règle est ensuite divisée en deux branches:

  • si jour = dimanche, alors l’ouverture commence à 12 h;
  • sinon, l’ouverture commence à 10 h.

Dans les deux cas, la fermeture intervient à 17 h.

Le test peut être écrit sous forme mathématique:

  • dimanche: 12 <= heure < 17;
  • autre jour: 10 <= heure < 17.

Un créneau à 9 h 30 est refusé du lundi au samedi. Un créneau à 11 h 30 est refusé le dimanche. Un créneau à 16 h 30 est accepté dans les deux cas, sous réserve des autres règles de visite.

Étape 3: appliquer la règle de gratuité

Une fois l’ouverture confirmée, le programme teste le jour.

Si jour = dimanche, alors:

  • entrée = gratuite.

Aucune question supplémentaire sur l’âge ou le statut n’est nécessaire pour déterminer la gratuité générale du dimanche. Le programme peut néanmoins continuer à demander ces informations si elles servent à une autre partie de l’exercice.

Si le jour n’est pas dimanche, la règle dépend du profil.

  • De 0 à 4 ans: gratuit.
  • De 5 à 17 ans: catégorie enfant.
  • Étudiant de 18 ans ou plus avec carte valide: catégorie étudiant.
  • Sénior: catégorie sénior.
  • Sinon: catégorie adulte.

La carte étudiante doit être modélisée par une variable logique. Elle peut prendre deux valeurs:

  • oui;
  • non.

La condition complète devient:

âge >= 18 et étudiant = oui

Le mot et est nécessaire. Une personne de 17 ans qui possède une carte ne doit pas être automatiquement classée dans la catégorie étudiant adulte selon cette règle.

Construire le script Scratch

Scratch ne manipule pas directement un algorithme abstrait. Il faut convertir chaque opération en bloc. L’ordre reste identique.

Variables à créer

Créer les variables suivantes:

  • jour;
  • heure;
  • âge;
  • étudiant;
  • date;
  • entrée;
  • message.

Les variables jour, date et étudiant reçoivent des textes. Les variables heure et âge reçoivent des nombres.

Le programme doit contrôler les valeurs saisies. Une heure négative ou supérieure à 24 est invalide. Un âge négatif est invalide. Une valeur textuelle dans la variable heure peut aussi provoquer une comparaison incohérente.

Séquence d’instructions

Le déroulement peut être organisé ainsi:

1. Demander la date.

2. Demander le jour.

3. Demander l’heure.

4. Vérifier la fermeture annuelle.

5. Vérifier l’ouverture selon le jour.

6. Demander l’âge si la visite est possible.

7. Demander le statut étudiant pour les visiteurs concernés.

8. Déterminer l’entrée.

9. Afficher le résultat.

10. Effectuer un test de vérification.

Cette séquence réduit le nombre de questions inutiles. Si la date correspond au 25 décembre, il n’est pas nécessaire de demander l’âge. Le programme s’arrête après l’annonce de la fermeture.

Pseudocode du mécanisme

Le pseudocode ne remplace pas les blocs Scratch. Il fixe la logique avant la construction.

1. Lire date.

2. Si date est une date de fermeture, alors afficher musée fermé et arrêter.

3. Lire jour.

4. Lire heure.

5. Si jour = dimanche, alors:

  • si heure < 12 ou heure >= 17, afficher créneau fermé;
  • sinon, afficher visite possible et entrée gratuite.

6. Sinon:

  • si heure < 10 ou heure >= 17, afficher créneau fermé;
  • sinon, lire âge;
  • si âge <= 4, afficher entrée gratuite;
  • sinon, déterminer la catégorie du visiteur.

7. Afficher le résultat final.

8. Vérifier la cohérence avec un cas connu.

Il faut remarquer la structure. Les conditions de fermeture se trouvent à l’extérieur. Les conditions de tarif se trouvent à l’intérieur de la branche où la visite est possible.

Traduction en conditions Scratch

La condition de refus hors horaires peut utiliser ou:

heure < heureOuverture ou heure >= 17

La variable heureOuverture peut être définie ainsi:

  • mettre heureOuverture à 10;
  • si jour = dimanche, mettre heureOuverture à 12.

Le test devient alors général:

heure < heureOuverture ou heure >= 17

Cette version évite de dupliquer la comparaison finale. Le programme possède une seule valeur de référence pour l’ouverture.

Une seconde variable, raison, peut préciser le résultat:

  • raison = date de fermeture;
  • raison = avant ouverture;
  • raison = après fermeture;
  • raison = entrée gratuite;
  • raison = catégorie tarifaire.

La séparation entre entrée et raison améliore la lisibilité. Une variable ne doit pas contenir plusieurs types d’information contradictoires.

Les erreurs de logique les plus courantes

Un programme de planification de visite échoue rarement à cause d’un bloc complexe. Les erreurs viennent des priorités et des bornes.

Inverser l’ordre des tests

Erreur:

1. calculer le tarif du dimanche;

2. annoncer la gratuité;

3. vérifier ensuite l’horaire.

Conséquence: le programme peut annoncer une entrée gratuite à 9 h un dimanche, alors que le musée n’est pas encore ouvert.

Correction: tester l’ouverture avant de conclure sur l’accès.

Inclure 17 h dans la période d’ouverture

Erreur:

heure >= 10 et heure <= 17

Cette expression accepte 17 h. Or la fermeture est indiquée à 17 h. Pour ne pas inclure cette heure, utiliser:

heure >= 10 et heure < 17

Même correction le dimanche:

heure >= 12 et heure < 17

Confondre dimanche et gratuité

Le dimanche est gratuit, mais il ne commence pas à 10 h. Il commence à 12 h. Deux variables sont donc nécessaires:

  • une variable pour le jour;
  • une variable pour l’heure d’ouverture.

La gratuité et l’horaire sont liés par le jour, mais ce ne sont pas la même propriété.

Oublier les fermetures annuelles

Un programme qui connaît seulement les jours de la semaine peut accepter une visite le 25 décembre. Il est alors incomplet.

La date exacte doit être testée avant la règle hebdomadaire. Une fermeture exceptionnelle ou annuelle possède une priorité supérieure à l’horaire régulier.

Mal classer les âges limites

Les bornes doivent être écrites sans ambiguïté:

  • 0 <= âge <= 4;
  • 5 <= âge <= 17;
  • âge >= 18.

Les valeurs 4, 5, 17 et 18 sont les tests indispensables. Elles permettent de vérifier que les intervalles ne se chevauchent pas et qu’aucun âge n’est oublié.

Demander une carte étudiante sans condition

Si le programme demande systématiquement une carte étudiante, il ajoute une question inutile à un enfant ou à un sénior. Une entrée utilisateur doit être déclenchée uniquement quand elle sert au calcul.

La structure correcte est:

1. demander l’âge;

2. si l’âge est supérieur ou égal à 18, demander le statut étudiant;

3. sinon, ne pas demander ce statut.

Cela illustre la notion de condition imbriquée.

Ajouter la localisation au programme

L’adresse du musée est fixe: 327 Bloor Street West, Toronto, Ontario. La station de métro St. George se trouve à proximité immédiate. Ces informations peuvent être affichées à la fin du programme, après la sélection du créneau.

Il ne faut pas les intégrer dans le calcul d’ouverture. La localisation ne décide pas si la visite est possible. Elle sert à préparer le déplacement.

La sortie peut être structurée en quatre lignes:

  • Créneau: dimanche, 13 h
  • Accès: visite possible
  • Entrée: gratuite
  • Adresse: 327 Bloor Street West, Toronto

Cette séparation évite de mélanger les variables temporelles, tarifaires et géographiques.

Un niveau supplémentaire peut être ajouté avec une variable transport:

  • métro;
  • autre.

Si l’utilisateur choisit le métro, le programme indique la station de référence. Sinon, il affiche seulement l’adresse. Cette extension ne change pas l’algorithme principal. Elle ajoute une branche indépendante après le calcul.

Le parcours culturel peut aussi être élargi au secteur de Bloor Street, mais cette information ne doit pas modifier le verdict du script. Un algorithme fiable sépare les données nécessaires de celles qui sont seulement utiles.

Tester le programme avec des cas limites

Un test unique ne prouve rien. Il faut choisir des entrées qui couvrent les branches principales et les frontières.

TestJourHeureDateRésultat attendu
1Lundi10 hDate normaleVisite possible
2Lundi9 hDate normaleMusée fermé à cette heure
3Lundi17 hDate normaleMusée fermé à cette heure
4Dimanche11 hDate normaleMusée fermé avant midi
5Dimanche12 hDate normaleVisite possible et entrée gratuite
6Dimanche16 hDate normaleVisite possible et entrée gratuite
7Dimanche17 hDate normaleMusée fermé à cette heure
8Mardi14 h25 décembreMusée fermé pour fermeture annuelle
9Mercredi14 hDate normaleTarif selon le profil
10Samedi14 hDate normaleTarif selon le profil

Les tests 1, 3, 4, 5 et 7 contrôlent les bornes horaires. Les tests 8 vérifient la priorité de la date de fermeture. Les tests 9 et 10 contrôlent la branche tarifaire hors dimanche.

Pour les catégories d’âge, ajouter quatre tests:

  • âge 4;
  • âge 5;
  • âge 17;
  • âge 18.

Puis tester le statut étudiant avec un âge de 18 ans. Le programme doit distinguer:

  • 18 ans avec carte valide;
  • 18 ans sans carte valide.

La vérification rapide finale suit trois questions:

1. Le programme refuse-t-il une heure avant l’ouverture?

2. Le programme accepte-t-il midi le dimanche et applique-t-il la gratuité?

3. Le programme refuse-t-il une visite le 25 décembre, quelle que soit l’heure?

Si une réponse est incorrecte, l’erreur se trouve dans l’ordre des conditions, dans une borne ou dans la valeur de la variable jour.

Le test le plus efficace porte sur la frontière: 10 h, 12 h, 17 h, puis 25 décembre.

Rendre le script plus robuste

Un script pédagogique peut fonctionner avec des saisies parfaitement formatées. Un script robuste doit aussi gérer les erreurs d’entrée.

Contrôler le jour

Les valeurs autorisées doivent être limitées aux sept jours de la semaine. Si l’utilisateur saisit une autre valeur, le programme affiche une demande de correction.

La logique est:

1. lire jour;

2. vérifier que jour appartient à la liste autorisée;

3. recommencer la saisie si la valeur est invalide.

Scratch peut utiliser une boucle répéter jusqu’à. La boucle s’arrête uniquement quand la donnée respecte la condition.

Contrôler l’heure

Pour une heure entière, la valeur doit être comprise entre 0 et 23. Pour une heure décimale, une valeur comme 16,5 est acceptable si le format est défini dès le départ.

Il faut choisir un seul format. Mélanger 16,5 et 16 h 30 dans la même variable crée une ambiguïté. L’algorithme ne peut pas comparer correctement un nombre et une chaîne de caractères sans conversion.

Contrôler l’âge

Un âge négatif doit être refusé. Une valeur très élevée peut être techniquement acceptée, mais elle doit rester un nombre. La condition minimale est:

âge >= 0

Si l’exercice demande une modélisation complète, le programme peut aussi signaler une valeur non réaliste. Cette limite n’est pas une règle du musée. C’est une règle de qualité de saisie.

Éviter les variables inutiles

Chaque variable doit avoir une fonction:

  • jour détermine l’horaire et éventuellement la gratuité;
  • heure détermine le créneau;
  • date détecte les fermetures annuelles;
  • âge détermine une catégorie;
  • étudiant précise le profil adulte;
  • entrée contient le résultat tarifaire;
  • message organise l’affichage.

Une variable qui contient successivement le jour, le prix et l’adresse rend le programme difficile à vérifier. La spécialisation des variables réduit les erreurs.

Une extension: choisir automatiquement le meilleur créneau

Le programme peut recevoir plusieurs créneaux et sélectionner le premier qui respecte les contraintes.

Exemple de données:

  • lundi à 9 h;
  • dimanche à 11 h;
  • dimanche à 13 h;
  • samedi à 15 h.

Pour chaque créneau, le programme applique la même fonction logique:

1. la date est-elle autorisée;

2. le jour détermine-t-il l’heure d’ouverture;

3. l’heure appartient-elle à l’intervalle;

4. le dimanche apporte-t-il la gratuité;

5. sinon, le profil du visiteur détermine-t-il la catégorie.

Une boucle parcourt les créneaux. Dès qu’un créneau valide est trouvé, le programme peut le mémoriser dans meilleurCréneau.

Il faut alors ajouter une règle de sélection. Par exemple:

  • choisir le premier créneau valide;
  • choisir le créneau le plus tôt;
  • choisir un dimanche si la gratuité est prioritaire;
  • choisir un horaire après 12 h si le déplacement est fixé au dimanche.

La règle de préférence doit être séparée de la règle de validité. Un créneau peut être valide sans être préférable.

Cette distinction est fondamentale:

  • valide répond à la question: la visite est-elle possible?
  • préféré répond à la question: ce créneau est-il le meilleur parmi les créneaux possibles?

Un algorithme qui mélange les deux décisions devient difficile à modifier.

Préparer concrètement la visite

Le calcul ne remplace pas la vérification des informations avant le départ. Les horaires réguliers indiquent une ouverture du lundi au samedi de 10 h à 17 h, et le dimanche de midi à 17 h. Les fermetures annuelles connues concernent le 25 décembre, le 26 décembre et le 1er janvier.

Les billets et les éventuelles options de visite peuvent être consultés séparément. Les disponibilités et les conditions commerciales évoluent plus vite que la logique du programme. Le script doit donc travailler avec des catégories et des règles, pas avec des montants figés.

Pour une réservation en ligne, les billets d’entrée du Musée Bata de la chaussure peuvent présenter plusieurs options selon la disponibilité. Le programme Scratch reste indépendant de cette réservation: il sélectionne un créneau cohérent, mais il ne confirme pas une place.

La localisation doit enfin être recopiée avec précision:

  • 327 Bloor Street West;
  • Toronto;
  • Ontario;
  • station de métro St. George à proximité.

Une adresse erronée ne provoque pas une erreur de calcul. Elle provoque une erreur de déplacement. Le contrôle final doit donc porter sur les données numériques et sur les données textuelles.

Conclusion: une règle simple, une priorité stricte

La planification d’une visite au Musée Bata de la chaussure peut être décrite par un algorithme court, à condition de respecter l’ordre des opérations.

1. Vérifier la date de fermeture.

2. Déterminer l’heure d’ouverture selon le jour.

3. Refuser les créneaux avant l’ouverture ou à partir de 17 h.

4. Appliquer la gratuité du dimanche.

5. Sinon, déterminer la catégorie du visiteur.

6. Afficher l’adresse et le résultat.

7. Tester les bornes: 10 h, 12 h, 17 h et les dates de fermeture.

La règle décisive est la priorité des conditions. Une date fermée bloque tout. Un horaire invalide bloque le tarif. La gratuité du dimanche intervient seulement après validation du créneau.

Test final: saisir dimanche, 13 h, une date normale. Le programme doit répondre que la visite est possible et que l’entrée est gratuite. Saisir ensuite dimanche, 11 h. Le résultat doit changer: le musée n’est pas encore ouvert. Si ces deux sorties sont correctes, la structure principale est cohérente.

Infos pratiques

Monnaie : CAD

Conduite : à droite

Numéro d'urgence : 911

Faits clés

Construction : 1995

Architecte : Raymond Moriyama

Site officiel : batashoemuseum.ca

à partir de 16 CADRéserver des billets

Questions fréquentes

Quels sont les horaires d'ouverture du Musée Bata ?
Le musée est ouvert du lundi au samedi de 10 h à 17 h, et le dimanche de 12 h à 17 h.
Le Musée Bata est-il ouvert tous les jours ?
Non, le musée est fermé annuellement le 25 décembre, le 26 décembre et le 1er janvier.
L'entrée est-elle gratuite le dimanche au Musée Bata ?
Oui, l'entrée est gratuite pour tous les visiteurs le dimanche, à condition de respecter les horaires d'ouverture qui débutent à midi.
Comment classer les visiteurs par âge pour le tarif ?
Il faut utiliser des intervalles distincts : de 0 à 4 ans, de 5 à 17 ans, et 18 ans ou plus, en ajoutant une condition spécifique pour le statut étudiant chez les adultes.
Où se situe le Musée Bata de la chaussure ?
Le musée est situé au 327 Bloor Street West à Toronto, à environ une minute à pied de la station de métro St. George.

Photo: Gisling / CC BY-SA 3.0 — Wikimedia Commons