|
|
|
|
Salut à toi,
voici mon problème.je dois dans un premier temps, crér un classe.
- cette classe a un attribut privé qui est un tableau definit comme suit:
index du tableau 0 1 2 3 4 5
elements du tableau 0 1 1 0 0 0
les élements du tableau sont des chiffres binaires.
- ensuite, je dois définir deux méthodes set() et get()
la methode set() contient deux arguments : l'index du bit et une nouvelle valeur pour ce bit. elle doit retourner 0 pour Ok et -1 s'il ya erreur(si l' argument index est en dehors du tableau ou si la valeur du bit n'est pas 0 ou 1)
la methode get() affiche les element du tableau.
-un constructeur : le constructeur doit recevoir un passa d'argument qui donne la longueur souhaiter du tableau. Il doit créer un tableau qui ne contienne que des zeros.
Merci de bien voulior m'aider.
Ca sent un peu le "faites mes devoirs, je vous en serai reconnaissant"
|
Merci, je te suis vraiment reconnaissante. C'est juste que j'ai passé 4h devant cet exercice sans savoir vraiment quoi faire.
|
Salut,
public class Registre {
/**
* Longueur max du tableau
*/
private static final int MAX_ARRAY_LENGTH=6;
/**
* Mon tableau
*/
private short[] myBitArray={0,1,1,0,0,0};
/**
* Constructeur
* @param aBitArrayLength
*/
public Registre(int aBitArrayLength){
if (aBitArrayLength<=MAX_ARRAY_LENGTH) {
myBitArray=new short[aBitArrayLength];
int index=0;
while (index<aBitArrayLength) {
myBitArray[index]=0;
index++;
}
} else {
System.out.println("Longueur demandee superieure a celle autorisee.");
}
}
/**
* Modifier la valeur d un bit
* @param position
* @param valeur
*/
public void set(int position, int valeur){
if ( !((valeur==0)||(valeur==1)) ){
System.out.println("la valeur "+valeur+" est incompatible avec le type bit.");
}
if ( (position<myBitArray.length) && (position>0) ){
myBitArray[position]=(short) valeur;
} else {
System.out.println("La position "+position+" est en dehors du tableau.");
}
}
/**
* Afficher le tableau
*/
public void get(){
int index=0;
while (index<myBitArray.length) {
System.out.print(myBitArray[index]);
if (index< (myBitArray.length-1) ){
System.out.print("|");
} else {
System.out.println();
}
index++;
}
}
}
Good luck |
Salut emmanuelP,
|
Bonjour à tous,
|
Merci Chouba,
|
Salut
int index2 = 4;
for (int i = 0; i<5;i++){
short tempo = tableau1[i];
tableau2[index2] = tempo;
index2 = index2--
}
Chouba, Pochard d'assaut .. |
C'est pas exactement ca.
|
Ok
public short methode1(){
int index2 = 0;
tableau2[index2] = 6;
for (int i = 0; i == tableau1.lenght() ;i++){
index2 = i + 1
short tempo = tableau1[i];
tableau2[index2] = tempo;
}
return tableau1[5];
}
pour la méthode 2 public short methode2(){
short tempo = tableau1[0];
tableau2[6] = 6;
for (int i = 1 ; i < tableau.lenght ; i ++){
tableau2[i -1] = tableau1[i];
}
return tempo;
}
Chouba, Pochard d'assaut .. |
Merci pour ton aide choubaka c'est vraiment énorme et je te suis reconnaissante.
|
Salut
deplaceRegistre(short aBitArrayLength,short[] myBitArray1)
{
super (aBitArrayLength);
myBitArray1=new short[aBitArrayLength];
myBitArray2=new short[aBitArrayLength];
tu reçois en argument "myBitArray1" qui est à priori déjà rempli ... dans la ligne soulignée, tu l'écrase en réinitialisant le tableau qui de ce fait devient vide ... Chouba, Pochard d'assaut .. |
Deuxième petit problème
public short déplace_gd(short position,short wert, short temp)
{
super.set( position,wert);
if ( !((wert==0)||(wert==1)) )
{
System.out.println("la valeur du bit "+wert+" n'est ni 0 ni 1.");
return(-1);
}
else{
for (short i = 0; i <=myBitArray1.length ;i++)
{
position =i+1;
temp = myBitArray1[i];
myBitArray2[ position] = tempo;
il vient d'où ce tempo ??? Chouba, Pochard d'assaut .. |
//deplaceRegistre bit={0,1,0,1,0,1,0,1}; //il ya là une erreur du compilateur // c'est normal bit n'existe pas
short[] d== new short[6];
Registre bit = new Registre(i,d); // ça c'est l'instanciation de ta classe. mais je ne sais pas où tu vas chercher ton "i"
d=={0,1,0,1,0,1,0,1};
bit.deplaceRegistre(6,d);
/*
*Initialiaser
*l' Objet
*/
}//fin main
Chouba,
Pochard d'assaut .. |
Au fait je dois travailler avec deux tableaux mais on me demande de passer seulement un tableau au contructeur . Comment faire pour initialiser le deuxieme tableau? où dois je le déclarer? tempo est une erreur de frappe. jevoulais écrire temp. Je ne savais pas qu'on pouvais mettre directement des chiffres c'est pourquoi j'ai mis i. Alors c'est juste l'opération que j#ai faite dans les deux méthodes?
|
Quan j'essaye de compiler ca , ca me donne ces trois erreurs
|
Il est possible que ce que tu veux rentrer dans ton tableau est trop grand ..
|
Pour le constructeur, je viens de vérifier, tu n'as pas de constructeur de la classe registe qui accépte un tableau ... uniquement un int qui détermine la longueur du tableau ..
public Class PetitRegistre extends Registre {
...........
}
ceci est une sous classe de registre, qui hérite des attributs et des méthodes de Registre... Chouba, Pochard d'assaut .. |