Re: [Gambas-user-fr] Recursivite en gambas3
Brought to you by:
gambas
From: Fabien B. <gam...@gm...> - 2018-09-20 10:49:06
|
Je vais tâcher de répondre avant le 76 ème 😊 du haut de mes 40. Il faut juste me laisser un peu de temps.. je suis en pleine vendange... mais le problème est vraiment intéressant et j'ai ma petite idée Le mar. 18 sept. 2018 23:56, Pierre Henri <pie...@gm...> a écrit : > Merci Fabien > en effet, mon probleme de rhombo fait partie d'un de mes projets. > > Je ne vias pas entrer dans le détail du Rhmbo, sauf que a partir d'un > formulaire dans le quel je > present les differents parametres du rhombo, je voudrai a partir seulement > de 2 parametres calculer les autres et eventuellement signaler les erreurs.. > ci-dessous. La recursivité dans le cas où l'arete > > la fonction que j'ai developpée qui me parait un peu 'lourde' ne > fonctionne pas dans tous les cas... > Y aurait-il une solution ? je voie pas très bien avec mes 75 printemps! > > 'CALCUL ROMBO EN FONCTION DE AU MOINS 2 6 PARAMETRES DEFINIS CI-DESSOUS > '1 Arete (les 4 aretes du rombo ont toutes la meme dimension) > '2 Rayon du cercle inscrit dans le rombo > '3 D1 premiere diagonale ( les diagonales sont perpendiculaires dans un > rombo) > '4 D2 deuxieme diagonale > '5 Alpha angle diagonale 1 avec arete > '6 Beta angle diagonale 2 avec arete > '7 perimetre (resultat) > '8 surface (resultat) > '9 centre de gravite (resultat) > > Public Function RomboCalcul() As Integer > > Dim err As Integer > > If arete > 0 Then > > If d1 > 0 Then > 'calcul des angles a partir de D1 et arete > > alpha = 2 * ASin(d1 / (2 * arete)) > beta = 2 * ACos(d1 / (2 * arete)) > > Else If d2 > 0 Then > 'calcul des angles a partir de D2 et arete > > alpha = 2 * ACos(d2 / (2 * arete)) > beta = 2 * ASin(d2 / (2 * arete)) > Endif > 'ici les angles ont été calculés a partir de l'arete et d'une des > deux diagonales > 'on calcule le rayon inscrit dans le rombo > ' rayon = Sqr(((d1 / 2) ^ 2) + ((d2 / 2) ^ 2)) '1) pythagore > facile pais > ' rayon = (arete / 2) * Sin(alpha) '2) > rayon = (arete / 2) * Sin(beta) '3) > > perimetre = arete * 4 'un rombo a ses 4 cotes > egaux > > surface = (arete ^ 2) * Sin(alpha) 'calcul de la surface > methode 1 > 'ou surface=arete^2*sin(beta) > 'gravite=d2/2 ' > gravite = arete * Cos(alpha / 2) 'cette methode on ne sait pas > si on a d1 ou d2 > > 'calculer la diagonale eventuellement manquante > If d1 > 0 And d2 = 0 Then > 'calculer d2 a ce niveau on a alpha et beta calculés > d2 = 2 * Cos(alpha / 2) > 'd2=2 sin(beta/2) 'autre methode > > Else If d1 = 0 And d2 > 0 Then > 'calculer d1 a ce niveau on a alpha et beta calculés > d1 = 2 * arete * Sin(alpha / 2) > 'd1=2*arete*cos(beta/2) 'autre methode > Endif > > Else > 'ici l'arete n'est pas définie > 'dans ce cas, il nous faut au moins 2 diagonales > 'ou une diagonale et un angle > 'tout ca pour calculer l'arête ! > ' on commence par les diagonales > If d1 > 0 And d2 > 0 Then > 'les deux diagonales sont définies > arete = Sqr((d1 / 2) ^ 2 + (d2 / 2) ^ 2) > > romboCalcul() 'calculer les autres parametres > > Endif > Endif > > End > > > Le 18 septembre 2018 à 09:46, Fabien Bodard <gam...@gm...> a écrit > : > >> Pour moi et mon niveau en math il va falloir être plus clair ... quel est >> le rapport entre la récurssivité et un rhombo ? >> >> Un rhombo étant pour moi un losange ... >> >> Le lun. 17 sept. 2018 à 20:15, Pierre Henri <pie...@gm...> >> a écrit : >> >>> Bonjour, >>> Confronte a un probleme de résolution trigonométrique je ne sais comment >>> résoudre ce problème. >>> Il s'agit de calculer un rhombo à partir de deux paramètres quels qu'ils >>> soient. >>> Merci de vos conseils et aide. >>> _______________________________________________ >>> Gambas-user-fr mailing list >>> Gam...@li... >>> https://lists.sourceforge.net/lists/listinfo/gambas-user-fr >>> >> >> >> -- >> Fabien Bodard >> >> >> _______________________________________________ >> Gambas-user-fr mailing list >> Gam...@li... >> https://lists.sourceforge.net/lists/listinfo/gambas-user-fr >> >> > _______________________________________________ > Gambas-user-fr mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gambas-user-fr > |