Est-ce que quelqu'un s'y connaît en Java ?

Discussions concernant tout ce qui n'entre pas dans le cadre des autres catégories.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
janic

Est-ce que quelqu'un s'y connaît en Java ?

Message non lu par janic »

Bonjour à tous!
Voici...

1) Je dois écrire une fonction appelée ¨clonage¨ qui permet de cloner un tableau d'entiers à deux dimensions. Cette fonction prend comme argument un tableau à deux dimensions et retourne un autre tableau d'entiers à deux dimensions. Et je dois soumettre l'algorithme de cette fonction.

2) Je dois écrire une fonction appelée ¨afficher¨ qui prend comme paramètre un tableau à deux dimensions et qui affiche tous ses éléments. Et je dois soumettre l'algorithme de cette fonction.

Voici ce que j'ai fais:

1)

Code : Tout sélectionner

 public int[][] clonage(int[][] tab) {
      // economie en factorisant le calcule des dimensions 
     int dim1 = tab.length;
     int dim2 =tab[0].length;
     int j; // évite de faire des déclaration de variable à tous les passage dans la première boucle
     int[][] temp=new int[dim1][dim2];
     for(int i=0;i<dim1;i++) {
     for( j=0;j<dim2;j++) {
     temp[i][j]=tab[i][j];
     }
     }
     return temp;
}

2)

Code : Tout sélectionner

public void afficher (int[][] tab) {
// economie en factorisant le calcule des dimensions 
int dim1 = tab.length;
int dim2 =tab[0].length;
StringBuffer sb = new StringBuffer(); /* Stringbuffer peut grandir en mémoire contrairement à String, qui recréé un nouvel objet en mémoire à chaque modification */
int j; // évite de faire des déclaration de variable à tous les passage dans la première boucle
int[][] temp=new int[dim1][dim2];
for(int i=0;i<dim1;i++) {
for( j=0;j<dim2;j++) {
sb.append(tab[i][j]+" ") // incrémente la valeur actuelle de sb
}
sb.append("\n") // ajoute le caractère saut de ligne.
}
System.out.println(sb.toString()); /* on n'affiche les résultats qu'à la fin donc on fait qu'un appel au système */

}
Pouvez-vous me dire si je suis sur la bonne voie et m'aider pour les algorithmes
Merci
bibi6
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 462
Inscription : jeudi 23 novembre 2006, 20:12
Statut actuel : Enseignant
Localisation : 59 (Région St Amand les Eaux)

Re: Est-ce que quelqu'un s'y connaît en Java?

Message non lu par bibi6 »

Bonjour,

Les codes me semblent corrects. Il manque peut-être deux ';' à la fin des 'sb.append' pour le deuxième code... et je ne connais pas StringBuffer, mais je suppose que les méthodes ont des noms assez explicites pour savoir ce qu'elles font.

Pour les algorithmes... tu as dû les concevoir, puisqu'ils sont implémentés!
François D.
Utilisateur chevronné
Utilisateur chevronné
Messages : 1367
Inscription : dimanche 30 juillet 2006, 10:04
Localisation : Alsace

Re: Est-ce que quelqu'un s'y connaît en Java?

Message non lu par François D. »

En revanche, pour faire en sorte que plus de monde te réponde, peut-être faudrait-il faire déplacer ce topic vers une autre catégorie, par exemple « Tribune libre » ou « Logiciels mathématiques ».
Tunaki
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 660
Inscription : mardi 12 décembre 2006, 18:03

Re: Est-ce que quelqu'un s'y connaît en Java ?

Message non lu par Tunaki »

A priori, il y a un problème avec tes codes parce que le double tableau n'est pas forcément une matrice.
Tu pourrais très bien avoir un double tableau comme

Code : Tout sélectionner

int tab[][] = {{23,1,0,-2},{4}}
et tu auras un très joli OutOfBoundException avec tes codes.