p. 8: Encyclopédie pour mon n'veu

INformatique : les langages

C’est quoi un langage ?

C’est fait pour communiquer, entre deux personnes (même si la personne c’est un PC !)
Une langue C’est :
- un alphabet , chez les européens de l’Ouest  les lettres A,B,C,D,…
- Des mots constitués de lettres forment le vocabulaire. Il y a pas mal de possiblités mais toutes ne sont pas correctes. Les mots doivent appartenir au dictionnaire de la langue : jambon, table à repasser, telephone, maison mais “cradeufz”.
- Des règles (la grammaire) qui permettent de construire des phrases correctes :je mange du jambon à la maison

Quelques exemples :
L e français : alphabet de 26 lettres, vocabulaire usuel d’un ministre : 10000 mots, d’un jeune avec une casquette à l’envers : 25 mots de ta race !
En russe : un alphabet, mais pas le même
En chinois : pas d’alphabet, des signes (chinois) qui représentent des mots
Et le sens dans tout ca ?

Et bien c’est pas parce que le vocabulaire et la grammaire sont corrects que ca a forcément un sens, et que c’est compréhensible. L’homme et l’ordinateur diffèrent  sur ce point et sur un certain nombre d’autres, le 1er est assez sensible au sens le 2eme beaucoup moins. Exemple étonnant en Français : « j’ai téléphoné à un jambon avec ma table à repasser »
Cette phrase est correcte mais n’a pas trop de sens (dans l’état actuel de nos connaissances, mais dans un futur proche il faut voir)

Le premier langage de l’ordinateur (le seul ? ) : le binaire

L’ordinateur vous avez surement remarqué parle mal la France (parfois même il vous insulte dans sa langue à lui et on n’y comprend que dalle)
L’ordinateur comprend uniquement des 0 et des 1.
Pourquoi ? Parce que c’est une machine électronique et à travers ses circuits circule uniquement de l’électricité. Le courant passe c’est un 1, le courant ne passe pas c’est un 0.
C’est la langue (on dit plutôt “le langage”) binaire.

L’alphabet est assez pauvre : il y a 2 lettres : 1 et 0
Il y a quelques centaines de mots binaires compris par un ordinateur.
1000011000 est un mot du langage binaire par exemple, et ca nous laisse un peu songeur. Mais du moment qu’il comprend lui c’est l’essentiel.
Au début de l’informatique et jusque dans les années 80, les informaticiens parlaient le binaire couramment et donnaient directement des ordres de calcul du type “0000111″ et que ca saute ou même “111100″ ou je te débranche du 220V ! (certains parmi les plus atteints parlaient même binaire entre eux). C’étaient un peu compliqué de connaître tous les mots d’autant plus que des ordinateurs différents (celui d’IBM ou de BULL à l’époque) parlaient des langages différents. Alors les informaticiens devaient apprendre autant de langage binaires qu’il y avait d’ordinateurs.
les autres langages et leur traduction

Quand ils en ont eu marre de parler binaire, les informaticiens (peuple rustique mais ayant parfois des idées lumineuses) ont inventé des langages plus simples à parler, avec des vrais mots et qu’on pouvait écrire avec un simple traitement de texte (genre bloc note Windows). Mais du coup ca devenait incompréhensible pour l’ordinateur et ils devaient le traduire…en binaire.
Deuxième idée de génie, ils ont écrit des programmes, qui faisaient la traduction de ces langages dits “évolués” et de matière complètement automatique. Ces traducteurs automatiques s’appellent des interpréteurs ou des compilateurs.
Un interpréteur traduit au fur et à mesure et ordre par ordre: A chaque fois qu’on relance le programme il est retraduit. C’est plus long et un peu bête de recommencer à chaque fois, mais au moins ca reste facile à lire.
Le compilateur prend l’ensemble du texte et le traduit une fois pour toute en binaire. Le programme s’exécute donc plus vite mais on ne peut plus le relire puisqu’il est en binaire.
Quelques exemples de langages :
HTML, javascript, java sont des langages pas mal utilisés pour Internet
C, C++, visual basic sont plus utilisés dans les entreprises

Remarque : les mots des langages informatiques sont pratiquement tout le temps en Anglais.
Avant de continuer, prenez une heure ou deux pour apprendre l’Anglais.

Exemple de phrases dans certains langages
HTML : HEADER TITLE Salut /TITLE /HEADER
Javascript : if (nombre == 1) { window.write(

Maths et informatique : le calcul binaire

Ca peut paraître un peu ringard d’étudier le langage binaire, vu qu’il ya plein de langages évolués maintenant et autrement à la mode (Java, PHP, Visual Basic, C#, etc) et en détail en plus, vu que je viens de vous dire qu’il n’y a que la machine qui y comprend quelquechose et pas nous. Mais justement ca nous fait un petit défi , moi je trouve ca assez motivant, et pi ça dérouille un peu les neuronnes qui s’étaient mis en Stand By devant “l’île de la séduction” et “Starak” ( à pas confondre avec Startrek, où ils ont les oreilles en pointe). Bref pour comprendre le binaire on va d’abord faire du calcul.

Compter en décimal (c’est déjà pas mal)

Arretez de compter en décimal, tout le monde sait le faire ! (hypothèse).

Mais au fait comment on compte en décimal ? Décimal ca veut dire qu’on a 10 chiffres à notre disposition pour faire tous les nombres qu’on veut (y en a plein, y en a même une infinité !). Ca s’appele compter ou calculer en base 10.
Oui y en a 10 des chiffres parce qu’il faut pas oublier le ‘0′ ! : 0,1,2,3,4,5,6,7,8, 9 …ca fait 10 chiffres. Si vous connaissez d’autres chiffres appelez moi. (non, non les chiffres plus gros ça s’appelle pas des chiffres mais des nombres!)

Comment on fait pour écrire des chiffres plus grands que 9 ? … et bien on va laisser tomber les unités et on va utiliser dautres…unités : les dizaines, les centaines, les milliers, les dizaines de milliers, les centaines de milliers, les millions, les …OUF! Vous remarquerez que c’est toujours “à base de 10″ , ou plus exactement une puissance de 10, ou encore 10 multiplié par lui même un certain nombre de fois :

* 100, c’est 10 puissance 2 (ou 10 x 10 )
* 1000, c’est 10 puissance 3 (ou 10 x 10 x 10)
* 10000, c’est 10 puissance 4 ( ou 10 x 10 x 10 x 10)
* etc.

remarque : 10 c’est 10 puissance 1 ( ou 10 x , multiplication a un seul nombre 10 !)
Encore plus fort : 1 c’est 10 puissance 0, ca peut se démontrer en utilisant les règles de calcul sur les puissances sinon croyez moi sur parole)

Il y a donc un “miracle” qu’on a tous oublié, lorsque l’on passe de 9 à 10 (ou de 99 à 100 c’est pareil). Qu’est ce qu’on fait en fait pour écrire un CHIFFRE plus grand que 9 unités en base 10, vu qu’il y a pas plus grand ? et bien on écrit un NOMBRE à plusieurs chiffres : 1 et 0 ! vous allez me dire c’est DIX, c’est pas faux mais qu’est ce que ca veut dire “10″ : ca veut dire UNE DIZAINE PLUS 0 UNITES. En d’autres termes pour dépasser les 10 unités du système décimal on utilise les puissances de 10 supérieures (10 puissance 1, ca s’appelle des dizaines, 10 puissance on appelle ca des centaines, etc.).

Pour “dépasser” 99 : 9 unités + 9 dizaines ou 9*10 puissance 0+ 9*10 puissance 1

En fait tout nombre décimal qu’on a l’habitude de voir, peut toujours s’écrire sous forme d’une addition de puissance de 10 (on notera 10p pour 10 puissance…pour aller + vite). Des exemples ? :

7=7×10p0

32 = 2×10p0 + 3×10p1 (2 unités + 3 dizaines en francais dans le texte)

457 = 7×10p0 + 5×10p1 + 4×10p2

80654= 4×10p0 + 5×10p1 + 6×10p2+ 0×10p3 + 8×10p4

Heureusement tout ca on le fait automatiquement sans même plus faire attention…

Compter en binaire (c’est déjà pas naire)

En binaire c’est exactement la même chose sauf que c’est pas pareil.

Le binaire vous avez deviné, il calcule en base 2 : 0,1,…et on s’arrête parce qu’il n’y en a pas d’autres. La base (ou les puissances que l’on va utiliser) ce n’est plus 10 mais…2. Donc on va avoir des problèmes beaucoup plus rapidement pour compter et composer des nombres.

Les unités s’écrivent comme en base 10 en utilisant le fait que 2p0 ca fait 1 (de même que 10p0 faisait 1 aussi, ca c’est vrai quelle que soit la base qu’on utilise.
Recomptons donc un peu plus finement : 0 (0*2p0)…1(1×2p0)…et après ????? ca coince toujours ?

Bah après c’est pas dur il faut prendre la puissance de 2 supérieure soit 2p1, le nombre qui suit 1 (ou 1×2p0) c’est 1×2p1+0×2p0 c’est donc…10 !!! comme en décimal quand on avait épuisé tous les chiffres de la base 10! sauf que là 10 (le nombre qui s’écrit avec un 1 et un 0), il veut pas vraiment dire DIX mais…DEUX (puisqu’on est en base2)

Allo ? vous êtes toujours là ? une petite aspirine pour la route ?

Pour simplifier on va compter en binaire mais avec l’équivallent en décimal, parce que ca on maîtrise (enfin j’espère). Allez on compte, tout le monde après moi :

0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111

ce qui traduit dans notre système habituel base 10 s’épelle :

0,1,2,3,4,5,…

Pour le fun exercez vous à compter (DANS L’ORDRE!) jusqu’à des très gros nombre en binaire sur un papier. Il suffit de n’écrire que des nombres avec des 0 et des 1, et qu’ils soient de + en + grands. Ainsi en réfléchissant un peu on saura que le nombre binaire juste après 11001 (onze mille un ?) c’est 11010 (onze mille 10) on ne peut pas en trouver de plus près.

Quizz : ET après 1100101001011 ? c’est quoi ;-)

revenons à notre comptage :

0 en binaire c’est 0×2p0 = 0
1 en binaire c’est 1×2p0 = 1×1= 1
10 en binaire c’est 0×2p0 + 1×2p1= 0+2=2
11 en binaire c’est 1×2p0 + 1×2p1= 1+2=3
100 en binaire c’est 0×2p0 + 0×2p1 + 1×2p2= 0+0+4=4

Ainsi à partir de maintenant il faut faire attention à ce qu’on dit (ou écrit) on dira 100 en base 10,ca fait CENT et 100 en base 2 (ca fait 4…en base 10)

En binaire on ne parlera pas vraiment d’unité, encore moins de Dizaines et Centaines, mais chaque chiffre s’appellera un BIT (diminutif de BInary digiT en anglais), et on parlera simplement de la taille des nombre.
2 BITS c’est une paire ou un couple, 3 BITS c’est un triplet, 4 BITS un quartet, 5 bits un pentuplet, 6 BITS un sextuplet, 7 BITS un septuplet , 8 bits (très utilisé!) un OCTET.

Quizz : quel est le plus gros nombre (combien il vaut en binaire puis en décimal) que je puisse écrire avec 8 bits, ou en d’autres termes sur un octet ? ET sur 2 octets ? Et pour voir si vous avez compris comment j’écris DIX (10 en base 10) en binaire ? ET CENT ?
Unités de mesure et ordres de grandeur : Octets, KO, MO, GO, etc.
Octets

Un octet on l’a vu c’est 8 bits c’est une unité qui est très utilisée en Informatique notamment pour des raisons historiques :Une case mémoire a longtemps été de la taille d’un octet (système à 8bits de données) puis sont venus les systèmes à 16 bits de données (on pouvait stocker 2 fois plus d’information dans une case de la mémoire), puis 32 bits, etc.
Le nombre de cases possibles de la mémoire ou LA TAILLE de la mémoire ést aussi mesurée en octets. Que ce soit la mémoire centrale de l’ordinateur (ou RAM) qui permet de faire tourner les programmes, ou la mémoire disque, qui stocke les fichiers et les programmes de manière permanente.

Une autre bonne raison qui a fait le succès de l’octet c’est qu’un caractère : ‘A’, ‘B’, ‘C’ (bien utile pour taper au clavier non ?) c’est longtemps resté stocké dans un octet.

L’octet c’est en résumé l’unité classique qui sert à mesurer une quantité d’information. C’est pour cela que la taille d’un fichier, d’un document, d’un programme, de la mémoire RAM, d’un disque dur, d’un CD vierge est mesurée en octets. Cela donne une idée du volume d’information qu’il peut contenir. Un caractère étant souvent stocké (codé) dans un octet, quand on dit ce fichier ‘fait’ 120 000 octets, ca veut dire qu’il contient 120 000 caractères.

remarque : un octet par définition c’est huit fois plus gros qu’un bit. Quand on mesure en bits ou en octets, c’est pas pareil : le débit d’un Modem ou la vitesse de transfert d’un disque dur par exemple si elle est mesurée en bits, c’est huit fois moins que si elle mesurée en octets.
Kilo , méga et les autres

Comme on est en base 2, les milliers et millions ca n’existe pas ou du moins ca ne tombe pas juste. DIX en base 2 on peut le dire maintenant c’est (8+2) soit 2p3 + 2p0 soit 1010, CENT c’est 64 + 32 + 4 soit 1100100
MILLE c’est facile à écrire en base 10, c’est 10p3,ou 1000 mais en base 2 c’est plus compliqué MILLE c’est …oh et pis j’y arrive pas non plus ! Pour simplifire on va prendre un nombre simple en binaire qui se rapproche assez de 1000, bon allons y pour 2p10, ca fait 1024 c’est pas loin et ca s’écrit simplement 2p10 ou au pire 10000000000.

C’est pour ca que quand on parle de Kilo (mille en grec) en binaire c’ets pas tout a fait pareil que dans le langage courant. Un KILOgramme c’est mille grammes, un KILOmetre c’est 1000 metres, mais un KILObits …c’est 1024 bits !!! et par conséquent un KILOoctet (ou KO) c’est 1024 octets.
De même il n’y a pas de millions exacts, une MEGAtonne c’est un million de tonnes, mais un MEGAoctet (ou MO) c’est 1048576 = 1024×1024 octets ! Voyons les magnifiques unités informatiques dans le tableau suivant :
Unités     Initiales     Valeur approximative     puissance de 2     Valeur exacte
octet     O     8 bits     2p3     8
Kilo octets     KO     1000 octets     2p10     1 024
Méga octets     MO     1 million d’octets     2p20     1 048 576
Giga octets     GO     1 milliard d’octets     2p30     1 073 741 824
Tera octets     TO     1000 milliards d’octets     2p40     1 099 511 627 776
Peta octets     PO     1 million de milliard d’octets     2p50     1 125 899 906 842 624

La légende du Sultan et de l’échiquier (revue et corrigée par DD)

C’est l’histoire d’un gars, il y a pas mal de siècles qu’a rendu un super service à un Sultan bourré d’oseille et qui comme d’habitude est autorisé à faire un voeu. Le gars dit au sultan : “Vot’ sérénité prenez un échiquier et sur la premiere case déposez deux gramme d’or (à l’époque l’or c’était déja queque chose) sur la deuxième 4 gr , sur la 3eme 8 gr et le double a chaque fois jusqu’a la dernière case de l’échiquier, ca m’suffira comme KDO”. Le sultan, rigole, le prend pour un demeuré et lui dit “c’est tout ce que tu veux ? tu es sur? et bien soit !” Et il part se coucher en se bidonnant, tout content d’avoir arnaqué le pov’ gars.

Maintenant qu’on est les rois du binaire, on voit bien que le gars il était vachement malin (surement un informaticien de la pire espèce) :

2g sur la 1re, 2×2g (soit 2p2) sur la 2eme, puis 2×2x2g (soit 2p3) sur la 3eme, etc. on voit vite que sur la 10eme case on aura 2p10 gr, et sur la 64eme et dernière case de l’échiquier 2p64 gr. Soit d’après les règles de calcul sur les puissances : 2p60 x 2p4 soit 2p10×2p10×2p10×2p10×2p10×2p10×2p4 gr soit en gros 1000×1000x1000×1000x1000×1000x16 soit 16000 milliards de tonnes d’or !!!

Tout ca pour dire que les puissances de 2 ca n’a l’air de rien, mais ca augmente très, très, très vite. On se rend compte qu’un ordinateur qui manipule des données de 32 bits, peut stocker un nombre incroyable d’information différentes.
8bits , 16 bits , 32 bits…et plus si affinité

En construction…

Les puissances (en Maths)

Définitions et rappels

Les puissances d’un nombre c’est ce nombre multiplié par lui même un certain nombre de fois. Le nombre de fois donne…la puissance.

Ainsi 4×4x4 se dit ‘quatre puissance trois’ et vaut…64
3×3x3×3 se dit 3 puissance quatre, et vaut 3×3 : 9, 9×9…81

on remarque en passant que 3 puissance 4 ne donne pas le même résultat que 4 puissance 3. On dit que la puissance n’est pas commutative (on ne peut pas permuter les nombres sans changer le résultat). La division c’est pareil 4 divisé par  2 ca fait 2 ,mais 2 divisé par 4…ca fait pas 2. Par contre l’addition c’est commutatif 2 + 3 = 3 + 2 …mais on s’éloigne du sujet !

Dans la suite on notera 3 puissance 4 : 3p4 pour aller + vite.
Puissances de 10

Les puissances de 10 on les aime tous bien parce qu’on calcule TOUS en base 10, avec des unités, des centaines, des milliers, etc.
Comme vous le savez sans doute si vous utilisez une calculatrice, les puissances de 10 on se les représente assez bien, car la puissance indique le nombre de 0 derriere le 1. Ainsi 10p3 c’est un 1 avec 3 zéros derrière , c.a.d 1000 (mille).
De même 10p6, c’est un 1 avec 6 zéros derrière c.a.d 1000000 (un million)
Les règles de calcul sur les puissances

1) lorsqu’on multiplie une puissance d’un nombre par une puissance du même nombre les puissances s’ajoutent !

remarque : les nombres doivent être les mêmes, les puissances peuvent être égales ou différentes
exemples :

* 10p3 x 10p3 = 10p6
* 10p2×10p2 = 10p4 mais ça marche aussi avec les puissances de 2 ou de 3 :
* 2p4 x 2p3 = 2p7
* 3p2 x3p8=3p10

on peut faire un semblant de démonstration par l’exemple :

10p3 x 10p3 = (10×10x10) x (10×10x10) = 1000×1000= 1000000 = 10p6 et puissance 6 c’est bien puissance 3+3 ! (mais on le savait que 1000 x 1000 ca fait un million!)
2p4 x 2p3 = (2×2x2×2) x (2×2x2) = 2p7 et puissance 7 c’est bien puissance 4+3

Attention :

* ca ne marche pas avec les additions :
2p3 + 2p2 = 2×2x2 + 2×2= 8+4= 12 qui n’est pas 2p5 et qui n’est même pas une puissance de 2 !
* ca ne marche avec les multiplications si les nombres sont différents
2p3 x 3p2 = ?? = 2×2x2 x 3×3 = 8 + 9 = 17 !

2) lorsqu’on divise une puissance d’un nombre par une puissance du même nombre les puissances se soustraient !

