transformer une methode static a non static
Débutant en Java je suis bloqué sur le programme suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| class corrige {
static final int N = 20; // plus grand numéro de boule possible
static void Affiche(int[] sac) {
Terminal.ecrireString("{");
boolean Au_Moins_Un = false;
for (int i=0; i<N; i++)
if (sac[i]>0) {
if (Au_Moins_Un) Terminal.ecrireString(", ");
else Au_Moins_Un = true;
Terminal.ecrireString((i+1)+"=>"+sac[i]);
};
Terminal.ecrireString("}");
}
static int[] Lire(int[] sac) {
int C, N;
do {
Terminal.ecrireString("contenu actuel du sac : ");
Affiche(sac);
Terminal.sautDeLigne();
Terminal.ecrireString(" ajouter(+)/retirer(-) combien de boules d'un meme numero (0 = fin) : ");
C = Terminal.lireInt();
if (C==0) break;
Terminal.ecrireString(" quel numero de boule : ");
N = Terminal.lireInt();
sac[N-1] = Math.max(0, sac[N-1]+C);
} while (C!=0);
return sac;
}
static boolean Contient(int[] sac, int num) {
return sac[num-1]>0;
}
static boolean Inclus(int[] x, int[] y) {
for (int i=0; i<N; i++)
if (x[i]>y[i]) return false;
return true;
}
static int[] Union(int[] x, int[] y) {
int[] r = new int[N];
for (int i=0; i<N; i++) r[i] = x[i]+y[i];
return r;
}
static int[] Moins(int[] x, int[]y) {
int[] r = new int[N];
for (int i=0; i<N; i++) r[i] = Math.max(0, x[i]-y[i]);
return r;
}
static int[] Intersection(int[] x, int[] y) {
int[] r = new int[N];
for (int i=0; i<N; i++) r[i] = Math.min(x[i], y[i]);
return r;
}
// fonction principale
public static void main (String[] args) {
int[] A = new int[N],
B = new int[N];
int Num;
// saisie du sac A
Terminal.ecrireString("Saisie des boules du sac A : ");
A = Lire(A);
Terminal.ecrireString("A = ");
Affiche(A);
Terminal.sautDeLigne();
// saisie du sac B
Terminal.sautDeLigne();
Terminal.ecrireString("Saisie des boules du sac B : ");
B = Lire(B);
Terminal.ecrireString("B = ");
Affiche(B);
Terminal.sautDeLigne();
// saisie d'un numéro de boule
Terminal.sautDeLigne();
Terminal.ecrireString("donnez un numero de boule : ");
Num = Terminal.lireInt();
Terminal.sautDeLigne();
Terminal.ecrireString("le sac A ");
if (Contient(A, Num)) Terminal.ecrireString("contient au moins une");
else Terminal.ecrireString("ne contient pas de");
Terminal.ecrireStringln(" boule portant le numero "+Num);
Terminal.ecrireString("le sac A ");
if (Inclus(A, B)) Terminal.ecrireString("est");
else Terminal.ecrireString("n'est pas");
Terminal.ecrireStringln(" inclus dans le sac B.");
Terminal.ecrireString("A union B = ");
Affiche(Union(A,B));
Terminal.sautDeLigne();
Terminal.ecrireString("A moins B = ");
Affiche(Moins(A,B));
Terminal.sautDeLigne();
Terminal.ecrireString("A intersection B = ");
Affiche(Intersection(A,B));
Terminal.sautDeLigne();
}
}
la question est de creer une class unSac qui va contenir ses methodes:
public class unSac {
...
public void Affiche() { ... }
public void Lire() { ... }
public boolean Contient(int num) { ... }
public boolean InclusDans(unSac s) { ... }
public unSac Union(unSac s) { ... }
public unSac Moins(unSac s) { ... }
public unSac Intersection(unSac s) { ... }
} |
ses methodes existe deja dans le programme main comme static donc il faut les mettre dans cette class unSac et les supprimer dans main mais je sais pas mettre le code dans ces methodes.
merci d'avance