Remplissage tableau

Remplissage tableau java Word - Colorer le fond - Articles Remplissage du tableau de chaine en C - Forum - C Remplissage de tableau - Forum - LibreOffice / OpenOffice Remplissage de tableau avec les composantes d'un autre tableaux - Forum - Pascal Remplissage de tableau - Forum - Excel

Salut

comment on peut creer une methode public voidremplirCode() qui permet de remplir les cases d'un tableau de 13 case a traver le clavier par des entiers entre 0 et 9 Doit -on utuliser un boucle do while dans un boucle for?

Forum

Remplissage tableau java Word - Colorer le fond - Articles Remplissage du tableau de chaine en C - Forum - C Remplissage de tableau - Forum - LibreOffice / OpenOffice Remplissage de tableau avec les composantes d'un autre tableaux - Forum - Pascal Remplissage de tableau - Forum - Excel

Web: www.shapebootstrap.net

8 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Salut!

Essaie de faire des questions plus ou moins claires!
Si j'ai bien compris:
"Comment peut-on creer une methode public appelée "public void remplirCode()" qui permet de remplir les cases d'un tableau de 13 cases a travers le clavier par des entiers entre 0 et 9?"

Donc si tu veux absolument une fonction void. Il te suffit de passer en paramètre le tableau (du coup, ça fait: void remplirCode(int[ ] monTableau)" ). Tout est référencer en java.
Si non, tu peux aussi retourner par ta fonction un tableau int[ ]. Ce qui fait:" int[ ] remplirCode()"

"Doit-on utiliser un boucle do while dans un boucle for?"
Pas du tout! A moins que tu comptes faire une double boucle.

Il faut bien faire la différence entre un for, un do while et un while:
Le while : Avant de rentrer dans la boucle, on regarde si la condition est remplie.
Le do while: Comme le précédent sauf que la condition est vérifiée à chaque fin de boucle.

Le for fonctionne de la même manière que le while dans le sens qu'il commence par regarder si la condition est remplie. La grosse différence de ta boucle, c'est que tu peux initialiser une valeur et ajouter une opération à la fin.
En pseudo code, la boucle for s'écrit:
POUR compteur DE début à fin
Instruction 1
FIN POUR
Instruction 2


 for(int i=0;i<tab.length;i++){           //Instructions } 

Reply
réponses:
  • auteur

  • auteur

    Mais si je peux me permettre, il serait peut être plus didactique de commencer avec un langage basique tel que le c!

  • auteur

    En faite je suis entrain de m'entrainer sur java et j'aime bien comprendre d'une facon basique et ne laissez pas les chose en flou

    ici

    "Chaque case doit contenir des entiers entre 0 et 9" et la saisie se fait par clavier ( "Classe scanner")

    donc

    public void remplirCode(int[ ] code){

    for(int i=0; i<code.length;i++){

    Scanner sc = new Scanner (System .in);


    ........

    Vous pouvez ainsi m'aider a compléter cette partie de code

    je te remercie enormement

  • auteur

    Je t'ai fait deux versions!
    La première est une gestion des exceptions très basique, elle est tel quel, je l'aurais écrit en c (mise à part que les booleans n'existe pas, j'aurais utiliser un int).
    Ca met en évidence la gestion des boucles et d'une variable boolean (la variable error)

    La seconde est une gestion d'exceptions classique à utiliser en Java et en général en orienté objet. C'est beaucoup plus propre. A noter, que pour bien faire, j'aurais du créer une class personnalisée qui hérite d'Exception pour gérer que l'exception envoyée si le nombre n'est pas entre 0 et 9.

    Hésite pas, si tu as besoin de plus de précision sur le code.

     package applicationtest;  public class ApplicationTest {      /**      * @param args the command line arguments      */          public static int tailleTab = 5;          public static void main(String[] args) {                  int[] myTab = new int[tailleTab];         remplirCodeV1(myTab);                  if(myTab!=null)         {             for(int i=0; i<myTab.length;i++)                 System.out.println(myTab[i]);         }                  myTab = new int[tailleTab];         remplirCodeV2(myTab);         if(myTab!=null)         {             for(int i=0; i<myTab.length;i++)                 System.out.println(myTab[i]);         }     }      


    Version 1: Gestion des exceptions comme en c.
     public static void remplirCodeV1(int[] code){           Scanner sc = new Scanner (System .in);          boolean error = false;         for(int i=0; i<code.length;i++){              int tmp=0;             do{                  System.out.print("Entrez la case "+(i+1)+" du tableau: ");                 String s = sc.nextLine(); //On récupère la caractère encodé                  if(!s.matches("\\d+")){                     error=true;                     System.err.println("Entrez un chiffre!!");                     System.err.println("Réentrez cette case !");                 }                 else{                     tmp=Integer.parseInt(s);                     if(tmp<0 || tmp>9){                         error=true;                         System.err.println("Le chiffre doit être entre 0 et 9");                         System.err.println("Réentrez cette case !");                     }else                           error=false;                 }             }while(error);             code[i]=tmp;         }     }      


    Version 2: Gestion des exceptions classiques.
         public static void remplirCodeV2(int[] code){              Scanner sc = new Scanner (System .in);              for(int i=0; i<code.length;i++){                  try{                     System.out.print("Entrez la case "+(i+1)+" du tableau: ");                     String s = sc.nextLine(); //On récupère la caractère encodé                     int tmp=Integer.parseInt(s);                     if(tmp<0 || tmp>9)                         throw new Exception();                     code[i]=tmp;                 }                 catch(NumberFormatException e ){                     System.err.println("Erreur "+e.toString());                     System.err.println("Réentrez cette case !");                     i--;                 }                 catch (Exception e) {                    System.err.println("Le chiffre doit être entre 0 et 9");                    System.err.println("Réentrez cette case !");                    i--;                }              }                }      } 

  • auteur

    juste une remarrque pour la derniere version :

                    catch(NumberFormatException e ){                     System.err.println("Erreur "+e.toString());                     System.err.println("Réentrez cette case !");                     i--;                 }                 catch (Exception e) {                    System.err.println("Le chiffre doit être entre 0 et 9");                    System.err.println("Réentrez cette case !");                    i--;                }

    pourquoi quelle est la besoin de creer 2 format de catch Exception ?!
    la seule catch (Exception e)

    ne seras pas suffisante !!

  • auteur

    Ca fonctionnerait, mais ça t'empêche de connaitre l'exception précise renvoyé.
    Comme je le disais, pour bien faire, j'aurais du implémenter une classe personnelle qui hérite d'exception.
    Mon deuxième catch récupérerai n'importe quelle exception autre que la NumberFormatException.
    Donc oui, ça fonctionne mais c'est une mauvaise gestion

  • auteur

    D'accord c'est claire :)

    On continue, cette partie aussi facile mais comme je te dis je suis ainsi entrain d'apprendre les base .

    et Si maintenant je veut tester si le produit venir du turkey et j'affiche le message "c'est produit est de turkey "

    ou b1

    "c'est produit est pas de turkey"

    avec un produit de turkey celui qui correspond a un code barre commence par
    '869 '

    ------> Donc ici le principe est de tester code[0] =8 passer tester le suivant
    Sinon je sort et j'affiche "ce produit pas de turkey"

    ---------------------------------------------------------------------------------------------------------------

    public void payscode(){
    int i =0;
    if (code[0]==6){

    ..........................

  • auteur

    Tu mets ton if dans ta boucle et tu parcours seulement les 3 premières cases, si c'est le cas, tu fais un System.out.println()

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed