Insérer par position

Swift

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                  Création d'un ensemble

Insérer un élément en position dans un ensemble séquentiel

func insererParPosition <_Element>(_ ensemble: Ensemble<_Element>
                                  ,_ elementAinserer: _Element
                                  ,_ position: Int) 
                                  -> Ensemble<_Element> 
{
   let nouvelEnsemble = Ensemble_Element(ensemble)
   if position < 1 {
      return ensemble
   }
   var index = 1
   Initialiser(ensemble)
   while Enumeration(ensemble) && index < position {
      index = index + 1
      Ranger_Element(nouvelEnsemble,Element(ensemble))
   }
   if index == position {
      Ranger_Element(nouvelEnsemble,elementAinserer)
      while Enumeration(ensemble) { 
         Ranger_Element(nouvelEnsemble,Element(ensemble)) 
      }
   }
   return nouvelEnsemble
}

Test

func Test_Inserer() {
   Afficher("File: Les éléments de nombres ")
   let nombres = File(30,9,111,12,115, 13,14,15,111,100)
   Lister(nombres)
   
   print("")
   elementAInserer = 112
   var position = 3
   print("Inserer \(elementAInserer) à la position \(position)")
   ensemble = insererAlaPosition (nombres,elementAInserer,position)
   Lister(ensemble)
   
   print("")
   elementAInserer = 112
   position = 0
   print("Inserer \(elementAInserer) à la position \(position)")
   ensemble = insererAlaPosition (nombres,elementAInserer,position)
   Lister(ensemble)

   print("")
   elementAInserer = 112
   position = 12
   print("Inserer \(elementAInserer) à la position \(position)")
   ensemble = insererAlaPosition (nombres,112,12)
   lister(ensemble)
}

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