Introduction à la programmation (420-PK2-SL) cours 1 Gestion des applications Technologie de l’information (LEA.BW)
Plan Présentation du plan de cours Mathématique Informatique Ne sera pas matière à examen, mais très utilise pour bien comprendre le fonctionnement d’un ordinateur. Plus précisément d’un compilateur
Numérotation « humaine » Numérotation décimale : base10 Basé sur 10 symboles arabes : 0 1 2 3 4 5 6 7 8 9 Chaque symbole est appelé un chiffre La composition de plusieurs chiffres forme un nombre Les nombres permettent d’exprimer les valeurs supérieures à 9 La valeur exprimée par un nombre est déterminée par les chiffres utilisés et leur position
Base 10 ou décimale Exemple: 99910 Exemple De droite à gauche (position 0 à 2) Le premier 9 vaut 9 Le deuxième 9 vaut 90 Le dernier 9 vaut 900 Et on additionne le tout Valeur liée à un chiffre = le chiffre * baseposition Exemple 99910= 9 X 102 + 9 X 101 + 9 X 100
Numérotation « électronique » Informatique Traitement automatique de l’information L’outil de traitement est l’ordinateur L’ordinateur est un assemblage de circuits électriques L’information est codée avec 2 tensions Deux symboles suffisent 0 et 1 L’ordinateur travaille en base 2 (binaire)
Unité de mesure d’un ordinateur Un ordinateur connaît plusieurs bases de numérotation Décimale (base 10) Binaire (base 2) Octale (base 8) Hexadécimale (base 16) Prérequis pour comprendre un ordinateur Expressions de valeurs en base 2,8,10 et 16 Les changements de base 2 à 8 à 10 à 16
Base 2 ou binaire Les seuls chiffres permis sont 0 et 1 Tout comme la base 10, la position des chiffres est importante Exemple: 1102=1 X 22 + 1 X 21 + 0 X 20 = 610
Base 16 ou hexadécimale Pour les bases plus grandes que 10, les symboles utilisés comme chiffres sont les lettres majuscules de l’alphabet Ainsi en base 16 les symboles sont : 0 à 9 A à F pour 10,11, 12,13, 14 et 15 Exemple 1AFF16 = 1 X 163 + 10 X 162 + 15 X161 + 15 X 160 =691110
Base 8 ou octale Pour les bases plus petites que 10, on utilise un sous- ensemble des symboles 0 à 9. Ainsi en base 8 les symboles sont : 0 à 7 Exemple 1758 = 1 X 82 + 7 X 81 + 5 X80 = 12510
Les changements de base La conversion de nombres en base 2, 8 et 16 en base 10 se fait par multiplication Le changement de base inverse se fait par division
Les changements de base De la base 10 à la base 2, il suffit de faire une suite de division ENTIÈRE par 2 jusqu’à ce que le résultat donne 0. La valeur binaire est la concaténation (assemblage) des restes obtenus lors de chacune des divisions dans l’ordre inverse. Exemple 610 en binaire = ? 6/2 = 3 reste 0 3/2 = 1 reste 1 1/2 = 0 reste 1 Ordre inverse: 1102 1910 en binaire = ? 19/2 = 9 reste 1 9/2 = 4 reste 1 4 / 2 = 2 reste 0 2/2 = 1 reste 0 Ordre inverse : 100112
Les changements de base Pour convertir d’une base à une autre, nous pouvons convertir en base 10 préalablement Exemple Convertir 278 en base 16 2X81+7 X80 = 16 + 7 = 2310 Ensuite, convertir dans l’autre base 23/16 = 1 reste 7 1 / 16 = 0 reste 1 Donc 278 = 2310 = 1716
Les changements de base Une astuce pour convertir rapidement de la base 2 aux bases 8 et 16 Il faut regrouper les chiffres en paquets de trois pour la conversion en base 8 (23 = 8) et en paquets de quatre pour la base 16(24 = 16), de la droite vers la gauche. On comble les chiffres manquants avec des 0 Exemple Convertir 11011101110112 en base 8 001 101 110 111 011 1 5 6 7 3 156738
Les changements de base Exemple Convertir 11011101110112 en base 16 0001 1011 1011 1011 1 B B B 1BBB16
Les opérateurs arithmétiques Les opérateurs arithmétiques fonctionnent de la même façon, peu importa la base Évitez les qualificatifs de la base 10 (ce n’est pas trois cent deux)
Représentation binaire des nombres Représentation des entiers positifs On dispose de n bits On peut représenter 2n valeurs Valeur minimale: 0 Valeur maximale: 2n -1 Exemple Avec 3 bits Valeur min = 0002=010 Valeur max = 1112=710 Nombre des valeurs = 8 #Bits Min. Max. #Val. 1 2 3 4 15 16 8 255 256 32767 32768
Représentation binaire des nombres Représentation des entiers non-signés Pas d’information de signe Représenté comme un entier positif On dispose de n bits 2n valeurs : 02n-1 Exemple sur 8 bits 00000000 à 11111111 0 à 255 (28 -1) #Bits Min. Max. #Val. 1 2 3 4 15 16 8 255 256 32767 32768
Représentation binaire des nombres Représentation des entiers signées Comment représenter des valeurs négatives? Plusieurs représentations possible Signe et valeur Biaisée Complément à un Complément à deux Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Représentation Signe- Valeur On dispose de n bits 1 bit de signe n-1 bits de valeurs 2n-1 valeurs Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Représentation biaisée On dispose de n bits 2n valeurs Exemple avec 3 bits 000 111 Non signées 0 7 Biaisé: -43 Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Représentation biaisée Comment retrouver la valeur décimale représentée par l’information binaire? Changer de base: base2 base 10 Calculer la valeur du biais: 2n/2=2n-1 Soustraire le biais Exemple 000001102=-12210 000001102 = 610 Biais = 28/2 = 27 = 128 6-128 = -122
Représentation binaire des nombres Représentation complément à un On dispose de n bits Bit de gauche pour le signe 2n-1 valeurs Décompte binaire positif classique Décompte binaire négatif en valeurs complémentaires Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Représentation complément à 1 Comment retrouver la valeurs décimale représentée par l’information binaire? Déterminer le signe Si le bit de signe est 0 valeur positive Changer de base (sans considérer le bit de signe) Si le bit de signe est 1 valeur négative Faire le complément à 1 Changer tous les 1 en 0 et vice-versa Exemple 101101102=-7310 Valeur négative car 101101102 Complément à 1 : 0110110 210010012 10010012=73
Représentation binaire des nombres Représentation complément à deux On dispose de n bits Bit de gauche pour le signe 2n valeurs Décompte binaire positif classique Décompte binaire négatif en valeurs compléments à 2 Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Représentation complément à 2 Comment retrouver la valeur décimale représentée par l’information binaire? Déterminer le signe Si le bit de signe est 0 valeur positive Changer de base (sans considérer le bit de signe) Si le bit de signe est 1 valeur négative Faire le complément à 1: changer tous les 1 en 0 et vice-versa Faire le complément à 2: ajouter 1 au complément à 1 Exemple101101102 = -7410 Valeur négative car 101101102 Complément à 1: 01101102 10010012 Ajouter 1: 10010012+12=10010102 10010102=74
Représentation binaire des nombres Exemple que vaut 1112 Signe-valeur = -3 Biaisée = 3 Comp. 1: -0 (donc 0) Comp. 2: -1 Val10 Signe Valeur Biaisée Comp 1 2 3 011 111 010 110 001 101 000 100 -1 -2 -3 -4 -
Représentation binaire des nombres Nombre réel: représentation à virgule fixe La précision est fixée en choisissant un nombre de bits pour représenter la partie décimale. Exemple avec 4 bits pour la partie décimale 00011100 0001 représente la partie entière 1100 représente la partie décimale 1 X 20 + 1 X 2-1 + 1 X 2-2 1 , (1/2 + 1/4)10 1,7510 Partie entière Partie décimale 1
Représentation binaire des nombres Nombres réels: représentation à virgule flottante On utilise la notation scientifique: s est le signe (±1) M est la mantisse b est la base (b=2 pour la représentation binaire) e est pour l’exposant Exemple en base 10: 124,5 = 124,5 X 100 = 1,245 X 102 Exemple en base 2: 101,11 = 101,11 X 20 = 1,0111 X 22
Représentation binaire des nombres Nombres réels: représentation à virgule flottante Simple précision (norme IEEE-754): 32 bits 1 bit pour le signe (1: négatif, 0: positif) 8 bits pour l’exposant signé: représentation biaisée -1 (28-1=127) 23 bits pour la mantisse de la forme 1.M Permet de représenter des valeurs réelles de -1038 à 1038 ± Exposant (E) Mantisse (M) 8 bits 23 bits
Représentation binaire des nombres Nombres réels: représentation à virgule flottante Simple précision (norme IEEE-754): 64 bits 1 bit pour le signe (1: négatif, 0: positif) 11 bits pour l’exposant signé: représentation biaisée -1 (211-1=1023) 52 bits pour la mantisse de la forme 1.M Permet de représenter des valeurs réelles de -10308 à 10308 ± Exposant (E) Mantisse (M) 11 bits 52 bits
Représentation binaire des nombres Nombre réels: représentation à virgule flottante Exemple en simple précision (32 bits) : 3.510 3.510 = 11.12 = 1.11 * 21 1 bit pour le signe (1:négatif, 0:positif): 0 8 bits pour l’exposant (Biaisée - 1): 10000000 23 bits pour la mantisse: 1.112 = 1.110000…002 ± exposant mantisse 1
Représentation binaire des nombres Nombre réels: représentation à virgule flottante Exemple en simple précision (32 bits): 3510 3510 = 1000112= 1.00011 * 25 1 bit pour le signe (1:négatif, 0:positif): 0 8 bits pour l’exposant (Biaisée - 1): 10000100 23 bits pour la mantisse: 1.000112 = 1.0001100…002 ± exposant mantisse 1
Représentation binaire des nombres Nombre réels: représentation à virgules flottante Exemple en simple précision (32 bits): -6.510 -6.510 = -110.12= 1.101 * 22 1 bit pour le signe (1:négatif, 0:positif): 1 8 bits pour l’exposant (Biaisée - 1): 10000001 23 bits pour la mantisse: 1.1012 = 1.101000…002 ± exposant mantisse 1
Représentation binaire des caractères Cette catégorie de données représente Les caractères alphabétiques minuscules et majuscules Les caractères 0 à 9 Les symboles de ponctuation Les touches de contrôles du clavier (f1, f2, esc, …) Certains caractères spéciaux (nul, cloche, …)
Représentation binaire des caractères Représentation en mémoire Un code numérique est associé à chaque caractère Les codes les plus connus sont : American Standard Code for Information Interchange ASCII (8 bits) 128 caractères ISO-8859-1 (16 bits) 256 caractères Unicode (21 bits minimum) 1,114,112 caractères
Représentation binaire des caractères Représentation en mémoire C’est la valeur numérique qui est conservée en mémoire. Exemple : Le code de ‘A ’ est 6510 donc 01000001 en mémoire C’est le programmeur qui détermine si la valeur représente un nombre ou un caractère. Il faut comprendre que ‘1’ ≠ 1
Codes ASCII 1 2 3 4 5 6 7 8 9 00 nul soh stx etx eot enq ack bel bs 1 2 3 4 5 6 7 8 9 00 nul soh stx etx eot enq ack bel bs tab 01 lf vt ff rc so si dle dc1 dc2 dc3 02 dc4 nak syn etb can em sub esc fs gs 03 rs us espace ! # $ % & ‘ 04 ( ) * + , - . / 05 : ; 06 < = > ? @ A B C D E 07 F G H I J K L M N O 08 P Q R S T U V W X Y 09 Z [ \ ] ^ _ ¨ a b c 10 d e f g h i j k l m 11 n o p q r s t u v w 12 x y z { | } ~ del
Algèbre de Boole 1854 Georges Boole (1815-1864) démontre que tout raisonnement logique peut être décomposé en une suite d’opérations simples appliquées sur des données binaires Données booléennes Vrai ou Faux 1 ou 0 Opération booléennes OU ET NON Le résultat est booléen On parle d’algèbre booléenne, binaire ou logique
Réalisation électrique Implémentation électrique des opérations booléens Le ET est un circuit monté en série C= A ET B Le OU est un circuit monté en parallèle C=A OU B A B C A C B
Opération booléennes Représentation arithmétique Table de vérité Représentation algébrique Équations Représentation électrique Portes logiques A B A OU B 1 OU A+B A B A ET B 1 ET A.B A NON A 1 NON A
Fonctions booléennes Fonctions booléennes (logique combinatoire) La combinaison d’opérateurs booléens Fonction OU-EXCLUSIF(XOR) Vrai quand A et B sont différent (NON A ET B) OU (NON B ET A) Fonction NON-ET (NAND) Vrai quand A ou B sont faux Loi de deMorgan NON (A ET B) (NON A) OU (NON B) Fonction NON-OU (NOR) Vrai quand A et B sont faux NON(A OU B) (NON A) ET (NON B) A B A XOR B 1 XOR, OU-EXCLUSIF A B A NAND B 1 A B A NOR B 1 NAND, NON-ET NOR, NON-OU
Fonctions booléennes L’ordre d’évaluation est important Les opérateurs sont évalués de gauche à droite Les parenthèses et la négation sont prioritaires aux autres opérateurs (ET, OU) Par exemple: A OU B ET C != A OU (B ET C) Si A et B sont vraies et que C est fausse A OU B ET C donne faux A OU (B ET C) donne vrai
Fonction booléenne Exemple A ET NON B OU (C ET A) A B C NON B 1
Questions ? Prochain cours Jeudi prochain de 9:00 @ 13:00