Tableau en java.

Discutez d'informatique ici !
z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

Tableau en java.

par z^42 » 28 Nov 2014, 14:38

Bonjour,

J'ai un problème avec mon programme mais je ne sais pas comment corriger. D'après mes erreurs j'en ai 2: la fonction saisie() et tab[i]=res.

Pouvez vous m'aider svp.


Code: Tout sélectionner

import java.util.Scanner;
class tableau{
    public static void saisie(int[] t) {
 
   Scanner sc = new Scanner(System.in);
   System.out.println("Saisissez un entier : ");
    int i = sc.nextInt();
}
 
public static String arrayToString(int[] tab) {
    String res = "";
    for (int i=0; i<tab.length; i++){
        tab[i]= res;
    }
    return res;
}
 
static void main(String[] args) {
    int[] tab = saisie();
    String str = arrayToString(tab);
    System.out.println(str);
}

}


Merci d'avance
Bonne journée



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 28 Nov 2014, 16:15

hello,

Code: Tout sélectionner
tab[i]=res

quel est le problème
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 28 Nov 2014, 17:37

Bonjour,

[code]public static String arrayToString(int[] tab) {
String res = "";
for (int i=0; i est un int et tu essayes de faire "rentrer" un string dedans. Est-ce que cela te paraît logique ?

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 28 Nov 2014, 19:03

Ah oui :mur: Non on peut pas rentrer un string dans un int :hum:

Ce que j'essaye de faire c'est de parcourir tout le tableau en ajoutant les valeurs au string.
Mais je ne sais pas comment faire :triste:

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 28 Nov 2014, 19:10

sais-tu assigner une des valeurs du tableau à une variable? par exemple la première valeur
la vie est une fête :)

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 28 Nov 2014, 19:17

je n'ai pas compris ta question.
Je sais mettre des valeurs dans un tableau ex:
int []t: {2,3,5,5};

OU

int []t= new int [4];
t[0]=2;
t[1]=3;
t[2]=5;
t[3]=5;

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 28 Nov 2014, 22:33

alors simplifions encore
sais tu assigner une valeur à une variable?
la vie est une fête :)

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 28 Nov 2014, 23:54

oui il faut faire une opération comme i += 1 ce qui donne i=i+1

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 01:21

si je te dis d'assigner la valeur 10 à la variable toto, tu écris quoi?
la vie est une fête :)

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 29 Nov 2014, 10:07

j'écris int toto=10;

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 10:44

ok

plusieurs questions dans l'ordre dans ce cas, on s'arrête quand tu sais pas.
1)
Code: Tout sélectionner
 int []t= {2,3,5,5};

comment assignes tu la première valeur du tableau t à la variable toto

2)
Code: Tout sélectionner
 String s = 'machaine';

comment concatènes tu le string 'en or' à la chaine s et comment affiches tu s

3)
Code: Tout sélectionner
 String s = 'machaine';

comment concatènes tu l'entier 10 à la chaine s et comment affiches tu s

4)
Code: Tout sélectionner
 String s = 'machaine';
 int []t= {2,3,5,5};

comment concatènes tu la première valeur du tableau t à la chaine s et comment affiches-tu s
la vie est une fête :)

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 29 Nov 2014, 10:52

1)
int toto= t[0];

2)
System.out.println( s + " en or");

3)
System.out.println( s + 10);

4)
System.out.println( s + t[0]);

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 11:42

pour 2 3 et 4 on peut également faire en deux étapes:
deux instructions:
s = s + 'en or'
et System.l...println(s)

pour revenir à ton énoncé.
String res = "";
comment concatènes tu à res la premiere valeur de tableau, puis la deuxieme
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 29 Nov 2014, 15:43

Pardon d'intervenir, mais il y a un truc que je trouve un peu bizarre


Code: Tout sélectionner
3)
System.out.println( s + 10);



Sauf erreur de ma part, même si java utilise le plus + pour la concaténation, ici je pense qu'on a un problème.

On fais String + Int, je sais qu'en C on peut afficher la valeur d'un caractère par exemple, mais de là à appliquer ce principe là pour la concaténation j'ai un doute. Sa marche peut être et je raconte surement des conneries mais je trouve quand même ça bizarre.


Comment le compilo peut savoir qu'il doit faire une concaténation de deux string par exemple et non l'addition de deux entiers ?


Pour moi soi tu fais String + String soit tu fais int + int
Mais en aucun cas on ne fait String + int.


Du coup j'aurais plutôt écris

Code: Tout sélectionner
3)
System.out.println( s + "10");


Si je raconte des conneries je voudrais bien qu'on m'explique comment ça marche un peu plus en détail x)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 16:50

effectivement tu racontes des conneries :bad:

On fais String + Int, je sais qu'en C on peut afficher la valeur d'un caractère par exemple

donc pour commencer afficher une valeur ca n'a rien à voir avec concaténer des valeurs de type différent.

Ensuite, c'est du java, pas du C, donc les analogies sont toutes sauf fiables.

Ensuite, comme d'hab, t'as qu'à tester.

Enfin,
Mais en aucun cas on ne fait String + int.

il ne s'agit pas d'un problème de compilateur mais d'un problème de spécification.
Si la spec de java dit:
lorsque on a un String, suivi d'un '+', suivi d'un Int, alors
le Int doit être converti en String, puis on doit retourner un nouveau String qui contient le premier et le String qu'on a converti ensuite

alors le compilateur se démerde comme il peut pour satisfaire la spec.

concernant les détails du compilateur, je ne saurais-te dire. il faut regarder l'implem même du compilo...
fonctionnellement parlant il faut généralement juste considérer que la deuxième opérande est convertie dans un type tel que l'opération premierType.+(typeConverti) existe.
ici premierType étant String, typeConverti String aussi, et la concat des String existe en java.
(mais encore une fois il faut se méfier avec les analogies entre langages)
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 29 Nov 2014, 17:13

Bien fait pour moi :ptdr:

PS: Du coup si on l'avait écris dans l'autre sens Int + String à ce moment là c'est String qui est converti ? Et on ne fait plus une concaténation mais une addition ? Vais tester pour voir de mes propres yeux :lol3:
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 29 Nov 2014, 18:16

Me revoilà :ptdr:

c'est:
Code: Tout sélectionner
for (int i=0; i<tab.length; i++){
       System.out.println( tab[i] + res);
    }

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 18:22

c'est:
Code: Tout sélectionner
for (int i=0; i<tab.length; i++){
       System.out.println( tab[i] + res);
    }


non

t'ai-je demandé d'afficher quoique ce soit?
la vie est une fête :)

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 29 Nov 2014, 18:33

for (int i=0; i tab[i] = tab[i]+ res;
}

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 29 Nov 2014, 18:47

non plus.
t'ai-je parlé de boucles?
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite