User Tools

Site Tools


tableau_circulaire

Tableau circulaire

Explication

Il est parfois utile de pouvoir lire un tableau de facon circulaire. C'est a dire en commencant le tableau a n'importe quel index puis lire le tableau case apres case en recommancant au debut lorsque l'ont a atteint la fin du tableau.

Il existe plein de facon de le faire en faisant deux boucles distinctes, une partant de l'index jusqu'a la fin puis une seconde boucle du debut jusqu'a l'index mais il est facile de s'embrouiller.

Si vous avez de la memoire disponible, le plus simple est de creer un tableau de fois plus grand que vos donnes et de copier les donnees deux fois dedant. Vous pouvez ensuite lire simplement dans le tableau en partant de l'index avec une seule boucle et votre code est plus lisible.

Exemple

TailleData = 6
Data = {A, B, C, D, E, F}
 
TabCirculaire[2*TailleData] //On declare un tableau deux fois plus grand
 
for i in TailleData*2
| TabCirculaire = Data[i modulo TailleData]
end
 
//pour lire dans Data avec n'importe quel offset, il suffit de faire
 
for i = offset modulo TailleData; i < TailleData + offset modulo TailleData; i++
|  print TabCirculaire[i]
end
tableau_circulaire.txt · Last modified: 2018/09/07 16:36 by supergnu