Algorithmique et structures des données

De Didaquest
Révision datée du 4 novembre 2022 à 22:25 par Admin (discussion | contributions) (→‎{{Widget:Education: Liens, sites et portails-Fiche}})
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche


Autres Fiches Conceptuelles
Posez une Question


(+)

Target Icon.pngVotre Publicité sur le Réseau Target Icon.png

Puce-didaquest.png Traduction


More-didaquest.png Traductions


Puce-didaquest.png Définition

Domaine, Discipline, Thématique


More-didaquest.png Justification


Définition écrite



Blue-circle-target.png Définition d'un algorithme

  • Le terme algorithme apparait au 9ème siècle, il vient du nom de son créateur perse le mathématicien et l'astronome Abdullah Muhammad Ibn Mussa Al Khawarizmi. Même si on ne se rend pas compte, les algorithmes sont partout, ils trouvent leur utilité dans notre vie quotidienne; le fait de pratiquer le sport, de cuisiner..
  • Un algorithme est l'ensemble d'étapes finies à appliquer d'une façon ordonnée pour apporter des solutions à un problème donné.


Blue-circle-target.png Caractéristiques d'un algorithme

  • Un algorithme informatique fonctionne par le biais d'entrée des données (input), leur traitement via un ensemble d'instructions finies et rangées pour arriver à générer des résultats à la sortie (output) afin de réaliser une tâche bien déterminée.
  • Un algorithme doit être:

- Lisible: l'algorithme doit être compréhensible même par un non-informaticien.

- Précis et non ambigüe: chaque élément de l'algorithme ne doit pas porter à confusion.

- Doit avoir une fin.

- Concis: un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut décomposer le problème en plusieurs sous-problèmes.

- Structuré: un algorithme doit être composé de différentes parties facilement identifiables.

- Résout le problème.


Blue-circle-target.png Comment écrire un algorithme Un algorithme possède un nom et un objectif qu'on ne peut atteindre que si on exécute successivement et dans l'ordre les instructions qui le composent. Un algorithme se compose d'un ensemble de structures algorithmiques de contrôles et d'une variété de structures de données. On distingue:

    • Les structures algorithmiques de contrôle: Chaque algorithme, pour aboutir à sa finalité, a sa propre façon de choisir et d'organiser ses structures algorithmiques. Un algorithme est une combinaison des structures de contrôle ce permet de contrôler l'ordonnancement des instructions. Il existe trois structures de contrôle différentes :

La séquence: consiste à exécuter les instructions les unes à la suite des autres.

La sélection: permet d'évaluer une condition et effectuer des actions seulement dans certains cas, c'est la structure de contrôle conditionnelle.

La répétition: c'est le fait d'itérer une instruction ou un bloc d'instructions un nombre de fois connu ou inconnu à l'avance tant que la condition posée est vraie, c'est la structure de contrôle répétitive.

    • Les structures de données: Une structure de données est un format spécial destiné à organiser, traiter, extraire et stocker des données. Il existe plusieurs types de structures de données certaines simples et d'autres complexes. Elles permettent d'organiser les données pour pouvoir y accéder et les traiter de façon appropriée. Les structures de données peuvent être soient:

Les structures linéaires: Les structures linéaires lient les éléments les uns à la suite des autres d'une manière séquentielle, le cas s'illustre clairement dans les tableaux, les listes simplement et doublement chainées ainsi que les piles. Ce type de structure implique un seul niveau d'éléments et permet la consultation des données en un seule fois. La structure linéaire de donnée garantit une implémentation simple des données mais mène au gaspille de la mémoire puisqu'elle crée des trous de mémoire au fils des opérations de traitement des données comme l'ajout, l'extraction, ect.

Les structures non linéaires: Les structures non linéaires lient les éléments hiérarchiquement, le cas s'illustre dans les arbres et les graphes. Ce type de structure implique plusieurs niveaux d'éléments et rend impossible le parcourt de tous les éléments en une seule fois. Les structures linéaires utilisent efficacement la mémoire mais rend l'implémentation des données plus difficile.


