Insérer par position

Julia

Rappels
Primitives Schema présentes dans les traductions ci-dessous

Ensemble_Element()    Création d'un ensemble vide
Initialiser(ensemble) Initialisation d'une iteration d'ensemble
Enumeration(ensemble) Expression booléenne de contrôle de l'itération
Element(ensemble)     Renvoie l'element courant et positionne sur élément suivant
Ranger_Element(ensemble,element) Ajoute un élément dans ensemble
Lister(ensemble)      Liste les élément d'un ensemble
File_Elements         Création d'un ensemble

Insérer un élément à une position dans un ensemble

function InsererAlaPosition(ensemble,elementAinserer,position)
   nouvelEnsemble = Ensemble_Element()
   if position < 1
      return ensemble
   end
   index = 1
   Initialiser(ensemble)
   while Enumeration(ensemble) && index < position
      index = index + 1
      Ranger_Element(nouvelEnsemble,Element(ensemble))
   end
   if index == position
      Ranger_Element(nouvelEnsemble,elementAinserer)
      while Enumeration(ensemble) 
         Ranger_Element(nouvelEnsemble,Element(ensemble)) 
      end
   end
   return nouvelEnsemble
end

Test

function Test_InsererParPosition()
   println("File: Les éléments de nombres ")
   nombres = File_Elements(30,9,111,12,115, 13,14,15,111,100)

   elementAInserer = 112
   position = 3
   println("Inserer element ",elementAInserer, " à la position ",position)
   ensemble = InsererAlaPosition(nombres,elementAInserer,position)

   elementAInserer = 112
   position = 0
   println("Inserer element ",elementAInserer, " à la position ",position)
   ensemble = InsererAlaPosition(nombres,elementAInserer,position)

   elementAInserer = 114
   position = 12
   println("Inserer element ",elementAInserer, " à la position ",position)
   ensemble = InsererAlaPosition(nombres,112,12)
end

Swift

Insérer un élément à une position dans un ensemble

func insererParPosition <_Element>
   (_ ensemble: Ensemble<_Element>
   ,_ elementAinserer: _Element
   ,_ position: Int) 
   -> Ensemble<_Element> {

   var nouvelEnsemble = EnsembleVide(ensemble)
   if position < 1 {
      return ensemble
   }
   var index = 1
   Initialiser(ensemble)
   while Enumeration(ensemble) && index < position {
      index = index + 1
      let element = Element_Courant(ensemble)
      Ranger_Element(nouvelEnsemble,element)
      Element_Suivant(ensemble)
   }
   if index == position {
      Ranger_Element(nouvelEnsemble,elementAinserer)
      while Enumeration(ensemble) {
         element = Element_Courant(ensemble)
         Ranger_Element(nouvelEnsemble,element)
         Element_Suivant(ensemble)
      }
   }
   return nouvelEnsemble
}

copyright A rchitectures A pplicatives A vancées A3-Soft