FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
division par zero et variable du type a=1.123e+12 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
division par zero et variable du type a=1.123e+12 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
division par zero et variable du type a=1.123e+12 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
division par zero et variable du type a=1.123e+12 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
division par zero et variable du type a=1.123e+12 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
division par zero et variable du type a=1.123e+12 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
division par zero et variable du type a=1.123e+12 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
division par zero et variable du type a=1.123e+12 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
division par zero et variable du type a=1.123e+12 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
division par zero et variable du type a=1.123e+12 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
division par zero et variable du type a=1.123e+12 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
division par zero et variable du type a=1.123e+12 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 division par zero et variable du type a=1.123e+12

Aller en bas 
5 participants
AuteurMessage
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptySam 28 Mar 2015 - 18:30

Bonjour à tous,

comment traitez vous la division par zéro?
Je ne veux pas que mon programme s'arrête quand il tombe sur une division par zéro, alors j'aimerais savoir s'il existe une commande pour désactiver l'affichage d'erreur. Pour l'instant, j'exploite ce qui me semble être un bug pour contourner ce problême, mais c'est un peu "lourd" à mon goût.
Code:

' creation d'un nombre négatif très grand
dim big_number,bn%,i%
  bn%=adr(big_number)
  poke bn%,127
  for i%=1 to 5
     poke bn%+i%,255
  next i%
  poke bn%+6,239
  poke bn%+7,255
free i%
free bn%


dim tmp$,tmp,result

' ne retourne aucune erreur???
tmp$=1/0

' traitement
zero_div(tmp$)

' affichage
result=tmp
print result



end
SUB zero_div(myvar$)
'
  if numeric(myvar$)=1
     tmp=val(myvar$)
  else
     if len(myvar$)=4
        ' -INF
        tmp=big_number
     else
        ' INF
        tmp=0-big_number
     end_if
  end_if
 
end_sub

et aussi y a t-il un moyen de créer des variables du type a=1.123e+12?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptySam 28 Mar 2015 - 18:42

Tu as sûrement tenté la commande ON_ERROR_GOTO, mais elle ne suffit pas, ici. Cette erreur n'est pas interceptée par cette commande.

Mais il y a une solution: tu peux tester la numéricité du resultat, avant de le calculer pour de bon. Et le test de numéricité est bien soumis à l'interception de l'erreur par ON_ERROR_GOTO. Voici comment faire:
Code:
label bad
dim i%
on_error_goto bad
i% = numeric(1/0) : ' <===== cette ligne déclenche l'erreur
i% = 1/0          : ' <===== alors que cette ligne planterait si elle n'était pas précédée par le test
off_error_goto
end
bad:
off_error_goto
message "Panoramic: erreur en division par 0"
end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptySam 28 Mar 2015 - 20:13

Silverman a écrit:
et aussi y a t-il un moyen de créer des variables du type a=1.123e+12?

La réponse est oui : mais on doit utiliser la fonction POWER

Code:

dim a
a = power(1.123,12) : print a   : ' c'est l'équivalent de 1.123e+12
a = power(10,0-10 ) : print a   : ' c'est l'équivalent de 10e-10
a = power(123,123 ) : print a   : ' c'est l'équivalent de 123e+123
a = power(123,0-123): print a   : ' c'est l'équivalent de 123e-123


REMARQUE : En Panoramic, quand on utilise le moins unaire, on doit le précéder par 0
exemple :
POWER(10,-5 ) === > erreur
Il faut faire
POWER(10,0-5)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptySam 28 Mar 2015 - 22:54

Bonjour tout le monde
Je viens de constater la chose suivante.
Je voulais compléter le post de Papydall en signalant le fait qu'on peut écrire :
a = val(1.234e12)
Avec les versions -> 9.25 de Panoramic, ça marche très bien.
Avec la 9.26... ça ne marche plus !
Voulu ? Auquel cas c'est dommage ! Je vais avoir plein de programmes qui ne marchent plus
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptySam 28 Mar 2015 - 23:42

Je ne pense pas que ce soit voulu, mumu ! C'est un bug, et en tant que tel, poste-le dans la section des bugs ! La version 26i5 a à l'évidence un certain nombre de problèmes...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 1:27

Mumu a écrit:
Bonjour tout le monde
Je viens de constater la chose suivante.
Je voulais compléter le post de Papydall en signalant le fait qu'on peut écrire :
a = val(1.234e12)
Avec les versions -> 9.25 de Panoramic, ça marche très bien.
Avec la 9.26... ça ne marche plus !
Voulu ? Auquel cas c'est dommage ! Je vais avoir plein de programmes qui ne marchent plus

Détrompe-toi Mumu.
Il n’y a rien de changé avec cette notation : ça marche toujours et tu n’auras aucun besoin de modifier tes anciens programmes si vraiment ils marchaient.
Tu as tout simplement oublié de mettre l’expression entre guillemets !
Voici comment faire
Code:
 a = val("1.234e12")

Et ça marche.
Parole de Papydall Laughing


EDIT
Curieusement ce code marche aussi

