Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#651 Le 31/12/2010, à 13:22

Pylades

Re : /* Topic des codeurs couche-tard [3] */

NAN !
Mais pourquoi ? Pourquoi faire si compliqué ? Pourquoi ces espaces ?


(Et en plus, c'est absolument terrible, car tu ne gères pas les erreurs et tu ne retournes rien, donc c'est proprement scandaleux.)

Dernière modification par Pylade (Le 31/12/2010, à 13:22)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#652 Le 31/12/2010, à 14:51

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

ben non, c'est normal qu'il retourne rien, il a mis "void"




:]



edit: je me suis dit que j'allait essayer de faire des app sur mon bel android tout neuf, j'installe tout, je regarde la doc, je crèe un projet, je regarde les outils cli… ah il faut installer jdk-6, je tilte pas, il faut installer ant… hmmm… ah oui c'est vrai on bosse en java là dessus T_T

b on, on va voir ce que ça donne, mais je sais pas combien de temps je vais supporter…

Dernière modification par tshirtman (Le 31/12/2010, à 14:53)

Hors ligne

#653 Le 31/12/2010, à 14:59

Zeibux

Re : /* Topic des codeurs couche-tard [3] */

Bonjour à tous.

Y'a dla dép?


Croix de bois croix de fer, si je mens, j'me tape une bière
La Valeur sur, c'est sur qu'il avale!
je veux bien qu'on pisse dans un violon, mais.. En rythme non d'un chien!
[Mémoire virtuelle limitée] encrypté, et dans un format obscur, propriétaire et non documenté...

Hors ligne

#654 Le 31/12/2010, à 15:18

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Zeibux sur le TdCCT ! \o/


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#655 Le 31/12/2010, à 16:05

xapantu

Re : /* Topic des codeurs couche-tard [3] */

tshirtman a écrit :

edit: je me suis dit que j'allait essayer de faire des app sur mon bel android tout neuf, j'installe tout, je regarde la doc, je crèe un projet, je regarde les outils cli… ah il faut installer jdk-6, je tilte pas, il faut installer ant… hmmm… ah oui c'est vrai on bosse en java là dessus T_T

b on, on va voir ce que ça donne, mais je sais pas combien de temps je vais supporter…

Combien de temps ? Assez peu à mon avis… Android, c'est bien, c'est libre, mais franchement, ça a pas du tout été pensé pour les programmeurs qui font pas de java… Le NDK, c'est juste horrible, faut aller chercher toutes les dépendances une par une… Et pour le Java, le peu que j'ai testé, si t'utilise pas Eclipse, ben… Tu gagnes pas du temps… (c'est même complètement infaisable si tu veux vraiment développer un truc, si tu passes pas par Eclipse, tu mets trois heures pour faire chaque truc, c'est horrible).

Ne parlons pas de l'émulateur Android, où là, c'est même plus de la patience qu'il faut avoir…


Après, le problème dans l'histoire, c'est peut-être moi, mais j'en ai parlé un peu à d'autres personnes, elles sont d'accord (notamment le gars du port de Wormux).

Hors ligne

#656 Le 31/12/2010, à 16:21

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

on m'a pointé un truc qui devrait vachement simplifier les choses, andengine (http://www.andengine.org/) j'ai pas encore trop regardé ce que ça donnait coté code, mais l'appli d'exemple est vraiment sympathique, alors si les choses montrées sont simples à faire, ça devrait être supportable…

Hors ligne

#657 Le 01/01/2011, à 02:20

Pylades

Re : /* Topic des codeurs couche-tard [3] */

/me s'est enfin documenté sur les attributs GCC. Ça a l'air sympa, faudrait que j'en foute plein mon code, un jour…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#658 Le 01/01/2011, à 02:21

compte supprimé

Re : /* Topic des codeurs couche-tard [3] */

Bn;

#659 Le 01/01/2011, à 02:22

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [3] */

mad;


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#660 Le 01/01/2011, à 02:29

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Bon, les gens, j'espère au moins que vous avez bien tous pensé à installer X, ou au moins DirectFB !

Hors ligne

#661 Le 01/01/2011, à 03:02

samυncle

Re : /* Topic des codeurs couche-tard [3] */

smile


Hello world

Hors ligne

#662 Le 01/01/2011, à 03:24

\\Ouranos//

Re : /* Topic des codeurs couche-tard [3] */

smile


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#663 Le 01/01/2011, à 03:52

Pylades

Re : /* Topic des codeurs couche-tard [3] */

/me est confronté à un bug incompréhensible pour la version améliorée de son interpréteur brainfuck :

bf.h :

/*
 *  Copyright (c) 2010, Paul Bazin
 *  All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *      * Redistributions of source code must retain the above copyright
 *        notice, this list of conditions and the following disclaimer.
 *      * Redistributions in binary form must reproduce the above
 *        copyright notice, this list of conditions and the following
 *        disclaimer in the documentation and/or other materials
 *        provided with the distribution.
 *      * Neither the name of the author nor the names of its
 *        contributors may be used to endorse or promote products
 *        derived from this software without specific prior written
 *        permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 *  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 *  DAMAGE.
 */

#ifndef H_BF
#define H_BF

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#define REAL_SIZ 64U

struct data
{
    char* buf;
    long p;
    long up_lim;
    long down_lim;
    size_t size;
};

char* buf_code(const char*, size_t**, size_t**);
int move_pointer(struct data*, char);

#endif /* H_BF */

bf.c

/*
 *  Copyright (c) 2010, Paul Bazin
 *  All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *      * Redistributions of source code must retain the above copyright
 *        notice, this list of conditions and the following disclaimer.
 *      * Redistributions in binary form must reproduce the above
 *        copyright notice, this list of conditions and the following
 *        disclaimer in the documentation and/or other materials
 *        provided with the distribution.
 *      * Neither the name of the author nor the names of its
 *        contributors may be used to endorse or promote products
 *        derived from this software without specific prior written
 *        permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 *  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 *  DAMAGE.
 */

#include "bf.h"

int main(int argc, char** argv)
{
    int r=-1;
    size_t i=0;
    char* code;
    struct data dt;
    const char* input;
    size_t* opening;
    size_t* closing;
    if (argc != 2)
        exit(2);
    if (argv[1][0] == '-' && !argv[1][1])
        input = NULL;
    else
        input = argv[1];
    code = buf_code(input, &opening, &closing);
    dt.p = 0;
    dt.up_lim = 0;
    dt.down_lim = 0;
    dt.size = REAL_SIZ;
    dt.buf = calloc(REAL_SIZ, 1U);
    if (code && dt.buf)
    {
        r=0;
        while (code[i] != '\0')
        {
            switch (code[i])
            {
                case '+':
                    dt.buf[dt.p%(long)dt.size]++;
                    break;
                case '-':
                    dt.buf[dt.p%(long)dt.size]--;
                    break;
                case '>':
                    if (move_pointer(&dt, 1))
                    {
                        free(code);
                        free(dt.buf);
                        exit(-1);
                    }
                    break;
                case '<':
                    if (move_pointer(&dt, 0))
                    {
                        free(code);
                        free(dt.buf);
                        exit(-1);
                    }
                    break;
                case '.':
                    putchar(dt.buf[dt.p%(long)dt.size]);
                    break;
                case ',':
                    dt.buf[dt.p%(long)dt.size] = (char) getchar();
                    break;
                case '[':
                    if (!dt.buf[dt.p%(long)dt.size])
                        i = opening[i];
                    break;
                case ']':
                    if (dt.buf[dt.p%(long)dt.size])
                        i = closing[i];
            }
            i++;
        }
        putchar('\n');
    }
    free(code);
    free(opening);
    free(closing);
    free(dt.buf);
    return r;
}

char* buf_code(const char* src, size_t** opening, size_t** closing)
{
    char* code=NULL;
    FILE* fd;
    src ? (fd = fopen(src, "r")) : (fd = stdin);
    if (fd)
    {
        int c;
        size_t i=0;
        size_t k=0;
        size_t brackets=0;
        while ((c=fgetc(fd)) != EOF)
            if (strchr("+-><.,[]", c))
            {
                i++;
                if (c == '[')
                {
                    k++;
                    brackets++;
                }
                else if (c == ']')
                {
                    if (!k)
                    {
                        k++;
                        break;
                    }
                    else
                        k--;
                }
            }
        if (!k)
        {
            rewind(fd);
            code = malloc(i+1U);
            *opening = malloc(brackets * sizeof **opening);
            *closing = malloc(brackets * sizeof **closing);
            i = 0;
            if (code && *opening && *closing)
            {
                size_t* p = malloc(brackets * sizeof *p);
                if (p)
                {
                    size_t op=0;
                    size_t cl=0;
                    while((c=fgetc(fd)) != EOF)
                        if (strchr("+-><.,[]", c))
                        {
                            code[i++] = (char) c;
                            if (c == '[')
                                *p++=i-1;
                            if (c == ']')
                            {
                                (*closing)[cl++] = *--p;
                                (*opening)[op++] = i-1;
                            }
                        }
                    free(p);
                    code[i] = '\0';
                }
            }
            else
            {
                free(*opening);
                free(*closing);
                free(code);
                code=NULL;
            }
            if (fd != stdin)
                fclose(fd);
            else
                if (!(stdin=freopen("/dev/tty", "r", stdin)))
                {
                    free(code);
                    code=NULL;
                }
        }
        else
        {
            fclose(fd);
            fputs("brackets mismatch\n", stderr);
            exit(1);
        }
    }
    return code;
}

