0% ont trouvé ce document utile (0 vote)
228 vues10 pages

Exercices Corrigés Pour Apprendre L'algorithmique: Rechercher

Transféré par

zaritoaurelr
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
228 vues10 pages

Exercices Corrigés Pour Apprendre L'algorithmique: Rechercher

Transféré par

zaritoaurelr
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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]

Vous aimerez peut-être aussi