Masar
Masar
Bac Tunisie
Entraîner la reconnaissance
SD-GStructures de données et modularité

Procédures, paramètres et rôles — lecture d'algorithmes

Idée directrice

Lire un programme modulaire : distinguer variables globales/locales, paramètres formels/effectifs, passage par valeur ou par référence (@), et déduire le rôle d'une procédure à partir de sa trace sur un tableau.

Signature de reconnaissance — l'énoncé se trahit ainsi

« Paramètres passés par référence »

« rôle de la procédure Inconnu1 »

« Procedure Inconnu2 (@V :tab »

Sujet principal

Exercice — dans l'esprit des sujets d'informatique

3 questionsCorrigé masqué

On donne un programme « Inconnu » avec les procédures Inconnu1(@Ta, @X), Inconnu2(@V, X) et Affiche(T, X).

  1. Pour @Ta dans Inconnu1, s'agit-il d'un paramètre passé par valeur ou par référence ? Pourquoi le @ ?
  2. Inconnu1 lit XX puis, pour i=0,2,4,i=0,2,4,\ldots, lit zz et fait Ta[i]←z ; Ta[i+1]←Ta[i]. Quel est le rôle de cette procédure sur le tableau ?
  3. Pourquoi Affiche(T, X) peut-elle recevoir TT par valeur alors que Inconnu2 modifie VV via @V ?
Voir la correction commentéeAprès avoir posé votre démarche

1. @Ta : paramètre passé par référence — la procédure peut modifier le tableau effectif du programme principal.

2. Inconnu1 remplit le tableau par paires d'éléments égaux (chaque valeur lue est dupliquée sur deux cases consécutives) après contrôle de XX. Rôle : saisie structurée / initialisation particulière du tableau.

3. Affiche ne modifie pas TT : passage par valeur suffit. Inconnu2 doit altérer VV : passage par référence obligatoire (@V).

Exercices d'entraînement — une nuance à la fois

Entraînement 01 / 01

Drill SD-G.1 — Passage par référence

1 questionCorrigé masqué

Une procédure doit réordonner un tableau T « sur place » (échanges d'éléments). Faut-il écrire Proc P(T:tab) ou Proc P(@T:tab) ? Justifiez (paramètre par valeur vs par référence).

Voir la correction commentéeAprès avoir posé votre démarche

Proc P(@T:tab) : le tableau doit être un paramètre passé par référence pour que les modifications d'éléments persistent chez l'appelant. Sans @, seule une copie locale serait modifiée (même logique que Inconnu1/Inconnu2 avec @ dans le devoir i-s2-01 : colonne « paramètres passés par référence »).

Méthode / Automatismes
  • @ / var = référence ; sans @ = valeur (copie).
  • Rôle d'une procédure = ce qu'elle produit sur les données (pas seulement « elle lit »).
Pièges classiques

Confondre paramètre formel et effectif ; dire qu'un tableau passé par valeur est modifié chez l'appelant.