int move_pointer(struct data* dt, char forward)
{
    int r=0;
    if (forward)
    {
        dt->p++;
        if (dt->p > dt->up_lim)
            dt->up_lim = dt->p;
    }
    else
    {
        dt->p--;
        if (dt->p < dt->down_lim)
            dt->down_lim = dt->p;
    }
    if ((size_t) (dt->up_lim - dt->down_lim) >= dt->size)
    {
        char* tmp = realloc(dt->buf, dt->size+=REAL_SIZ);
        if (tmp)
        {
            size_t i;
            dt->buf = tmp;
            for (i=dt->size-(REAL_SIZ+1U); i < dt->size; i++)
                dt->buf[i] = '\0';
        }
        else
            r=-1;
    }
    return r;
}

Valgrind :

==8638== Command: bf primes.bf
==8638== 
==8638== Use of uninitialised value of size 8
==8638==    at 0x400BF4: main (bf.c:59)
==8638== 
==8638== Use of uninitialised value of size 8
==8638==    at 0x400A12: main (bf.c:61)
==8638== 
==8638== Use of uninitialised value of size 8
==8638==    at 0x400BD3: main (bf.c:97)
==8638== 
==8638== Use of uninitialised value of size 8
==8638==    at 0x400B94: main (bf.c:93)

Juste : WTF ?


Et points.

Dernière modification par Pylade (Le 02/01/2011, à 00:19)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#664 Le 01/01/2011, à 05:23

Кຼزດ

Re : /* Topic des codeurs couche-tard [3] */

plop debout


dou

Hors ligne

#665 Le 01/01/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores totaux, depuis le début :

1) 2201    nesthib
2) 2065    samuncle
3) 1772    Pylade
4) 1415    Кຼزດ
5) 1049+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1048    cm-t
7) 768    \\Ouranos//
8) 741    helly
9) 732    Р☢w ! ✰ :mad: ✰ (эй !)
10) 532    gnuuat
11) 518    Lagierl
12) 348    tshirtman
13) 196    Askelon
14) 185    Kanor
15) 172    nathéo
16) 121    ǤƦƯƝƬ
17) 93    petifrancais
17) 93    The Uploader
19) 81    Rolinh
20) 78    edge_one
20) 78    pierguiard
22) 70    gulp
23) 59    kamui57
24) 37    ilagas
25) 32    Le Rouge
26) 30    keny
27) 25    GentooUser
27) 25    Morgiver
29) 24    ไ୦บเઢ'
30) 22    xapantu
31) 21    Steap
32) 20    CROWD
32) 20    d10g3n
34) 18    Ph3nix_
35) 15    timsy
36) 14    kouskous
37) 12    stratoboy
37) 12    sailing
37) 12    sakul
40) 11    alexises
40) 11    Crocoii
42) 10    Toineo
42) 10    NutMotion
42) 10    pseudovingtcinqcaracteres
42) 10    pfriedZ
46) 8    Mornagest
47) 7    Vista
48) 6    Zeibux
48) 6    ubuntlin
48) 6    asma.geek
51) 5    tendances-tdct
51) 5    kinouchou
53) 4    danychou56
53) 4    Neros
53) 4    Biaise
53) 4    totoflute
53) 4    pinballyoda ㋛
58) 3    Revan26914
59) 2    SoJaS
59) 2    ceric
61) 1    geenux

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#666 Le 01/01/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores de la période en cours :

1) 224    nesthib
2) 198    Кຼزດ
3) 185    Pylade
4) 175    samuncle
5) 162    grim7reaper
6) 110    Lagierl
7) 105    gnuuat
8) 85    helly
9) 73    Rolinh
10) 69    \\Ouranos//
11) 55    tshirtman
12) 41    cm-t
12) 41    Р☢w ! ✰ :mad: ✰ (эй !)
14) 34    The Uploader
15) 20    d10g3n
16) 18    Kanor
17) 16    Steap
18) 12    sakul
19) 10    pierguiard
20) 5    kinouchou
20) 5    Morgiver
22) 3    xapantu
22) 3    Revan26914

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#667 Le 01/01/2011, à 20:22

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