exemples :

* 10p5 / 10p2 = 10p3
* 2p6 / 2p4 = 2p3
* 3p20 / 3p3 = 3p17

on peut (encore!) faire un semblant de démonstration par l’exemple :

10p5 / 10p2 = 10×10x10×10x10 / 10×10 on peut simplifier par 10×10 il reste 10×10x10 soit 10p3 ou 10 puissance 5 - 2 !
on aurait pu aller + vite : 10p5 / 10p2 = 100000 /100 = 1000 = 10p3
2p6 /2p4 = 2×2x2×2x2×2 / 2×2x2×2 on peut simplifier par 2×2x2×2 il reste 2×2 soit 2p2 ou 2p(6-4)
ou d’une autre façon : 2p6 /2p4 = 64 / 16 = 4= 2p2

3) toujours + fort : n’importe quel nombre à la puissance 0 ça fait 1

exemples :

* 2p0 = 1
* 8p0 = 1
* 43p0=1
* 12000000p0=1

il suffit d’appliquer la règle précédente, à savoir qu’une soustraction de puissance c’est pareil qu’une division de nombre:

2p0 c’est par exemple 2p(3-3) = 2p3 / 2p3 = 8:8 = 1 !
8 p0 c’est aussi 8p(2-2) = 8p2 / 8p2 = 1 (ca marche aussi)
ou on aurait pu choisir n’importe quelle soustraction qui fait 0 :
8p0 = 8p(12-12) = 8p12 / 8p12 = 1 !