Passage de tableaux en paramètre ? [Résolu]

kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 29 juin 2007 à 18:04 - Dernière réponse : cs_cheyenne 693 Messages postés samedi 18 mai 2002Date d'inscription 17 avril 2017 Dernière intervention
- 1 juil. 2007 à 20:21
bonjour,

je bloque complètement sur un truc qui me semble devrait être tout simple.
J'ai une fonction :
Public Sub ComputeFootprint(ByVal RS As Double, ByVal satLat As Double, ByVal satLong As Double)
    Dim srad, cla, sla, clo, slo, sra, cra, A As Double
    Dim i As Integer
    Dim N As Integer
    Dim x, y, z As Double

    srad = ACS(RE / RS)         'rayon du cercle de visibilité du satellite
    cla = Cos(satLat)           'cosinus de la latitude
    sla = Sin(satLat)           'sinus de la latitude
    clo = Cos(satLong)          'cosinus de la longitude
    slo = Sin(satLong)          'sinus de la longitude
    sra = Sin(srad)             'sinus du rayon
    cra = Cos(srad)             'cosinus du rayon
   
    N = 10
   
    For i = 0 To N              'N points to the circle
        A = 2 * Pi * i / N      'Angle around the circle

        x = cra                 'Circle of points centred on Lat=0, Lon=0        y sra * Sin(A)        'assuming Earth's radius 1
        z = sra * Cos(A)        '[ However, use a table for SIN(.)  COS(.) ]

        x = x * cla - z * sla   'Rotate point "up" by latitude satLat
        y = y
        z = x * sla + z * cla

        x = x * clo - y * slo   'Rotate point "around" through longitude satLong
        y = x * slo + y * clo
        z = z

        LON(i) = FNatn(y, x)    'Convert point to Lat/Lon (or as required by map
        LAT(i) = ASN(z)         'projection and display system).
    Next i
End Sub

j'ai créé 2 variables tableaux global :
Dim LON(10) As Double
Dim LAT(10) As Double
Le tout dans un module.
Dans ma form j'essaie d'appeler la fonction en faisant :
Private Sub Combo1_click()
    Dim julian As String
    Dim threshdeg As Double
    Dim az As Double
    Dim el As Double
    Dim longit As Double
    Dim lat As Double
    Dim range As Double
    Dim rr As Double
    Dim alt As Double
    Dim phase As Double
    Dim isVisible As Boolean
    Dim southbound As Boolean
   
    Dim RS As Double
    Dim i As Integer
   
    Dim fVisibilite As New MapXLib.Feature
    Dim pt As Point
    Dim StylePoint As MapXLib.Style
   
    julian = sat.DateTimeToJT(dt)   'convertit la date actuelle en jour Julien
    threshdeg = 0.5  'radians
    isVisible = sat.isVisible(Combo1.Text, julian, threshdeg, southbound, az, el, longit, lat, range, rr, alt, phase) 'calcule la position actuelle du satellite
    longit = Arrondir(convertLongitude(RadToDeg(longit)))
    lat = Arrondir(RadToDeg(lat))
   
    RS = 824.15
    computefootprint(RS,lat,longit,LONGITUDES,LATITUDES)
    For i = 0 To 10
        fVisibilite.Attach Map1
        fVisibilite.Type = miFeatureTypeSymbol
        fVisibilite.Point.Set LONGITUDES(i), LATITUDES(i)
    Next i
   
    Map1.Layers("satellites").Refresh
End Sub

et quand je fais "exécution avec compilation complète", j'ai une erreur au niveau de la ligne rouge qui me dit "erreur de syntaxe"
Pourtant ça me semble correct

Merci pour l'aide
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 29 juin 2007 à 18:30
3
Merci
ComputeFootprint() est déclarée pour prendre 3 params et tu en passes 5.

ciao...
BruNews, MVP VC++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de BruNews
Meilleure réponse
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 29 juin 2007 à 19:12
3
Merci
en plus c' est une Sub et donc lors de l' appel il faut 

> soit :  computefootprint RS,lat,longit,LONGITUDES,LATITUDES
> soit : Call  computefootprint(RS,lat,longit,LONGITUDES,LATITUDES)

Merci chaibat05 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de chaibat05
Meilleure réponse
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 29 juin 2007 à 23:14
3
Merci
Et quand tu déclares des variables comme ceci
Dim srad, cla, sla, clo, slo, sra, cra, A As Double
seul A est considéré Double, les autres sont des Variant
Tu dois mettre As Double pour toutes les variables

