papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 6:39 | |
| @Jack L’exécution d’une FNC qui comporte un WHILE déclenche une série de messages (une trentaine voir plus) On a un appel de FNC dans la condition d’un WHILE :nom_de_la_fncOn doit acquitter par OK cette série de messages avant d’ obtenir le résultat - Code:
-
rem ============================================================================ print Inverse_B_Modulo_N(7,9) : ' <--- 4 ' print Inverse_B_Modulo_N(5,77) : ' <--- 31 ' print Inverse_B_Modulo_N(12,27) : ' <--- 12 n'a pas d'inverse modulo 27 end rem ============================================================================ ' Algorithme d'Euclide étendu ' Calculer l'inverse de b modulo n s'il existe ' Rappel : ' L'inverse modulo n de b est le nombre entier b1 tel que mod(b*b1, n) = 1 ' Par exemple : ' * 7 est l'inverse modulo 9 de 4, car mod(4*7,9) = mod(28,9) = 1 ' * 12 n'a pas d'inverse modulo 27 FNC Inverse_B_Modulo_N(b,n) dim_local n0,b0,t0,t,q,r,temp n0 = n : b0 = b : t0 = 0 : t = 1 q = int(n0/b0) r = n0 - q * b0 while r > 0 temp = t0-q*t if temp >= 0 temp = mod(temp,n) else temp = n - mod(0-temp,n) end_if t0 = t : t = temp : n0 = b0 : b0 = r : q = int(n0/b0) : r = n0-q*b0 end_while if b0 = 1 result t else message str$(b) + " n'a pas d'inverse modulo " + str$(n) end_if END_FNC rem ============================================================================
Idem pour ce code - Code:
-
print Somme(20) end FNC Somme(n) dim_local s,i i = 1 while i <= n s = s + i i = i + 1 end_while result s END_FNC
Il s'agit peut-être d'un vestige de mise au point. | |
|
Marc
Nombre de messages : 2389 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 6:59 | |
| Bonjour à tous ! @Papydall J’ai eu le même problème quand tu as posé le défi du calcul de PI. J’ai dû remplacer dans la fonction ma boucle WHILE par une boucle FOR… et j’ai oublié de faire un "ticket d’incident" pour avertir Jack. Bonne journée ! | |
|
papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 8:29 | |
| - Marc a écrit:
- J’ai eu le même problème quand tu as posé le défi du calcul de PI. J’ai dû remplacer dans la fonction ma boucle WHILE par une boucle FOR…
J’ai programmé les calculs de PI à l’aide des FNC comprenant WHILE et je n’ai pas eu de problème. Je viens de regarder de plus près pourquoi ça fonctionnait correctement et plus maintenant. Et j’ai trouvé le pourquoi ! Si, le programme principal NE COMPORTE PAS au moins une commande DIM, le message cité ci-haut apparaît. Par contre, une commande DIM … , exemple DIM bidon fait que tout se passe bien - Code:
-
dim bidon : ' Mettre en REM cette commande qui ne sert absolument à rien dans le programme et bonjour les dégâts ! print Pi_Salamin_Brent()
end rem ============================================================================ ' Formule basée sur les moyennes arithmétique et géométrique. ' Formule découverte par Eugène Salamin et Richard Brent en 1976 FNC Pi_Salamin_Brent() dim_local s_carre, puissance2,a,b,an,bn,un,u,epsilon epsilon = 1E-6 s_carre = 0 : puissance2 = 1 : an = 1 : bn = 1/sqr(2) u = 1 : un = 0 while not(abs(u-un) < epsilon) a = an : b = bn : u = un an = (a+b)/2 : bn = sqr(a*b) puissance2 = puissance2 * 2 s_carre = s_carre + puissance2 * (an*an - bn*bn) un = 4*an*an / (1-2*s_carre) end_while result un END_FNC rem ============================================================================
Bon, voilà de quoi aider Jack pour remédier à ce désagrément. | |
|
silverman
Nombre de messages : 968 Age : 51 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 12:06 | |
| Depuis sa sortie, la version 0929i9 souffre de pas mal de pb, il n'y a qu'à relire le dernier sujet dans "Ce qui est en cours ...". J'ai codé avec cette version pendant un moment, mais je me suis trouvé contraint de faire marche arrière car il y a des commandes classiques(autres que les ARCHIVER_xxx) qui ne fonctionnent plus(je ne sais plus lesquelles, ça m'a blasé, j'ai oublié) alors je suis repassé à la version 0929i8 qui fonctionne beaucoup mieux malgré le pb de faux positif des éxécutables créé avec cette version. Du coup, quand j'ai testé les codes que tu as posté plus haut, ils ont fonctionné sans pb! | |
|
papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 14:00 | |
| Merci Silverman pour ton intervention. Par précaution, j’ai archivé les versions précédentes de Panoramic_Editor pour y retourner si besoin est. Et en effet, j’ai testé avec 0.9.29i8 et c’est OK, no problem.
@Jack Il vaut mieux avancer que rétrograder ! | |
|
Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... Sam 2 Mai 2020 - 18:46 | |
| @papydall: La fenêtre que tu présentes est de toute évidence un point de visualisation pour la mise au point que j'ai oublié de retirer. Cela sera bien évidemment corrigé dans la prochaine version. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
Contenu sponsorisé
| Sujet: Re: WHILE au sein d'une FNC déclenche une série de messages ... | |
| |
|