Java, Exercice à tableaux... Coincé.

Fermé
Mark - 16 janv. 2012 à 12:29
 Mark - 16 janv. 2012 à 14:24
Bonjour a tous m'sieurs dames!

Je viens vous embêter aujourd'hui, c'est parce que je n'arrive pas écrire un code correcte en java pour cet exercice:

Ecrivez un programme qui demande à l'utilisateur de saisir une série de nombres entiers positifs ou négatifs. La saisie s'arrête lorsque l'utilisateur tape la valeur 0 (zéro). Lorsque la saisie est terminée, le programme affiche le nombre de valeurs paires et le nombre de valeurs impaires saisies. Pour savoir si une valeur est paire, il suffit de regarder si le reste de la division de la valeur considérée par 2 est égal à zéro.


La prof n'a pas donné de consignes, je pense qu'il faut utiliser des tableaux, mais je n'y arrive pas...

En espérant que quelqu'un aura la gentillesse de m'aider sur cet exercice tout bidon : ( J'suis en première, désolé de vous déranger avec des broutilles...

Merci d'avance!
A voir également:

12 réponses

vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
16 janv. 2012 à 12:34
voilà ce dont tu auras besoin:
- tes cours d'algorithmie
- un tableau d'entier (int[])
- l'opérateur modulo (a chercher sur google)
- un if suivi de son else pour la vérif du nombre pair ou impair
- une boucle while pour récupérer le nombre saisi par l'utilisateur

qu'est ce que tu as fait jusqu'à présent ?
1
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
16 janv. 2012 à 12:49
tu peux éventuellement nous montrer le code que tu as essayé d'écrire
0
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
16 janv. 2012 à 12:51
sinon, voilà un exemple de modulo

https://www.java-examples.com/modulus-operator-example
0
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
16 janv. 2012 à 12:53
dans ton cas, tu dois mettre:

i%2 au lieu de i%10
0
loi219 Messages postés 486 Date d'inscription vendredi 27 août 2010 Statut Membre Dernière intervention 18 juillet 2012 104
16 janv. 2012 à 13:04
0

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

Posez votre question
J'utilise une machine virtuelle sur mac, alors sortir mon code de netbeans, je n'ai aucune idée de comment.
Je vais vous le retaper ici, sommairement :)

//variables
Scanner scan = newscanner(System.in);
int nbr, cptpaire, cptimpaire

cptpaire=0
cptimpaire=0

System.out.println("Entrez valeur")
nbr= scan.nextInt();

While (nbr !=0)
System.out.println("Entrez valeur")
nbr= scan.nextInt();

if (nbr < 0)
Cptimpaire = cptimpaire+1

else (nbr > 0)
Cptpaire = Cptpaire + 1




Je me doute bien qu'a partir du if, plus rien n'est vraiment bon... Comment fait-on pour déclarer un tableau ?
Et comment je l'utilise ? J'viens de comprendre pourquoi on en a besoin d'un...
0
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
16 janv. 2012 à 13:11
pour un tableau, rien de plus simple

int[] tableau = new int[];

fais attention avec java, il est case sensitive !!!!

Cptimpaire = cptimpaire+1 va provoquer une erreur
0
Ok, ok, donc ca donne:

//variables
Scanner scan = newscanner(System.in);
int nbr, cptpaire, cptimpaire
int[] tableau = new int[];

cptpaire=0
cptimpaire=0

System.out.println("Entrez valeur")
nbr= scan.nextInt();

While (nbr !=0)
System.out.println("Entrez valeur")
nbr= scan.nextInt();

if (nbr < 0)
cptimpaire = cptimpaire+1

else (nbr > 0)
cptpaire = Cptpaire + 1




Et après je l'utilise comment le tableau ? Et le modulo ?
Ou est-ce que je les mets ?
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
16 janv. 2012 à 13:24
déjà écrit sur papier le programme avec des mots simple (ça s'appel l'algorithmie)

une variable c'est une sorte de tiroir dans la mémoire de ton ordinateur
un tableau c'est une sorte de tiroir a l'intérieur du tiroir dans la mémoire.
pour déclarer un tableau tu devrais avoir un exemple dans ton cours

ah et j'ai oublié de dire qu'il fallais aussi 2 variable, une pour le nombre de chiffre pair et une pour le nombre de chiffre impair
une variable pour le nombre de l'utilisateur peut être utilisé, mais c'est optionnel

le if n'est pas une boucle, mais une condition :)
le plus pratique comme boucle serais d'utiliser do{}while(test);
comme ça tu feras le test de la boucle à la fin
donc la boucle serviras au stockage des valeurs dans le tableau et à l'incrémentation de la variable pair ou impair suivant la valeur saisie par l'utilisateur.
l'affichage du résultat ne se fera qu'a la fin
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 015
16 janv. 2012 à 13:27
Il n'y a pas besoin d'utiliser de tableau dans ce programme, il suffit de prendre deux compteurs (nbPair et nbImpair par exemple) et d'incrémenter l'un ou l'autre selon la parité de l'entier saisi, et d'afficher leurs valeurs à la fin.
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
16 janv. 2012 à 13:30
le tableau c'est juste pour stocker les valeurs, même si c'est pas vraiment utile dans ce programme, c'est toujours bien de savoir comment ça s'utilise ^^
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 015
16 janv. 2012 à 13:34
Ici on ne connait pas à l'avance la taille du tableau, donc utiliser un tableau serait plus compliqué qu'autre chose, l'idéal serait une liste en fait, mais son prof abordera toutes ses notions en temps utile, pour l'instant il peut faire sans alors faisons simple ^^
0
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
Modifié par choubaka le 16/01/2012 à 13:40
personnellement, en voyant le code, je ne pense pas qu'un tableau soit utile ici. Il te suffit de tester directement l'entier et d'incrémenter tes compteurs pai/impair.

if(nbr%2 == 0)

cptpaire = cptpaire+1;

pour le else, le test n'est pas utile. c'est logique.

else cptimpaire = cptimpaire+1;
Chouba, Modérateur CCM
Bibapeloula
0
//variables
Scanner scan = newscanner(System.in);
int nbr, cptpaire, cptimpaire

cptpaire=0
cptimpaire=0

System.out.println("Entrez valeur")
nbr= scan.nextInt();

While (nbr !=0)
System.out.println("Entrez valeur")
nbr= scan.nextInt();

if (nbr%2 ==0)
cptpaire = cptpaire++

else
cptimpaire = Cptimpaire ++;


Quelque chose comme ça ?

Et après je finalise avec

System.out.println("Il y a " + cptpaire + " nombres paires et " + cptimpaire + " nombres impairs! " )



Je vous suit bien ? Merci de votre aide en tout cas :)
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 015
16 janv. 2012 à 13:37
Comme l'a dit Choubaka, le Java est sensible à la casse, tu dois donc mettre les majuscules au bon endroit. Il n'y en a pas à while, mais il y en a à Scanner (qui doit être détaché du new par un espace)
Ensuite pour que ta boucle while porte sur plusieurs instructions, il te faut des accolades !
Enfin, pour l'incrémentation soit tu fais x=x+1, soit tu fais x++, mais un mélange des deux x=x++ c'est maladroit.
0
//variables
Scanner scan = new Scanner(System.in);
int nbr, cptpaire, cptimpaire ;

cptpaire=0 ;
cptimpaire=0 ;

System.out.println("Entrez valeur")
nbr= scan.nextInt();

while (nbr !=0)
System.out.println("Entrez valeur") ;
nbr= scan.nextInt();

if (nbr%2 ==0)
cptpaire++

else
Cptimpaire ++;


System.out.println("Il y a " + cptpaire + " nombres paires et " + cptimpaire + " nombres impairs! " )


Les accolades je les ajouterais sur netbeans ;)

Le code est correcte alors ? Le modulo est bien placé ?
0
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 015
16 janv. 2012 à 13:44
Le code ne sera pas correct sans les accolades placées au bon endroit !
De plus ton premier "Entrez valeur" ne sera pas comptabiliser !
Une boucle do while serait peut-être plus intéressante ici...
0
choubaka Messages postés 39378 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 13 mai 2024 2 101
16 janv. 2012 à 13:45
Scanner scan = new Scanner(System.in);
int nbr, cptpaire, cptimpaire ;

cptpaire = 0 ;
cptimpaire = 0 ;

System.out.println("Entrez valeur")
nbr = scan.nextInt();

while (nbr != 0) {
System.out.println("Entrez valeur") ;
nbr = scan.nextInt();

if (nbr%2 == 0)
cptpaire++;

else
Cptimpaire ++;

}
System.out.println("Il y a " + cptpaire + " nombres paires et " + cptimpaire + " nombres impairs! " );

on approche .. on approche ;-)
0
Tu peux m'aider pour la boucle do while ? Parce que je ne vois pas comment l'écrire.

Et les accolades, je les ajouterais sur netbeans : Je suis sur mac, j'ai pas ca sur mon clavier -__- 'fin si sûrement, mais j'vais pas chercher après alors que sur NetB il va me les mettre direct.
0
loi219 Messages postés 486 Date d'inscription vendredi 27 août 2010 Statut Membre Dernière intervention 18 juillet 2012 104
16 janv. 2012 à 12:30
Dois-tu le faire en orienté objet?
-2
@ loi219, Je ne saisis pas ce que veut dire orienté objet, donc considères que non étant donné que je suis en première et que je débute java :-D


à Vordano, aucun soucis pour les cours d'algo, j'ai bien saisis les concept tant que, pour, si, etc...

Les tableaux je n'ai pas appris pour le moment, a mon avis, l'exercice sert à nous tester sur cela: certains en classe ont un meilleur niveau, donc les exos sont variés.

Le modulo, je recherche sur google, ok ^^

J'ai tenté avec la boucle if else, mais le programme m'annonce des bugs, que je corrige, et après, en exécutant le prog, j'parviens pas à avoir ce que je veut...

Avec la boucle while, j'initialise un compteur ?
0
non je ne dois pas le faire en orienté objet, je sais même pas ce que c'est ^^
0
non pour la troisième fois :-)
0