Et si tes tableaux sont déclarés Public, il n'est donc pas nécessaire de les passer en paramètre...

MPi

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_MPi
cs_cheyenne 693 Messages postés samedi 18 mai 2002Date d'inscription 17 avril 2017 Dernière intervention - 30 juin 2007 à 12:42
0
Merci
Bonjour Chaibat05,

Tu ne ferais pas un soft de tracking de satellites ? quel modèle utilises-tu pour les calculs, le SGP4 ? à partir des datas en '2 lignes'.

Amicalement de Cheyenne.
Commenter la réponse de cs_cheyenne
chaibat05 1884 Messages postés samedi 1 avril 2006Date d'inscription 20 novembre 2007 Dernière intervention - 30 juin 2007 à 12:57
0
Merci
Salut Cheyenne,


Qu' est-ce-qui t' as mis dans l' idée que je "traque" les satelittes ?!
Désolé mais ça c' est pas mon truc et je n' ai nullement l' intention de le faire :-)
Moi les satelittes je me contente de les voir tourner ...
T' as du sûrement confondre.


C' est à kkhuet qu' il faudra poser la question...
Amicalement.
Commenter la réponse de chaibat05
cs_cheyenne 693 Messages postés samedi 18 mai 2002Date d'inscription 17 avril 2017 Dernière intervention - 30 juin 2007 à 18:41
0
Merci
Bonjour Chaibat05,

Je te demande de bien vouloir m'excuser, je me suis effectivement trompé d'interlocuteur. J'ai regardé trop vite les réponses d'où la confusion...

Donc je repose la question, mais ce coup-ci  à  kkhuet :
Tu ne ferais pas un soft de tracking de satellites ? quel modèle utilises-tu pour les calculs, le SGP4 ? à partir des datas en '2 lignes'.

Bonne soirée et bon dimanche à Tous.

Cordialement de Cheyenne.
Commenter la réponse de cs_cheyenne
kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 30 juin 2007 à 19:27
0
Merci
bonjour,

effectivement c'est un soft pour les satellites et j'utilise bien le
SGP4 et les fichiers qui contiennent les éphémérides ont 2 lignes, et
c'est dur dur !!

bonne soirée aussi
Commenter la réponse de kkhuet
cs_cheyenne 693 Messages postés samedi 18 mai 2002Date d'inscription 17 avril 2017 Dernière intervention - 30 juin 2007 à 20:38
0
Merci
ReBonjour kkuet,

Oui, effectivement, c'est assez ardu. Il faut s'y tenir !!!

Si tu envisages également dans ton soft le tracé de la ligne grise, il faut faire attention aux changements lors des équinoxes car la 'grayline' s'inverse.
Puis si tu positionnes le soleil, bonjour les formules de rotation pour le faire figurer sur la planisphère.
Pour comparer les résultats de tes calculs, tu peux utiliser Orbitron qui est très fiable. Ce soft, gratuit, est entièrement paramètrable au niveau de l'interface.
Si tu ne le possède pas déjà, je te le recommande vivement.

Je suppose que c'est pour le plaisir que tu te lances dans ce soft car il y en a une pléiade de disponibles. (voir du côté radio-amateur, entre autres)

Bonne prog, @+

Cheyenne
Commenter la réponse de cs_cheyenne
kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 1 juil. 2007 à 18:51
0
Merci
Salut,
ouh la la ça a l'air encore plus compliqué que ce que je pensais..en parlant de grayline, je suppose que tu parles de la ligne séparant jour et nuit ? Heureusement, je n'ai pas besoin d'afficher le soleil et la lune, juste la limite entre le jour et la nuit suffit, je pense...
Je connais Orbitron, ya aussi WXtrack qui est pas mal !
Et non je fais pas ça pour le plaisir, j'y suis obligée
Bon début de semaine à tous, et bonnes vacances aux veinards !!
Commenter la réponse de kkhuet
cs_cheyenne 693 Messages postés samedi 18 mai 2002Date d'inscription 17 avril 2017 Dernière intervention - 1 juil. 2007 à 20:21
0
Merci
Bonsoir kkhuet,

Oui, c'est bien cela dont il s'agit, de la ligne ligne séparant le jour et la nuit.

L'avantage d'Orbitron c'est que l'on peut en plus du pilotage du rotor (commeWXtrack) disposer d'un driver pour le récepteur, très utile pour contrer l'effet Doppler.
A noter que WXTrack a été écrit en VB !

Bon courage pour le transcodage du SGP4 en Pascal vers le VB.

Bonne semaine.

Cheyenne
 
Commenter la réponse de cs_cheyenne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.