Horloge binaire (optimisation du code)

Description

Bonjour, alors voila, je vous présente un petit programme qui n'a rien d'extraordinaire, si ce n'est d'afficher l'heure en binaire, c'est à dire avec des 0 et des 1 mais avec des diodes dans le programme

Je sais il faut être un psychopate pour faire un tel programme, mais si j'ai passé autant de temps dessus, c'est surtout pour être à la recherche de la meilleur optimisation possible du code, en gros j'ai du en faire des tas de versions et je pense que celui ci est le mieux optimisé que je puisse faire.

Ce que j'entend par optimisation, c'est à dire mon but recherché, c'était :

_la taille du programme final, le plus petit possible (Bon la plus grosse partie de la taille est du aux images, cad une image pour un bit 1 et une pour un bit 0 + l'icône du programme), la feuille principale (d'ailleur y en a qu'une seule) ne contiendra pas x contrôles Images pour chaque bit de l'horloge càd 5 pour l'heure, 6 pour les minutes et 6 pour les secondes, mais juste 1 seul contrôle pour l'heure, 1 pour les mintutes et 1 pour les secondes
les autres contrôles seront chargés au lancement du programme et mise en forme lors du chargement.

_ un code optimisé pour la performance du programme (j'ai du modifier à plusieurs reprise l'algorithme de calcul pour aboutir à celui ci qui m'a l'air le mieux adopté), en réduisant à une seule boucle For pour le calcul des bits et de l'affichage des bits

_ un programme qui prenne le moins de place possible en mémoire (j'ai du retirer une ImageList pour mettre 2 contrôles Images pour au moins les images des Bits) tout en gardant son coté graphique

On obtient au final un programme très petit en taille avec ses images dedans, donc transportable facilement en 1 fichier, grace à l'utilisation des indexes.
En contre partie lors du chargement il devra rajouter les nouveaux contrôles, ce qui n'est pas dérangeant, vu le gain de taille comparé au temps de chargement des contrôles.
Un algorithme assez correct et une taille en mémoire réduite par rapport à avant

Enfin bref , rien de fabuleux, mise à part que sur un programme tout bête comme une horloge, j'ai vu qu'il y avait toujours des moyens d'optimiser un programme, même s'il ne fait que 50 lignes, il suffit juste être motivé pour être à la recherche de l'optimisation

PS : Vous remarquerez que j'ai déclaré des variables stockant les heures, minutes, secondes en tant qu'entier long, le but étant d'éviter le programme à le reconvertir en 32 bits si je les déclarai en entier court ou en Byte, j'ai opté pour la performance dans ce cas la
Par contre la déclaration des variables de bits, j'ai fait tout le contraire, je les ai déclaré en booléen, mais bon ça m'avait l'air plus logique, on m'aurais pris pour un fou de déclarer une variable en long surtout si c'était pour stocker une valeur = à 0 ou à 1.

Valà n'hésitez pas à proposer d'autres codes concernant une horloge binaire, je pense qu'il doit y avoir d'autres possiblités pour l'optimiser et ça m'interesserai de connaître vos méthodes

N'héistez pas à commenter :)

Conclusion :


Bah la lecture de l'heure est assez simple et dure
Simple car la première ligne représente l'heure
la 2eme les minutes
et la 3eme les secondes

Dur car il faut le convertir pour réellement connaitre l'heure :)

Codes Sources

A voir également

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.