IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Prog. débutant : Boucles


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 46
    Par défaut Prog. débutant : Boucles
    Bonsoir à tous,

    L'objet de mon exercice est d'écrire un programme qui calcule un carré de lignes et de colonnes où chaque case contient le numéro de colonne suivi du numéro de ligne.
    Voici ce que cela doit donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    00  10  20  30  40  50  60  70  80  90
    01  11  21  31  41  51  61  71  81  91
    02  12  22  32  42  52  62  72  82  92
    03  13  23  33  43  53  63  73  83  93
    04  14  24  34  44  54  64  74  84  94
    05  15  25  35  45  55  65  75  85  95
    06  16  26  36  46  56  66  76  86  96
    07  17  27  37  47  57  67  77  87  97
    08  18  28  38  48  58  68  78  88  98
    09  19  29  39  49  59  69  79  89  99
    Jusqu'ici j'utilisais un programme "basique" qui me permettait de m'adapter à ce genre d'exercice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	public class essai {
    		public static void main(String[] args) {	
    			int k = 1;
    	for(int i = 1; i <= 10; ++i) {
    		for(int j = 1; j <= 10; ++j) {
    			if(k<10)System.out.print("  ");
    			else{
    				if(k<100)System.out.print(" ");
    			}
    			System.out.print(k+"  ");
    			k++;
    		}
    		System.out.println();
    	}
    		}
    	}
    Merci de m'éclairer

    Bonne soirée

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 46
    Par défaut
    J'ai essayé d'avancer grâce à l'exercice suivant :

    a0 b0 c0 d0 e0 f0 g0 h0 i0 j0
    a1 b1 c1 d1 e1 f1 g1 h1 i1 j1
    a2 b2 c2 d2 e2 f2 g2 h2 i2 j2
    a3 b3 c3 d3 e3 f3 g3 h3 i3 j3
    a4 b4 c4 d4 e4 f4 g4 h4 i4 j4
    a5 b5 c5 d5 e5 f5 g5 h5 i5 j5
    a6 b6 c6 d6 e6 f6 g6 h6 i6 j6
    a7 b7 c7 d7 e7 f7 g7 h7 i7 j7
    a8 b8 c8 d8 e8 f8 g8 h8 i8 j8
    a9 b9 c9 d9 e9 f9 g9 h9 i9 j9


    Voici ce que j'ai laborieusement rédigé :

    public class essai {
    public static void main(String[] args) {
    char tableauCol[] = {'a','b','c','d','e','f','g','h','i','j'};
    int tableauLig[] = {'0','1','2','3','4','5','6','7','8','9'};
    for(int i = 0; i <= tableauCol.length; ++i) {
    for(int j = 0; j <= tableauCol.length; ++j) {
    System.out.print(tableauCol[j] + tableauLig[i]+" ");
    System.out.println();
    }
    }
    }
    }

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Il y a vraiment plus simple, mais en Java je ne peux pas vérifier

    Dans ton premier algo tu supprimes ta variable k, et tu transformes ton algo de la sorte (pseudo-code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour line: 0 -> 9 faire
        Pour column: 0 -> 8 faire
            afficher(column + line + " ");
        FinPour
     
        afficher("9" + line + "\n"); // display last in order to not have an extra useless space at the end of each line
    FinPour
    Pour ton deuxième code, tu as juste soit à faire varier column de 'a' à 'j' soit afficher ('a' + column) (si c'est possible en Java)

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Bon déjà une toute première chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tableauLig[] = {'0','1','2','3','4','5','6','7','8','9'};
    devrait plutôt être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char tableauLig[] = {'0','1','2','3','4','5','6','7','8','9'};
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tableauLig[] = {0,1,2,3,4,5,6,7,8,9};
    car tu mets des caractères dans des entier. Ca fonctionne certes mais tu risques d'être surpris par ce que tu vois par la suite.

    Ensuite dans ta boucle interieur, tu fais des saut de ligne. Ces sauts de lignes doivent être fait dans la boucle extérieur.

    Ensuite si tu fais char + int (dans ton print) tu obtients des truc bizarres. Essaye avec printf plutôt en passant les 2 valeurs que tu veux affichée. (en tenant bien entendu compte des type de variable de des 2 tableaux.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 46
    Par défaut
    Bonjour Wrax,

    Je viens d'actualiser mon code suite à tes remarques.
    J'ai fait le choix de considérer comme char le tableauLig.
    J'ai repris ton conseil pour le printf.
    Je pense avoir respecté la structure du printf mais le "%s" ne doit pas convenir.
    J'ai essayé avec "%c" mais le programme fini en erreur.

    Si bien qu'ainsi le programme donne un message [C@5a01ccaa.
    En tout cas je retrouve bien mes 10 colonnes et 10 lignes.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public class essai {
    		public static void main(String[] args) {	
    			char tableauCol[] = {'a','b','c','d','e','f','g','h','i','j'};
    			char tableauLig[] = {'0','1','2','3','4','5','6','7','8','9'};
    	for(int i = 0; i < tableauLig.length; ++i) {
    		for(int j = 0; j < tableauCol.length; ++j) {
    		System.out.printf("%s",tableauLig, tableauCol);
    	}
    		System.out.println();
    	}
    		}
    	}
    Je regarde sur ce que tu m'as posté Foetus.

    Merci à vous

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par steph-0329 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		System.out.printf("%s",tableauLig, tableauCol);
    	}
    		System.out.println();
    	}
    		}
    	}
    Tu y es presque.

    Sauf que dans le printf tu as un seul %s, hors tu as 2 variables, il te faut donc 2 %s (ou %c).

    Tu fais référence au tableaux tout entier (d'ou le [C@5a01ccaa) et non à une case du tableau.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 25/05/2007, 15h51
  2. [Débutant]Boucle sans fin : Wend non reconnu
    Par SebHoule dans le forum IHM
    Réponses: 5
    Dernier message: 12/06/2006, 16h49
  3. [Débutant] boucle for et vector
    Par zenux dans le forum SL & STL
    Réponses: 4
    Dernier message: 22/03/2006, 00h18
  4. [Débutant]Boucle imbriquée avec des bornes différentes
    Par Hayato dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/08/2005, 16h23
  5. [débutant] boucle en sxl
    Par laurent.c123 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 15/06/2005, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo