Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
page=Algorithmes
FORUMS TUTORIELS FAQ BLOGS CHAT NEWSLETTER EMPLOI ÉTUDES DROIT CLUB
DI/DSI Solutions d'entreprise Cloud IA ALM Microsoft Java Dév. Web EDI Programmation SGBD Office Mobiles Systèmes
Programmation Algorithmique 2D-3D-Jeux Assembleur C C++ C# D Go Kotlin Objective C Pascal Perl Python Rust Swift
Qt XML Autres
ACCUEIL ALGO COURS ALGO FAQ ALGO FORUM ALGO EXERCICES ALGO LIVRES ALGO SOURCES ALGO
ALTERNANCE - Chargé de missions transformation agile de CAA H/F - CREDIT AGRICOL E ASSURANCES
Experte / Expert produit éditique - LA BA NQ UE POSTALE - G radi gnan
Tous les exercices Débuter - Algorithmique Exercices Exercices corrigés pour apprendre l'algorithmique
Exercices corrigés pour apprendre l'algorithmique
Nombre d'auteurs : 1 - Nombre d'exercices : 20 - Dernière mise à jour : 12 mai 2019
Rechercher
Une sélection des meilleurs exercices, accessibles aux débutants, avec des énoncés clairs et complets suivis de solutions détaillées.
Grâce à l'entraide bénévole, les membres du club répondent à vos questions directement sur le forum et vous aident lors de l'apprentissage du langage.
Commentez
Sommaire Algorithmes
Apprendre à faire la somme des N premiers entiers
Initialisation d'un tableau
Calculer la taille d'un tableau
Fonction d'échange d'éléments dans un tableau
Copie de tableau
Recherche de l'indice du premier élément minimum d'un tableau
Déclaration d'une matrice
Initialisation d'une matrice
Somme de deux matrices réelles
Fusion de tableaux triés
Algorithme de tri par fusion de deux tableaux
Recherche d'un élément dans un tableau d'entiers
Minimum dans un tableau d'entiers
Recherche du zéro d'une fonction croissante
Sommaire
Arbres
Apprendre à faire la somme des N premiers entiers
Mis à jour le 22 juin 2018 par Malick
Objectif
Faire la somme des N premiers entiers.
Niveau de difficulté : débutant
Exercice
Écrire un algorithme permettant de faire la somme des N premiers entiers. La fonction demandée prend en entrée un nombre entier, N, et renvoie un autre nombre entier,
la somme demandée.
Auteur : M. Delest
Source
Cacher cette solution
Pour ce faire, voici le code :
Code : Sélectionner tout
1 fonction suite(val n :entier) :entier;
2 var i,s :entier;
3 début
4 s = 0;
5 pour i allant de 1 à n faire
6 s = s + i;
7 finpour;
8 retourner(s)
9 fin
10 finfonction;
En Python :
1 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
Code python : Sélectionner tout
1 #! /usr/bin/python
2 def somme(n):
3 s = 0
4 for i in range(n + 1):
5 s = s+i
6 return s
7 print(somme(4))
De manière plus condensée :
Code python : Sélectionner tout
1 def somme(n):
2 return sum(i for i in range(n + 1))
3 print(somme(4))
Complexité :
Initialisation d'un tableau
Mis à jour le 26 décembre 2018 par Malick
Objectif
Apprendre à initialiser un tableau.
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet d'initialiser un tableau. Cette fonction prend en entrée un tableau, sa longueur et une valeur à insérer dans chacune des cases du tableau.
Auteur : M. Delest
Source
Cacher cette solution
Pour ce faire, voici une proposition de solution :
Code : Sélectionner tout
1 fonction init(ref T : tableau[min_indice..max_indice] d'éléments;
2 val valeurInitiale :élément) : vide;
3 var i :entier;
4 début
5 pour i allant de min_indice à max_indice faire
6 T[i] = valeurInitiale
7 finpour
8 fin
9 finfonction
Complexité :
Calculer la taille d'un tableau
Mis à jour le 12 mai 2019 par Malick
Objectif
Calcul de la taille d'un tableau
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de connaître la taille d'un tableau à partir de la plage d'indices valides.
Auteur : M. Delest
Source
Cacher cette solution
Pour ce faire, voici une proposition de solution :
Code : Sélectionner tout
1 fonction taille(ref T :tableau[min_indice..max_indice] d'éléments) :entier;
2 début
3 retourner(max_indice - min_indice + 1)
4 fin
5 finfonction
Complexité :
2 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
Fonction d'échange d'éléments dans un tableau
Mis à jour le 12 mai 2019 par Malick
Objectif
Échange d'éléments dans un tableau
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet d'échanger des éléments dans un tableau. La fonction prend en argument un tableau, sa taille, ainsi que les indices des deux éléments à
inverser.
Auteur : M. Delest
Source
Cacher cette solution
La solution proposée se présente comme suit :
Code : Sélectionner tout
1 fonction echange(ref T :tableau[min_indice..max_indice] d’éléments;
2 val indice1,indice2 : entier) :vide;
3 var e :élément;
4 début
5 e = T[indice1];
6 T[indice1] = T[indice2];
7 T[indice2] = e;
8 fin
9 finfonction
Complexité :
Copie de tableau
Mis à jour le 12 mai 2019 par Malick
Objectif
Copie d'un tableau
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de faire la copie d'un tableau. Cette fonction prend en entrée deux tableaux de même longueur, leur longueur, l'indice à partir duquel les
données doivent être copiées, le dernier indice qui doit être copié et le premier indice où insérer des données dans le deuxième tableau.
Auteur : M. Delest
Source
Cacher cette solution
Solution :
Code : Sélectionner tout
3 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
1 fonction echange(ref T :tableau[min_indice..max_indice] d’éléments;
2 val indice1,indice2 : entier) :vide;
3 var e :élément;
4 début
5 e = T[indice1];
6 T[indice1] = T[indice2];
7 T[indice2] = e;
8 fin
9 finfonctionfonction copie(ref T1,T2 :tableau[min_indice..max_indice] d'élément;
10 val indiceT1_1,indiceT1_2,indiceT2 : entier) :booléen;
11 var i :entier;
12 début
13 si indiceT2+indiceT1_2-indiceT1_1>max_indice alors
14 retourner(faux)
15 sinon
16 pour i allant de indiceT1_1 à indiceT1_2 faire
T2[indiceT2] = T1[i];
Complexité :
minimum :
maximum :
Source Python :
Code python : Sélectionner tout
1 from tableaux import Tableau
2
3 def chercheRecursif(T,e,min_indice,max_indice):
4 if [Link][min_indice] == e:
5 return(min_indice)
6 else :
7 if min_indice == max_indice :
8 return()
9 else :
10 return(chercheRecursif(T, e, min_indice+1, max_indice))
11
12 def chercheIteratif(T,e):
13 for i in range([Link]()):
14 if [Link][i] == e :
15 return(i)
16 return()
Recherche de l'indice du premier élément minimum d'un tableau
Mis à jour le 12 mai 2019 par Malick
Objectif
Chercher l'indice du premier élément minimum d'un tableau.
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de connaître l'indice du premier élément minimum d'un tableau. La fonction prend en argument un tableau d'entiers et sa longueur, elle
renvoie la valeur minimale dans le tableau.
Auteur : M. Delest
Source
Cacher cette solution
On suppose que le tableau contient des éléments comparables (l'ensemble des éléments est muni d'une relation d'ordre). Choisissons ici, pour simplifier les notations, des
entiers.
Propriété 5.3. Soit i et j deux entiers, i<=j . Soit T un tableau d'entiers d'indice variant entre i et j . Soit m l'élément minimum du tableau, on a :
T[i] = m ou m est dans T[i+1..j] .
Code : Sélectionner tout
4 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
1
2 fonction minimum(ref T :tableau[min_indice..max_indice] d'entier) :entier;
3 var i,sauv :entier;
4 début
5 sauv = min_indice;
6 pour i allant de min_indice+1 à max_indice faire
7 si T[i] < T[sauv] alors
8 sauv = i
9 finsi
10 finpour
11 retourner(sauv)
12 finfonction
Complexité :
Déclaration d'une matrice
Mis à jour le 12 mai 2019 par Malick
Objectif
Déclarer une matrice
Niveau de difficulté : débutant
Exercice
Écrire une façon de déclarer une matrice. On s'attend à une déclaration de variable.
Auteur : M. Delest
Source
Cacher cette solution
Une matrice M de dimension n × m est un tableau de dimension n dont chaque élément est un tableau de dimension m . On peut donc déclarer la matrice sous la forme
suivante :
Code : Sélectionner tout
var M :tableau[1..n] de tableau [1..m] d'éléments;
Initialisation d'une matrice
Mis à jour le 12 mai 2019 par Malick
Objectif
Savoir initialiser une matrice
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet d'initialiser une matrice. La fonction prend en argument une matrice (définie comme à l'exercice précédent), ses dimensions et la valeur
initiale à insérer dans chaque case de la matrice.
Auteur : M. Delest
Source
Cacher cette solution
Pour cela, vous pouvez procéder comme suit :
Code : Sélectionner tout
1 var M :tableau[1..n] de tableau [1..m] d'éléments;fonction initMatrice(ref M :tableau[
2 de tableau [1..m] d'éléments;
3 val valeurInitiale :élément) :vide;
4 var i,j :entier;
5 début
6 pour i allant de 1 à n faire
7 pour j allant de 1 à m faire
8 M[i][j] = valeurInitiale
9 finpour
10 finpour
11 retourner()
finfonction
Complexité :
Somme de deux matrices réelles
Mis à jour le 12 mai 2019 par Malick
Objectif
Calculer la somme de deux matrices
5 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de faire la somme de deux matrices. Cette fonction prend en argument deux matrices de même taille, leur dimension ; elle renvoie une
matrice.
Auteur : M. Delest
Source
Cacher cette solution
Pour ce faire, la solution proposée se présente comme suit :
Code : Sélectionner tout
1 fonction sommeMatrice(ref M1,M2 :tableau[1..n] de tableau [1..m] de réels) :
2 tableau[1..n] de tableau [1..m] de réels;
3 var i,j :entier;
4 var M :tableau[1..n] de tableau [1..m] de réels;
5 début
6 pour i allant de 1 à n faire
7 pour j allant de 1 à m faire
8 M[i][j] = M1[i][j] + M2[i][j];
9 finpour
10 finpour
11 retourner(M)
12 finfonction
Complexité :
Fusion de tableaux triés
Mis à jour le 12 mai 2019 par Malick
Objectif
Fusionner des tableaux triés
Niveau de difficulté : débutant - intermédiaire
Exercice
Écrire une fonction qui permet de fusionner deux tableaux triés, c'est-à-dire qu'elle retourne le tableau trié contenant les éléments des deux tableaux en entrée. Elle prend
en entrée un tableau, sa longueur, un autre tableau, sa longueur ; elle renvoie un tableau.
Cette nouvelle fonction doit avoir une complexité algorithmique aussi faible que possible.
Auteur : M. Delest
Source
Cacher cette solution
Lorsque deux tableaux T1 et T2 sont triés, il est aisé de construire un nouveau tableau contenant la séquence triée regroupant les séquences correspondantes à T1 et T2.
Code : Sélectionner tout
1 PREMIERE VERSION
2 fonction fusion(ref T1 :tableau[1..N1] d'entier;
3 ref T2 :tableau[1..N2] d'entier
4 ) :tableau[1..N1+N2] d'entier;
5 var I1,I2,i :entier;
6 var T :tableau[1..N1+N2] d'entier;
7 début
8 I1 = 1;
9 I2 = 1;
10 pour i allant de 1 à N1+N2 faire
11 si T1[I1]≤T2[I2] alors
12 T[i] = T1[I1];
13 I1 = I1+1;
14 sinon
15 T[i] = T2[I2];
16 I2 = I2+1;
finsi
Complexité :
Cette version ne fonctionne pas toujours. Par exemple, si I1 a dépassé N1 et vaut par exemple N1+1, on comparera T1[N1+1] à T2[I2] ce qui n'a pas de sens. Il faut
donc utiliser un algorithme exact.
Algorithme de tri par fusion de deux tableaux
Mis à jour le 12 mai 2019 par Malick
Objectif
Fusionner des tableaux
6 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
Niveau de difficulté : débutant
Exercice
Écrire un algorithme de tri par fusion de deux tableaux. La fonction prend en entrée deux tableaux non triés, leur longueur respective, elle renvoie un tableau trié
contenant les éléments des deux tableaux en entrée.
L'algorithme doit avoir la meilleure complexité possible.
Auteur : M. Delest
Source
Cacher cette solution
Aide
On considère une nouvelle fonction copie qui copie un tableau dans un autre même s'ils n'ont pas la même définition. L'en-tête de la fonction est :
Code : Sélectionner tout
1 fonction copie(ref T1:tableau[1..N1] d'élément;
2 ref T2:tableau[1..N2] d'élément;
3 val indiceT1_1,indiceT1_2,indiceT2: entier):vide;
Le schéma de la fonction fusion est alors le suivant :
Code : Sélectionner tout
1 fonction fusion(ref T1:tableau[1..N1] d'entier;
2 ref T2:tableau[1..N2] d'entier
3 ):tableau[1..N1+N2] d'entier;
4 var I1,I2,i:entier;
5 var T:tableau[1..N1+N2] d'entier;
6 début
7 Initialiser I1,I2,i
8 tant que I1 ≤ N1 et I2 ≤ N2 faire
9 // ... On compare tant qu'il reste des éléments dans T1 et T2
10 fintantque
11 si I1 ≤ N1 alors
12 // il n'y a plus d'éléments dans T2 :copier(..........)
13 sinon
14 // il n'y a plus d'éléments dans T1 :copier(..........)
15 finsi
16 retourner(T)
fin
Algorithme de fusion
Code : Sélectionner tout
1 fonction fusion(ref T1:tableau[D1..N1] d'entier;
2 ref T2:tableau[D2..N2] d'entier
3 ):tableau[1..N1+N2-D1-D2+2] d'entier;
4 var I1,I2,i: entier;
5 var T:tableau[1..N1+N2-D1-D2+2] d'entier;
6 début
7 i = 1;
8 I1 = D1;
9 I2 = D2;
10 tant que I1 ≤ N1 et I2 ≤ N2 faire
11 si T1[I1] ≤ T2[I2] alors
12 T[i] = T1[I1];
13 I1 = I1+1;
14 sinon
15 T[i] = T2[I2];
16 I2 = I2+1;
finsi
Complexité :
Recherche d'un élément dans un tableau d'entiers
Mis à jour le 12 mai 2019 par Malick
Objectif
Rechercher élément dans un tableau d'entiers
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de recherche d'un élément dans un tableau d'entiers. La fonction prend en argument un tableau, sa longueur, ainsi que l'élément à chercher
; elle renvoie un indice.
Auteur : M. Delest
Source
Cacher cette solution
Code : Sélectionner tout
7 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
1 fonction cherche(ref T :tableau[min_indice..max_indice] d'éléments;
2 val e : élément) :entier;
3 début
4 si T[min_indice] == e alors
5 retourner(min_indice)
6 sinon
7 si min_indice == max_indice alors
8 retourner(NUL)
9 sinon
10 retourner(cherche(T[min_indice+1..max_indice], e))
11 finsi
12 finsi
13 fin
14 finfonctionfonction cherche(ref T :tableau[min_indice..max_indice] d'éléments;
15 val e : élément) :entier;
16 début
si T[min_indice] == e alors
Complexité :
Minimum dans un tableau d'entiers
Mis à jour le 12 mai 2019 par Malick
Objectif
Trouver le minimum d'un tableau d'entiers
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de connaître le minimum d'un tableau d'entiers. La fonction prend en entrée un tableau d'entiers, sa longueur et renvoie un élément du
tableau.
Auteur : M. Delest
Source
Cacher cette solution
Code : Sélectionner tout
1 fonction minimumTableau(ref T :tableau[1..N] d'entiers;
2 val Imin :entier) :entier;
3 var sauv :entier;
4 début
5 si Imin == N alors
6 retourner(T[N])
7 sinon
8 sauv = minimumTableau(T, Imin+1];
9 si T[Imin] < sauv alors
10 retourner(T[Imin])
11 sinon
12 retourner(sauv)
13 finsi
14 finsi
15 fin
16 finfonction
Complexité :
Recherche du zéro d'une fonction croissante
Mis à jour le 12 mai 2019 par Malick
Question
Objectif
Trouver le zéro d'une fonction croissante
Niveau de difficulté : débutant
Exercice
Écrire une fonction qui permet de trouver le zéro d'une fonction croissante (au sens mathématique). La fonction prend en argument une fonction d'un nombre réel vers
l'ensemble des réels, deux réels et , ainsi qu'un réel , elle renvoie un nombre réel entre et . et sont tels que et . La
valeur retournée est telle que .
Auteur : M. Delest
Source
Cacher cette solution
Soit une fonction croissante sur un intervalle et telle que et . L'algorithme ci-dessous permet de trouver la valeur de telle que
avec une précision .
Code : Sélectionner tout
8 sur 10 17/04/2024, 12:58
Exercices corrigés pour apprendre l'algorithmique, le club des développeurs et IT Pro [Link]
1 fonction zero(ref g(val n :réel) :fonction;val a,b,e :réel) :réel;
2 var M :réel;
3 début
4 M = g((a+b)/2);
5 si |M| < e alors
6 retourne((a+b)/2)
7 sinon
8 si M > 0 alors
9 zero(g, a, (a+b)/2, e)
10 sinon
11 zero(g, (a+b)/2, b, e)
12 finsi
13 finsi
14 fin
15 finfonction
Sommaire
Arbres
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre
intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même
partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous
encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
Chef de projet SI H/F
Paris (75 001)
CREDIT AGRICO L E ASSURANCES
Intégratrice ou Intégrateur Cash
Pooling
Paris
LA BANQ UE PO STALE
BEST OF DÉBUTER - ALGORITHMIQUE
Actualités les plus lues
Mois Année
Calcul formel en Python : les polynômes d'interpolation de Lagrange vus comme des vecteurs, un billet blog de Denis Hulo
Analyse combinatoire et Python : les combinaisons avec répétition, un billet blog de Denis Hulo
Communauté Algorithmique
Le forum Algorithmes et structures de données
Le forum Traitement d'images
Le forum Traitement du signal
Le forum Intelligence artificielle
Le forum Mathématiques
Les ressources Algorithmique
Cours et tutoriels Algorithmique
Les livres Algorithmique
Les sources Algorithmique
La FAQ Algorithmique
9 sur 10 17/04/2024, 12:58
Débuter en Algorithmique
Les cours pour débuter en Algorithmique
Connexion
Identifiant
Mot de passe
Je m e connec te !
S'inscrire Mot de passe oublié ?
Le groupe AXA lance le
concours du meilleur étudiant
en informatique de France, les
participations sont ouvertes
jusqu'au 12 octobre prochain
Contacter le responsable de la rubrique Algorithmique
Nous contacter Participez Hébergement Publicité / Advertising Informations légales Partenaire : Hébergement Web
© 2000-2024 - [Link]