Exercice Corrigé Langage Swift – Partie 1

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:

Créez une fonction qui prend deux nombres comme arguments et retourne leur somme.

Exemple:

addition(1, 2) ➞ 3

addition(-2, -4) ➞ -6

addition(10, -5) ➞ 5
Solution:

// Déclare une fonction appelée "addition"
// qui reçoit deux nombres entiers "a" et "b".
// La fonction retourne un entier.
func addition(_ a: Int, _ b: Int) -> Int {
    
    // Additionne "a" et "b"
    // puis retourne le résultat.
    return a + b
}
 

Exercice 2:

Écrivez un programme Swift pour renvoyer le reste de deux nombres. Il existe un seul opérateur en Swift, capable de fournir le reste d’une division. Deux nombres sont transmis comme paramètres. Le premier paramètre divisé par le deuxième paramètre.

Exemple:

resteDiv(1, 3) ➞ 1

resteDiv(2, 4) ➞ 2

resteDiv(3, 3) ➞ 0
Solution:

// Déclare une fonction appelée "resteDiv"
// qui reçoit deux nombres entiers "x" et "y".
// La fonction retourne un entier.
func resteDiv(_ x: Int, _ y: Int) -> Int {
    
    // Calcule et retourne le reste de la division entière
    // de "x" par "y" grâce à l'opérateur "%".
    return x % y
}
 

Exercice 3:

Créez une fonction qui renvoie TRUE si une chaîne est vide et sinon renvoie FALSE.

Exemple:

isEmpty("1") ➞ false

isEmpty("WayToLearnX") ➞ false

isEmpty("  ") ➞ false

isEmpty("") ➞ true
Solution:

// Déclare une fonction appelée "isEmpty"
// qui reçoit une chaîne de caractères "str".
// La fonction retourne une valeur booléenne : true ou false.
func isEmpty(_ str: String) -> Bool {
    
    // Vérifie si la chaîne de caractères est vide.
    if str == "" {
        // Retourne true si la chaîne est vide.
        return true
    } else {
        // Retourne false si la chaîne n'est pas vide.
        return false
    }
}
 
 

Exercice 4:

Écrivez une fonction qui prend la base et la hauteur d’un triangle et retourne sa surface. Notez que la surface d’un triangle est: (base * hauteur) / 2

Exemple:

getSurface(8, 2) ➞ 8

getSurface(7, 3) ➞ 10
Formule : (base * hauteur) / 2
Solution:

// Déclare une fonction appelée "getSurface"
// qui reçoit deux nombres entiers :
// "base" représente la base du triangle
// "hauteur" représente la hauteur du triangle.
// La fonction retourne un entier.
func getSurface(_ base: Int, _ hauteur: Int) -> Int {
    
    // Calcule la surface du triangle avec la formule :
    // Surface = (base × hauteur) / 2
    // Puis retourne le résultat.
    return (base * hauteur) / 2
}
 

Exercice 5:

Créez une fonction qui renvoie TRUE si un entier est divisible par 5, sinon retournez FALSE.

Exemple:

isDivisible(5) ➞ true

isDivisible(10) ➞ true

isDivisible(6) ➞ false
Solution:

// Déclare une fonction appelée "isDivisible"
// qui reçoit un nombre entier "n" en paramètre.
// La fonction retourne une valeur booléenne : true ou false.
func isDivisible(_ n: Int) -> Bool {
    
    // Vérifie si "n" est divisible par 5.
    // Si le reste de la division de "n" par 5 est égal à 0,
    // le nombre est divisible par 5.
    if n % 5 == 0 {
        
        // Retourne true si "n" est divisible par 5.
        return true
    } else {
        
        // Retourne false si "n" n'est pas divisible par 5.
        return false
    }
}
 

Exercice 6: Le problème du fermier

Dans ce défi, un fermier vous demande de lui dire combien de pattes peuvent être comptées parmi tous ses animaux. Il y a trois espèces:

  • poulets = 2 pattes
  • vaches = 4 pattes
  • chevaux = 4 pattes

Le fermier a compté ses animaux et il vous donne un sous-total pour chaque espèce. Vous devez implémenter une fonction qui renvoie le nombre total de pattes de tous les animaux.

L’ordre des animaux transmis à la fonction est nbrsPattes(poulets, vaches, chevaux).

Exemple:

nbrsPattes(1, 4, 2) ➞ 26

nbrsPattes(2, 2, 2) ➞ 20

nbrsPattes(2, 0, 3) ➞ 16

N’oubliez pas que le fermier veut connaître le nombre total de pattes et non pas le nombre total d’animaux.

Solution:

// Déclare une fonction appelée "nbrsPattes"
// qui reçoit trois nombres entiers :
// "poulets" représente le nombre de poulets,
// "vaches" représente le nombre de vaches,
// "chevaux" représente le nombre de chevaux.
// La fonction retourne un entier.
func nbrsPattes(_ poulets: Int, _ vaches: Int, _ chevaux: Int) -> Int {
    
    // Un poulet possède 2 pattes.
    // Une vache possède 4 pattes.
    // Un cheval possède 4 pattes.
    // Calcule et retourne le nombre total de pattes.
    return (poulets * 2 + vaches * 4 + chevaux * 4)
}
 
 

Exercice 7: Nombre paire ou impaire

Créez une fonction qui prend un nombre comme argument et renvoie « pair » pour les nombres pairs et « impair » pour les nombres impairs.

Exemple:

check(2) ➞ "pair"

check(7) ➞ "impair"

check(22) ➞ "pair"
Solution:

// Déclare une fonction appelée "check"
// qui reçoit un nombre entier "n" en paramètre.
// La fonction retourne une chaîne de caractères.
func check(_ n: Int) -> String {
    
    // Vérifie si "n" est divisible par 2.
    // Si le reste est égal à 0, le nombre est pair.
    // Sinon, le nombre est impair.
    // L'opérateur ternaire permet de choisir entre les 2 résultats.
    return n % 2 == 0 ? "paire" : "impaire"
}
 

Exercice 8:

Créez une fonction qui prend un tableau de nombres, et renvoie le plus grand nombre du tableau.

Exemple:

max([6, 9, 1, 2]) ➞ 9

max([10, 66, 12, 98]) ➞ 98

max([1, 1, 1, 1, 1]) ➞ 1
Solution:

// Déclare une fonction appelée "max"
// qui reçoit un tableau d'entiers "tab" en paramètre.
// La fonction retourne un entier.
func max(_ tab: [Int]) -> Int {
    
    // Recherche la plus grande valeur du tableau
    // avec la méthode "max()".
    // Le "!" force le déballage de la valeur optionnelle
    // retournée par "max()".
    return tab.max()!
}
 

Exercice 9:

Créez une fonction pour concaténer deux tableaux entiers.

Exemple:

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

concatenate([9, 8], [1, 5, 6, 7]) ➞ [9, 8, 1, 5, 6, 7]

concatenate([1, 1, 1], [2, 2, 2]) ➞ [1, 1, 1, 2, 2, 2]
Solution:

// Déclare une fonction appelée "concatenate"
// qui reçoit deux tableaux d'entiers "tab1" et "tab2".
// La fonction retourne un tableau d'entiers.
func concatenate(_ tab1: [Int], _ tab2: [Int]) -> [Int] {
    
    // Concatène les deux tableaux en les mettant l'un à la suite 
    // de l'autre.
    // Retourne le nouveau tableau contenant les éléments de "tab1" 
    // et "tab2".
    return tab1 + tab2
}

Une réflexion sur “Exercice Corrigé Langage Swift – Partie 1”

Laisser un commentaire

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