ALGORITMIQUE / BINAIRE / STRUCTURE MACHINE :

Notions de constructions algorithmiques :

Algorithmique :

L’objet de l’algorithmique est la conception, l’évaluation et l’optimisation des méthodes de calcul en mathématiques et en informatique. Toutefois la démarche algorithmique peut s’appliquer à tout type de problème que l’on veut résoudre à partir d’un raisonnement structuré.

Un algorithme consiste à la spécification d’un schéma de calcul, sous d’un suite d’opérations élémentaires obéissant à un enchaînement déterminé.

Le terme algorithme tire lui-même son origine du nom du mathématicien Persan Alkhwarizmi(env 820 .) dont le traité d’arithmétique servit à transmettre à l’Occident les règles de calculs sur la représentation décimale des nombres antérieurement découvertes par les mathématiciens de l’Inde.

Après avoir utilisé des années des techniques algorithmes empiriques et intuitives, plusieurs chercheurs proposèrent à la fin des années 60 " Un ensemble de méthodes " permettant une construction de solutions appliquées aux problèmes informatiques, beaucoup plus accessibles dénommé algorithme structuré.

Cette technique utilise entre autre 4 structures algorithmes de bases définies par WIRTH, BOHM et JACOBINI pendant les années 1965-1970.

 

  1. Structure d’enchaînement :
  2. Par un point d’entrée et un seul se terminera

    Par un point de sortie et un seul

     

  3. La structure de DECISION ou ALTERNATIVE ou SELECTION :
  4.  

    Nous allons nous servir des termes tels que IF – THEN – ELSE , …

     


  5. La structure de répétition contrôlée : Test de haut de boucle .
  6. Tant que (Condition vérifiée) faire

    (While …….do …….)

    Cette structure est aussi dénommée test de haut boucle ou encore structure à traitement facultatif, elle constitue une itération(le traitement T1 voit son exécution réitérée tant que la condition posée est vérifiée)

    Remarque : Pour cela la sortie de la boucle soit possible, il est nécessaire que le traitement T1 agisse sur la vérification de la condition.

     

  7. Structure de répétition contrôlée : Test de bas de boucle :

  8. Cette structure est aussi dénommée structure à traitement obligatoire (le traitement est exécuté au moins une fois) comme précédemment le traitement doit agir sur la condition. Cette structure est aussi du type à itération.

     

  9. La démarche préliminaire :
  10. La démarche algorithmique est une démarche abstraite souvent difficile à expliciter surtout lorsqu’on débute(on apprend à écrire des algorithmes en en écrivant).

    Toutefois pour amorcer la démarche dans la phase de l’apprentissage, on peut utiliser quelques " techniques d’approche " pour des problèmes simples.

    Il est donc nécessaire d’acquérir progressivement des méthodes de raisonnement.

    Méthode de raisonnement :

    Une méthode sert à construire et représenter un enchaînement logique d’actions afin d’obtenir un résultat précis.

    La méthode employée est indépendante du langage de programmation utilisé.

    (langage assembleur ou langage évolué ou pseudo langage)

    C’est lorsque l’enchaînement logique est terminé que l’on passe à sa traduction dans un langage compréhensible par la machine qui exécutera le travail.

    Il faut donc acquérir un raisonnement logique et des méthodes de programmation systématiques et structurés.

    3 choses importantes :

    Méthode Algorithme :

    Dans ces conditions on peut se poser quelques questions simples à partir de la formulation du problème posé :

    Combien d'objets sont traités :

    3 réponses possibles

    Aucun objet

    Un objet

    N objets(plusieurs)

    Les réponses :

    Aucun --- pas de structure

    N --- structure répétitive

    Un --- Il y a t' il deux traitements exclusifs

    Oui --- Structure alternative

    Non --- pas de structure, instruction simple

     

  11. Notions de numération binaire :
  12. La numération binaire :

    On dispose de deux symboles (0 et 1), le 0 vaut 0, et le 1 vaut 1.

    On conçoit que dans ce cas l'écriture de grands nombres utilisera un nombre impressionnant de 0 et de 1.

    Dans ce mode de numération le poids de chaque chiffre correspondra à une puissance de 2.

    Voici un exemple :

    Chaque nombre vaut une certaine valeur, voici leurs correspondances :

    Cette combinaison vaut : 128+64+32+8+2+1= 235

    On en conclut que pour décoder un nombre binaire(décodage binaire --Décimal).

    Il suffit d'évaluer les puissances de 2 correspondant au rang des 1 dans le nombre.

    Passage du décimal du binaire :

    Pour transformer un nombre décimal en nombre binaire(codage décimal-- en binaire), il suffit d'évaluer les puissances de 2 contenues dans le nombre une des méthodes les plus simples à mettre en œuvre est celle de la division.

    Exemple : Convertir 53 en binaire

    Le nombre recherché vaut donc : 1 1 0 1 0 1 = 53

    Le bit correspond à 1 élément binaire(un 1 ou un 0), bit est la contraction de binary digit. Par exemple l'information binaire 110100 comporte 6 bits.

    Le quartet comporte 4 bits

    L'octet comporte 8 bits : 0 0 0 0 0 0 0 0 en décimal sa valeur vaut 0 ainsi qu'en binaire , 1 1 1 1 1 1 1 1 en binaire sa valeur est de 255 et en décimal sa valeur est de 256.

    Msb : Signifie bit le plus fort

    Lsb : Signifie bit le moins fort

    MSB most signifiant byte

    (L'octet le plus significatif)

    LSB least signifiant byte

    (L'octet le moins significatif)

    Addition binaire :

    Il est nécessaire de définir les règles de l'addition binaire pour pouvoir examiner la technique de codage.

    Les 3 premières opérations ne posent aucune difficulté


    Elles sont identiques à celles de l'arithmétique classique, la quatrième opération s'énonce de la manière suivante : 1+1=2 mais 2 n'existe pas en binaire, 2 s'écrit 10, on dira 1+1=0 et 1 de retenue que l'on abaisse pour la puissance de 2 suivante.

    Pour déterminer la technique de codage des nombres entiers relatifs, on va d'abord utiliser une technique "intuitive".

    Complément à 2 :

    Pour représenter le signe d'un nombre entier binaire, on utilise les 2 seuls symboles dont on dispose (0 et 1), par convention 0 indiquera le signe + et 1 indiquera le signe -.

    Le signe sera indiqué systématiquement par le bit le plus à gauche quelle que soit la taille du nombre binaire.

    Par exemple :

    0100101010 est positif

    100101011 est négatif

    Conclusion : Pour un format donné(4 ou 8 ou 16 ou 32bits)la capacité de codage des nombres entiers relatifs est évidemment limitée, au delà de cette limite le nombre n'est plus codable, il y a débordement(overflow).

    Par exemple sur 8 bits :

    L'intérêt majeur de cette représentation est qu'elle permet de réaliser les 4 opérations arithmétiques de base. En effet l'UAL du microprocesseur ne sait réaliser qu'une seule opération arithmétique l'addition.

    La notation en complément à deux permettra notamment d'écrire à la place de16-5(que le microprocesseur ne sait pas exécuter) l'opération (+16)+(+5) qui elle devient exécutable, on fait réaliser une addition qui en réalité devient une soustraction.

     

  13. Structure machines

Introduction :

Le concept Microprocesseur : un microprocesseur est un composant électronique qui intègre(contient) un nombre considérable de transistors ,on dira à propos de ce composant qu'il s'agit d'un circuit VLSI(Very Large Scale Integration).

Le microprocesseur est apparu au début des années 1970, à titre d'exemple les premiers circuits véritablement utilisés industriellement(INTEL 4004 ou MOTOROLA 6800) intégraient de l'ordre de 4000 à 5000 transistors sur une"puce de silicium" de 50 mn², àl'heure actuelle (1999/2000) les microprocesseurs équipant la plupart des ordinateurs personnels(personnal computers=PC) intègrent de 1000 000 à 7 000 000 de transistors sur quelques 100 mn² (cas notamment des PENTIUM III de Intel).

Voici une structure simplifiée d'un microprocesseur :

Microprocesseur ou UC(Unité Centrale) ou CPU(Central Processing Unit)

UAL = Unité Arithmétique et Logique : Ce bloc interne au microprocesseur regroupe des transistors qui sont interconnectés afin de réaliser un ensemble de fonctions de base, les fonctions arithmétiques(binaire) telles que l'addition ou la soustraction, la multiplication et la division, les fonctions logiques fonctions classiques telle que ET - OU - NON, des fonctions de comptage de décalage.

L'ensemble des lignes de communication avec l'UAL constitue un bus dans ce cas précis , cet ensemble constitue le BUS DE DONEES.

Le bus de données détermine au sens au sens strict la qualité du microprocesseur, on parlera :

On comprend que le nombre de lignes du bus de données est en relation directe avec les fonctions internes du microprocesseur : 4 lignes entraînent 16 fonctions (2 puissance 4=16)

16 lignes entraînent 65536 fonctions

32 lignes entraînent 4 294 967 296 fonctions

En pratique le nombre de fonctions disponibles est volontairement limité par les constructeurs : il est de l'ordre d'une cinquantaine à une centaine d'instructions selon les types et les familles de microprocesseurs (Famille CISC ou famille RISC)

CISC =Complex Instruction Set Computer

RISC = Reduce Instruction Set Computer

Format d'une instruction :

Une instruction ou code d'ordre correspond aux choix de traitement à effectuer par l'UAL du microprocesseur à un instant donné, à l'exclusion de tous les autres traitements possibles.

Une instruction est divisée en champs ou zones permettant l'UAL d'effectuer une exécution correcte du traitement.

Champ CODE OPERATION (CODOP)

Champ OPERANDE (OPER)

Home