Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

NOTION D'INFINI EN VB6


Information sur la source

Catégorie :Maths Classé sous : infini, maths, expression Niveau : Débutant Date de création : 27/06/2007 Vu : 4 101

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

Description

J'ai lu recement dans le forum quelqu'un qui demandait des renseignements sur l'infini et apres un long delire des moderateurs (^^) sur cette notion plus qu'abstraite, la reponse a la question comment savoir si un nombre est infini ou comment faire des calcules avec l'infini n'etait pas tres claire.
Je me suis apercu depuis peu que les nombres Double et Single, renvoyaient des informations exploitabes losque l'on faisait des calcules avec des expressions tel que 1 / 0 ou 0 / 0.

Bon le bout de code que j'ai ecrit montre comment exploiter ces infos rien de tres compliqué.
 

Source

  • Private Sub Form_Load()
  • On Error Resume Next
  • ' vu que 1 / 0 renvois division par 0 on est obligé de desactiver les erreurs
  • Dim a As Single, b As Single, c As Single, d As Single, e As Single, _
  • f As Single, g As Single, h As Single, i As Single, j As Single
  • ' Fonctione pour des nombres Single et Double
  • a = 1 / 0 ' + infini
  • b = -1 / 0 ' - infini
  • c = 0 / 0 ' indeterminé
  • d = 1 / a ' 1 / infini = 0
  • e = a * b ' infini * -infini = - infini
  • f = a + b ' infini + -infini = normalement indeterminé mais la ca donne vide
  • g = a / 0 ' infini / 0 = infini
  • h = 0 / a ' 0 / infini = 0
  • i = a / b ' infini / infini = normalement indeterminé mais la ca donne vide
  • j = 0 * a ' 0 * infini = normalement indeterminé mais la ca donne vide
  • Print a, IsExpression(a)
  • Print b, IsExpression(b)
  • Print c, IsExpression(c)
  • Print d, IsExpression(d)
  • Print e, IsExpression(e)
  • Print f, IsExpression(f)
  • Print g, IsExpression(g)
  • Print h, IsExpression(h)
  • Print i, IsExpression(i)
  • Print j, IsExpression(j)
  • End Sub
  • ' Description : Renvois 2 si l'expression est reel
  • ' 1 si l'expression vaut +infini
  • ' 0 si l'expression est indeterminée
  • ' -1 si l'expression vaut -infini
  • ' NB : Une expression vide est considerée comme indeterminée
  • Public Function IsExpression(Expression) As Long
  • IsExpression = 2
  • If Expression = "1,#INF" Then IsExpression = 1
  • If Expression = "-1,#INF" Then IsExpression = -1
  • If Expression = "-1,#IND" Or Len(Expression) = 0 Then IsExpression = 0
  • End Function
Private Sub Form_Load()

On Error Resume Next
' vu que 1 / 0 renvois division par 0 on est obligé de desactiver les erreurs

Dim a As Single, b As Single, c As Single, d As Single, e As Single, _
f As Single, g As Single, h As Single, i As Single, j As Single
' Fonctione pour des nombres Single et Double

a = 1 / 0 ' + infini
b = -1 / 0 ' - infini
c = 0 / 0 ' indeterminé
d = 1 / a ' 1 / infini = 0
e = a * b ' infini * -infini = - infini
f = a + b ' infini + -infini = normalement indeterminé mais la ca donne vide
g = a / 0 ' infini / 0 = infini
h = 0 / a ' 0 / infini = 0
i = a / b ' infini / infini = normalement indeterminé mais la ca donne vide
j = 0 * a ' 0 * infini = normalement indeterminé mais la ca donne vide

Print a, IsExpression(a)
Print b, IsExpression(b)
Print c, IsExpression(c)
Print d, IsExpression(d)
Print e, IsExpression(e)
Print f, IsExpression(f)
Print g, IsExpression(g)
Print h, IsExpression(h)
Print i, IsExpression(i)
Print j, IsExpression(j)

End Sub


' Description : Renvois 2 si l'expression est reel
'                       1 si l'expression vaut +infini
'                       0 si l'expression est indeterminée
'                       -1 si l'expression vaut -infini
' NB : Une expression vide est considerée comme indeterminée
Public Function IsExpression(Expression) As Long

IsExpression = 2
If Expression = "1,#INF" Then IsExpression = 1
If Expression = "-1,#INF" Then IsExpression = -1
If Expression = "-1,#IND" Or Len(Expression) = 0 Then IsExpression = 0

End Function

Conclusion

Bien entendus pour faire des calcule avec l'infini il faudra gerer les resultat de la fonction IsExpression au moin qui ne renvois pas une erreur.
Voila ca montre que l'infini existe aussi en vb6 et que les machines pourront bientot remplacer les hommes (lol).
 

Commentaires et avis

signaler à un administrateur
Commentaire de hvb le 28/06/2007 09:40:49

"' 0 * infini = normalement indeterminé mais la ca donne vide"
normalement indeterminé..?? ^^

