Construire un disque en c++

Résolu
Bonjour tout le monde, je voudrais dessiner un disque en c++
j'ai fait ça:

#include <iostream>
#include <cmath>
using namespace std;
main ()
{

float centreL,centreH,rayon,ligne,colonne;
char car;

// Définit l'abscisse du cercle
cout << "Entrez l'abcisse du centre du cercle : "<<endl;
cin >> centreL;
// Définit l'ordonnée du cercle
cout << "Entrez l'ordonnée du centre du cercle : "<<endl;
cin >> centreH;

do
{
cout << "Entrez le rayon positif du cercle : "<<endl;
cin >> rayon;
}
while(rayon<0);

do
{
cout << "Entrez le motif du cercle sauf ('+','-','|',' ') : " << endl;
cin >> car;
}
while(car=='+' || car=='-' || car=='|' || car==' ');

(sqrt((centreH-ligne)*(centreH-ligne)+(centreL-colonne)*(centreL-colonne))<=rayon);

cout << car;

}

je sais qu'il y a un problème car rien ne s'affiche, mais je ne sais pas d'ou ça vien, je vous remercie d'avance de vos reponse.

6 réponses

  1. Modérateur
    Ci dessous ton code corrigé avec mes suggestions
    #include <iostream>
    #include <cmath>
    //using namespace std; // mauvaise habitude
    
    int main (){ // main doit retourner le code d'execution (0 si tout va bien)
    
    //  float centreL,centreH,rayon,ligne,colonne; // ca n'a aucune raison d'être un flottant !
    //  ligne et colonne n'ont aucune raison d'être déclarées ici
        unsigned int centreL,centreH,rayon;
        char car;
    
        // Définit l'abscisse du cercle
        std::cout << "Entrez l'abcisse du centre du cercle : "<<std::endl;
        std::cin >> centreL;
    
        // Définit l'ordonnée du cercle
        std::cout << "Entrez l'ordonnée du centre du cercle : "<<std::endl;
        std::cin >> centreH;
    
        std::cout << "Entrez le rayon positif du cercle : "<<std::endl;
        std::cin >> rayon;
    
        do{
            std::cout << "Entrez le motif du cercle sauf ('+','-','|',' ') : " << std::endl;
            std::cin >> car;
        }while(car=='+' || car=='-' || car=='|' || car==' ');
    
        // cette instruction fait juste le calcul mais ne fait rien !
        // en particulier
        // - tu n'écris pas de caractère : std::cout << car;
        // - tu ne fais pas évoluer les variables ligne et colonne
    //  (sqrt((centreH-ligne)*(centreH-ligne)+(centreL-colonne)*(centreL-colonne))<=rayon);
    
        std::cout << "rayon = " << rayon << std::endl;
        for(unsigned int ligne=0;ligne<2*rayon;++ligne){
            for(unsigned int colonne=0;colonne<2*rayon;++colonne){
                if (sqrt((centreH-ligne)*(centreH-ligne)+(centreL-colonne)*(centreL-colonne))<=rayon){
                    std::cout << car;
                }else{
                    std::cout << ' ';
                }
            }
            std::cout << std::endl;
        }
    
        return 0;
    }
    

    Bonne chance
    0
    1. merci bcp
      le cercle n'est pas la seule chose qui doit aller dans mon programme ce qui peut expliquer queque trucs.
      je vous retien au courant
      0
      1. encor merci beaucoup ça y est j'ai fini mon projet grace a vous je le mettrais en ligne un peu plus tard.
        J'ai juste encor quelque petite chose.
        Comment je peu faire pour dire qu'une valeur ne doit pas être un réel
        par exemple si je ne veux pas que a soit inferieur a 0
        je fait un do ..... puis un while a<0...
        comment je fait pour empêcher un réel.

        et à un moment donner l'utilisateur doit donné un motif comment puis je contraindre l'utilisateur à mettre qu'un seul caractère??
        Merci d'avance
        0
        1. encore une tite aide SVP
          0
          1. Modérateur
            Tu peux comparer la partie entière du réel et ce réel (par exemple avec la fonction floor ou ceil).
            http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/floor.3.html
            http://www.manpagez.com/missing.php
            Si c'est égal, c'est un entier.

            Bonne chance
            0
            1. #include <iostream>
              #include <cmath>
              //using namespace std; // mauvaise habitude

              pourkoi c'est une mauvaise habitude
              0