[BASIC]Division entière...

Bonjour

Juste pour vous faire part d'un petit problème que je viens d'avoir...

J'ai surtout l'habitude de programmer en C. Dans je viens de voir que la division entière n'est pas gérée pareil en BASIC ! À moins que ce ne soit un bug de la version que j'utilise ?

En C, quand on divise deux entiers : a=b/c , on ne garde que la partie entière du résultat : 7/4 donne 1.

Et là, ça me donnait l'arrondi. Donc, ici 7/4 donnait 2 :frowning:

J'ai du écrire a=int(b/c). Moyen comme gag :frowning:

Bonjour,

Si je ne m'abuse, la division entière en BASIC se fait par \. Donc a = b\c... mais ça remonte vraiment  à loin !

Thierry

Essayons a=b\c (backslash)

Régis Perdreau

Salut,

Logique. Tout dépend de la déclaration :

b=7
c=4
a=b/c
Msgbox a donne 1.75 le typage se fait pendant le calcul

si je commence par "dim a as integer" j'obtiens 2 (l'arrondi supérieur)

Bonne soirée,

Bonjour,
je confirme, comme dans beaucoup de langages, la division par / est réelle, et pour avoir une division entière il faut \
donc 7\4 = 1

Merci.

je viens d'apprendre quelque chose !

Dans calc,
la fonction quotient(numérateur;dénominateur) donne le
quotient entier
et la fonction mod(dividende;diviseur) donne le reste
dans la division de deux entiers.
il me semble me souvenir que la fct mod existe en basic ....

hgrac

En C, c'est %.

En basic : https://help.libreoffice.org/6.2/fr/text/sbasic/shared/03070600.html?&DbPAR=WRITER&System=UNIX

Et je viens de l'utiliser... Merci :wink: