Tapesort - tri de fichier séquentiel par bandes magnétiques (didactique)

Soyez le premier à donner votre avis sur cette source.

Vue 4 598 fois - Téléchargée 295 fois

Description

Je suis retombé sur de vieilles cartes perforées contenant un de mas programmes en assembleur 370 servant à trier une bande magnétique sans utiliser de disque; ça doit remonter à 1975 ou par là....
L'algorithme est toujours aussi neuf, même si les supports ont changé.

Le but du jeu : trier un fichier séquentiel sur un support "non réinscriptible" (en ce sens qu'une fois lu, l'enregistrement n'est plus accessible pour une réécriture)
Les moyens : trois bandes magnétiques (plus la sauvegarde de la bande originale, au cas ou...), trois dérouleurs (type IBM 3420, c'est ceux que je connais le mieux...), et de la patience...

Le principe :
On splitte le fichier en séries de séquences croissantes sur deux fichiers séquentiels distincts puis, reprenant ces deux fichiers, on les fusionne et on recommence en reprenant le fichier fusionné en entrée jusqu'à zéro swap de bandes en entrée.
Ici la touche "GENERATE" sert à créer la "bande" d'entrée (TAPE C) et la touche "START" à démarrer la simulation; en fin de tri "START" devient "STOP" et pis voila...

Conclusion :


Il est sûr qu'avec des trucs comme dBase III et autres, sur le moment, ça a cassé le coup...

Mais pour l'histoire...

NOTE :
Il vaut mieux éviter de dépasser les 256 enregistrements sur cette simulation, j'ai fait un test avec 480 rcds et j'ai eu quelque chose comme 2 h de "tournage" en 156 itérations... néanmoins, une fois adapté, ça pourrait faire un "screensaver" potable...

Le voyant rouge sous les têtes de lecture implique une ecriture sur le support, le même en vert, une lecture, et en noir/gris/dégueu, une non-sélection.

J'ai scanné une note de l'époque qu'elle est dans le zip et qui explique le principe de ce SORT/MERGE..

Pour ce qui est du ratio, censé indiquer l'état d'acomplissement du tri, j'ai un doute :
une autre solution serait de compter le nombre de swaps entre les bandes de manoeuvre, plus cela tend vers 1, plus le tri est proche de l'accomplissement... j'y pense

Je commenterai ce source un peu plus tard (et si on me le demande gentiment, quoique, même sinon, d'ailleurs...)

a+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Blodox
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

Bingo...
sinon, c'est très hypnotique, ça me rappelle de viux souvenirs, de très viux souvenirs;
Il y a bien longtemps,
dans une lointaine galaxie...

(et on connaît la suite)
Adn56
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
oui c'est ça, merci
cs_Blodox
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

Salut Adn56,
si j'ai bien entendu (façon de parler) tu cherches à limiter le nombre d'enregistrements à trier ?
Si c'est ça, tout se passe dans la partie "GENERATE()"
regarde à NB_TOT_RCDS ou un truc comme ça (j'ai pas mon source sous les yeux), sinon, précise, stp...
Adn56
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
pour le screen saver je suis d'accord avec toi, mais j'ai pas pigé comment modifier les rcds ?
++
cs_Blodox
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

...
je viens de me la lancer sur approx 5000 rcds...
c'est quasi hypnotique, j'ai même l'impression d'entendre encore le bruit du rembobinage rapide...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.