Recherche par position

Julia

Recherche dans un ensemble par position

Note: avec Julia la position du premier élément d’une collection est 1

Première forme:
function rechercheParPosition_1(ensemble,position)
   index = 1
   existe = false
   Initialiser(ensemble)
   while Enumeration(ensemble) && index < position && position >= 1   
      index = index + 1
      Element_Suivant(ensemble)
   end
   if Enumeration(ensemble) && (position > 0) existe = true end
   return existe
end
Deuxième forme: parcours sur ensemble itérable
function rechercheParPosition_2(ensemble,position)
   existe = false
   index = 1
   for _ in Elements(ensemble)
      if index == position
         existe = true
         break
      else
         index = index + 1
      end
   end
   return existe
end

Tests

La fonction booléen utilisée dans le test ci-dessous

function booléen(valeur)
   if valeur Afficher("VRAI") else Afficher("FAUX") end
end
ensemble = File(10,20,30)
position = 0
println("Test recherche à la position ", position)
booléen(rechercheParPosition_1(ensemble,position))
booléen(rechercheParPosition_2(ensemble,position))

position = 1
println("Test recherche à la position ", position)
booléen(rechercheParPosition_1(ensemble,position))
booléen(rechercheParPosition_2(ensemble,position))

position = 3
println("Test recherche à la position ", position)
booléen(rechercheParPosition_1(ensemble,position))
booléen(rechercheParPosition_2(ensemble,position))

position = 4
println("Test recherche à la position ", position)
booléen(rechercheParPosition_1(ensemble,position))
booléen(rechercheParPosition_2(ensemble,position))

Swift

Recherche dans un ensemble par position

Note: avec Swift la position du premier élément d’une collection est 0

Première forme:
func rechercheParPosition_1 <_Element>(_ ensemble: Ensemble<_Element>
                                      ,_ position: Int) 
                                      -> Bool {
   var index = 1
   var existe = false
   Initialiser(ensemble)
   while Enumeration(ensemble) && index < position && position >= 1{
      index = index + 1
      Element_Suivant(ensemble)
   }
   if Enumeration(ensemble) && (position == index) { existe = true }
   return existe
}
Deuxième forme: parcours sur ensemble itérable
func rechercheParPosition_2 <_Element>(_ ensemble: Ensemble<_Element>
                                      ,_ position: Int) 
                                      -> Bool {
   var existe = false
   var index = 0
   for _ in ensemble {
      if index == position {
         existe = true
         break
      } else {
         index = index + 1
      }
   }
   return existe
}

Tests

func Test_RechercheParPosition() {
   var ensemble = File(10,20,39) // Création d'un ensemble 
   var position = 4
   Afficher(ensemble,rechercheParPosition_1(ensemble,position),position)
   position = 1
   Afficher(ensemble,rechercheParPosition_1(ensemble,position),position)
   
   position = 0
   Afficher(ensemble,rechercheParPosition_2(ensemble,position),position)
   position = 3
   Afficher(texte,rechercheParPosition_2(texte,position),position)
}

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