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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
division par zero et variable du type a=1.123e+12 Emptypar papydall Aujourd'hui à 16:57

» PANORAMIC V 1
division par zero et variable du type a=1.123e+12 Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Hier à 17:00

» number_mouse_up
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
division par zero et variable du type a=1.123e+12 Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
division par zero et variable du type a=1.123e+12 Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
division par zero et variable du type a=1.123e+12 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
division par zero et variable du type a=1.123e+12 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
division par zero et variable du type a=1.123e+12 Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
division par zero et variable du type a=1.123e+12 Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
division par zero et variable du type a=1.123e+12 Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
division par zero et variable du type a=1.123e+12 Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
division par zero et variable du type a=1.123e+12 Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
division par zero et variable du type a=1.123e+12 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

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

Aller en bas 
5 participants
AuteurMessage
silverman

silverman


Nombre de messages : 968
Age : 51
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 : 12295
Age : 74
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 : 7008
Age : 73
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 : 12295
Age : 74
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 : 7008
Age : 73
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 : 7008
Age : 73
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 : 7008
Age : 73
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 : 8610
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 : 968
Age : 51
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 : 12295
Age : 74
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 : 7008
Age : 73
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
» Probleme division d'entier
» reste d'une division entière

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: