Chapitre 9 Passage de paramètres
- Pour modifier le paramètre réel on passe son adresse plutôt que sa valeur. #include <iostream> using namespace std ; void increment(int *n
Passage de Paramètres par référence
Le but de ce TD est de comprendre le passage de paramètres par référence en C++ qui cout << "donnez une valeur"; cin >> e; cout << "donnez une valeur"; cin > ...
LES VARIABLES :
2- Le passage par référence : En plus du passage par valeur le C définit le - Qu'est-ce qu'un pointeur : C'est une variable dont la valeur est l'adresse d ...
Sous-algorithmes
On s'intéresse ici au passage des valeurs des paramètres c'est à dire à la l'adresse de la variable c. • Le paramètre formel z est maintenant une ...
Programmation C++ (débutant)/Les pointeurs
variable a et met la valeur 100 dans cette variable. • L'instruction y=x ... passage de paramètres par référence. • Dans cet exemple la fonction minmax ...
Les structures et les tableaux
1.3 Passage par valeur et par référence. □ En C il existe deux types de passage d'arguments : 1.3.3 Passage par référence – les tableaux void print(int x ...
Les Fonctions en C.pdf
Passage des paramètres par valeur. Fonction renvoyant une valeur au programme. Passage des paramètres par valeur et par adresse. Passage des tableaux aux
Points clés sur les vecteurs en C++
• Passage par valeur : Et le passage par adresse dans tout ça ? • Préférez le passage par référence. • Utilisez le passage par adresse quand c'est nécessaire.
Programmation C++ (débutant)/Les fonctions
Techniquement on utilisera le return ou le passage de paramètres par référence pour envoyer une valeur à l'environnement appelant. • D'autres peuvent
Chapitre 9 Passage de paramètres
En C++ 3 types de passage de paramètres: ? par valeur (existe aussi dans les langages C et Java1). ? par adresse (existe aussi dans le langage C).
Passage de Paramètres par référence
Passage de Paramètres par référence y soient modifiées (c'est-à-dire que leurs valeurs soient permutées) si x>y ; les variables.
Chapitre 3 : Procédures et fonctions
Il existe deux types de passage de paramètres : par valeur et par variable (dite aussi par référence ou encore par adresse). Page 5. Initiation à l'
LES VARIABLES :
La fonction ne modifiera donc jamais le contenu de la variable qu'on lui passe. 2- Le passage par référence : En plus du passage par valeur le C définit le.
Programmation C/C++ : Notions de base
Passage par valeur . Passage par adresse . ... En C/C++ une ligne qui commence par un # fait référence à une directive du préprocesseur (ou de.
Points clés sur les vecteurs en C++
par valeur. • Utiliser le passage par référence seulement quand il le faut. Par exemple : • Pour manipuler les vecteurs et autres objets larges.
Programmation Impérative II Sémantique dun programme C++
4 Variables globales / Locales. 5 État d'un programme : Pile d'appel. 6 Passage de paramètres. Passage par valeur. Passage par référence. Les pointeurs.
Les structures et les tableaux
Par convention les noms de structures commencent par une minuscule en C struct point c[10]; ... 1.3 Passage par valeur et par référence. ? En C ...
La programmation objet avec Java
le passage se fait uniquement par valeur. ? Comme un objet est manipulé par son adresse. (sa référence) c'est donc sa référence qui est.
Programmation C++ (débutant)/Les pointeurs
On affiche ensuite la valeur de b c'est-à-dire 1000. On préfère toutefois assez souvent le passage de paramètres par référence.
[PDF] Chapitre 9 Passage de paramètres
En C++ 3 types de passage de paramètres: ? par valeur (existe aussi dans les langages C et Java1) ? par adresse (existe aussi dans le langage C)
[PDF] Passage de Paramètres par référence
Le but de ce TD est de comprendre le passage de paramètres par référence en y soient modifiées (c'est-à-dire que leurs valeurs soient permutées) si x>y
Passage par référence - CERMICS
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
Différence entre passage par référence et passage par valeur
9 sept 2018 · Il existe deux manières de transmettre des arguments ou des paramètres aux fonctions : Passage par valeur; Passage par référence
Passage par référence - Irif
Passage par référence Usuellement les langages de programmations proposent plusieurs formes de passages de paramètres passage par valeur : dans le passage
[PDF] Les fonctions et les procédures en C
On passe la valeur du paramètre – Implique que le paramètre est en entrée • Passage de paramètre par adresse – On passe l'adresse du paramètre
[PDF] Langage C et aléa séance 3 - Loria
Pour l'affectation d'un pointeur nous disposons de l'opérateur qui renvoie l'adresse mémoire à partir de laquelle est stockée la valeur d'une variable
[PDF] Adresse et tableaux en C/C++ - CNRS
– Mise en œuvre du passage en paramètre donnée d'un tableau précisée par le qualificatif const void proc(const int *tab) { } ou void proc(const int tab[]) { }
[PDF] /* Exercice 1 Echange de deux valeurs Ecrire une fonction Echange
Exercice 1 Echange de deux valeurs Ecrire une fonction Echange qui réalise l'échange de deux valeurs entières passées en argument */ #include
[PDF] LES VARIABLES :
2- Le passage par référence : En plus du passage par valeur le C définit le passage par référence Lorsque l'on passe à une fonction un paramètre par référence
Quelle est la différence entre le passage par valeur et le passage par adresse ?
Conclusion: 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».9 sept. 2018Quelle est la différence entre le passage par référence et le passage par adresse C++ ?
Le passage par adresse de C est plus lourd que le passage par référence de C++, mais il a au moins l'avantage d'être explicite du côté de l'appel : quand on voit un appel swap(&a, &b) , on sait qu'il s'agit d'un appel par adresse, tandis qu'en C++, devant un appel swap(a, b) , il faut aller voir la déclaration de laC'est quoi le passage par valeur ?
Le passage par valeur ou par référence fait référence à ce que Visual Basic fournit au code de procédure. Un type de valeur ou un type de référence fait référence à la façon dont un élément de programmation est stocké en mémoire. Toutefois, le mécanisme de passage et le type d'élément sont liés.- Par défaut, les arguments sont passés à la fonction par valeur (aussi, changer la valeur d'un argument dans la fonction ne change pas sa valeur à l'extérieur de la fonction). Si vous voulez que vos fonctions puissent changer la valeur des arguments, vous devez passer ces arguments par référence.
1 de 150
Programmation Impérative II
Sémantique d"un programme C++
Florent Hivert
Mél :Florent.Hivert@lri.fr
Adresse universelle :http://www.lri.fr/˜hivert
2 de 150
1Sémantiq ue
2Mémoire et va riables
3P ortéedes décla rations
4V ariablesglobales / Lo cales
5État d"un p rogramme: Pile d"app el
6P assagede pa ramètres
Passage par valeur
Passage par référence
Les pointeurs
7Applic ation: la ré cursion
Sémantique
3 de 1501Sémantiq ue
2Mémoire et va riables
3P ortéedes décla rations
4V ariablesglobales / Lo cales
5État d"un p rogramme: Pile d"app el
6P assagede pa ramètres
7Applic ation: la ré cursion
Sémantique
4 de 150Syntaxe et Sémantique
Définition
Lasyntaxed"un langage de programmation (ou d"un langage réel) est la description des exp ressionsco rrectes du langage, indépendamment de leur sens. Lasémantiqued"un langage est ladescription du sens des constructions du langage.Comme dans une langue naturelle, les phrases syntaxiquement correctes d"un langage de programmation n"ont pas toutes un sens.Ex : le chat est analytique à l"origine.
Sémantique
5 de 150Statique / Dynamique
Lecompilateurtraduit le programmesource(par exemple enC++) en un programme exécutablebinaire(codé en langage machine).Définition Ce qui est fait (décision, réservation de ressource, détection d"erreur) pendant la compilation est ditstatique.La même chose faite pendant l"exécution est ditedynamique.Exemple:incohérence de sens identifiée sans exécuter le programme :
erreur de sémantiquestatique.incohérence qui apparaît lors de l"exécution du programme : erreur de sémantiquedynamique.Sémantique
6 de 150Exemple d"erreurs de sémantique statique
sem-stat.cpp1#include< iostream>
2#include< vector>
3usingn amespaces td;
45voidp p( floatz ){
6inti ;
7i = 2;
8z = i;
9} 1011intm ain( ){
12intx ;
13vectort (10);
14cin >> i;
15x = t;
16pp(x, t);
17return0 ;
18}Ligne 14 : La variableiest
déclarée seulement à l"intérieur de la fonctionppLigne 15 : Affectation d"un vecteur dans un entierLigne 16 : Appel de la fonctionppavec deux paramètres au lieu d"un.Sémantique
7 de 150Erreurs de sémantique statique
Incohérence entre ladéclarationd"un objet et sonutilisation: il faut déclarer les objets (types, variables, fonctions, etc.) avant de les utiliser, pour vérifier que l"utilisation est conforme à la déclaration.erreurs sur laportée des variables: une variable déclaréen"est utilisable que dans une certaine partie du programmeerreurs sur lecontrôle des types: les utilisations d"une
variable doivent être cohérentes avec son type déclaréerreurs lors del"appel des fonctionsNous allons voir cela en détail...
Sémantique
8 de 150Sémantique statique : Bilan
L"ensemble de ces contrôles correspond à la vérification de la sémantique statique du programme, c"est-à-dire de lapartie de la sémantique qui peut être vérifiée sans exécuter le programme.Retenir Lasémantique statiqueest contrôlée par le compilateur : La traduction (en langage machine) et l"exécution d"un p rogramme n"est pas p ossible tant que la sémantique statique n"est pas correcte.On ne peut pas traduire et a fortiori exécuter un programme qui n"a pas de sens.Sémantique
9 de 150Sémantique dynamique
Problème
On ne peut pas décrire toute la sémantique d"un langageuniquement par sa sémantique statique!Des erreurs peuvent apparaître à l"exécution, par exemple :
division par zéro accès en dehors des bornes d"un tableau plus généralement : mauvais accès à la mémoire ressource (fichier, réseau, ...) indisponible.Sémantique
10 de 150Sémantique dynamique
sem-dyn.cpp1intf ( intn ){
2intr es;
3if( n> 2 )r es= f (n-1)+ f (n-2);
4elser es= n ;
5returnr es;
6} 78intm ain( ){
9inti ;
10vectort (10);
11i = 1 ;
12//. ..i cil "initialisationd ut ableaut . ..
13while( f(i)< 1 000){
14cout << t[i] << endl;/ /A ccèse nd ehorsd ut ableau
15i++;
16};17//. ..
18}Sémantique
11 de 150Sémantique dynamique...
Définition
Lasémantique dynamiqueest la partie de la sémantique qui ne peut être contrôlée que lo rsde l"exécution du p rogramme .Avantages des langages compilés : diminuer la part de la sémantique dynamique par rapport à la sémantique statique.un plus grand nombre d"erreurs sémantiques détectées à la compilationles erreurs d"exécution, plus difficiles à découvrir et à corriger, sont rares.Sémantique
12 de 150Encore plus de sémantique
Compléments
Dans les langages modernes, on essaye de mettre encore plus de sémantique :Qui est responsable de quelle portion de mémoire? Langage objets (C++, Java), notion de propriétaire (rust)Spécification, preuveWhy, Spark, assistant de preuveCoq, Isabelle
Sémantique
13 de 150Comment décrire la sémantique?
Sémantique
14 de 150Mécanismes de description
Objectif de la première partie du cours :décrire la sémantique d"un langage de programmation impératif :environnement et mémoire; portée des déclarations; appel des fonctions; passage de paramètres.Il nous faut un
mo dèlede machine simplifié qui p ermettede décrire assez fidèlement le comportement des programmes.Mémoire et variables15 de 150
1Sémantiq ue
2Mémoire et va riables
3P ortéedes décla rations
4V ariablesglobales / Lo cales
5État d"un p rogramme: Pile d"app el
6P assagede pa ramètres
7Applic ation: la ré cursion
Mémoire et variables16 de 150
La mémoire
La mémoire principale d"un ordinateur est composée deun très grand nombre (1010-1011) decondensateurspouvant
être soit chargés soit déchargés (0 ou 1)un gigantesqueréseau de fils et d"aiguillages(multiplexeur)Retenir
On groupe les condensateurs par groupes (typiquement 8, 16, 32 ou 64) appelésmots. On repère un mot en mémoire grâce à un nombre appeléadresse.L"opérateur&, retourne l"adresse d"une variable : addr.cpp1inta = 5 ;
2cout << a <<" " < <& a< Affiche quelque chose comme5 0x7ffe94f3a8bc
Mémoire et variables17 de 150
Mémoire simplifiée
Pour simplifier, on va supposer que toutes les informations codées en mémoire tiennent exactement dans un mot. On va représenter la mémoire par un tableau :. ..4? 3'a" 2? 1? 04 ?: valeur inconnue=imprévisible=non définie=aléatoire. Mémoire et variables18 de 150
La mémoire en vrai
Problème
Plus une mémoire estgrosse, plus il faut commuter d"aiguillages pour accéder à une case mémoire, plus la mémoire estlente.Compléments Hiérarchie de mémoires :
1registres : mémoire très rapide, très proche des unités de calcul2caches (souvent plusieurs niveaux L1, L2, L3)3mémoire centraleDu point de vue de la sémantique, c"est juste uneoptimisationqui
permet au programme d"être exécuté (beaucoup) plus rapidement. Mémoire et variables19 de 150
Initialisation
Retenir
Lapremière écrituredans un emplacement mémoire s"appelle l"initialisation. Si l"on n"a rien écrit, l"emplacement mémoire contient quand même une valeur (les condensateurs correspondants contiennent ou non une charge), mais cette valeur estimprévisible.?: valeur inconnue=imprévisible=non définie=aléatoire.Certains langages ont décidé de tout initialiser à 0. Ce n"est en
généralpas le cas duC/C++ Mémoire et variables20 de 150
Exemple de problème en cas de non initialisation noninit.cpp 1 i nt a dd( int x ,quotesdbs_dbs44.pdfusesText_44
Affiche quelque chose comme5 0x7ffe94f3a8bc
Mémoire et variables17 de 150
Mémoire simplifiée
Pour simplifier, on va supposer que toutes les informations codées en mémoire tiennent exactement dans un mot. On va représenter la mémoire par un tableau :. ..4? 3'a" 2? 1? 04 ?: valeur inconnue=imprévisible=non définie=aléatoire.Mémoire et variables18 de 150
La mémoire en vrai
Problème
Plus une mémoire estgrosse, plus il faut commuter d"aiguillages pour accéder à une case mémoire, plus la mémoire estlente.ComplémentsHiérarchie de mémoires :
1registres : mémoire très rapide, très proche des unités de calcul2caches (souvent plusieurs niveaux L1, L2, L3)3mémoire centraleDu point de vue de la sémantique, c"est juste uneoptimisationqui
permet au programme d"être exécuté (beaucoup) plus rapidement.Mémoire et variables19 de 150
Initialisation
Retenir
Lapremière écrituredans un emplacement mémoire s"appelle l"initialisation. Si l"on n"a rien écrit, l"emplacement mémoire contient quand même une valeur (les condensateurs correspondants contiennent ou nonune charge), mais cette valeur estimprévisible.?: valeur inconnue=imprévisible=non définie=aléatoire.Certains langages ont décidé de tout initialiser à 0. Ce n"est en
généralpas le cas duC/C++Mémoire et variables20 de 150
Exemple de problème en cas de non initialisation noninit.cpp 1 i nt a dd( int x ,quotesdbs_dbs44.pdfusesText_44[PDF] acting out psychanalyse
[PDF] le salaire du sniper analyse
[PDF] le salaire du sniper texte pdf
[PDF] le salaire du sniper questionnaire
[PDF] redaction le salaire du sniper
[PDF] le salaire du sniper personnage principal
[PDF] passé composé terminaison
[PDF] passé composé cm2
[PDF] passé composé exercices pdf
[PDF] passé composé utilisation
[PDF] passé composé etre et avoir
[PDF] passé composé cm1
[PDF] passé composé exemple
[PDF] exercices passé composé fle ? imprimer