Blue-circle-target.png Les sous algorithmes

  • Un algorithme est une combinaison des structures de données et des structures de contrôles algorithmiques qui peuvent être imbriquées ou séparées en fonction du problème à résoudre. Dès qu'un algorithme devient important, il sera difficile d'identifier les erreurs et d'avoir une vision globale sur son fonctionnement. Dans ce cas, il est recommandé de le décomposer en sous algorithmes.
  • Un sous algorithme est un bloc presque indépendant faisant partie d’un algorithme, qui a un nom et qui peut être appelée d'un autre sous-algorithme ou de l'algorithme principal. Il est déclaré dans la partie entête (avant le début de l’algorithme) puis appelé dans le corps de l’algorithme. Il y a deux sortes de sous-algorithme: procédures et fonctions.

** Les procédures:

  • Une procédure est un bloc d’instructions nommé et déclaré dans l’entête de l’algorithme et appelé dans son corps à chaque fois que le programmeur en a besoin. L’appel d’une procédure peut être effectué en spécifiant, au moment souhaité, son nom et éventuellement ses paramètres ; cela déclenche l’exécution des instructions de la procédure. L’appel d’une procédure est une instruction, c'est-à-dire que la procédure ne renvoie rien, Elle exécute certain code.

** Les fonctions: Une fonction est un bloc d’instructions qui retourne obligatoirement une et une seule valeur résultat à l’algorithme appelant. Une fonction n’affiche jamais la réponse à l’écran car elle la renvoie simplement à l’algorithme appelant. L’appel d’une fonction est une expression, c'est-à-dire que la fonction renvoie un résultat (valeur). Etant donné qu’une fonction a pour but principal de renvoyer une valeur, il est donc nécessaire de préciser le type de la fonction qui est en réalité le type de cette valeur.


Blue-circle-target.png La récursivité La récursivité est un concept général qui peut être illustré dans (quasiment) tous les langages de programmation, et qui peut être utile dans de nombreuses situations. La récursivité n’introduit aucune nouvelle instruction ou structure de données. Elle repose simplement sur une nouvelle façon d’utiliser les divers algorithmes solutionnant un problème donné. Un sous algorithme (une fonction, une procédure) est dit récursif si sa définition (son code) contient un appel à lui-même. Une fonction peut s’appeler elle-même exactement comme un appel d'une autre fonction. Dès l'appel récursif achevé l'exécution du programme continue (et sans effet sur les variables et paramètres de l'appel initial). Cette méthode est valable de même pour les procédures.


Blue-circle-target.png Les avantages d'un algorithme

  • Un algorithme correctement écrit répond à ce qui est demandé par l'exécution de toutes les tâches ce qui offre un certain nombre d'avantages:

- L'automatisation des services

- Le tri rapide

- L'efficacité des réponses

- L'exactitude des résultats

- Améliorer notre quotidien


Blue-circle-target.png Les inconvénients d'un algorithme

- Ils n'existe pas d'algorithme qui s'applique à tous les problèmes. Chaque situation a ses propres conditions, variables et hypothèses spécifiques.

- L'existence des algorithmes cause pour certain la perte de leur travail suite à l'automatisation de certains services dans le domaine d'industrie, le e-learning, etc.

- Les algorithmes ne sont pas toujours pertinents et utiles, ils peuvent être utilisés pour endommager les ordinateurs, gaspiller les ressources, détruire les données et perturber le fonctionnement, c'est l'exemple des virus informatiques.


More-didaquest.png Algorithmique et structures des données - Historique (+)


Définition graphique


Ing-connaissance.png Carte conceptuelle : Algorithmique et Structure des Données






Puce-didaquest.png Concepts ou notions associés


More-didaquest.png Algorithmique et structures des données - Glossaire / (+)



Puce-didaquest.png Exemples, applications, utilisations

  • L'algorithme est le premier pas vers la programmation.
  • L'automatisation des services, l'innovation technologique et le progrès scientifique progressent et avancent grâce aux algorithmes.
  • L'algorithme est à la base de l'évolution de plusieurs domaines., on l'applique dans l'intelligence artificielle, le e_learning, machine learning, la robotique, ect.
  • L'algorithme nous facilite la vie, on l'utilise pour faire le tri, les recherches, l'aide à la décision...

(+)


Puce-didaquest.png Erreurs ou confusions éventuelles



Puce-didaquest.png Questions possibles



Puce-didaquest.png Liaisons enseignements et programmes

Idées ou Réflexions liées à son enseignement



Aides et astuces



Education: Autres liens, sites ou portails




Puce-didaquest.png Bibliographie