signaler à un administrateur
Commentaire de Neron2005 le 28/06/2007 10:15:06

oui si on multliplis 0 * infini c'est une forme indeterminer tout comme 0 / 0 et infini - infini mais dans le cas present, vb6 ne renvoi pas -1,#IND mais rien. Voila.

signaler à un administrateur
Commentaire de hvb le 28/06/2007 11:15:59

pourquoi cela serait indeterminé..?
0 * x = 0
que x soit égale à 1, 45698, + l'infini ou - l'infini...

signaler à un administrateur
Commentaire de monsieurlemouche le 28/06/2007 11:50:53

bonjour,
puis-je mettre mon grain de sel?
Il est important de savoir de quoi on parle et se méfier des abréviations.
0*x=0 quel que soit x et ceci, je le maintiens.
Alors d'où vient le fait que certains disent que 0*inf=indeterminé ?

Sommes nous d'accord sur: 1/inf=0.
Donc 0*inf=1

Mais 2/inf=0 donc 0*inf=2 et finalement 0*inf=indet !!!!!

Alors, 0*inf=0 ou 0*inf=indeter ??

quand on écrit 2/inf=0, il faut comprendre la limite dela fonction quotient (qui égale le quotient des limites) vaut 0. Il y a là une différence fondamentale entre 0 et limite vers 0.
donc 0*inf=0 : vrai

et lim(fonction qui tend vers )*lim(fonction qui tend vers inf)=indeterminé

exemple: lim(x^2*(1/x))=+inf
lim(3x*(1/x))=3
lim(x*(1/x^2))=0
la forme est bien indeterminée.

monsieurlémouche

signaler à un administrateur
Commentaire de hvb le 28/06/2007 12:27:04

c'est un problème d'écriture ici, non?
car tu dis
"Sommes nous d'accord sur: 1/inf=0.
Donc 0*inf=1"
Mais nous en cours, on ne notait pas 1/inf=0 mais 1/inf=(0+)
Donc (0+)*inf tend vers 1,  mais pas 0*inf n'est pas égale à 1

Mais mon niveau de maths va m'arreter là dans le débat, je risque de sortir de jolies conneries ^^, car je crois que c'est là on tu voulais en venir. ^^

signaler à un administrateur
Commentaire de monsieurlemouche le 28/06/2007 12:46:28

salut,
en maths, de manière abrégée, on note 1/lim inf=0
que ce soit par valeur positive (0+), ou valeurs négatives (0-), cela reste une limite de 0. Rappelons nous que limite=0 signifie que le zéro n'est jamais atteint, comme l'infini d'ailleurs. Ce qui en fait un "chiffre" très différent de 0. Pour être provocateur, je pourrais écrire: 0*inf=0+ (car le zéro plus, est un chiffre différent de zéro, au même titre que 3, 8, 10 milliards).
à plus.
monsieurlémouche

signaler à un administrateur
Commentaire de Neron2005 le 28/06/2007 12:49:55

Un autre exemple  0 * infini = infini
lim x^2 * 1 / x = lim x = infini
quand x tend vers l'infini

lim 3x * 1/x = lim 3 = 3
quand x tend vers 0

bien une forme "infini * 0"

ca vaut soit 0, soit une valeur reel soit l'infini c'est donc bien indeterminé.

Apres ca consite surtout a fair un bon boulot de factorisation, histoire de suprimer les formes indeterminées enfin c'est le principes des limites.

signaler à un administrateur
Commentaire de MadM@tt le 28/06/2007 13:03:42

Ouais perso déjà je trouve bizarre que VB6 sorte une valeur pour 1/0, mais alors après qu'on l'utilise et qu'on l'appelle infini, encore plus bizarre. Quelle valeur a t'elle ?
Je veux dire on mélange tout la, l'infini est une notion mathématique sans valeur à proprement parler. Ici on lui donne une "grande valeur" et hop c'est l'infini.

Bref je suis moyennement convaincu par cet exemple. En plus je ne vois pas trop l'intéret de récupérer cette valeur...

signaler à un administrateur
Commentaire de Neron2005 le 28/06/2007 13:03:46

De tout facon tout le monde est d'accord pour dire que 0 / 0 est indeterminé or 1 / 0 = infini donc 0 / 0 = 0 * 1 / 0 = 0 * infini
donc 0 * infini = 0 / 0 est une forme indeterminé.

signaler à un administrateur
Commentaire de Neron2005 le 28/06/2007 13:28:27

