nodgim a écrit:ça il faut le savoir, une calculette ou autre machine ne prévient pas (c'est bien dommage ! )
Le "léger" problème, ben c'est qu'elle te "préviendrait" quasiment tout le temps qu'elle est en train de se gourer vu que le simple calcul de 1/5 qui "tombe rond" en base 10 (ça fait 0,2) ne tombe pas rond en base 2 donc est tronqué si la machine utilise la méthode usuelle de stockage des nombres flottant.
Et concernant les langage de programmation, le "hic", c'est que l'évolution de certains langages, ça s'est surtout fait avec comme objectif de rendre le langage plus intuitif pour le programmateur débutant et qu'évidement, c'est au détriment de la compréhension de ce qui se passe réellement dans la machine.
Par exemple, avec le bon vieux Pascal d'antan (et c'est la même chose que le C encore beaucoup utilisé aujourd'hui), si tu utilisait une variable X, ben il fallait la déclarer et, si par exemple tu la déclarait de type "int" le premier truc que te disait absolument toutes les docs., c'est que dans ce cas, ta variable contiendrait un entier entre -32768 et 32767. Ensuite, c'était à toi de voir (directive de compilation) si tu voulait que le programme fasse des test ou pas pour vérifier qu'il n'y ait pas de dépassement de capacité lors des calculs (c'est évidement rassurant mais c'est coûteux en temps) ou si tu voulait qu'il n'en fasse pas.
En fait, au coeur des microprocesseur, sur les entiers, il y a un drapeau qui signale s'il y a eu ou pas dépassement de capacité, mais il est à interpréter en fonction du contexte (est ce que ta variable représente un entier signé ou pas) et rien ne t'oblige à tenir compte de ce drapeau (le programme peut très bien ne même pas regarder la valeur du drapeau après le calcul).
Attention à lire correctement ce que j'ai écrit : c'est bien évident que d'apprendre à programmer en C (voir en langage machine), ça va pas être la même chose au niveau difficulté qu'un truc comme Python.
Mais faut bien voir qu'on peut pas avoir le beurre et l'argent du beurre : si tu veut aller "pas mal plus loin" (algorithmique un peu poussée; structures de données complexes; etc...) le choix d'un langage "simple au début", tu va forcément le payer ensuite.