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

Algorithmes et structures de données Discussion :

Besoin d'aide pour faire un programme en pseudo-code - Tableaux à 2 dimensions (int)


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Besoin d'aide pour faire un programme en pseudo-code - Tableaux à 2 dimensions (int)
    Bonjour à chacun.e,

    Voici, je suis en totale "débutation" et je galère pas mal. J'ai beau regarder sur tous les sites possibles, je ne trouve pas réponse à mes questions.

    Quelqu'un peut-il m'aider, m'expliquer comment faire pour écrire en pseudo-code (puis en java) les 7 points suivants ?
    J'ai d'abord tenté de passer en java pour écrire ensuite l'algorithme afin de comprendre la logique mais là, aussi j'ai pris un mur... d'incompréhension. Quelqu'un à-t'il (ou elle) la patience pour m'expliquer comment faire ? :-)

    Merci d'avoir pris le temps de lire ce message et peut-être d'y répondre en me donnant des liens ou de l'aide pour atteindre mon objectif :-)

    Je dois faire ceci :
    //1)Faire un programme en pseudocode qui initialise un tableau à 2
    //dimensions de 100 lignes et 3 colonnes.
    //2) La première colonne est initialisée avec des nombres aléatoires compris entre 0 et 100,
    //3)et la deuxième colonne est initialisée avec des nombres compris entre 100 et 200,
    //4)la troisième colonne contient des nombres compris entre 200 et 300.

    //On demande que le programme réaliser les opérations suivantes :
    //5)1. Calculer et afficher la somme des 3 colonnes et la somme totale de tout le tableau.
    //6) 2. Calculer et afficher la moyenne des 3 colonnes et la moyenne de tout le tableau.
    //7) 3. Calculer l’écart-type des colonnes 1, 2 et 3.

    Pour le moment, j'ai écris ceci en pseudo-code :
    Début
    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
    17
    18
    // création d'un tableau à deux dimensions : 100 lignes et 3 colonnes
     
    Entiers (int) : tableau[100][3], Somme1, Somme2
    Réels (float) : Moyenne1 et Moyenne2
    Début
    colonne=0
    Pour (ligne=0;ligne<100;++ligne)
    tab [ligne][colonne]=random(0,100)
    Fin-pour
    colonne=1
    Pour (ligne=0;ligne<100;++ligne)
    tab [ligne][colonne]=random(100,200)
    Fin-pour
    colonne=2
    Pour (ligne=0;ligne<100;++ligne)
    tab [ligne][colonne]=random(200,300)
    Fin-pour
    Fin programme


    Et en java ceci :
    Code Java :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static void main(String[] args) {
    // Déclaration d'un tableau à 2 dimensions : 100 lignes et 3 colonnes
    double[][] tableau_1 = new double[100][3];
    // Affectation avec un nombre aléatoire entre 0 et 100
    for (int i=0; i < tableau_1.length; i++) {
    tableau_1[i] = (int)(Math.random() * 100);
    }
    // Affichage de toutes les éléments du tableau
    for (int valeur : tableau_1) {
    System.out.println(valeur);
    }
    } 
    }// fin main


    Avec ce merveilleux message d'erreur :-/
    2 errors found:
    File: C:\java\Devoir_Princ_Prog_NombreAleatoire02.java [line: 7]
    Error: incompatible types: int cannot be converted to double[]
    File: C:\java\Devoir_Princ_Prog_NombreAleatoire02.java [line: 10]
    Error: incompatible types: double[] cannot be converted to int

  2. #2
    Membre expérimenté
    Code java :Sélectionner tout -Visualiser dans une fenêtre à part
    tableau_1[i] = (int)(Math.random() * 100);


    Ton tableau à deux dimensions.

    Tu devrais avoir un truc du genre
    Code java :Sélectionner tout -Visualiser dans une fenêtre à part
    tableau_1[i][??] = (int)(Math.random() * 100);

    ou
    Code java :Sélectionner tout -Visualiser dans une fenêtre à part
    tableau_1[??][i] = (int)(Math.random() * 100);
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Nouveau Candidat au Club
    tableau à deux dimension et horreur de la "random akademy"
    Merci pour ta réponse, je vais essayer :-)

  4. #4
    Expert confirmé
    salut

    en fait en regardant le descriptif

    tu vois bien que tes nombre a mettre en colonne

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    TABBL[LIGNE][COL] = RANDOM(0,100)+COL*100;

    sachant que ton indice de colonne commence a 0
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Nouveau Candidat au Club
    Me revoilou
    Bonjour :-)

    Via java j'ai réussi à obtenir un tableau à deux dimensions [100][3]qui m'affiche bien des valeurs aléatoires sur les lignes et les colonnes alors que pour ma part, je dois obtenir des valeurs aléatoires entre 0 et 100 pour la 1ère colonne, 100 à 200 pour la seconde et 200 à 300 pour la 3ème. Une idée de comment je pourrai y arriver ?



    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
    {
     
            Random rand = new Random();
            int[][] tamère = new int[100][3];
            int min = 0;
            int max = 100;
            for (int i = 0; i < 100; i++) {
                for (int j = 0; j < 3; j++) {
                    tamère[i][j] = rand.nextInt(max - min + 1) + min;
                    System.out.print(tamère[i][j] + " ");
                }
                System.out.println();
            }
        }
    }

  6. #6
    Nouveau Candidat au Club
    Comment faire évoluer les colonnes en valeurs aléatoires entre des bornes ?
    Voici ce que j'ai fait (ci-dessous). Il m'affiche bien des valeurs aléatoires sur 100 lignes et 3 colonnes mais je n'arrive pas à faire évoluer celles-ci entre des bornes de 0 à 100 pour la 1ère colonne, 100 à 200 pour la seconde, 200 à 300 pour la 3ème colonne. Une idée de comment je peux résoudre ce souci ?

    Toute aide serait la bienvenue :-) car c'est un casse-tête sur lequel je bute depuis une semaine :-/

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            Random rand = new Random();
            int[][] tamère = new int[100][3];
            int min = 0;
            int max = 100;
            for (int i = 0; i < 100; i++) {
                for (int j = 0; j < 3; j++) {
                    tamère[i][j] = rand.nextInt(max - min + 1) + min;
                    System.out.print(tamère[i][j] + " ");
                }
           System.out.println();
            }
        }
    }

  7. #7
    Expert éminent sénior
    Bonjour

    Ce que tu décris est le comportement d'un tableau à une seule dimension. De 0 à 299.
    Ce que tu as fait est un tableau à 2 dimensions. Une dimension de 0 à 2 et l'autre de 0 à 99.

    D'autre part, tes valeurs de maximum sont fausses. De 0 à 7, il y a 8 valeurs; pas 7.

    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Nouveau Candidat au Club
    Bonjour et merci pour a réponse

    Celle-ci était-elle en rapport avec le code posté (cf. ci-dessous) ce jour ?
    Si c'est le cas, j'ai encore perdu pas mal de temps sur cette première partie de solution
    Mon souci du jour est d'ailleurs de borner des valeurs aléatoires différentes dans les 3 colonnes (1) : 0 à 100, 2) 100 à 200 et 3) 200 à 300).
    Si tu as une idée, je suis preneur


    Voici mon code de ce jour:
    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
    //////////////////////////////////////////////////////
    Random rand = new Random();
    int[][] tamère = new int[100][3];
    int min = 0;
    int max = 100;
    for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 3; j++) {
    tamère[i][j] = rand.nextInt(max - min + 1) + min;
    System.out.print(tamère[i][j] + " ");
    }
    System.out.println();
    }
    }
    }
    //////////////////////////////

  9. #9
    Expert éminent sénior
    C'est un forum, pas un tchat. Sens-toi libre de lire, relire, re-relire les messages jusqu'à ce que tu les comprennes.

    Les autres, eux, savent lire. Ils ont vu ton code. Ce n'est pas la peine de le poster 3 fois.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Nouveau Candidat au Club
    Bonjour,

    Je tiendrai compte de votre remarque cependant : il y a peut-être moyen pour vous de communiquer votre exaspération de manière différente.
    Je l'ai posté à plusieurs reprises car je répondais à des personnes différentes. Je n'ai pas encore l'habitude d'utiliser ce forum. Pour votre information, je sais également lire et exprimer mon mécontentement sans tomber dans l'insulte à peine voilée.
    Je suis débutant en algo et java. donc je ne comprends pas toujours ce qui semble être évident pour vous.
    Je vous épargnerai l'envoi de ce message en trois exemplaires, même si franchement, j'y ai vraiment pensé.

    Sur ce, bon après-midi.

  11. #11
    Expert éminent sénior
    Citation Envoyé par minix.ada Voir le message
    Je tiendrai compte de votre remarque cependant : il y a peut-être moyen pour vous de communiquer votre exaspération de manière différente.
    J'ai bien lu votre réponse et compris votre exaspération, que vous auriez pu exprimer de manière différente.

    Citation Envoyé par minix.ada Voir le message
    Je l'ai posté à plusieurs reprises car je répondais à des personnes différentes.
    C'est toujours pas un tchat. Le message posté pour Pierre sera toujours présent pour Paul ou Jacques. C'est un échange communautaire.

    Citation Envoyé par minix.ada Voir le message
    Je n'ai pas encore l'habitude d'utiliser ce forum.
    Ce forum fonctionne comme tous les autres forums.

    Citation Envoyé par minix.ada Voir le message
    Pour votre information, je sais également lire et exprimer mon mécontentement sans tomber dans l'insulte à peine voilée.
    C'est la personne qui appelle ses tableaux tamère[][] qui me donne des leçons de politesse ?

    Citation Envoyé par minix.ada Voir le message
    Je suis débutant en algo et java.
    Le noviciat n'excuse pas le mépris. Vous avez passez moins de temps à lire la réponse que j'ai mis à la rédiger.

    Citation Envoyé par minix.ada Voir le message
    donc je ne comprends pas toujours ce qui semble être évident pour vous.
    Y a pas d'évidence. Il faut travailler. C'est le cœur du problème. Passez votre temps à résoudre votre problème.

    Citation Envoyé par minix.ada Voir le message
    Sur ce, bon après-midi.
    C'est tout ? Et sur le fond ? Je parie que vous n'avez même pas essayé. Si vous êtes capables de tirer entre 0 et 100, vous êtes capable de tirer entre 100 et 200 en ajoutant 100.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    tamère[i][j] = rand.nextInt(max - min + 1) + min +100*j ;
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

###raw>template_hook.ano_emploi###