Exercice Corrigé Langage Swift – Partie 2

Avec des exercices corrigés en langage Swift, vous pratiquerez divers concepts du langage Swift. Vous commencerez par des exercices du langage Swift de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
 
 
Utiliser l’éditeur Swift pour résoudre les exercices : (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
 

Exercice 1:

Écrivez une fonction pour inverser un tableau.

Exemple:

reverseTab([1, 2, 3]) ➞ [3, 2, 1]

reverseTab([1, 1, 2, 2, 3]) ➞ [3, 2, 2, 1, 1]

reverseTab([]) ➞ []
Solution:

// Déclare une fonction appelée "reverseTab"
// qui reçoit un tableau d'entiers "arr" en paramètre.
// La fonction retourne un tableau d'entiers.
func reverseTab(_ arr: [Int]) -> [Int] {
    
    // Inverse l'ordre des éléments du tableau.
    // "reversed()" retourne les éléments dans l'ordre inverse.
    // "Array(...)" convertit le résultat en tableau [Int].
    return Array(arr.reversed())
}
 

Exercice 2:

Créez une fonction qui renvoie TRUE si une chaîne contient des espaces. Sinon renvoie FALSE.

Exemple:

containSpaces("Thomas") ➞ false

containSpaces("Hello World!") ➞ true

containSpaces(" ") ➞ true

containSpaces("") ➞ false
Solution:

// Déclare une fonction appelée "containSpaces"
// qui reçoit une chaîne de caractères "str".
// La fonction retourne une valeur booléenne : true ou false.
func containSpaces(_ str: String) -> Bool {
    
    // Vérifie si la chaîne contient au moins un espace.
    // Retourne true si un espace est trouvé,
    // sinon retourne false.
    return str.contains(" ")
}
 

Exercice 3:

Créez une fonction qui prend un mot et détermine s’il est pluriel ou singulier. Un mot pluriel est celui qui se termine par « s ». S’il est pluriel renvoyer TRUE sinon FALSE.

Exemple:

check("enfants") ➞ true

check("filles") ➞ true

check("fille") ➞ false

check("enfant") ➞ false
Solution:

// Déclare une fonction appelée "check"
// qui reçoit une chaîne de caractères "str".
// La fonction retourne une valeur booléenne : true ou false.
func check(_ str: String) -> Bool {
    
    // Vérifie si le dernier caractère de la chaîne est "s".
    // "last" permet d'obtenir le dernier caractère de la chaîne.
    // L'opérateur ternaire retourne true si le dernier caractère
    // est "s", sinon il retourne false.
    return str.last == "s" ? true : false
}
 
 

Exercice 4:

Créez une fonction qui renvoie le nombre d’arguments avec lesquels elle a été appelée.

Exemple:

nbrArgs() ➞ 0

nbrArgs({}) ➞ 1

nbrArgs("A") ➞ 1

nbrArgs("A", "B") ➞ 2
Solution:

// Déclare une fonction appelée "nbrArgs"
// qui peut recevoir un nombre variable d'arguments.
// Les arguments sont de type "Any", ce qui permet d'accepter
// différents types de valeurs.
// La fonction retourne un entier.
func nbrArgs(_ p: Any...) -> Int {
    
    // "count" retourne le nombre d'arguments reçus.
    return p.count
}
 

Exercice 5:

Créez une fonction qui prend un tableau de nombres et renvoie le plus petit nombre du tableau.
 
Exemple:

getMin([5, 8, 1, 7]) ➞ 1

getMin([9, -1, -10, 10]) ➞ -10

getMin([-1, 0, 1]) ➞ -1

getMin([100]) ➞ 100
Solution:

// Déclare une fonction appelée "getMin"
// qui reçoit un tableau d'entiers "tab".
// La fonction retourne un entier.
func getMin(_ tab: [Int]) -> Int {
    
    // Recherche la plus petite valeur du tableau avec "min()".
    // Si le tableau est vide et que "min()" retourne nil,
    // "?? 0" retourne 0 comme valeur par défaut.
    return tab.min() ?? 0
}
 

Exercice 6: Concaténer deux chaînes en une seule chaîne

Avec deux chaînes, str1 et str2, renvoyez une seule chaîne au format « str1 | str2 ».

Exemple:

concatStr("True", "False") ➞ "True | False"

concatStr("On", "Off") ➞ "On | Off"

concatStr("A", "B") ➞ "A | B"
Solution:

// Déclare une fonction appelée "concatStr"
// qui reçoit deux chaînes de caractères "str1" et "str2".
// La fonction retourne une chaîne de caractères.
func concatStr(_ str1: String, _ str2: String) -> String {
    
    // Concatène les deux chaînes de caractères
    // en ajoutant " | " entre elles.
    // Puis retourne le résultat.
    return str1 + " | " + str2
}
 
 

Exercice 7:

Écrivez une fonction pour vérifier si un tableau contient un nombre particulier.

Exemple:

nbrExist([6, 7, 8], 7) ➞ true

nbrExist([1, 2, 3], 5) ➞ false

nbrExist([], 0) ➞ false
Solution:

// Déclare une fonction appelée "nbrExist"
// qui reçoit un tableau d'entiers "tab"
// et un entier "nbr" à rechercher.
// La fonction retourne une valeur booléenne : true ou false.
func nbrExist(_ tab: [Int], _ nbr: Int) -> Bool {
    
    // Vérifie si le nombre "nbr" existe dans le tableau "tab".
    // Retourne true si le nombre est trouvé,
    // sinon retourne false.
    return tab.contains(nbr)
}
 

Exercice 8:

Créez une fonction qui prend un tableau et renvoie le dernier élément du tableau.

Exemple:

getLastElem([1, 2, 3, 4]) ➞ 4

getLastElem(['Alex', 'Bob', 'Emily']) ➞ 'Emily'

getLastElem([2.1, -69, 0.009]) ➞ 0.009
Solution:

// Déclare une fonction appelée "getLastElem"
// qui reçoit un tableau "tab" pouvant contenir des valeurs de 
// différents types.
// La fonction retourne une valeur de type "Any".
func getLastElem(_ tab: [Any]) -> Any {
    
    // Récupère le dernier élément du tableau avec "last".
    // Le "!" force le déballage de la valeur optionnelle.
    return tab.last!
}
 

Exercice 9:

Créez une fonction qui renvoie TRUE si la chaîne passée en paramètre ne contient que des lettres majuscules ou minuscules.

Exemple:

isSameCase("WayToLearnX") ➞ false

isSameCase("waytolearnx") ➞ true

isSameCase("WAYTOLEARNX") ➞ true
Solution:

// Déclare une fonction appelée "isSameCase"
// qui reçoit une chaîne de caractères "str".
// La fonction retourne une valeur booléenne : true ou false.
func isSameCase(_ str: String) -> Bool {
    
    // Vérifie si toute la chaîne est en majuscules
    // OU si toute la chaîne est en minuscules.
    //
    // "uppercased()" convertit la chaîne en majuscules.
    // "lowercased()" convertit la chaîne en minuscules.
    // La fonction retourne true si l'une des deux conditions est
    // vraie.
    return str.uppercased() == str || str.lowercased() == str
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *