Comment transformer un énoncé en algorithme ?

a marqué ce sujet comme résolu.

Bonjour tout le monde !

Je suis actuellement le cours de programmation C et j’en suis à la partie sur les boucles, dans laquelle il y a cet exercice.

En lisant la correction je comprends l’algorithme mais je n’arrive pas à savoir comment on peut arriver à ce résultat à partir d’un simple énoncé. En gros ma question est comment on transforme une simple consigne/énoncé en algorithme (cet exercice est juste un exemple, ma question concerne n’importe quel énoncé) ?

P.S: J’avais posé la question directement dans les commentaires du cours mais on m’a redirigé ici.

+0 -0

Salut,

C’est essentiellement une question d’habitude et de sens logique. C’est en s’entraînant à résoudre des petits problèmes qu’on se familiarise avec les différentes constructions du langage qu’on utilise et qu’on arrive à construire un algorithme qui résout les problèmes en question.

Il n’y a pas vraiment de méthode miracle, on dit parfois que ce qui marche souvent est de décomposer sa tâche en plusieurs petites. Personnellement je suis pas sur de voir si ça aide vraiment de dire ça puisque écrire un algorithme, c’est déjà formuler une tâche en une suite de plus petites tâches qui sont exprimables dans le langage choisi.

+0 -0

Il y a http://www.france-ioi.org/ qui revient souvent. Je dirais qu’avec les boucles, les conditions, les fonctions, et en connaissant quelques structures de données (tableau et chaines de caractères par exemple) tu peux déjà exprimer beaucoup de choses sans trop de problèmes.

+2 -0

Je me permets de te proposer également prologin.org. C’est un concours national contrairement à FranceIOI qui est international.
C’est également en Français.

Si l’anglais ne te dérange pas, tu trouveras des exercices orientés mathématiques:

Si l’anglais te rebute, il existe des traductions, ou des initiatives francophones comme le

Dans tous les cas, n’hésite pas à demander de l’aide ici si après avoir chercher tu bloques.

+0 -0

Si tu cherches à pratiquer dans un environnement plus « gamifié » (pardon pour mon horrible anglicisme, rien de mieux ne me vient à l’esprit), tu as aussi Codingame.

informaticienzero

Ludique ! Et je plussoie CodinGame :)

Sinon un algorithme c’est comme une recette de cuisine. On a des données comme ingrédients et on les transforme au fur et à mesure. Petit à petit en dé-complexifiant la problématique d’origine et en encapsulant des opérations ; par exemple si tu dois dessiner un point sur l’écran plusieurs fois, le mieux c’est de coder une fonction et de l’appeler quand tu en as besoin.

Si tu cherches à pratiquer dans un environnement plus « gamifié » (pardon pour mon horrible anglicisme, rien de mieux ne me vient à l’esprit), tu as aussi Codingame.

informaticienzero

Je ne connais pas CodinGame. La visite du site laisse penser qu’il s’agit d’une société dont le business model consiste à trouver pour des entreprises des éléments talentueux parmi les membres triés grâce à des compétitions de code entre eux. Peux-tu nous en dire plus ? En particulier sur l’usage qu’on peut faire de ce site pour progresser et apprendre (je suppose que si les membres sont en compétition pour « se faire remarquer » comme il est écrit, l’ambiance n’est peut-être pas au partage et à l’entraide ? Mais je me fourvoie sans doute complètement).

Je ne connais pas CodinGame. La visite du site laisse penser qu’il s’agit d’une société dont le business model consiste à trouver pour des entreprises des éléments talentueux parmi les membres triés grâce à des compétitions de code entre eux. Peux-tu nous en dire plus ?

Le côté commercial chez CodinGame est totalement invisible, c’est le jour et la nuit avec OpenClassroom qui ne cessent de le rappeler.

Et l’ambiance y est très bonne ! J’étais même surpris de voir que les animateurs/modérateurs (je ne me souviens plus le nom de leur rôle exact) étaient présent et n’hésitaient pas à aller vers nous pour savoir comment ça se passait (et si on avait réussi à débloquer le stade suivant). J’en garde une bonne expérience.

Pour poser tes questions en lien avec un exercice, je te conseille de généraliser le problème et de passer par Zeste de Savoir, ça te permet de ne pas avoir de réponse toute faite et de continuer à réfléchir sur le sujet.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte