Exercice du java à verifier
azerty0123
-
tarek_dotzero Messages postés 834 Statut Membre -
tarek_dotzero Messages postés 834 Statut Membre -
Bonjour,
Voici deux exercices, j'aimerai savoir si mes reponses sont corrects.
Premier exercice
public class toto{
private int entier;
public Toto() {
this.entier=0;
t h i s . e n t i e r = 0 ;}
public void setToto(int nombre)
{
this.entier=nombre;}
public int getToto()
{
int n=this.entier;
int toto=0;
while (n!=0)
{
toto=toto+1;
n=n/10;
}
return toto;
}
Alors pour n=0, je trouve que toto=1
pour n=11 je trouve toto=2;
pour n=123 je trouve toto=3 ainsi que pour n=423.
Est ce bon?
Dans ce second exercice, ce qui est completé en gras été à completer, j'ai essayé. En esperant que cela soit juste.
public class Main{
public static int chercherMaximum (int [] T)
{
for (int i=0, i<T.length, i++)
{
int maximum=T[0];
int I=0;
if T[i]>maximum
{maximum=tab[i];
I=i;
}
return(I);
}
public static int nombredOccurence(int n, int []T)
{
int occ=0;
for( int i=0, i<T.lenght, i++)
{
if T[i]==n
{
occ==occ+1;
}
return occ
}
public static void main(String [] args) {
int [] tableur={1,4,5,-10,12,4,-6,8,4};
int max=chercherMaximum(tableau);
int nb=nombredOccurence(4,tableau);
System.out.printf("la valeur maximale du tableau est %d\n",max);
System.out.printf("4 apparait %d fois dans le tableau\n",nb);
}
}
Est ce bon?
Voici deux exercices, j'aimerai savoir si mes reponses sont corrects.
Premier exercice
public class toto{
private int entier;
public Toto() {
this.entier=0;
t h i s . e n t i e r = 0 ;}
public void setToto(int nombre)
{
this.entier=nombre;}
public int getToto()
{
int n=this.entier;
int toto=0;
while (n!=0)
{
toto=toto+1;
n=n/10;
}
return toto;
}
Alors pour n=0, je trouve que toto=1
pour n=11 je trouve toto=2;
pour n=123 je trouve toto=3 ainsi que pour n=423.
Est ce bon?
Dans ce second exercice, ce qui est completé en gras été à completer, j'ai essayé. En esperant que cela soit juste.
public class Main{
public static int chercherMaximum (int [] T)
{
for (int i=0, i<T.length, i++)
{
int maximum=T[0];
int I=0;
if T[i]>maximum
{maximum=tab[i];
I=i;
}
return(I);
}
public static int nombredOccurence(int n, int []T)
{
int occ=0;
for( int i=0, i<T.lenght, i++)
{
if T[i]==n
{
occ==occ+1;
}
return occ
}
public static void main(String [] args) {
int [] tableur={1,4,5,-10,12,4,-6,8,4};
int max=chercherMaximum(tableau);
int nb=nombredOccurence(4,tableau);
System.out.printf("la valeur maximale du tableau est %d\n",max);
System.out.printf("4 apparait %d fois dans le tableau\n",nb);
}
}
Est ce bon?
2 réponses
-
Bonjour,
Le premier exemple contient une erreure, en faite pour la valeur n = 0, il vous donnera 0 et non pas 1.
Le deuxième programme (trouver le max), l contient aussi une erreur.
Le troisième (nombre d'occurrence) me parait correct.-
"Le troisième (nombre d'occurrence) me parait correct."
Mouais, moi je vois des erreurs partout !
* Les instructions du for, sont avec des points-virgules
* La taille du tableau s'écrit length
* La condition du if doit être entre parenthèse
* L'opérateur == ne s'utilise pas pour faire des affectations
* Il manque le point virgule final
Cinq erreurs sur cinq lignes, c'est quand même difficile de n'en voir aucune !
int occ=0; for(int i=0; i<T.length; i++) if (T[i]==n) occ=occ+1; return occ;
-
-
Pour le premier exo, je comprends mon erreur, comme n=0, on ne verifie pas n!=0 donc toto reste egale à 0.
En revanche, je ne vois pas où peut être mon erreur donc le maximum. Pouvez vous m'en dire plus?-
Si, vous devez laisser l=i et en suite vous avez deux possibilités:
1. Retourner la valeur maximale du tableau,
2. Retourner l'indice de la valeur maximale du tableau.
L'erreur ne viens pas de là, mais de l'initialisation:
int maximum=T[0]; int I=0;
Ces initialisations doivent être mises en dehors de la boucle, autrement, à chaque fois vous refaites l'initialisation et vous perdez le résultats des itérations précédentes. -
-
-