[Ada] Suite logique en français.
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

[Ada] Suite logique en français.



  1. #1
    invite41f594f9

    Question [Ada] Suite logique en français.


    ------

    Bonjour,

    Je suis à la recherche d'un algorithme me permettant de construire une suite logique.
    Je peine bien pour la trouver.

    Voici ou j'en suis.

    J'ai 2 listes de verbes conjugués au présent, le premier et le second sujet du singulier selon 2 syntaxes, soit affirmative soit interrogative.
    Avec les listes et les sujet je doit construire deux suite logique complémentaire voir symétrique de questions et réponses.
    Le sens des verbes n'a pas réellement d'importance, on pourait les remplacer pas des nombres, mais deux les suites doive êtres cohérente logiquement.

    j'ai donc fait 2 boucle itérative dans lesquelles j'incrémente un index de décalage pour impliquer les verbes les un avec les autres.

    Code:
    with Text_Io;
    with Ada.Strings;
    procedure Eden_Gen1 is
    
       type String_Access is access all String;
       type String_Table_Type is array (Positive range <>) of String_Access;
       J : constant String_Access := new String ' ("je ");
       t : constant String_Access := new String ' ("tu ");
       Je : constant String_Access := new String ' ("- je");
       tu : constant String_Access := new String ' ("- tu");
       Ce_Que : constant String_Access := new String ' (" ce que ");
       Num_Verbes : constant Positive := 14;
       Je_Verbes : String_Table_Type(1..Num_Verbes) :=
         (new String ' ("suis"),
          new String ' ("pense"),
          new String ' ("conçois"),
          new String ' ("dis"),
          new String ' ("construis"),
          new String ' ("connais"),
          new String ' ("sais"),
          new String ' ("prévois"),
          new String ' ("lis"),
          new String ' ("comprends"),
          new String ' ("fais"),
          new String ' ("réponds"),
          new String ' ("transmets"),
          new String ' ("questionne"));
    
       Tu_Verbes : String_Table_Type(1..Num_Verbes) :=
         (new String ' ("es"),
          new String ' ("penses"),
          new String ' ("conçois"),
          new String ' ("dis"),
          new String ' ("construis"),
          new String ' ("connais"),
          new String ' ("sais"),
          new String ' ("prévois"),
          new String ' ("lis"),
          new String ' ("comprends"),
          new String ' ("fais"),
          new String ' ("réponds"),
          new String ' ("transmets"),
          new String ' ("questionnes"));
    
       K : Positive := Num_verbes;
       L : Positive := 1;
       M : natural  := 1;
    
    begin
       for I in 1..Num_Verbes/2 loop
    
          M := I;
    
          Text_Io.Put_Line(J.all & Je_Verbes(K-M).all & Ce_Que.all & T.all & Tu_Verbes(L).all & " !");
          Text_Io.Put_Line(t.all & Tu_Verbes(L+M).all & Ce_Que.all & j.all & Je_Verbes(K).all & " !");
    
          Text_Io.Put_Line(Je_Verbes(K).all & je.all & Ce_Que.all & t.all & Tu_Verbes(K-M).all & " ?");
          Text_Io.Put_Line(Tu_Verbes(K-M).all & Tu.all & Ce_Que.all & j.all & Je_Verbes(L).all & " ?");
    
          Text_Io.Put_Line(Tu_Verbes(L).all & Tu.all & Ce_Que.all & j.all & Je_Verbes(K-M).all & " ?");
          Text_Io.Put_Line(J.all & Je_Verbes(K).all & Ce_Que.all & T.all & Tu_Verbes(L+M).all & " !");
    
          Text_Io.Put_Line(t.all & tu_Verbes(K).all & Ce_Que.all & j.all & je_Verbes(L+M).all & " !");
          Text_Io.Put_Line(Je_Verbes(L).all & je.all & Ce_Que.all & t.all & Tu_Verbes(K-M).all & " ?");
          K := K - 1;
          L := L + 1;
       end loop;
    
       K := 1;
       L := Num_verbes;
       for I in 1..Num_Verbes/2 loop
          M := I;
    
          Text_Io.Put_Line(J.all & Je_Verbes(L-M).all & Ce_Que.all & T.all & Tu_Verbes(K).all & " !");
          Text_Io.Put_Line(t.all & Tu_Verbes(K+M).all & Ce_Que.all & j.all & Je_Verbes(L).all & " !");
    
          Text_Io.Put_Line(Je_Verbes(L).all & je.all & Ce_Que.all & t.all & Tu_Verbes(L-M).all & " ?");
          Text_Io.Put_Line(Tu_Verbes(L-M).all & Tu.all & Ce_Que.all & j.all & Je_Verbes(K).all & " ?");
    
          Text_Io.Put_Line(Tu_Verbes(K).all & Tu.all & Ce_Que.all & j.all & Je_Verbes(L-M).all & " ?");
          Text_Io.Put_Line(J.all & Je_Verbes(L).all & Ce_Que.all & T.all & Tu_Verbes(K+M).all & " !");
    
          Text_Io.Put_Line(t.all & tu_Verbes(L).all & Ce_Que.all & j.all & je_Verbes(K+M).all & " !");
          Text_Io.Put_Line(Je_Verbes(K).all & je.all & Ce_Que.all & t.all & Tu_Verbes(L-M).all & " ?");
          K := K + 1;
          L := L - 1;
       end loop;
    end Eden_Gen1;
    Voici le résultat de ce programme : (la numérotation est obtenu grêce à la commande "cat -n").
    1 je transmets ce que tu es !
    2 tu penses ce que je questionne !
    3 questionne- je ce que tu transmets ?
    4 transmets- tu ce que je suis ?
    5 es- tu ce que je transmets ?
    6 je questionne ce que tu penses !
    7 tu questionnes ce que je pense !
    8 suis- je ce que tu transmets ?
    9 je fais ce que tu penses !
    10 tu dis ce que je transmets !
    11 transmets- je ce que tu fais ?
    12 fais- tu ce que je pense ?
    13 penses- tu ce que je fais ?
    14 je transmets ce que tu dis !
    15 tu transmets ce que je dis !
    16 pense- je ce que tu fais ?
    17 je lis ce que tu conçois !
    18 tu connais ce que je réponds !
    19 réponds- je ce que tu lis ?
    20 lis- tu ce que je conçois ?
    21 conçois- tu ce que je lis ?
    22 je réponds ce que tu connais !
    23 tu réponds ce que je connais !
    24 conçois- je ce que tu lis ?
    25 je sais ce que tu dis !
    26 tu prévois ce que je fais !
    27 fais- je ce que tu sais ?
    28 sais- tu ce que je dis ?
    29 dis- tu ce que je sais ?
    30 je fais ce que tu prévois !
    31 tu fais ce que je prévois !
    32 dis- je ce que tu sais ?
    33 je construis ce que tu construis !
    34 tu comprends ce que je comprends !
    35 comprends- je ce que tu construis ?
    36 construis- tu ce que je construis ?
    37 construis- tu ce que je construis ?
    38 je comprends ce que tu comprends !
    39 tu comprends ce que je comprends !
    40 construis- je ce que tu construis ?
    41 je conçois ce que tu connais !
    42 tu réponds ce que je lis !
    43 lis- je ce que tu conçois ?
    44 conçois- tu ce que je connais ?
    45 connais- tu ce que je conçois ?
    46 je lis ce que tu réponds !
    47 tu lis ce que je réponds !
    48 connais- je ce que tu conçois ?
    49 je suis ce que tu sais !
    50 tu questionnes ce que je prévois !
    51 prévois- je ce que tu es ?
    52 es- tu ce que je sais ?
    53 sais- tu ce que je suis ?
    54 je prévois ce que tu questionnes !
    55 tu prévois ce que je questionne !
    56 sais- je ce que tu es ?
    57 je transmets ce que tu es !
    58 tu penses ce que je questionne !
    59 questionne- je ce que tu transmets ?
    60 transmets- tu ce que je suis ?
    61 es- tu ce que je transmets ?
    62 je questionne ce que tu penses !
    63 tu questionnes ce que je pense !
    64 suis- je ce que tu transmets ?
    65 je fais ce que tu penses !
    66 tu dis ce que je transmets !
    67 transmets- je ce que tu fais ?
    68 fais- tu ce que je pense ?
    69 penses- tu ce que je fais ?
    70 je transmets ce que tu dis !
    71 tu transmets ce que je dis !
    72 pense- je ce que tu fais ?
    73 je lis ce que tu conçois !
    74 tu connais ce que je réponds !
    75 réponds- je ce que tu lis ?
    76 lis- tu ce que je conçois ?
    77 conçois- tu ce que je lis ?
    78 je réponds ce que tu connais !
    79 tu réponds ce que je connais !
    80 conçois- je ce que tu lis ?
    81 je sais ce que tu dis !
    82 tu prévois ce que je fais !
    83 fais- je ce que tu sais ?
    84 sais- tu ce que je dis ?
    85 dis- tu ce que je sais ?
    86 je fais ce que tu prévois !
    87 tu fais ce que je prévois !
    88 dis- je ce que tu sais ?
    89 je construis ce que tu construis !
    90 tu comprends ce que je comprends !
    91 comprends- je ce que tu construis ?
    92 construis- tu ce que je construis ?
    93 construis- tu ce que je construis ?
    94 je comprends ce que tu comprends !
    95 tu comprends ce que je comprends !
    96 construis- je ce que tu construis ?
    97 je conçois ce que tu connais !
    98 tu réponds ce que je lis !
    99 lis- je ce que tu conçois ?
    100 conçois- tu ce que je connais ?
    101 connais- tu ce que je conçois ?
    102 je lis ce que tu réponds !
    103 tu lis ce que je réponds !
    104 connais- je ce que tu conçois ?
    105 je suis ce que tu sais !
    106 tu questionnes ce que je prévois !
    107 prévois- je ce que tu es ?
    108 es- tu ce que je sais ?
    109 sais- tu ce que je suis ?
    110 je prévois ce que tu questionnes !
    111 tu prévois ce que je questionne !
    112 sais- je ce que tu es ?
    C'est relativement lourd à suivre, peut-être que cette suite est correcte, je souhaiterais avoir votre avis.

    -----

  2. #2
    invite41f594f9

    Re : [Ada] Suite logique en français.

    Bonjour, donc j'ai trouvé un algo plus satisfaisant :

    Je l'ai fait plus court.

    Code:
    with Text_Io;
    with Ada.Strings;
    procedure Eden_Gen2 is
    
       type String_Access is access all String;
       type String_Table_Type is array (Positive range <>) of String_Access;
       J : constant String_Access := new String ' ("je ");
       t : constant String_Access := new String ' ("tu ");
       Je : constant String_Access := new String ' ("- je");
       tu : constant String_Access := new String ' ("- tu");
       Ce_Que : constant String_Access := new String ' (" ce que ");
       Num_Verbes : constant Positive := 8;
       Je_Verbes : String_Table_Type(1..Num_Verbes) :=
         (new String ' ("suis"),
          new String ' ("pense"),
          new String ' ("conçois"),
          new String ' ("dis"),
          new String ' ("construis"),
          new String ' ("connais"),
          new String ' ("sais"),
          new String ' ("prévois"));
    
       Tu_Verbes : String_Table_Type(1..Num_Verbes) :=
         (new String ' ("es"),
          new String ' ("penses"),
          new String ' ("conçois"),
          new String ' ("dis"),
          new String ' ("construis"),
          new String ' ("connais"),
          new String ' ("sais"),
          new String ' ("prévois"));
    
       K : Positive := Num_Verbes/2+1;
       L : Positive := 2;
       M : integer  := Num_Verbes/2;
    begin
       for I in 1..Num_Verbes/2 loop
          Text_Io.Put_Line(Tu_Verbes(L).all & Tu.all & Ce_Que.all & j.all & Je_Verbes(K-M).all & " ?");
          Text_Io.Put_Line(t.all & tu_Verbes(L).all & Ce_Que.all & j.all & je_Verbes(L+M).all & " !");
          Text_Io.Put_Line(J.all & Je_Verbes(L).all & Ce_Que.all & T.all & Tu_Verbes(K-M).all & " !");
          Text_Io.Put_Line(Je_Verbes(K).all & je.all & Ce_Que.all & t.all & Tu_Verbes(L+M).all & " ?");
          K := K + 1;
          L := L + 1;
          M := M - 1;
       end loop;
    
       K := 2;
       L := Num_Verbes/2+1;
       M := Num_Verbes/2;
       for I in  1..Num_Verbes/2 loop
          Text_Io.Put_Line(je_Verbes(K).all & je.all & Ce_Que.all & t.all & tu_Verbes(L-M).all & " ?");
          Text_Io.Put_Line(j.all & je_Verbes(K).all & Ce_Que.all & t.all & tu_Verbes(K+M).all & " !");
          Text_Io.Put_Line(t.all & tu_Verbes(K).all & Ce_Que.all & j.all & je_Verbes(L-M).all & " !");
          Text_Io.Put_Line(tu_Verbes(L).all & tu.all & Ce_Que.all & j.all & je_Verbes(K+M).all & " ?");
          K := K + 1;
          L := L + 1;
          M := M - 1;
       end loop;
    end Eden_Gen2;
    Ce qui donne ceci :
    1 penses- tu ce que je suis ?
    2 tu penses ce que je connais !
    3 je pense ce que tu es !
    4 construis- je ce que tu connais ?
    5 conçois- tu ce que je conçois ?
    6 tu conçois ce que je connais !
    7 je conçois ce que tu conçois !
    8 connais- je ce que tu connais ?
    9 dis- tu ce que je construis ?
    10 tu dis ce que je connais !
    11 je dis ce que tu construis !
    12 sais- je ce que tu connais ?
    13 construis- tu ce que je sais ?
    14 tu construis ce que je connais !
    15 je construis ce que tu sais !
    16 prévois- je ce que tu connais ?
    17 pense- je ce que tu es ?
    18 je pense ce que tu connais !
    19 tu penses ce que je suis !
    20 construis- tu ce que je connais ?
    21 conçois- je ce que tu conçois ?
    22 je conçois ce que tu connais !
    23 tu conçois ce que je conçois !
    24 connais- tu ce que je connais ?
    25 dis- je ce que tu construis ?
    26 je dis ce que tu connais !
    27 tu dis ce que je construis !
    28 sais- tu ce que je connais ?
    29 construis- je ce que tu sais ?
    30 je construis ce que tu connais !
    31 tu construis ce que je sais !
    32 prévois- tu ce que je connais ?
    Le programme qui exploite cette liste a quand même un problème avec la paire 19-20, j'ai pas de réponse.
    Le reste est nikel sinon.

  3. #3
    invite41f594f9

    Re : [Ada] Suite logique en français.

    Bonjour,

    Comme vous l'avez peut-être remarquer il y a une certaine redondance des verbe connaître et savoir.
    Ce qui ne va pas, j'ai pas fait, mais vraiment pas fait attention à ce résultat.
    Du coup, je suis toujours à la recherche de l'algorithme qui irait bien ici.

    Cette liste, je vous dis à quoi elle sert, je l'utilise pour l'apprentissage d'un réseau de neurone ayant vocation à entretenir un dialogue en français.
    Vous pouvez trouver des sources de ce programme sur ma bécane, mais à apparemment, j'ai pas le droit de faire de l'auto promotion donc vous ne l'aurez pas.

    Mais vous pouvez vous faire le votre, je vous donne le principe.
    Les mots du lexique sont numéroté, les numéro sont codés en binaire, les mots binaires correspondant à chaque mot son donné au réseau de neurone.
    mon lexique à une capacité actuellement de 4096 mots, et le réseau accepte des phrases de 18 mots en comptant les caractères isolé comme des mots.

  4. #4
    invite0bbe92c0

    Re : [Ada] Suite logique en français.

    Bonjour

    Je ne vois pas trop l'intérêt de votre développement. A priori c'est juste un "pipotron" (exemple : http://www.pipotron.free.fr/) écrit en ADA , qui, de facto, effectue juste un produit cartésien de deux tableaux de constantes.

    Quelle en est la finalité ?

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Logique d'une suite
    Par invite3cc91bf8 dans le forum Science ludique : la science en s'amusant
    Réponses: 34
    Dernier message: 02/08/2010, 17h20
  2. Problème de logique ou de français ?
    Par invitec9261d68 dans le forum Électronique
    Réponses: 1
    Dernier message: 18/11/2009, 19h36
  3. Les français & et l'éco-logique, mariage possible?
    Par invite492f9488 dans le forum Éthique des sciences (archives)
    Réponses: 9
    Dernier message: 27/12/2007, 15h39
  4. suite logique
    Par leg dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 28/11/2007, 18h35
  5. Suite logique
    Par invite9dd0f603 dans le forum Science ludique : la science en s'amusant
    Réponses: 3
    Dernier message: 03/01/2007, 22h14