IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Dessin de cercle


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut Dessin de cercle
    Bonjour,

    Je suis en école d'informatique et j'ai bientôt un DS concernant l'algo.
    Le prof a publié des annales sur lesquelles je me suis penché, mais il y a un exercice qui me pose problème car je ne vois pas du tout comment le résoudre.

    Voici l'énoncé :

    Vous disposez des fonctions suivantes :
    PRINT "*" pour afficher une étoile,
    PRINT " " pour afficher un espace,
    PRINTLN pour passer à la ligne.

    1. Écrivez un algorithme qui dessine un disque (cercle plein). Votre programme devra prendre en paramètre le
    nombre d'étoiles qui composent le diamètre du disque. Vous ne pouvez pas utiliser de tableau.

    Si encore on avait le diametre du cercle, et que l'on devait le remplir ..., mais ici on a un nombre d'éléments composants le cercle et nous devons le remplir.

    Si vous avez des idées, je suis preneur
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Votre programme devra prendre en paramètre le nombre d'étoiles qui composent le diamètre du disque.
    Si encore on avait le diametre du cercle, et que l'on devait le remplir ...
    ?

    Il me semble qu'on te donne justement le diamètre (en nombre d'étoiles)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut
    Merci de ta réponse pseudocode

    Oui, mais le problème est que je n'ai pas de système de coordonnées car pas de tableau.
    Et les seules primitives que j'ai d’accessible sont de pouvoir passer a la ligne suivante.

    J'avais pensé faire quelque chose comme sur la première ligne mettre 2 étoiles centrées, puis sur la seconde, en mettre 4, puis 6, jusqu'à atteindre la taille du diamètre puis de le faire dans l'autre sens, mais cela donne plus un losange qu'un cercle.

    Enfin, je ne vois toujours pas comment reussir cela.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Land3r Voir le message
    J'avais pensé faire quelque chose comme sur la première ligne mettre 2 étoiles centrées, puis sur la seconde, en mettre 4, puis 6, jusqu'à atteindre la taille du diamètre puis de le faire dans l'autre sens, mais cela donne plus un losange qu'un cercle.

    Enfin, je ne vois toujours pas comment reussir cela.
    L'idée est bonne. Il faut simplement trouver le bon nombre d'étoiles à mettre sur chaque ligne.

    M'est d'avis qu'il faut calculer la longueur du segment horizontal intérieur au cercle, pour une altitude donnée. Ce qui rappelle furieusement le cercle trigonométrique :

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    trouver le bon nombre d'étoiles à mettre sur chaque ligne.
    A chaque ligne, on peut associer une coordonnée y dans le repère dont l'origine est le centre du cercle.

    Connaissant y, on pourra déduire la coordonnée x de l'intersection de la ligne et du cercle via l'équation : x*x + y*y = r*r.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Par défaut
    Oui

    Tu as raison pseudo code.
    J'ai comprit comment faire grace a ton aide

    Ayant imaginons un cercle de 6 étoiles de diamètre, sur la première ligne, je met une étoile centrée
    Sur la ligne d'en dessous, je suis donc a 5 étoiles du centre de mon cercle.
    Donc sur le triangle rectangle nouvellement dessiné, je connais son hypoténuse (qui est constante égale au diamètre du cercle) et sa hauteur, ce qui me permet de connaitre le sinus(theta) (opposé/hypoténuse)).
    De la arcsin() pour avoir theta, puis cos pour avoir la moitié de mon nombre d'étoiles sur la ligne

    Une fois que j'ai la longueur, je n'ai plus qu'a centré et a arrondir tout ça et je l'affiche.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. demande d'aide pour dessiner un cercle
    Par nadjib2007 dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/09/2007, 20h09
  2. Réponses: 10
    Dernier message: 11/04/2007, 11h14
  3. Dessiner un cercle sur une sphère ?
    Par nico_ippo dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/01/2007, 17h25
  4. Réponses: 2
    Dernier message: 13/10/2004, 14h52
  5. Dessiner un cercle
    Par delire8 dans le forum DirectX
    Réponses: 7
    Dernier message: 26/07/2003, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo