Module: Sous-programmes : procédures et fonctions - 1


Problem

11/11

Changer les arguments

Theory Click to read/hide

Tâche
Écrivez une procédure qui échange les valeurs de deux variables.

La particularité de cette tâche est que nous avons besoin que les modifications apportées à la procédure soient connues du programme appelant.

Essayons d'écrire la procédure comme ceci : static void Swap (int a, int b) // avec une telle description des paramètres de la procédure, { // va copier les valeurs des arguments (x et y) entier c ; // les variables a et b sont des variables indépendantes non liées à x et y c = un ; un = b ; b=c ; } vide statique Main() { entier x=1, y=2 ; Échange(x, y); //les valeurs des variables x et y (arguments) sont copiées dans les paramètres a et b, x = 1, y = 2 } Si vous exécutez ce programme, vous pouvez voir que les valeurs des variables x et y n'ont pas changé. Pour que les paramètres modifient les valeurs des arguments, vous devez utiliser des données passant par référence. Pour cela, avant le nom du type de données dans l'en-tête du sous-programme, vous devez écrire ref . void Swap ( ref int a, ref int b ) // maintenant les variables a et b obtiennent les adresses des variables x et y en mémoire { entier c ; c = un ; un = b ; b=c ; } vide statique Main() {   entier x=1, y=2 ;   Swap(réf x, réf y); Application : si vous passez un argument par référence, alors seul le nom de la variable (PAS un nombre et PAS une expression arithmétique) peut figurer à cet endroit lors de l'appel de la procédure.

Vous ne pouvez pas appeler une procédure comme celle-ci : Échange(x, 4); Échange(5+x, y);

Problem

Écrivez une procédure qui échange les valeurs de deux variables. Recherchez et corrigez les erreurs dans cette procédure.
 
Exemple
# Entrée Sortie
1 1
2
2
1