Exercice — dans l'esprit des sujets d'informatique
On donne un programme « Inconnu » avec les procédures `Inconnu1(@Ta, @X)`, `Inconnu2(@V, X)` et `Affiche(T, X)` (esprit i-s2-01).
- Compléter mentalement le tableau : pour `@Ta` dans `Inconnu1`, s'agit-il d'un paramètre passé par valeur ou par référence ? Pourquoi le `@` ?
- `Inconnu1` lit puis, pour , lit et fait `Ta[i]←z ; Ta[i+1]←Ta[i]`. Quel est le rôle de cette procédure sur le tableau ?
- Pourquoi `Affiche(T, X)` peut-elle recevoir par valeur alors que `Inconnu2` modifie 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 (i-s2-01 : colonne « passés par référence »).
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 . Rôle : saisie structurée / initialisation particulière du tableau (à préciser d'après la trace demandée au devoir).
3. `Affiche` ne modifie pas : passage par valeur suffit. `Inconnu2` doit altérer : passage par référence obligatoire (`@V`).