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

Caml Discussion :

Premier ag en camL pour tipe


Sujet :

Caml

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Premier ag en camL pour tipe
    Salut à tous, je tente de faire un algorithme génétique en tipe pour m entraîner. J avais commencé en Lua sur ipad mais je code pas souvent en C ou proche En camL (light) j ai déjà écrit un programme rapide sans tracé (pour l'instant).
    J ai un problème qui me semble être plus qu ' une erreur de syntaxe :
    (attention je code pas de façon compacte loin de là) erreur a partir de la ligne 20 du code
    Quelques details sur le programme : je garde une population de 20 poissons avec 1 algue a manger et 8 "variables" à optimiser 4 sur les x et 4 sur les y.
    Soient 13 données par poisson (position(2) vitesse(2) variables(8) et algue(1).

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    let poisson k =
    let j = ref 0 and
    a = [|int(400);int(400)|] and
    p = make_vect 260 0 in
    
    for i = 0 to 19 do
    
    p.(13*i)<- int(400); 
    p.(13*i+1)<- int(400);
    
    p.(13*i+4)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+5)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+6)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+7)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+8)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+9)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+10)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    p.(13*i+11)<- float(30.)*.((-1.)**.(( float_of_int(int(2))));
    
    done; "probleme ici a l execution"
    
    while !j < k do 
    
    if !j > 0 then if !j mod 40 = 0 then 
    
    let z = ref 0 and r = ref 0 in
    
    while !z < 5 do 
    for i = 0 to 19 do
    let c = ref 0 in
    if p.(13*i+12)= !r then for g = 4 to 11 do c:= 0 ;  
                                       for m = 0 to 19 do c := !c +. p.(13*m+12) *. p.(13*m+g)
                                       done;
                                       p.(13*i+g)<-!c /. 40. +. float(1.) -. float(1.) ;
                                       done;
    p.(13*i+12)<- 0 ;
    z:= !z + 1 ; 
    done;
    r:= !r + 1 ;
    done ;
    
    
               for i = 0 to 19 do 
    
               if p.(13*i)=a.(0) then if p.(13*i+1)=a.(1) then p.(13*i+12)<-1+p.(13*i+12);
               a = [|int(400);int(400)|];
               j:=!j+1 ;
               done;
               for i = 0 to 19 do 
               p.(13*i)<-p.(13*i)+ int_of_float(p.(13*i+2));
               p.(13*i+1)<-p.(13*i+1)+ int_of_float(p.(13*i+3));
               p.(13*i+2)<-p.(13*i+2) +. p.(13*i+2) *. p.(13*i+4) + p.(13*i+2) *. p.(13*i+2) *. p.(13*i+5) + (a.(0) -. p.(13*i)) *.  p.(13*i+6) + ((a.(0) -. p.(13*i))**.2)*. p.(13*i+7);
               p.(13*i+3)<-p.(13*i+3) +. p.(13*i+3) *. p.(13*i+8) + p.(13*i+3) *. p.(13*i+3) *. p.(13*i+9) + (a.(1) -. p.(13*i+1)) *.  p.(13*i+10) + ((a.(1) -. p.(13*i+1))**.2)*. p.(13*i+11);
               done;
                                   
             
               
               done;
               p;;
    (edit oubli de ! )

  2. #2
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bonjour et bienvenu sur les forums développez.

    Je te prierais de : 1/ te relire et 2/ indenter ton code. Néanmoins je vois que tu as eu la bonne intuition d'utiliser les balises code, et ça c'est cool. Si tu devais à nouveau poster une question, prends l'habitude de préciser l'erreur exacte telle que donnée par le compilateur/interpréteur. Souvent, il n'est pas possible de trouver la cause du problème sans l'intitulé exact de l'erreur. Mais tu as de la chance, ici c'est juste le point-virgule avant le done qui est de trop.

Discussions similaires

  1. Le premier OS russe prévu pour fin 2011
    Par JHamza dans le forum Linux
    Réponses: 44
    Dernier message: 15/04/2011, 14h32
  2. premier plan/arriere plan pour éléments graphiques
    Par MathildeJ dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/07/2010, 10h49
  3. France : le premier pays au monde pour l'adoption de l'open source ?
    Par Pierre Louis Chevalier dans le forum Licences
    Réponses: 0
    Dernier message: 23/04/2009, 16h44

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