Dans ce cours algorithme, nous présentons différentes notions d’algorithme afin de donner envie aux débutants. La maîtrise de l’algorithme est indispensable pour le métier de la programmation.
Dans cette partie nous allons voir des notions variées, un peu en “Vrac” pour vous donner envie et vous encourager à lire le cours.
Un sous-programme est une partie du programme qui porte
une donné spécifique et qui peut être appelé par ce nom,
selon les besoins, pour exécuter une tâche bien déterminée.
Lorsque les problèmes se révèlent complexes et longs, on
peut utiliser plusieurs sous-programmes différents. Un sous-
programme peut appeler à son tour un sous-sous-programme qui
lui aussi peut appeler un sous-sous-sous-programme et ainsi de
suite.
En programmation, on distingue deux types de sous-
programmes :
Les fonctions qui renvoient des valeurs résultats et qui
peuvent faire partie d’une expression;
– Les procédures qui ne renvoient pas directement des valeurs
résultats et qui ne peuvent pas faire partie d’une expression,
mais qui sont appelées pour réaliser des taches précises.
Objectifs des sous-programmes: rappelons que la méthodologie utilisée à fin de résoudre des problèmes algorithmiquement était de les décomposer en sous problèmes moins compliqués : méthode descendante.
Une des solutions utilisées pour réaliser cela est les sous- programmes.
Les problèmes les plus élémentaires seront représentés par des sous-programmes.
Trier : c’est ordonner un ensemble d’éléments, c’est-à-dire, les
ranger en ordre croissant ou décroissant :
Tri croissant: si l’élément d’indice I est inférieur ou égal à
l’élément d’indice I + 1,
Tri décroissant: si l’élément d’indice I est supérieur ou
égal à l’élément d’indice I + 1,
Le but du tri est de faciliter l’utilisation d’un ensemble de
données, par exemple pour un algorithme de recherche, fusion
…etc.
TRI INTERNE – TRI EXTERNE.
Un tri interne s’effectue sur des données présentes en mémoire centrale. L’accès aux informations ne prend que peu de temps. Pour évaluer le temps de calcul, on ne considère que le nombre de combinaisons et de permutations.
Définition.
Le type de base d’un tableau à une dimension est quelconque, il peut être en particulier de type tableau. On parlera alors d’un tableau de tableau. Ce dernier peut se déclarer de la manière suivante:
Var
T:tableau [T1] de tableau [T3] de T2;
Où:
T : la variable tableau à deux dimensions,
T1: type indice de la première dimension(lignes),
T3:type indice de la deuxième dimension (colonnes),
T2:type de base des éléments du tableau.
Pour simplifier, cette déclaration peut se faire de la manière suivante:
Var
T:tableau [T1,T3] de T2;
Exemple 5:
Var
T:tableau [1..3,1..4] d’entiers;
T sera donc une variable tableau à deux dimensions de 3 lignes et 4 colonnes.
On a vu dans le chapitre précédent qu’un sous-programme peut appeler un autre sous-programme.
Lorsqu’un sous-programme s’appelle lui même, on parle alors d’appel récursif.
La récursivité est donc la capacité d’une procédure ou fonction à s’appeler elle-même. Elle permet de résoudre
beaucoup de problèmes contenant des itérations complexes.
Lorsqu’un algorithme s’appelle lui-même, on parle de récursivité simple ou directe. Mais la récursivité peut être
cachée: lorsqu’un algorithme A appelle un algorithme B et que B appelle ensuite A, on parle alors de récursivité croisée ou indirecte.
Lorsqu’un algorithme s’appelle lui même, il est nécessaire que l’enchaînement des appels successifs connaisse une fin. La suite des actions à exécuter doit être finie : tout algorithme récursif doit contenir une condition qui assure la fin du nombre d’appels.
Algorithme Tri_Décroissant;
Var
T : tableau[1..100] de réels;
N,ij :entiers;
Aux :réel;
Début
SiN=0 alors
Ecrire(‘le tableau est vide)
Sinon
Pouri<-1àN-1 Faire
Pourj < i+1àN Faire
Si T[i] <T[j] Alors
1
← Tj];
Aux;
FinSi
FinPourj
FinPour i
FinSi
Fin
Cet algorithme permet de supprimer, après confirmation, un élément connaissant sa position dans le tableau.
Dans cet algorithme, on va copier les éléments d’un tableau T1 dans un tableau T et à leur suite, on copie ceux d’un autre tableau T2.
On note M : le nombre de cases remplies dans le tableau T2.
Var
T1,T2,T : tableau[1..100] de réels;
N,M,i :entiers;
Si(N=0)et(M=0)alors
Début Ecrire(‘Les deux tableaux sont vides’)
Sinon
Pouri<-1àN Faire
T1[]
T[]←
Finpour i
Pouri←-1àM Faire
T[N+i] <T2[];
Finpour i
FinSi
Fin
Dans ce cas les deux tableaux T1 et T2 sont déjà triés par ordre croissant ou décroissant. Le résultat de la fusion doit être un tableau T trié dans le même ordre.
Nous allons utiliser un compteur par tableau i, j, k. On va balayer les deux tableaux T1 et T2 en comparant leurs éléments, le plus petit (ou grand) va prendre sa place dans le tableaux T, puis on avance dans le tableau correspondant et dans le tableau T. Une fois qu’on a épuisé les éléments d’un tableau (T1 ou T2), on recopie le reste des éléments de l’autre tableau dans T.
Dans cet algorithme, on va fusionner deux tableaux triés par ordre croissant.
Var
T1,T2,T3 : tableau[1..100] de réels;
N,M,i,j,k,h :entiers;
Début
Si (N=0) et (M=0) alors
Ecrire(‘Les deux tableaux sont vides’)
Sinon
1;
1;
k 1;
Tantque (i<=N)et(j<= M) Faire
Si T1[i]>T2[j] alors
Sinon
T[k] T2[0]; j<j +1;
T[k]<-T1[]; i←-i+1;
FinSi
k<-k+1;
FinTantque
(*on a atteint soit N: la fin du tableau T1 ou M: la fin du tableauT2. Dans le premier cas, il faut compléter par le reste des éléments de T2 qui est (N+M-(k-1)) éléments.Dans le deuxième cas, il faut compléter par le reste des éléments de T1 qui est (N+M-(k-1)) éléments*)
Si i < N alors (*dans ce cas obligatoirement J>M*)
Pour h< iàN Faire
T[k]<T1[h];
k<-k+1;
FinPour h
Sinon (*dans ce cas obligatoirement i>N et j<M*)
Pour h < jà M Faire
T[k]< T2[h];
k<-k+1;
FinPour h
FinSl
FinSi
Le commentaire composé est un exercice littéraire qui consiste à analyser un texte en respectant…
Les adjectifs liés en français sont les adjectifs qui s’accordent en genre (masculin/féminin) et en…
Voici une liste étendue de mots piégeux en français, avec leurs genres et des explications…
Apprendre à distinguer le genre des noms en français peut être un véritable défi pour…
1. Informations Générales Nom complet : Charles-Louis de Secondat, Baron de La Brède et de…
Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…
This website uses cookies.