Cette source a justement pour but de montrer que vb6 renvois une valeur pour 1 / 0. et 1 / 0 c'est pas une nombre tres grand, c'est infini car un nombre tres grand multiplié par un nombre tres petit ne donne pas toujours la meme chose 10^200 (=infini) et 10^-100 (=0) [d'apres un tel raisonement] => 0 * infini = 10 ^ 200 * 10^-200 = 10 ^ 100 c'est pas vraiment preci.

signaler à un administrateur
Commentaire de MadM@tt le 28/06/2007 13:49:26

Ahhh ok je viens de tester et de comprendre. La "valeur" infini est en fait une notation... C'était pas très clair je pensais que c'était un vrai nombre.

signaler à un administrateur
Commentaire de violent_ken le 28/06/2007 19:42:53

Débat mathématique ==> j'arrive !!! ;)

En fait, toutes ces écritures ne sont pas rigoureuses !

On n'écrit JAMAIS "inifini" (ou le signe correspondant) dans des équations en mathématiques. C'est juste une "facilité" d'écriture pour mieux comprendre certaines choses, mais c'est FAUX d'écrire çà.

Par conséquent, le débat du "0 * infini = ?" n'avancera pas : cette écriture est impossible, donc pas de résultat possible (pas de indéterminé, 0, 1, infini ou je ne sais quoi ==> on ne l'écrira jamais).

Tout comme 0/infini...etc. On ne manie pas l'infini comme cela.


Par contre il est clair que
Lim (x->infini) 0*x = 0 (et non pas indéterminé, car 0 fois n'importe quoi de réel = 0, même si ce n'importe quoi tend vers l'infini comme 1/x^4 ou pire encore)

tout comme

Lim (x->infini) 1/x = 0


En tout cas pour revenir au code, c'est pas mal d'avoir montré le résultat 1,#INF et 1,#IND !
@+

signaler à un administrateur
Commentaire de MadM@tt le 28/06/2007 22:14:08

Oui je suis d'accord avec :
Lim (x->infini) 0*x = 0 (et non pas indéterminé, car 0 fois n'importe quoi de réel = 0, même si ce n'importe quoi tend vers l'infini comme 1/x^4 ou pire encore)

ça sera indéterminé si c'est x->0 * y->infini (si je me trompe pas ?)

enfin y'a moyen que toutes ces maths de comptoir qu'on fait risques de faire rigoler les quelques "vrais" mathématiciens qui pourraient passer par la ^^

signaler à un administrateur
Commentaire de monsieurlemouche le 28/06/2007 22:17:06

il n'est pas impossible que le clavier de l'ordinateur et notre désir d'écrire à la volée ne facilitent pas les nuances, importantes sur ce sujet.

signaler à un administrateur
Commentaire de us_30 le 30/06/2007 23:04:29

Bonsoir,

Faut faire gaffe les gars ! Cantor est tombé fou avec ces histoires là ! -:);

M'empêche qu'il est interessant de voir qu'on peut retirer un renseignement avec les calculs impossibles ou infini (au delà de l'interpretation mathématique). C'est une bonne idée d'avoir mis en lumière cela.

Amicalement,
Us.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment evaluer une expression ? [ par GEDDi ] Bonjour,je cherche comment on peut Evaluer une expression en VB :Exemple j'ai une fonction TOTO(args)qui renvoie 'hello' et je veux l'évaluer: exister Convertion d'un nombre en expression literrale [ par ThReM ] hello worldje cherche une source pour convertir un nombre en ce meme nombre mais ecris en toutes lettre (99 ==> quatre vingt dix neuf) en langage P existe t'il des expression reguliaire en vb [ par ayperos ] est ce que l'on peu creer des testes sur des expression reguliaire en vb...par exemple, est il possible de trouver une chaine de caractere "nn nnnn", Expression numérique [ par zelick ] G 1 pb tout bete que je n'arrive pas à résoudre! Un utilisateur rentre une valeur numerique dans un InputBox avec le pave numerique, exemple : 0.1; il Je trouve pu un programme !!! De calcul et d'expression!!!!!!!! [ par ATH|500| ] Voilà le programme que je cherche...Un programme qui traçait les lignes graphiques de différentes fontions comme Tan Sin Sin-1 etc. etc.. Mais je m'en Evaluation Expression [ par erreurs404 ] Bonjour à tous,j'ai une série de fonctions du typemsg_user()msg_oper()msg_desc()etc ...ce que j'aimerais c'est pouvoir les lancer par l'évaluation d'u SQL Expression Editor de Crystal Reports 9 [ par stageeditionsdoc ] Je voudrais savoir quel genre d'expression SQL cet edieur acceptait. Un exemple serait le bienvenu.Merci.nico expression reguliere en VB [ par wonesek ] Bonjour tout le monde,je voulais savoir comment on manipulait les expressions regulieres en VB.je "viens" du VBS et l'objet regExp facilitait la tache traduire une expression régulière en VB [ par XWinnieX ] Bonjour, comment faire pour traduire cette expression régulière en VB ?[0-9]+[.,][0-9]+En francais ca donne :au moins un chiffre suivi d'un point ou d ALG de Compression: Trouver l' expression d' un suite [ par vbGuy ] Je suis entrain de programmer un nouvel algorithme de commpression et je me pose des questions sur le fait qu' il soit possible a partir d' une liste


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,030 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.