Swift: File séquentielle -5-

Eclatement de file
Eclatement d’une file en monotonie

Le probleme qui se pose est de séparer les monotonies d’une file et de les ranger en alternance sur deux files. pour plus de détails l’éclatement en monotonie, se reporter à l’article File séquentielle: Copie – Concaténation – Éclatement

func EclaterMonotonie(file: File_Entier
                        , inout file1: File_Entier
                        , inout file2: File_Entier) {
    var valeur1 : Entier = 0
    var valeur2 : Entier = 0
    var b : Bool = true
   
    Premier(file)
    Premier(file1)
    Premier(file2)
    b = true
    valeur1 = valeur2
    while !Dernier(file) {
        valeur2 = Prendre(file)
        if Infer(valeur2,element: valeur1) {
            b = !b
        }
        if b {
            file1 = Ranger(file1, element: valeur2)
        } else {
            file2 = Ranger(file2, element: valeur2)
        }
        valeur1 = valeur2
        Avancer(file) 
    }
 }
Eclater une file Pair-Impair

On veut obtenir une file d’éléments à valeur paire et une file d’éléments à valeur impaire. Une fonction booléenne Pair et un choix à deux alternatives permet de ranger sur l’une ou l’autre file l’élément courant de la file directrice.

func PairImpair(file: File_Entier
               ,inout file1: File_Entier
               ,inout file2: File_Entier) {
   Premier(file1)
   Premier(file2)
   Premier(file)
   while !Dernier(file) {
      if Pair(Prendre(file)) {
         file1 = Ranger(file1, element: Prendre(file))
      } else {
         file2 = Ranger(file2, element: Prendre(file))
      }
      Avancer(file)
   }
}