Aller au contenu principal

🧪 Labo 7.2C – Trace d’exécution

Reprenons le code de la démonstration de la séance 7.2

Pour rappel, lorsqu’un utilisateur clique sur le bouton +, l’application tente d’augmenter la température d'un objet de la classe Thermostat.

Considérez l'évènement suivant :

private void btnAugmenter_Click(object sender, EventArgs e)
{
try
{
thermostat.augmenterTemperature();
}
catch (ArgumentOutOfRangeException exception)
{
MessageBox.Show(exception.Message);
}

lblTemperature.Text = thermostat.Temperature.ToString();
}

La méthode appelée dans la classe Thermostat :

public void augmenterTemperature()
{
Temperature++;
}

Et l’implémentation de la propriété Temperature :

public double Temperature
{
get { return m_temperature; }
private set
{
if (value < MIN_TEMPERATURE || value > MAX_TEMPERATURE)
throw new ArgumentOutOfRangeException(
"La température doit être comprise entre 5 et 35."
);

m_temperature = value;
}
}

✏️ Travail à faire

Complétez la trace d’exécution ci-dessous en indiquant :

  • les instructions exécutées

  • l’effet de chaque instruction

astuce
  • Pour éviter de produire une trace trop longue, vous pouvez modifier la valeur de la constante TEMPERATURE_DÉFAUT :
public const double TEMPERATURE_DÉFAUT = 34.0;

Ainsi, il vous suffira d'une itération avant qu'une exception ne soit lancée.

  • Pour vous aider à compléter la trace :

    • placez un point d’arrêt au début de btnAugmenter_Click()
    • placez un second point d’arrêt sur la ligne :
    if (value < MIN_TEMPERATURE || value > MAX_TEMPERATURE)
    • Exécutez ensuite le programme en utilisant le pas à pas détaillé (F11).

🟡 Trace d’exécution

Complétez le tableau suivant. Pour simplifier la trace, nous allons assumer que l’application est déjà en cours d’exécution et que l’utilisateur vient de cliquer sur le bouton + pour augmenter la température de 34 à 35 degrés. Les 2 premières lignes de la trace vous sont fournies à titre d'exemple.

Code exécutéEffet
thermostat.augmenterTemperature();Appelle la méthode augmenterTemperature() de l'objet thermostat. Temperature = 34
Temperature++;Tente d'augmenter la propriété Temperature de 1. L'opération lit d'abord la valeur actuelle (34), calcule 34 + 1, puis appelle le setter avec value = 35. Temperature = 34
MessageBox.Show(exception.Message);
lblTemperature.Text = thermostat.Temperature.ToString();