Réseau CPC BIENDEBUTER.NET Crunchez vos adresses URL
|
Calculez la conso électrique de votre PC
|
Hébergez vos photos
+ Reply to Thread
Page 164 of 175 FirstFirst ... 64 114 154 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 174 ... LastLast
Results 4,891 to 4,920 of 5223
  1. #4891
    Je ne comprends pas ce qu'ils veulent faire avec la RAM en tableau de pointeurs.
    Pourtant, les émulateurs, j'en ai déjà vu un ou deux.

    Tu es sûr que c'est pas "char data[256]" pour simuler une mémoire à 256 octets?
    Sinon poste ton code quelque part sur le net qu'on mate ça.

    Edit: grilled, par contre recommander gdb à un newbie, c'est salaud, vectra :-)
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  2. #4892
    Que veux-tu? Ils m'ont fermé le topic de l'actu, faut bien que j'aille troller quelque part
    Sérieux, y'a aussi que mes outils datent un peu

  3. #4893
    C'est très bien gdb.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  4. #4894
    T'avoueras que la courbe d'apprentissage est un peu raide :-)
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  5. #4895
    Le code : http://pastebin.com/e0RZQHKF. Pour gdb c'est le seul que j'ai vu dans le cours, un énorme survol mais je devrais pouvoir me débrouiller avec. Enfin j'espère.
    Ah et les progs à émuler ont cette tête :

    Code:
    offset
    00
    
    code
    49 20
    49 22
    40 20
    48 21
    C9 21
    40 22
    21 01
    12 1F
    48 22
    40 21
    20 01
    10 06
    00 00
    00 00
    00 00
    00 10
    Code:
    offset
    50
    
    code
    49 70
    40 70
    48 71
    48 72
    00 5E
    48 8D
    10 74
    40 71
    48 72
    40 70
    48 71
    00 6C
    48 8D
    10 74
    41 71
    10 6E
    00 00
    00 00
    00 00
    48 73
    40 71
    12 8C
    21 01
    41 71
    40 73
    60 72
    48 73
    10 78
    40 73
    48 71
    10 00

  6. #4896
    Ah, ok, chaque adresse de la RAM contient une chaîne de caractère qui en représente la valeur. C'est bien ce qui est demandé dans l'énoncé? Je demande parce que c'est "original", mais après tout c'est un exercice.
    En tout cas, je soupçonne que chaque ligne de data du fichier couvre deux adresses, et non une seule comme tu l'as implémenté, il faut donc changer ton code de parsing.
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  7. #4897
    C'est ce qui est demandé ! Et ça reste un exo, je pense pas que le but soit de faire un émulateur parfait.

  8. #4898
    Dans ce cas il te faut très probablement créer deux entrées de deux caractères par ligne.
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  9. #4899
    Mais pourquoi ça segfaulte du coup ? Au pire on devrait se retrouver avec la moitié de la mémoire pas initialisée.

  10. #4900
    L'erreur se produit visiblement dans la deuxième boucle de la fonction load_image() et seulement pour le deuxième programme :

    Last edited by trenks; 07/03/2014 at 12h43.

  11. #4901
    Tu devrais mettre des assertions un peu partout, ça aide toujours.
    Par exemple "assert(offset >= 0 && offset <= 255)", ou bien à chaque fois que tu écris "data[x]" tu mets juste au dessus "assert(x < 256)"
    Profil Steam - Le "17" à la fin de mon pseudo est muet

  12. #4902
    Au passage, vous avez un outil "friendly" à suggérer pour le débogage sous linux?
    Autre que basé sur emacs-gdb

  13. #4903
    emacs et gdb dans le même mot / outil Ca me fait déjà peur !

  14. #4904
    Quote Originally Posted by vectra View Post
    Au passage, vous avez un outil "friendly" à suggérer pour le débogage sous linux?
    Autre que basé sur emacs-gdb
    printf ?

    si tu buildes en mode debug et que tu utilises gdb (avec l'option -tui eventuellement), c'est assez facile non ?
    the universal language, this is music

  15. #4905
    Quote Originally Posted by trenks View Post
    L'erreur se produit visiblement dans la deuxième boucle de la fonction load_image() et seulement pour le deuxième programme
    Dans ta deuxième boucle, tu ne peux affecter data[x] si le scanf précédent a retourné EOF. Je ne sais pas si c'est ce qui cause ton plantage, mais c'est en tout cas une erreur.

  16. #4906
    Quote Originally Posted by vectra View Post
    Au passage, vous avez un outil "friendly" à suggérer pour le débogage sous linux?
    Autre que basé sur emacs-gdb
    GDB TUI , SublimeGdb , Eclipse, QtCreator ?
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  17. #4907
    Niveau front-ends:
    kdbg sous KDE
    nemiver sous Gnome
    ddd sous tout
    Sachant qu'aucun n'est la panacée, loin de là.
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  18. #4908
    D'après https://sourceware.org/gdb/wiki/GDB%20Front%20Ends, kdbg et ddd utilisent une vieille API.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  19. #4909
    Ça change un truc en pratique ou c'est juste que ça fait chier la team gdb de maintenir les deux interfaces?
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  20. #4910
    J'en sais rien, je supputais simplement que ça voulait dire "vieux et moche".
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  21. #4911
    Ca va finir en CEDET-gdb alors

  22. #4912
    Okay ! Je viens poser mon premier problème pour un projet de bases de données pour mon DUT Info.

    J'explique :

    On a un fichier csv contenant ~260k tweets contenant tous le mot "ukraine" dedans.

    Code:
    "Mon Mar 18 16:16:59 CET 2013";"@FritzingOrg";"How";"is";"the";"digital";"age";"influencing";"our";"daily";"lifes?";"http://t.co/fbmg6ephEp"
    "Mon Mar 18 16:17:03 CET 2013";"@benpro82";"RT";"@mikko:";"Congratulations";"to";"http://t.co/9mU6xf4DNC";"for";"hitting";"double";"digits!#highscore"
    "Mon Mar 18 16:18:51 CET 2013";"@arduino";"RT";"@tinkerguymod:";"As";"a";"kid";"I";"couldn't";"afford";"equipment";"I";"needed,";"now";"I";"share";"what";"I";"have";"&";"teach";"what";"I";"know.";"";"@make";"@arkmod";"#Tinkerfest"
    "Mon Mar 18 16:19:51 CET 2013";"@arduino";"RT";"@curiousoctopus:";"Every";"hacker’s";"and";"maker’s";"dream:";"“@DomusWeb:";"Ivrea,";"a";"visit";"to";"the";"production";"facilities";"of";"the";"@Arduino";"platform";"h";"..."
    "Mon Mar 18 16:20:22 CET 2013";"@arduino";"RT";"@dcuartielles:";"some";"more";"examples";"from";"the";"@Arduino";"Castilla";"experiment:";"https://t.co/eXMGiy0RRh"
    "Mon Mar 18 16:20:35 CET 2013";"@Xavier_Combelle";"RT";"@el_agar:";"Les";"Enfoirés,";"cette";"étrange";"émission";"dans";"laquelle";"des";"millionnaires";"demandent";"aux";"smicards";"de";"donner";"aux";"RMIstes."
    
    ...                 `
    On veut convertir ce fichier csv en un fichier "trans". Chaque mot unique du pool de tweets à notre disposition aura un entier qui lui est affecté.

    Code:
    1 2 3 4 5 6
    7 1 3 8 9 10
    1 11 12 13 14
    15 16 17 18 19
    Cette conversion est nécessaire pour utiliser un algorithme qui nous est fourni dans le projet.

    Le problème c'est que dans notre première implémentation, pour chaque mot de chaque tweet, on fait un parcours de notre tableau contenant tous les mots déja enregistrés des tweets déja traités, ce qui n'est pas idéal.

    Je pense donc qu'il est indispensable qu'on (mon équipier de projet et moi) optimise notre recherche du mot courant dans la liste des mots connus. Faut-il que l'on trie notre liste après chaque tweet pour avoir accès à une recherche la plus rapide possible après chaque tweet traité ? Ou autre chose, je sais pas trop.

    J'ai l'impression de pas m'être très bien expliqué donc bon .

    Voici notre boucle de conversion actuelle (c'est du Java) :

    Code:
     while (scanner.hasNextLine()){
                lineRead = scanner.nextLine();
    //            System.out.println(lineRead);
                tweets = lineRead.split(";");
                for (int i = 2; i < tweets.length; ++i){
                    if (! collectTweet.contains(tweets[i])){
                            Convertisseur.setCollectTweet(tweets[i]);
                    }
                }
                FileWriter fichier = new FileWriter(trans, true);
                for (int j = 0; j < tweets.length; ++j) {
                    for (int i = 0; i < collectTweet.size(); ++i){
                        if (tweets[j].equals(collectTweet.get(i))){
                            fichier.write(i + " ");fichier.flush();
                        }
                    }
                }
    P.S : 50 minutes d'éxecution actuellement et c'est toujours pas fini .


  23. #4913
    Quote Originally Posted by gregounech View Post
    Okay ! Je viens poser mon premier problème pour un projet de bases de données pour mon DUT Info.

    J'explique :

    On a un fichier csv contenant ~260k tweets contenant tous le mot "ukraine" dedans.

    Code:
    "Mon Mar 18 16:16:59 CET 2013";"@FritzingOrg";"How";"is";"the";"digital";"age";"influencing";"our";"daily";"lifes?";"http://t.co/fbmg6ephEp"
    "Mon Mar 18 16:17:03 CET 2013";"@benpro82";"RT";"@mikko:";"Congratulations";"to";"http://t.co/9mU6xf4DNC";"for";"hitting";"double";"digits!#highscore"
    "Mon Mar 18 16:18:51 CET 2013";"@arduino";"RT";"@tinkerguymod:";"As";"a";"kid";"I";"couldn't";"afford";"equipment";"I";"needed,";"now";"I";"share";"what";"I";"have";"&";"teach";"what";"I";"know.";"";"@make";"@arkmod";"#Tinkerfest"
    "Mon Mar 18 16:19:51 CET 2013";"@arduino";"RT";"@curiousoctopus:";"Every";"hacker’s";"and";"maker’s";"dream:";"“@DomusWeb:";"Ivrea,";"a";"visit";"to";"the";"production";"facilities";"of";"the";"@Arduino";"platform";"h";"..."
    "Mon Mar 18 16:20:22 CET 2013";"@arduino";"RT";"@dcuartielles:";"some";"more";"examples";"from";"the";"@Arduino";"Castilla";"experiment:";"https://t.co/eXMGiy0RRh"
    "Mon Mar 18 16:20:35 CET 2013";"@Xavier_Combelle";"RT";"@el_agar:";"Les";"Enfoirés,";"cette";"étrange";"émission";"dans";"laquelle";"des";"millionnaires";"demandent";"aux";"smicards";"de";"donner";"aux";"RMIstes."
    
    ...                 `
    On veut convertir ce fichier csv en un fichier "trans". Chaque mot unique du pool de tweets à notre disposition aura un entier qui lui est affecté.

    Code:
    1 2 3 4 5 6
    7 1 3 8 9 10
    1 11 12 13 14
    15 16 17 18 19
    Cette conversion est nécessaire pour utiliser un algorithme qui nous est fourni dans le projet.

    Le problème c'est que dans notre première implémentation, pour chaque mot de chaque tweet, on fait un parcours de notre tableau contenant tous les mots déja enregistrés des tweets déja traités, ce qui n'est pas idéal.

    Je pense donc qu'il est indispensable qu'on (mon équipier de projet et moi) optimise notre recherche du mot courant dans la liste des mots connus. Faut-il que l'on trie notre liste après chaque tweet pour avoir accès à une recherche la plus rapide possible après chaque tweet traité ? Ou autre chose, je sais pas trop.

    J'ai l'impression de pas m'être très bien expliqué donc bon .

    Voici notre boucle de conversion actuelle (c'est du Java) :

    Code:
     while (scanner.hasNextLine()){
                lineRead = scanner.nextLine();
    //            System.out.println(lineRead);
                tweets = lineRead.split(";");
                for (int i = 2; i < tweets.length; ++i){
                    if (! collectTweet.contains(tweets[i])){
                            Convertisseur.setCollectTweet(tweets[i]);
                    }
                }
                FileWriter fichier = new FileWriter(trans, true);
                for (int j = 0; j < tweets.length; ++j) {
                    for (int i = 0; i < collectTweet.size(); ++i){
                        if (tweets[j].equals(collectTweet.get(i))){
                            fichier.write(i + " ");fichier.flush();
                        }
                    }
                }
    P.S : 50 minutes d'éxecution actuellement et c'est toujours pas fini .
    L'écriture dans un fichier à chaque itération est très probablement source de gros ralentissement, d'autant plus si tu forces le flush à chaque fois.
    La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!

  24. #4914
    Ah oui tiens, c'est pas moi qui l'ai écrit (#excusesbidons), l'ouverture de fichier 260k fois c'est pas terrible.

    Je bouge donc la création du filewriter avant la boucle mais sinon comment tu préconiserais que l'écriture soit faite. Déja peut-etre construire la string qui constituera tout le tweet pendant les doubles boucle for et ensuite l'écrite, ça devrait déja diminuer le nombre d'écriture par le nombre de mots par tweets ?


  25. #4915
    Ben le concept c'est : écriture dans le buffer, puis quand les traitements sont terminés, écriture dans le fichier.

  26. #4916
    C'est du java on dirait non ? Plutôt qu'une liste tu met tous les mots dans une HashMap et c'est réglé ton problème de recherche.
    php inventeur de l'égalité non transitive, ""==0, "0"==0 mais ""!="0"

  27. #4917
    Quote Originally Posted by gregounech View Post
    Ah oui tiens, c'est pas moi qui l'ai écrit (#excusesbidons), l'ouverture de fichier 260k fois c'est pas terrible.

    Je bouge donc la création du filewriter avant la boucle mais sinon comment tu préconiserais que l'écriture soit faite.
    Et vire le flush de la boucle, ça force une écriture qui vide les buffers internes de la lib (j'ose espérer que Java fait du buffering en interne...).

    Déja peut-etre construire la string qui constituera tout le tweet pendant les doubles boucle for et ensuite l'écrite, ça devrait déja diminuer le nombre d'écriture par le nombre de mots par tweets ?
    Faudrait que tu utilises une table de hash pour dégager la boucle interne sur 'i', enfin si la classe de collectTweet supporte le hash.

  28. #4918
    Ou alors, si t'as le droit, tu stockes tout en bdd, et tu laisses le moteur de la base gérer ça.

  29. #4919
    Quote Originally Posted by newbie06 View Post
    Faudrait que tu utilises une table de hash pour dégager la boucle interne sur 'i', enfin si la classe de collectTweet supporte le hash.
    Je soupçonne qu'il ne connaît pas encore cet outil pour l'exercice.

    En tout cas, si on reste dans les mêmes algorithmes quadratiques, il peut faire ceci:
    Fusionner la première et la seconde boucle en une seule passe.
    Sortir de la boucle nichée quand il a trouvé quelque chose.
    Tu comprends ce que je veux dire, gregounech?
    It's the moped lads, they like to think they're bad
    It's the moped lads, if you hit 'em they'll tell their dads

  30. #4920
    Moi je le ferai plus dans ce genre même s'il manque quelques infos (genre ce que tu fais de la date et du nom de l'utilisateur)

    Code:
    Map knownWords = new HashMap(1000);
    BufferedWriter fichier = null;
    try
    {
        fichier = new BufferedWriter(new FileWriter(trans));
        while (scanner.hasNextLine())
        {
            lineRead = scanner.nextLine();
            String[] tweets = lineRead.split(";");
            String word = tweets[i];
            for (int i = 0; i < tweets.length; ++i)
            {
                Integer val = knownWords.get(word);
                if (val == null)
                {
                	val = knownWords.size() + 1;
                	knownWords.put(word, val);
                }
                if (i != 0)
                	    writer.write(' ');
                writer.write(val);
            }
            writer.write('\n');
        }
    }
    finally
    {
        if (fichier != null)
        	    fichier.close();
    }
    En tout cas il faut éviter a tout prix d'ouvrir et fermer le fichier, ne pas faire de flush à chaque mot, ne pas faire de parcours de liste pour trouver les mots (code non certifié, j'ai pas testé s'il marche)
    php inventeur de l'égalité non transitive, ""==0, "0"==0 mais ""!="0"

+ Reply to Thread
Page 164 of 175 FirstFirst ... 64 114 154 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 174 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts