toto=1
tabFrecFR=[8.40 1.06 3.03 4.18 17.26 1.12 1.27 0.92 7.34 0.31 0.05 6.1 2.96 7.13 5.26 3.01 0.99 6.55 8.08 7.07 5.74 1.32 0.04 0.45 0.3 0.12]/100

alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
AsciiAlpha=ascii(alphabet)
//function tab=AnalyseFreq(mess, tabRef)
mess='UNE FOIS JE ME SUIS PROMENEE DANS UN PARC ET J AI VU UN BEL OISEAU'

cle=9;
ch=Cesar(cle,mess)
disp(ch);

function cle=analyseFrequentielle(ch,tabFrecFR)
  tabAscii=ascii(ch)// on transforme en ascii
  tabOccurences=nfreq(tabAscii)// fonction scilab qui calcule els occurences des éléments d'un tableau
  indices=find(tabOccurences(:,1)<> 32);// on cherche à éliminer l'espace; pour cela on repère les indices de tous les élements qui ne sont pas l'espace
  
  tabFreq=tabOccurences(indices,2)'/length(tabAscii);  //On transforme les occurences en fréquences  et on élimine l espace aussi
  tabA=tabOccurences(indices,1)';// on récupère la table des caractères présents dna sle message
  
  // on complète la table des caractères par ceux qui manquent, en leur attribuant une fréquence nulle
  for i=1:26
    test=find(tabA==AsciiAlpha(i))
    if(length(test)==0)
      tabA=[tabA AsciiAlpha(i)];
      tabFreq=[tabFreq 0];
    end
  end
  
    [m,indice]=max(tabFreq);// on récupère l'indice  du plus fréquent element du message
     [mRef, indiceRef]=max(tabFrecFR);// indice du plus frequent element de l'alphabet en français
     cle=-AsciiAlpha(indiceRef)+tabA(indice); // l'écart entre les codes ascii des deux plus fréquents représente le décalage 
     disp(cle)
     endfunction
     
 k=analyseFrequentielle(ch,tabFrecFR);
messDechiffre=DecodeCesar(k,ch)
 disp(messDechiffre)