Différences entre versions de « Passage des paramètres par valeur et par référence »

De Didaquest
Aller à la navigationAller à la recherche
 
(5 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 8 : Ligne 8 :
  
 
{{Conceptions canoniques}}
 
{{Conceptions canoniques}}
* <p style="text-align: justify;"> Lors du passage des paramètres par valeur, seule la valeur du paramètre est passé à la procédure. Cette dernière travaille donc sur une variable locale. Alors que dans le cas d’un passage par référence, ce n’est pas la valeur du paramètre qui est passé mais l’adresse de la variable contenant la valeur : dans ce cas, la procédure appelée et la procédure appelante travaille sur la même variable, même si le nom utilisé pour le paramètre est différent du nom de la variable initiale. De ce fait, il est possible de modifier le contenu de la variable passée en paramètre à partir de la procédure appelée.</p>
+
* Il existe deux manières de transmettre des arguments ou des paramètres aux fonctions :
 +
:- Passage par valeur
 +
:- Passage par référence
 +
: Dans le passage par valeur, une copie des arguments réels est transmise aux arguments formels respectifs. Alors que, dans le passage par référence, l’emplacement (adresse) des arguments réels est transmis à des arguments formels, toute modification apportée aux arguments formels se reflétera également dans les arguments réels.
 +
* '''Définition de passage par valeur''' : Quand on utilise le passage par valeur, la copie de la valeur est transmise à la fonction, et les modifications apportées à l’intérieur de la fonction ne se répercutent pas sur les autres fonctions.
 +
: <p style="text-align: justify;"> Ainsi, Lors du passage des paramètres par valeur, seule la valeur du paramètre est passé à la procédure. Cette dernière travaille donc sur une variable locale. Alors que dans le cas d’un passage par référence, ce n’est pas la valeur du paramètre qui est passé mais l’adresse de la variable contenant la valeur : dans ce cas, la procédure appelée et la procédure appelante travaille sur la même variable, même si le nom utilisé pour le paramètre est différent du nom de la variable initiale. De ce fait, il est possible de modifier le contenu de la variable passée en paramètre à partir de la procédure appelée.</p>
 +
* '''Définition de passage par référence''' : Quand on utilise le passage par référence, l’adresse de l’argument est transmis à la fonction, et les modifications effectuées à l’intérieur de la fonction sont également répercutées en dehors de la fonction.
 +
: Ainsi, dans un passage par référence, ce n'est pas la valeur de l'argument qui est utilisée dans le corps de la fonction, c'est l'argument lui-même, en tant qu'objet, qui est utilisé et modifié : ces modifications resteront donc visibles après le retour de la fonction. Le passage par référence s'applique à un argument si le paramètre correspondant a été déclaré en acollant & à son type. L'argument correspondant doit être une expression désignant un objet.
 +
 
 +
* C++, comme Pascal, offre deux modes de passage des arguments à une fonction : par valeur, et par référence. Par contre, C, Java et CAML, par simplicité n'en offrent qu'un, le passage par valeur, tandis que Fortran fait le choix inverse.
 +
 
  
 
{{Conceptions erronées}}
 
{{Conceptions erronées}}
* <p style="text-align: justify;">Quand on utilise le passage par valeur, les modifications apportées à l’intérieur de la procédure appelée se répercutent sur la procédure appelante comme si on utilise un passage par référence.</p>
+
* <p style="text-align: justify;"> Quand on utilise le passage par valeur, les modifications apportées à l’intérieur de la procédure appelée se répercutent sur la procédure appelante comme si on utilise un passage par référence d’où l'utilisation erroné de passage des paramètres: par exemple si dans un programme principal on veut appeler une procédure qui permute deux variables entiers, la modification des valeurs des variables effectuées à l’intérieur de la procédure est transféré au programme principal. Donc ce n'est pas la valeur du paramètre qui est utilisé dans la procédure, mais c'est l'adresse de variable.  </p>
 +
* <p style="text-align: justify;"> Cette conception est d'origine didactique, comme il montre l'exemple de permutation, il faut bien expliquer la notion de référence, variable...    </p>
  
 
{{Origines possibles des conceptions}}
 
{{Origines possibles des conceptions}}
* Mal compréhension de transfert des informations entre les paramètres formels et celles effectifs.
+
* Mauvaise compréhension de transfert des informations entre les paramètres formels et celles effectifs.
* Mal compréhension de la notion de référence.
+
* Mauvaise compréhension de la notion de référence.
* Mal utilisation de la portée des variables.
+
* Mauvaise utilisation de la portée des variables.
  
 
}}<!-- ************************* Fin *****************************************-->
 
}}<!-- ************************* Fin *****************************************-->
Ligne 83 : Ligne 94 :
 
