Notion d'infini en vb6

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 509 fois - Téléchargée 18 fois

Contenu du snippet

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 / Exemple :


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).

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
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.
Messages postés
102
Date d'inscription
lundi 29 décembre 2003
Statut
Membre
Dernière intervention
28 juin 2007

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.
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009

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 ^^
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
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 !
@+
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009

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.
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.