

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
5 messages in org.openoffice.fr.prog[prog] Re : [prog] Paramètres par réf...| From | Sent On | Attachments |
|---|---|---|
| xavier roguiez | Jun 9, 2009 1:36 pm | |
| xavier roguiez | Jun 9, 2009 1:43 pm | |
| Pasc...@ac-grenoble.fr | Jun 9, 2009 3:33 pm | |
| Pasc...@ac-grenoble.fr | Jun 9, 2009 3:57 pm | |
| Bernard Marcelly | Jun 9, 2009 11:40 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] Re : [prog] Paramètres par référence | Actions... |
|---|---|---|
| From: | Pasc...@ac-grenoble.fr (Pasc...@ac-grenoble.fr) | |
| Date: | Jun 9, 2009 3:57:34 pm | |
| List: | org.openoffice.fr.prog | |
Pour compléter ma réponse, voici un exemple :
sub main dim x as double x=2 modif(x) print x end sub
sub modif(x as double) print x x=3 end sub
Lors de l'exécution de main, on a bien les affichages successifs : 2 (le print de la macro modif) 3 (le print de main après l'exécution de modif).
Si on modifie juste double en integer dans dim x :
sub main dim x as integer x=2 modif(x) print x end sub
sub modif(x as double) print x x=3 end sub
lors de l'exécution de main, on a alors les affichages successifs : 2 (le print de la macro modif) 2 (le print de main après l'exécution de modif) au lieu de 3.
Cela prouve que la conversion impicite de type double vers integer en sortie de
modif pose problème.
Or je pense que, dans votre exemple, le fait de ne pas définir le type de Nrcc
fait que la ligne
Nrcc=2
le définit implicitement comme un integer.
----- Message d'origine ----- De: Pasc...@ac-grenoble.fr Date: Mercredi, Juin 10, 2009 0:34 am Objet: [prog] Re : Re: [prog] Paramètres par référence
Bonjour,
dim Nrcc,Mrcc,epsh1,epsb1 as double
ne définit pas Nrcc et Mrcc comme double mais comme variant.
La syntaxe basic impose de donner le type de chaque variable séparément.En fait :
dim Nrcc,Mrcc,epsh1,epsb1 as double
signifie :
dim Nrcc as variant, Mrcc as variant, epsh1 as variant, epsb1 as double Il est donc déjà normal que en remplaçant
dim Nrcc,Mrcc,epsh1,epsb1 as double
par
dim Nrcc as double, Mrcc as double ,etc...
on puisse avaoir un comportement différent.
Pascal
----- Message d'origine ----- De: xavier roguiez <xr...@geo.hmg.inpg.fr> Date: Mardi, Juin 9, 2009 10:46 pm Objet: Re: [prog] Paramètres par référence
xavier roguiez a écrit :
Bonsoir
Je me trouve confronté à un problème dont je ne comprends ni les tenants ni les aboutissants;, est ce que quelqu'un peut m'aider ?
J'ai sorti l'ECM suivant :
option explicit sub interaction_Rect() dim Nrcc,Mrcc,epsh1,epsb1 as double Nrcc=2: Mrcc=2 print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 2 2 pas normal ????????????????????? end sub
sub EffC_Rect(Nrc2 as double,Mrc2 as double) Nrc2=10: Mrc2=10 end sub
Par contre si je modifie les déclarations d'entêtes à savoir : dim Nrcc,Mrcc as double
En fait il faut modifier pour obtenir le bon résultat la déclaration en dim Nrcc as double dim Mrcc as double
alors le comportement redevient normal... print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 10 10 normal !!!!!!!!!!!!!
Avez vous une idée ? D'avance merci xavier
----------------------------------------------------------------
--







