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:

func addition(_ a: Int, _ b: Int) -> Int {
	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:

func resteDiv(_ x: Int, _ y: Int) -> Int {
	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:

func isEmpty(_ str: String) -> Bool {
	if str == "" {
		return true
	}else{
		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:

func getSurface(_ base: Int, _ hauteur: Int) -> Int {
	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:

func isDivisible(_ n: Int) -> Bool {
	 if n % 5 == 0 {
        return true
    } else {
        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:

func nbrsPattes(_ poulets: Int, _ vaches: Int, _ chevaux: Int) -> Int {
	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:

func check(_ n: Int) -> String {
    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:

func max(_ tab: [Int]) -> Int {
	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:

func concatenate(_ tab1: [Int], _ tab2: [Int]) -> [Int] {
	return tab1 + tab2
}

Laisser un commentaire

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