<!-- ****************** Commercez les modifications pour les Vidéos *******************************************************-->
 
<!-- ****************** Commercez les modifications pour les Vidéos *******************************************************-->
  
<youtube width="220" height="220">https://www.dailymotion.com/video/x2qpik7</youtube>
+
<youtube width="220" height="220">https://youtu.be/0uAZXJ00iGw</youtube>
<youtube width="220" height="220">iIlCg439eHQ</youtube>
+
<youtube width="220" height="220">https://youtu.be/CZSB2XDTyFo</youtube>
<youtube width="220" height="220">k0O8-0kPQmM</youtube>
+
<youtube width="220" height="220">https://youtu.be/HibXobj2wyc</youtube>
  
  
Ligne 98 : Ligne 109 :
 
<!-- Complétez les pointillés ou supprimez les lignes non utilisées          ----->
 
<!-- Complétez les pointillés ou supprimez les lignes non utilisées          ----->
 
<!-- ****************** Commercez les modifications ****************************-->
 
<!-- ****************** Commercez les modifications ****************************-->
 +
* Si vous souhaitez ne transmettre que la valeur du variable utilisez le «Passage par valeur» et si vous souhaitez voir la modification de la valeur originale du variable, utilisez le «Passage par référence».
  
* présentation et explication bien de certains concepts: La portée d'une variable, les paramètres formels, les paramètres effectifs, les références, le passage par valeur et celui par référence.                                                   
+
* Présentation et explication bien de certains concepts: La portée d'une variable, les paramètres formels, les paramètres effectifs, les références, le passage par valeur et celui par référence.                                                   
 
:* On utilise les schémas.   
 
:* On utilise les schémas.   
:* par des exemples pratique.                                                
+
:* par des exemples pratique.
 +
 
 +
* Avantages et inconvénients des deux méthodes
 +
: Les passages par références sont plus rapides et plus économes en mémoire que les passages par valeur, puisque les étapes de la création de la variable locale et la copie de la valeur ne sont pas faites.                                           
  
 
}}<!--***Fin Fiche Stratégie de changement conceptuelle (Solutions possibles)***-->
 
}}<!--***Fin Fiche Stratégie de changement conceptuelle (Solutions possibles)***-->

Version actuelle datée du 5 juin 2020 à 23:33

Puce-didaquest.png Conception : Clarification - Explicitation


Puce-didaquest.png Conceptions liées - Typologie



Puce-didaquest.png Concepts ou notions associés


References
Références


Liens éducatifs relatifs aux 5 Mots-Clés Principaux

Sur le Portail Questions / Réponses

Sur Portail de Formation Gratuite

Sur des sites de Formation

Sur DidaQuest

Passage des paramètres par valeur et par référence sur : Wikipedia / Wikiwand / Universalis / Larousse encyclopédie / Khan Académie
Sur Wikiwand :

Variable / Procédure / Paramètres formels / Paramètres effectifs / Référence

Sur Wikipédia :

Variable / Procédure / Paramètres formels / Paramètres effectifs / Référence

Sur Wikiversity :

Variable / Procédure / Paramètres formels / Paramètres effectifs / Référence

Sur Universalis :

Variable / Procédure / Paramètres formels / Paramètres effectifs / Référence

Sur Khan Académie :

Variable / Procédure / Paramètres formels / Paramètres effectifs / Référence



Puce-didaquest.png Éléments graphique




Puce-didaquest.png Stratégie de changement conceptuel


Puce-didaquest.png Questions possibles



Puce-didaquest.png Bibliographie