Exercice Corrigé Langage Ruby – Partie 4

Avec des exercices corrigés en langage Ruby, vous pratiquerez divers concepts du langage Ruby. Vous commencerez par des exercices du langage Ruby 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 Ruby 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 un tableau d’éléments et retourne le premier et dernier élément comme un nouveau tableau.
 
Exemple:

getFirstLast([1, 2, 3, 4, 5, 6]) ➞ [1, 6]

getFirstLast(["A", "B", "C", "D", "E"]) ➞ ["A", "E"]

getFirstLast(["Ruby", "Java", "PHP", "C++"]) ➞ ["Ruby", "C++"]

Solution:

def getFirstLast(tab)
	[tab.first, tab.last]
end
 

Exercice 2:

Créez une fonction qui compte le nombre de syllabes d’un mot. Chaque syllabe est séparée par un tiret -.

Exemple:

nbrOfSlab("prin-temps") ➞ 2

nbrOfSlab("ar-rê-te") ➞ 3

nbrOfSlab("ther-mo-mè-tre") ➞ 4

Solution:

def nbrOfSlab(syllable)
	syllable.count('-') + 1
end
 

Exercice 3:

Créez une fonction qui prend un entier et renvoie la factorielle de cet entier. C’est-à-dire, l’entier multiplié par tous les entiers inférieurs positifs.

Exemple:

factoriel(2) ➞ 2
// 2 * 1 = 2

factoriel(3) ➞ 6
// 3 * 2 * 1 = 6

factoriel(4) ➞ 24
// 4 * 3 * 2 * 1 = 24

Solution:

def factoriel(int)
	 (1..int).inject(:*)
end
 
 

Exercice 4:

Créez une fonction qui prend une chaîne et renvoie le nombre de voyelles qu’elle contient.
 
Exemple:

countVoyel("WayToLearnX") ➞ 4

countVoyel("Paris") ➞ 2

countVoyel("Jack") ➞ 1

Solution:

def countVoyel(str)
	str.count("aeiou")
end
 

Exercice 5:

Créez une fonction qui ne renvoie que des chaînes avec des caractères uniques.
 
Exemple:

uniqueChar(["xxy", "xyy", "xyz", "yzz", "yyz"]) ➞ ["xyz"]

uniqueChar(["111", "222", "333", "123"]) ➞ ["123"]

uniqueChar(["abb", "bba", "aaa", "bbb"]) ➞ []

Solution:

def uniqueChar(tab)
	tab.select {|i| i.chars.uniq == i.chars}
end
 

Exercice 6:

Vous avez un tableau de nombre, transformez ce tableau en miroir.

Exemple:

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

miroir([9, 8, 7]) ➞ [9, 8, 7, 8, 9]

miroir([10, 20]) ➞ [ 10, 20, 10 ]

Solution:

def miroir(tab)
	tab + tab[0..-2].reverse
end
 
 

Exercice 7:

Créez une fonction qui prend deux chaînes comme arguments et renvoie le nombre de fois où la première chaîne (le caractère unique) est trouvée dans la deuxième chaîne.
 
Exemple:

count("l", "Hello") ➞ 2

count("e", "Welcome to WayToLearnX") ➞ 3

count("X", "WayToLearnX") ➞ 1

Solution:

def countChar(str1, str2)
	str2.count(str1)
end
 

Exercice 8:

Écrivez une fonction qui renvoie TRUE si un nombre est un palindrome.

Exemple:

checkPalindrome(212) ➞ true

checkPalindrome(123) ➞ false

checkPalindrome(75257) ➞ true

Solution:

def checkPalindrome(nbr)
	nbr.to_s == nbr.to_s.reverse
end
 

Exercice 9:

Créez une fonction qui prend un nombre (de 1 à 12) et renvoie son nom de mois correspondant sous forme de chaîne. Par exemple, si on vous donne 4 en entrée, votre fonction devrait retourner Avril, car Avril est le 4ème mois.

Nombre
Nom du mois
1 Janvier
2 Février
3 Mars
4 Avril
5 Mai
6 Juin
7 Juillet
8 Août
9 Septembre
10 Octobre
11 Novembre
12 Décembre

Exemple:

nomDuMois(3) ➞ "Mars"

nomDuMois(12) ➞ "Décembre"

nomDuMois(6) ➞ "Juin"

Solution:

def nomDuMois(n)
	mois = {
		1 => 'Janvier',
		2 => 'Février',
		3 => 'Mars',
		4 => 'Avril',
		5 => 'Mai',
		6 => 'Juin',
		7 => 'Juillet',
		8 => 'Août',
		9 => 'Septembre',
		10 => 'Octobre',
		11 => 'Novembre',
		12 => 'Décembre'
	}
	mois[n]
end

Laisser un commentaire

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