Blocage sur fonction avec tableau en paramètre en java
Fermé
eltheola
Messages postés
6
Date d'inscription
mercredi 4 mai 2022
Statut
Membre
Dernière intervention
9 septembre 2022
-
4 mai 2022 à 11:41
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 mai 2022 à 17:29
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 mai 2022 à 17:29
A voir également:
- Blocage sur fonction avec tableau en paramètre en java
- Tableau croisé dynamique - Guide
- Blocage agriculteur carte en temps réel - Accueil - Transports & Cartes
- Waptrick java football - Télécharger - Jeux vidéo
- Fonction si et - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
3 réponses
Utilisateur anonyme
4 mai 2022 à 11:44
4 mai 2022 à 11:44
Bonjour
Pour poster un code, il faut faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Pour poster un code, il faut faire comme décrit là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
eltheola
Messages postés
6
Date d'inscription
mercredi 4 mai 2022
Statut
Membre
Dernière intervention
9 septembre 2022
4 mai 2022 à 17:31
4 mai 2022 à 17:31
package fr.elthe.programme; public class Main { public static void main(String[] args) { System.out.println("fonctionne stp"); } public static void aro(int [][] M, int [][] A, int [][] G, int K, int S){ if(K==0){ return; } int aks=A[K][S]; aro(M,A,G,K-1,S-aks); System.out.println("entrepot =" + K ); System.out.println("stock livré =" + aks); System.out.println("gain=" + G[K-1][aks]); } static int [][][] calculerMA (int [][] G){ int n=G.length, S=G[0].length-1; int [][] M = new int [n+1][S+1], A=new int[n+1][S+1]; for(int i =0; S<S+1;S++){ for(int k=1;k<n+1;k++){ for(int s=0;s<n+1;s++){ M[k][s]=-100000000; for(int sp=1;sp<s+1;sp++){ int mksp=M[k-1][s-sp]+G[k-1][sp]; if(mksp>M[k][s]){ M[k][s]=mksp; A[k][s]=sp; } } } } } return new int[][][]{M,A}; } }
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
4 mai 2022 à 20:53
4 mai 2022 à 20:53
Bonjour,
Un programme Java commence toujours par la méthode
Pour que ton programme utilise tes deux méthodes, celles-ci doivent donc être appelées par la méthode main, et vu qu'elles utilisent des paramètres il faudra d'abord créer des valeurs à mettre dans ces paramètres. De plus, il faudra récupérer le résultat de tes méthodes et les afficher, sinon tu ne saura pas ce qu'il s'est passé.
Java n'est pas un langage magique, il fera tout ce que tu lui demandes, mais il faut d'abord lui demander tout ce que tu veux faire.
Un programme Java commence toujours par la méthode
public static void main(String[] args)mais la tienne ne fait qu'une chose
System.out.println("fonctionne stp");. Tout le reste n'étant jamais appelé par la méthode main (ni directement, ni transitivement), c'est du code mort dans lequel le programme n'ira jamais.
Pour que ton programme utilise tes deux méthodes, celles-ci doivent donc être appelées par la méthode main, et vu qu'elles utilisent des paramètres il faudra d'abord créer des valeurs à mettre dans ces paramètres. De plus, il faudra récupérer le résultat de tes méthodes et les afficher, sinon tu ne saura pas ce qu'il s'est passé.
Java n'est pas un langage magique, il fera tout ce que tu lui demandes, mais il faut d'abord lui demander tout ce que tu veux faire.
eltheola
Messages postés
6
Date d'inscription
mercredi 4 mai 2022
Statut
Membre
Dernière intervention
9 septembre 2022
5 mai 2022 à 10:25
5 mai 2022 à 10:25
Je vois bien qu'il faut l'appeler dans la méthode main mais je n'arrive pas à comprendre comment écrire un paramètre qui est un tableau 2D. Je ne vois pas comment écrire les valeurs que je veux mettre dedans.
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié le 6 mai 2022 à 06:51
Modifié le 6 mai 2022 à 06:51
"je n'arrive pas à comprendre comment écrire un paramètre qui est un tableau 2D"
Un exemple :
Un exemple :
int[][] tab = { {11, 12, 13}, {21, 22, 23}, {31, 32, 33} };
eltheola
Messages postés
6
Date d'inscription
mercredi 4 mai 2022
Statut
Membre
Dernière intervention
9 septembre 2022
>
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
8 mai 2022 à 13:05
8 mai 2022 à 13:05
petite question supplémentaire, comment je fais pour faire -infini en java ? Car dans calculerMA je mets :
mais il faudrait mieux que ce soit égale à -infini.
M[k][s]=-100000000;
mais il faudrait mieux que ce soit égale à -infini.
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
>
eltheola
Messages postés
6
Date d'inscription
mercredi 4 mai 2022
Statut
Membre
Dernière intervention
9 septembre 2022
8 mai 2022 à 17:29
8 mai 2022 à 17:29
Mathématiquement, rien n'est égal à l'infini, c'est donc impossible de lui donner une valeur.
Tu peux éventuellement considérer Integer.MIN_VALUE et Integer.MAX_VALUE mais ce sont des nombres comme les autres, des calculs avec ces valeurs ne bénéficient pas des propriétés de l'infini.
Tu peux éventuellement considérer Integer.MIN_VALUE et Integer.MAX_VALUE mais ce sont des nombres comme les autres, des calculs avec ces valeurs ne bénéficient pas des propriétés de l'infini.
4 mai 2022 à 12:15
Sinon c'est ça :
package fr.elthe.programme;
public class Main {
public static void main(String[] args) {
System.out.println("fonctionne stp");
}
public static void aro(int [][] M, int [][] A, int [][] G, int K, int S){
if(K==0){
return;
}
int aks=A[K][S];
aro(M,A,G,K-1,S-aks);
System.out.println("entrepot =" + K );
System.out.println("stock livré =" + aks);
System.out.println("gain=" + G[K-1][aks]);
}
static int [][][] calculerMA (int [][] G){
int n=G.length, S=G[0].length-1;
int [][] M = new int [n+1][S+1], A=new int[n+1][S+1];
for(int i =0; S<S+1;S++){
for(int k=1;k<n+1;k++){
for(int s=0;s<n+1;s++){
M[k][s]=-100000000;
for(int sp=1;sp<s+1;sp++){
int mksp=M[k-1][s-sp]+G[k-1][sp];
if(mksp>M[k][s]){
M[k][s]=mksp;
A[k][s]=sp;
}
}
}
}
}
return new int[][][]{M,A};
}
}
4 mai 2022 à 12:19
Tu peux modifier ton message en cliquant sur les 3 … en bas à droite.
Et avec une image, on ne peut pas copier ton code pour le tester.