Construire un disque en c++

Résolu/Fermé
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006 - 30 nov. 2006 à 15:54
taoufiq_ensias Messages postés 1 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 2 décembre 2006 - 2 déc. 2006 à 13:06
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.
A voir également:

6 réponses

mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
30 nov. 2006 à 16:45
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
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006
30 nov. 2006 à 17:06
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
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006
30 nov. 2006 à 20:18
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
widi Messages postés 34 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 16 décembre 2006
30 nov. 2006 à 20:53
encore une tite aide SVP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
1 déc. 2006 à 08:56
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
taoufiq_ensias Messages postés 1 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 2 décembre 2006
2 déc. 2006 à 13:06
#include <iostream>
#include <cmath>
//using namespace std; // mauvaise habitude

pourkoi c'est une mauvaise habitude
0