Construire un disque en c++

Résolu
widi Messages postés 34 Statut Membre -  
taoufiq_ensias Messages postés 1 Statut Membre -
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. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    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
  2. widi Messages postés 34 Statut Membre
     
    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
  3. widi Messages postés 34 Statut Membre
     
    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
  4. widi Messages postés 34 Statut Membre
     
    encore une tite aide SVP
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    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
  7. taoufiq_ensias Messages postés 1 Statut Membre
     
    #include <iostream>
    #include <cmath>
    //using namespace std; // mauvaise habitude

    pourkoi c'est une mauvaise habitude
    0