On a maintenant dans chaque case du tableau Il ne reste plus qu’à intégrer cette partie dans l’algorithme final qu’on va passer en v5 !Comme d’habitude, je rappelle la version 4 ici et mets en dessous la v5.Ci-dessous la v5 qui intègre maintenant la gestion des numéros du jour et la création du tableau Il faut créer une boucle qui va parcourir chaque jour et chercher un créneau disponible dans celui-ci.Les points de modifications importants à noter (bogues que j’ai rencontrés et corrigés via des itérations) :Ce dernier algorithme en version 5 répond à l’énoncé et passe tous les tests sur le Voici la méthode et les différentes étapes à suivre que vous pourrez appliquer à n’importe quel problème à résoudre :Gardez en tête qu’il ne faut pas entrer dans les détails quand vous rédigez un algorithme en pseudo-code, gardez une vision assez « haute » du problème que vous essayez de résoudre.Vous écrirez les fonctionnalités de « bas niveau » nécessaires plus tard.Souvenez-vous aussi qu’un exercice complexe n’est au final qu’un enchaînement de sous-problèmes à résoudre. Ainsi, il peut revenir sur les notions fondamentales qu'il n'aurait pas comprises Besoin de plus de renseignements sur l'abonnement ou les contenus ? Si on comparait « 10:45 » avec « 8:30 » (au lieu de « 08:30 »), à la première comparaison on comparerait le « 1 » de « 10:45 » avec le « 8 » de « 8:30 » et on tirerait la conclusion fausse que 10:45 vient avant 8:30 !Alors on pourrait rédiger un algorithme pour trier un tableau complet de créneaux mais c’est un exercice pas tellement drôle à faire et surtout les langages de programmation sont déjà tous équipés de méthodes de tri permettant de faire ça facilement.Vous vous souvenez que notre algorithme doit être indépendant du langage de programmation.

Ouf ! C'est une variable réservée au langage PHP que je me permets d'utiliser dans un langage de profane. Même après 10 ans d’expérience on fait des erreurs, c’est normal.C’est impossible de rédiger l’intégralité d’un tel algorithme de façon linéaire et du premier coup. est conforme au programme en vigueur, incluant la réforme du lycée de l'année 2019-2020. Prenons un exemple de fichier d’entrée avec des créneaux superposés :Comme notre algorithme v3 est maintenant capable de trier les créneaux dans l’ordre chronologique on peut se permettre de ne travailler que sur des exemples dont les créneaux sont triés. Des bases de la programmation jusqu'à l'obtention de votre premier job, cette formation vidéo complète en français vous permettra de devenir développeur web. On a classé la liste des horaires dans l’ordre chronologique en utilisant les horaires de début comme référence.Vu qu’on ne travaille que sur une journée, gérer le numéro du jour est inutile donc on peut le supprimer, ce qui donne :On peut encore le simplifier !


En effet les horaires de début et de fin de journée sont fixes.
Donc en théorie, notre étape préalable de tri du tableau devrait s’écrire :Et on pourrait expliquer au développeur chargé d’implémenter cet algorithme comment la fonction Mais pour cet article on va écrire l’algorithme de la fonction qu’on va passer à Ici on utilise l’astuce de la soustraction (que vous trouverez On aurait pu également écrire le code suivant, qui est tout à fait juste, mais un peu moins élégant :Ici on utilise directement comme paramètre une chaîne de caractères qui représente un créneau impossible comme par exemple « 10:45-14:47 ».

C’est ce qui vous donne l’impression que les développeurs ne passent pas par cette phase de création d’un algorithme : mais c’est faux !Il y passent mais ils font tout directement dans la mémoire de leur cerveau.

On nous donne une variable La seconde case du tableau contient le premier créneau à lire « 08:30-09:52 », on y accède avec la notation Pour lire l’horaire de début du premier horaire il va donc falloir découper la chaîne « 08:30-09:52 » en deux en utilisant le tiret « – » comme délimiteur de découpage puis récupérer la partie de gauche « 08h30 ».Comme les horaires ont tous un formatage identique HH:MM-HH:MM, on pourrait également choisir de récupérer les 5 premiers caractères pour l’horaire de début.On va néanmoins utiliser le découpage avec le tiret qui est plus simple :Or lorsqu’on écrit un algorithme, il faut que le pseudo-code reste indépendant du langage de programmation qu’on utilisera pour l’implémenter.Plus vous vous rapprochez des données à manipuler et plus vous allez devoir utiliser à un moment ou à un autre des possibilités offertes par le langage que vous utiliserez pour implémenter cet algorithme.Vous n’avez pas besoin de décrire l’algorithme de ces fonctions là. Appel de la nouvelle fonction dans un algorithme : mavariable PREND_LA_VALEUR MONEXTENSION() pour utiliser une extension dans un algorithme AlgoBox, il suffit d'utiliser l'option "Charger une extension".