Programme éducatif pour travailler avec des cartes perforées (ou l'histoire de la façon dont les «mégadonnées» ont été traitées de 1890 à 1970)

Au cours de la période 1890-1970, tout le traitement des mégadonnées a été effectué au moyen de cartes perforées. Les cartes perforées, à leur tour, ont été traitées à l’aide du «Équipement d'enregistrement», dont le maillon central était le «trieur de cartes perforées» électromécanique. Les cartes perforées et l'équipement connexe ont été utilisés pour résoudre une grande variété de tâches: recensement, comptabilité, inventaire, paie, etc.


Comment les gens ont-ils travaillé avec les cartes perforées? Quel algorithme le trieur de cartes perforées électromécanique a-t-il suivi? Comment le tri par champs de données numériques a-t-il été effectué? Et sur chaîne? À propos de tout cela - ci-dessous.



  • Une caractéristique frappante de l'appareil d'enregistrement des temps pré-informatiques: il était à l'origine complètement électromécanique. Il n'y avait même pas encore d'électronique de lampe. L '«intelligence» de l'appareil d'enregistrement était constituée de brosses métalliques (pour reconnaître les trous dans les cartes perforées), d'un relais électromécanique et de roues mécaniques (pour additionner les valeurs). Malgré sa primitivité technologique, le «matériel d'enregistrement» a à un moment révolutionné le traitement des mégadonnées.

Comment les gens ont-ils travaillé avec les cartes perforées?


  • Chaque carte perforée stockait un enregistrement de données (jusqu'à 80 chiffres ou caractères). Chaque enregistrement de données était composé de plusieurs champs. Le trieur de cartes perforées a organisé les cartes dans l'ordre nécessaire à l'opérateur (selon l'un des champs de données), après quoi la machine, appelée «tabulatrice», a lu les cartes perforées triées, en a extrait les champs nécessaires (là encore, spécifié par l'opérateur) et imprimé le rapport.
  • Par exemple, considérons comment les cartes perforées ont été utilisées pour traiter les factures. Les entreprises avaient une carte perforée distincte pour chaque facture émise pour le paiement (voir l'exemple de la figure ci-dessous). Des champs de données tels que le numéro du fournisseur, la date de paiement, le montant du paiement, etc., étaient indiqués sur la carte perforée.
  • Le processus opérationnel de traitement automatisé des données correspondant est le suivant. Le trieur de cartes perforées est chargé de trier les cartes perforées par numéro de fournisseur. Une fois le tri terminé, les cartes perforées sont transmises à la tabulatrice, qui génère un rapport en lisant la ligne souhaitée sur chaque carte perforée. Un compteur mécanique intégré dans le tabulateur assomme automatiquement le montant total.
  • De nombreux autres processus commerciaux, tels que la paie, l'inventaire et la facturation, ont été effectués de manière similaire à l'époque pré-informatique.

Le principe de fonctionnement du trieur électromécanique de cartes perforées


  • Le trieur prend une pile de cartes perforées et les trie selon le champ de données spécifié par l'opérateur. Par exemple, par l'affiliation d'employés à un service particulier. Pourquoi? En option, afin que, ayant préalablement regroupé les salariés par départements, générer ensuite un rapport sur la mise en œuvre du plan de vente par chacun des départements de l'entreprise.
  • Pour résoudre ce problème, les cartes perforées sont d'abord triées en fonction du champ «département», puis transférées vers la tabulatrice, qui résume le champ «ventes», en imprimant les résultats intermédiaires pour chaque département dans le rapport.
  • L'opérateur place le paquet de cartes perforées qui doivent être triées dans un bac spécial, d'où elles sont entraînées une par une dans la trieuse. Le trieur lit les cartes perforées et les distribue dans 13 poches: dix numériques, deux «zones» (pour le traitement des valeurs de chaîne); et une pour les cartes perforées jetées (qui ne spécifient pas de valeur selon laquelle le tri a été effectué).
  • L'algorithme utilisé par le trieur de cartes perforées est très différent des algorithmes généralement acceptés aujourd'hui. La principale différence est que les cartes perforées ne sont pas comparables.

Algorithme de tri au niveau du bit


Comment un trieur de cartes perforées parvient-il à faire son travail? Il implémente un élégant algorithme de «tri au niveau du bit». Conclusion: le trieur de cartes perforées traite un chiffre du champ de données à la fois; pour trier par un champ à trois chiffres, un paquet de cartes perforées doit être passé par le trieur trois fois. Donc l'algorithme:


  1. Tri des cartes perforées selon un champ de données numériques spécifié par l'opérateur, le trieur, lors de la première exécution, ne traite que le bit le moins significatif de ce champ. Et en fonction de la valeur de cette catégorie, il décide où déposer la carte perforée actuelle: laquelle des 10 poches numériques (de zéro à neuvième).
  2. Une fois que le trieur a fini de distribuer les cartes perforées dans les poches, l'opérateur les sort et les met dans un paquet commun. Dans l'ordre: partant de la poche zéro et se terminant par la neuvième.
  3. L'opérateur place le paquet de cartes perforées assemblé dans la trieuse et répète les étapes 1 et 2 séquentiellement pour chaque catégorie.
  4. Tout, maintenant les cartes perforées sont triées.


Avantages de l'algorithme de tri au niveau du bit


  • L'algorithme de tri au niveau du bit est élégant et rapide. Sa complexité de calcul est O (n log n). En d'autres termes, avec une augmentation du nombre de cartes, la durée de l'algorithme augmente de façon linéaire et non exponentielle.
  • L'algorithme de tri au niveau du bit peut techniquement être implémenté comme une conception électromécanique simple.
  • Malgré le fait que pas plus de 3600 cartes sont placées dans le bac d'entrée d'un trieur de cartes perforées, il peut trier un nombre beaucoup plus grand de cartes perforées si l'opérateur effectue les deux actions suivantes en temps opportun: (1) charger de nouveaux paquets de cartes perforées dans un bac en temps opportun; (2) vider les poches numériques en temps opportun (afin qu'elles ne débordent pas).

Comment les données de chaîne sont encodées


  • Comme indiqué ci-dessus, les valeurs numériques sont codées sur la carte perforée avec des trous. Un trou dans la colonne. Nous avons déjà trié leur tri. Il reste maintenant à comprendre comment les chaînes sont encodées sur la carte perforée et comment le trieur de cartes perforées les organise.
  • Pour travailler avec des chaînes dans la trieuse de cartes perforées, il existe deux poches «zonales» (11e et 12e), en plus de 10 poches numériques. Le principe de l'encodage des caractères alphabétiques est le suivant (voir la figure ci-dessous). Chaque lettre est codée avec deux trous sur la carte perforée: un trou sur le numéro (de 1 à 9) et un trou sur la "zone" (0, 11 ou 12).
  • Remarque: une chaîne avec des zéros est numérisée lors du traitement des champs de données numériques et «zonale» lors du traitement des champs de données des chaînes.

Algorithme de tri des chaînes de caractères


Grâce à cet encodage, le trieur peut trier les champs de données de chaîne par ordre alphabétique. Pour ce faire, il a besoin de deux runs. L'algorithme est le suivant:


  1. Lors de la première exécution, le trieur de cartes perforées organise les cartes de la même manière que lors du tri des champs de données numériques. La différence est qu'avec le tri alphabétique, seules neuf poches sont concernées: du 1er au 9.
  2. Une fois le tri terminé, l'opérateur retire les cartes perforées des poches numériques. Encore une fois, dans l'ordre (comme dans le cas de la commande par un champ de données numériques): à partir de la première poche et se terminant par la neuvième. L'opérateur envoie le pack de cartes collecté pour un deuxième tri.
  3. Lors de la deuxième exécution, le trieur de cartes perforées lit uniquement les lignes des «zones» (0, 11 et 12) et ignore les lignes avec des nombres.
  4. En conséquence, les cartes perforées commandées sont distribuées par le trieur dans trois poches «zonales»: de A à I sont placées dans la 12e poche; de J à R - le 11; de S à Z - dans le 0e.
  5. Si vous devez trier non pas par un premier caractère, mais par deux ou trois premiers caractères, par exemple, alors le processus décrit ci-dessus (étapes 1 à 4) est exécuté séquentiellement pour chaque caractère. C'est-à-dire pour chaque symbole, deux passages dans le trieur de cartes perforées sont effectués.


Ainsi, alors qu'il n'y avait pas encore d'ordinateurs, les entreprises traitaient les mégadonnées à l'aide de cartes perforées. Malgré le fait que les cartes perforées sont irrévocablement obsolètes, nous rencontrons toujours leur influence sur l'état actuel de la technologie informatique - chaque fois que nous devons accepter la mise en forme du texte avec des lignes de 80 caractères. Quelque chose de similaire est observé, par exemple, lorsque vous travaillez avec Far Manager.

Source: https://habr.com/ru/post/fr426499/


All Articles