Cercle d'étoile en Java

Fermé
- 6 févr. 2011 à 18:18
 Lø - 6 févr. 2011 à 20:50
Bonsoir à toutes et à tous,

Voilà, j'ai un programme à faire sur éclipse. En gros le programme demande à l'utilisateur le rayon du cercle voulu .
Suite à la valeur donnée, un cercle fait de "*" doit apparaître dans la console.

J'ai essayé ça :

import corejava.*;
public class Exo6 {
public static void main(String args[]){

int r;
double c;

r=Console.readInt("Donnez le rayon du cercle");

for(int i=0; i<r; i++){
c=3.14*(r*r);
for(int j=0;j<i;j++){
System.out.print("*");
}
System.out.println("");
}
}
}

et ça :

import corejava.*;
public class Exo6 {
public static void main(String args[]){

float r;
float f=0;
double c;

r=Console.readInt("Donner le rayon de votre cercle");

for(int i=0; i<r; i++){
c=3.14*(r*r);
c=f;
System.out.print("*");
}
}
}


Et forcément, ça ne marche pas...
Si vous pouviez me donner un p'tit coup de pouce je vous en serais reconnaissante.

Voilà, merci d'avance :)

A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
6 févr. 2011 à 19:36
J'ai corrigé les erreurs pour que ce soit du Java correct, mais ça ne résoudra pas ton problème puisqu'il n'y a même pas un début de cercle, tu as juste un triangle...

Prends un papier quadrillé et un compas, et regarde comment doivent être dessinés les premiers cercles pour r=1, r=2, ... r=10.
C'est à toi de te poser les bonnes questions ! Mais tu ne pourras probablement pas faire grand chose sans Math.cos et Math.sin, et encore moins en faisant un dessin ligne par ligne.

import java.util.Scanner;

public class Exo6_1
{ 
	public static void main(String args[])
	{ 
		System.out.println("Donnez le rayon du cercle"); 
		int r = new Scanner(System.in).nextInt();

		for(int i=0; i<r; i++)
		{ 
			double c = Math.PI*Math.pow(r,2);
			
			for(int j=0; j<i; j++)
			{ 
				System.out.print("*"); 
			} 
			
			System.out.println(); 
		}
	} 
}

import java.util.Scanner;

public class Exo6_2
{ 
	public static void main(String args[])
	{
		float f = 0; 

		System.out.println("Donnez le rayon du cercle"); 
		float r = new Scanner(System.in).nextFloat();

		for(int i=0; i<r; i++)
		{ 
			double c = Math.PI * Math.pow(r,2);
			c = f; 
			System.out.print("*"); 
		} 
	} 
}
0
en fait j'ai déjà essayé de faire le schéma à la main histoire d'y voir plus clair, mais...j'ai pas vraiment la fibre mathématique.
Par contre je pense que ça devrait être possible sans forcement rajouté maths.truc.
Quand tu me parles de plusieurs cercles, as-tu bien compris ce que je voulais faire ? ^^'
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
6 févr. 2011 à 19:55
Ce n'est pas à moi de deviner ce que tu veux faire, mais à toi de me le faire comprendre.
Si j'ai mal compris c'est que tu as mal expliqué.

Ce que j'ai compris avec tes explications et ton code, c'est que tu veux dessiner un cercle en console avec un rayon donné par l'utilisateur (Remarque : la console déformera ton cercle mais peu importe)

En gros :
r=1		r=2		r=3
*		 *		 ***
		* *		*   *
		 *		*   *
				*   *
				 ***
Mais il y a tellement de manière de concevoir cet exercice que tes cercles peuvent êtres différent pour une valeur de r petites.
Par contre si tu veux faire r=47 par exemple, ça commencera à ressembler de très près à un cercle et là il n'y a pas d'autres manières de le dessiner que de calculer ses coordonnées avec des fonctions trigonométriques ! Et qui dit trigonométrie dit mesure d'angles. Ce qui est difficilement faisable en dessinant directement ligne par ligne !
0
C'est possible que j'ai mal expliquée , c'est un sujet que je ne maîtrise pas du tout ;)
Mais à ce que je vois j'ai bien expliqué et tu m'as bien comprise.
Bon, je pense que j'aurais du mal à saisir ton code quand même mais c'est sympas d'avoir répondu quand même, c'était bien tenté xD
0