juste pour pousser mon coup de gueule, j'ai passé une bonne partie de la journée à essayer de faire marcher un projet pour android avec ant, finis par installer eclipse pour tenter de comprendre, ça marchait avec lui, mais toujours pas de moyens de builder en cli, puis j'ai finis par tomber sur un message comme quoi il y avait un bug d'inclusion des jar avec ant 1.7, sachant que je suis sous lucid, j'ai installé ant de maverick et ça marche >_<

Hors ligne

#668 Le 01/01/2011, à 21:00

xapantu

Re : /* Topic des codeurs couche-tard [3] */

roll

Hors ligne

#669 Le 01/01/2011, à 22:15

Steap

Re : /* Topic des codeurs couche-tard [3] */

@Pylade:

Un exemple de fichier .bf pour tester ?


GNU Guix, un gestionnaire de paquets fonctionnel.

Hors ligne

#670 Le 01/01/2011, à 23:02

helly

Re : /* Topic des codeurs couche-tard [3] */

BN.
Fait un ptit bout de temps que j'ai pas réellement codé, pour l'instant j'engrange du Haskell…


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#671 Le 01/01/2011, à 23:24

tshirtman

Re : /* Topic des codeurs couche-tard [3] */

1:08 < Blarumyrran> I wanted to draw a creepy-looking guy, and it's ending up as Donald Knuth
21:09 < Blarumyrran> I didn't realize just how creepy he looks before that

:]

Hors ligne

#672 Le 02/01/2011, à 00:09

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Steap a écrit :

@Pylade:

Un exemple de fichier .bf pour tester ?

Oui, bien sûr. smile
Ça ne plante pas à tous les coups, mais je le fait planter en utilisant celui-ci (qui liste les nombres premiers) :

#!/usr/bin/env bf
compute prime numbers
to use type the max number to stdin
===================================================================
======================== OUTPUT STRING ============================
===================================================================
>++++++++[<++++++++>-]<++++++++++++++++.[-]
>++++++++++[<++++++++++>-]<++++++++++++++.[-]
>++++++++++[<++++++++++>-]<+++++.[-]
>++++++++++[<++++++++++>-]<+++++++++.[-]
>++++++++++[<++++++++++>-]<+.[-]
>++++++++++[<++++++++++>-]<+++++++++++++++.[-]
>+++++[<+++++>-]<+++++++.[-]
>++++++++++[<++++++++++>-]<+++++++++++++++++.[-]
>++++++++++[<++++++++++>-]<++++++++++++.[-]
>+++++[<+++++>-]<+++++++.[-]
>++++++++++[<++++++++++>-]<++++++++++++++++.[-]
>++++++++++[<++++++++++>-]<+++++++++++.[-]
>+++++++[<+++++++>-]<+++++++++.[-]
>+++++[<+++++>-]<+++++++.[-]

===================================================================
======================== INPUT NUMBER  ============================
===================================================================
+                          cont=1
[
 -                         cont=0
 >,
 ======SUB10======
 ----------
 
 [                         not 10
  <+>                      cont=1
  =====SUB38======
  ----------
  ----------
  ----------
  --------

  >
  =====MUL10=======
  [>+>+<<-]>>[<<+>>-]<     dup

  >>>+++++++++
  [
   <<<
   [>+>+<<-]>>[<<+>>-]<    dup
   [<<+>>-]
   >>-
  ]
  <<<[-]<
  ======RMOVE1======
  <
  [>+<-]
 ]
 <
]
>>[<<+>>-]<<

===================================================================
======================= PROCESS NUMBER  ===========================
===================================================================

==== ==== ==== ====
numd numu teid teiu
==== ==== ==== ====

>+<-
[
 >+
 ======DUP======
 [>+>+<<-]>>[<<+>>-]<

 >+<--

 >>>>>>>>+<<<<<<<<   isprime=1

 [
  >+

  <-

  =====DUP3=====
  <[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<<<

  =====DUP2=====
  >[>>+>+<<<-]>>>[<<<+>>>-]<<< <


  >>>


  ====DIVIDES=======
  [>+>+<<-]>>[<<+>>-]<   DUP i=div
  
  <<
  [
    >>>>>+               bool=1
    <<<
    [>+>+<<-]>>[<<+>>-]< DUP
    [>>[-]<<-]           IF i THEN bool=0
    >>
    [                    IF i=0
      <<<<
      [>+>+<<-]>>[<<+>>-]< i=div
      >>>
      -                  bool=0
    ]
    <<<
    -                    DEC i
    <<
    -
  ]
  
  +>>[<<[-]>>-]<<          
  >[-]<                  CLR div
  =====END DIVIDES====


  [>>>>>>[-]<<<<<<-]     if divides then isprime=0


  <<

  >>[-]>[-]<<<
 ]

 >>>>>>>>
 [
  -
  <<<<<<<[-]<<

  [>>+>+<<<-]>>>[<<<+>>>-]<<<

  >>




  ===================================================================
  ======================== OUTPUT NUMBER  ===========================
  ===================================================================
  [>+<-]>
 
  [
   ======DUP======
   [>+>+<<-]>>[<<+>>-]<
  
  
   ======MOD10====
   >+++++++++<
   [
    >>>+<<              bool= 1
    [>+>[-]<<-]         bool= ten==0
    >[<+>-]             ten = tmp
    >[<<++++++++++>>-]  if ten=0 ten=10
    <<-                 dec ten     
    <-                  dec num
   ]
   +++++++++            num=9
   >[<->-]<             dec num by ten
  
   =======RROT======
      [>+<-]
   <  [>+<-]
   <  [>+<-]
   >>>[<<<+>>>-]
   <
  
   =======DIV10========
   >+++++++++<
   [
    >>>+<<                bool= 1
    [>+>[-]<<-]           bool= ten==0
    >[<+>-]               ten = tmp
    >[<<++++++++++>>>+<-] if ten=0 ten=10  inc div
    <<-                   dec ten     
    <-                    dec num
   ]
   >>>>[<<<<+>>>>-]<<<<   copy div to num
   >[-]<                  clear ten
  
   =======INC1=========
   <+>
  ]
  
  <
  [
   =======MOVER=========
   [>+<-]
  
   =======ADD48========
   +++++++[<+++++++>-]<->
  
   =======PUTC=======
   <.[-]>
  
   ======MOVEL2========
   >[<<+>>-]<
  
   <-
  ]
 
  >++++[<++++++++>-]<.[-]
 
  ===================================================================
  =========================== END FOR ===============================
  ===================================================================


  >>>>>>>
 ]
 <<<<<<<<



 >[-]<
  [-]
 <<-
]

Édit : ah, et je viens de me rendre compte que j'avais laissé dans le header une vieille structure match, maintenant inutile.

Dernière modification par Pylade (Le 02/01/2011, à 00:12)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#673 Le 02/01/2011, à 00:21

Steap

Re : /* Topic des codeurs couche-tard [3] */

$ gcc -o bf bf.c && ./bf test.bf 

me sort une infinité de "b" sur la sortie standard. Du coup je peux moyennement regarder la sortie de Valgrind sad

Dernière modification par Steap (Le 02/01/2011, à 00:24)


GNU Guix, un gestionnaire de paquets fonctionnel.

Hors ligne

#674 Le 02/01/2011, à 00:30

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Si tu le tues assez vite, il n'imprime que quelque lignes et on peut bien lire. Sinon, tu peux rediriger la sortie standard sur /dev/null, car Valgrind écrit ses infos sur la sortie d'erreur. (Et au passage, pas besoin de parler de l'header dans la ligne de compilation, mais l'option -g est très utile.)


C'est marrant que ça affiche des « b » chez toi aussi, il ça peut mettre sur une piste, mais je ne sais pas laquelle. À la build précédente, j'avais des « QI    I », donc je pense qu'il doit afficher un bout de son propre code. hmm

Vérifions l'hypothèse : t'es bien en 64 bits, non ?

Dernière modification par Pylade (Le 02/01/2011, à 00:31)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#675 Le 02/01/2011, à 00:44

Steap

Re : /* Topic des codeurs couche-tard [3] */

Il me semble que "i" est plus grand que "brackets".

D'ailleurs valgrind me sort :

==1939== Invalid read of size 4
==1939==    at 0x804897C: main (bf.c:118)
==1939==  Address 0x4190fb4 is not stack'd, malloc'd or (recently) free'd

La ligne 118 est

i = closing[i]

Je suis en 32 bits :

$ uname -m
i686

GNU Guix, un gestionnaire de paquets fonctionnel.

Hors ligne