Code:
dim a
a = "123e123"  : print a
a = "123E123"  : print a
a = "123e-123" : print a
a = "123"      : print a * 2
a = "1" + "2"  : print a  : ' ça donne 12 : une concaténation, pas une addition
print a/3      : ' ça donne 4

Je trouve que c’est simplement bizarre!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 12:47

Hello
@Papydall
J'ai fait une petite erreur dans mon post. Les guillemets sont bien présents et le code ne marche pas !
du moins en ce qui concerne 9.26. Avec les versions antérieures ça marche sans problème.
@Klaus
Ok. je vais donc le signaler comme bug
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 15:09

Et pourtant ça marche avec la version 0.9.26i5 du 7 janvier 2015!

division par zero et variable du type a=1.123e+12 Sans_t11
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Mumu




Nombre de messages : 176
Localisation : 45
Date d'inscription : 20/12/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 15:22

Ah !  c'est peut être un début d'explication... Moi j'ai la 9.26i3 !
Je recherche la bonne et je teste

Edit :
Euh... Quelqu'un peut me dire où je peux trouver cette version ?  Embarassed
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 15:37

La version  0.9.26i3  ne reconnait par le POINT DECIMAL : elle ne reconnait que la VIRGULE DECIMALE. c'est un bug qui est corrigé.


Teste ceci et ça marchera en version 0.9.26i3
Code:
 a = val("1,234e12")

Pour la version 0.926i5, c'est ici


La version 0.926i5 permet d’utiliser soit le point soit la virgule comme séparateur décimal
Code:
 dim f$
f$="123.456"
print val(f$)
separator_is_comma
f$="123,456"
print val(f$)
separator_is_point
f$="123.456"
print val(f$)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: re   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 16:49

Pour la division par 0, n' est il pas plus simple de vérifier que le diviseur n' en soit pas un...de 0 ?

if diviseur%=0 
   détournement
else
   division
end_if
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 19:15

@papydall
Citation :

dim a
a = power(1.123,12) : print a   : ' c'est l'équivalent de 1.123e+12
a = power(10,0-10 ) : print a   : ' c'est l'équivalent de 10e-10
a = power(123,123 ) : print a   : ' c'est l'équivalent de 123e+123
a = power(123,0-123): print a   : ' c'est l'équivalent de 123e-123
Shocked pas d'accord, power(A,B) correspond à A puissance B, et pas à A*(10 puissance B). C'est la solution proposé par mumu que je retient, c'est exactement ce que je cherchais.

Citation :

Curieusement ce code marche aussi

Code:
   dim a
   a = "123e123"  : print a
   a = "123E123"  : print a
   a = "123e-123" : print a
   a = "123"      : print a * 2
   a = "1" + "2"  : print a  : ' ça donne 12 : une concaténation, pas une addition
   print a/3      : ' ça donne 4


Je trouve que c’est simplement bizarre!
du coup:
Code:

dim a$
a$=1+2
print a$ : ' ça donne 3
ça ne me parait plus bizzare! Very Happy


@Klaus
en fait, je ne veux pas que le programme se termine, même si le résultat est une division par zéro. J'utilise numeric(V$) dans le code que j'ai posté, mais je ne savais pas que l'on pouvait utiliser numeric(V) directement avec des expressions numériques.


@ygeronimi
effectivement, c'est le plus simple. Je pense que vais adopter ça.
Je ferais au cas par cas, puisque tan(pi/2) ne retourne pas d'erreur(je me doute que c'est dû au nb de chiffres apres la virgule, de pi) ce qui m'arrange bien, alors que acos(2) retourne bien une erreur.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 19:24

@silverman:
Citation :
@Klaus
en fait, je ne veux pas que le programme se termine, même si le résultat est une division par zéro. J'utilise numeric(V$) dans le code que j'ai posté, mais je ne savais pas que l'on pouvait utiliser numeric(V) directement avec des expressions numériques.
Evidemment, le programme ne doit pas se terminer... Je l'ai juste codé comme ça en quelques lignes, pour montrer l'interception de l'anomalie par ON_ERROR_GOTO sur la fonction NUMERIC(...), alors que sur le calcul direct d'une expression, cette interception ne marche pas. Retiens juste que ON_ERROR_GOTO suivi de NUMERIC(...) permet de capter toute anomalie numérique.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 EmptyDim 29 Mar 2015 - 20:35

@Silverman
Tu as parfaitement raison.
Je me demande comment j’ai pu écrire une telle monstruosité ! Embarassed
Je m’excuse humblement.
Voici  comment faire
Code:
 dim a
a = 123*power(10,5) : print a    : ' 123E5 = 12300000
a = 0.0001*power(10,4) : print a : ' 0.0001E4 = 1
a = power(10,0-10)  : print a    : ' 1E-10
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





division par zero et variable du type a=1.123e+12 Empty
MessageSujet: Re: division par zero et variable du type a=1.123e+12   division par zero et variable du type a=1.123e+12 Empty

Revenir en haut Aller en bas
 
division par zero et variable du type a=1.123e+12
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» probleme de variable type tableau dans une boucle
» 2ème "dim" sur variable EFFACE la variable
» reste d'une division
» reste d'une division entière
» Probleme division d'entier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: