[[info:accueilinfo|{{ :iconemaison.jpg?nolink&25|Sommaire "Bases d'algorithmique et de programmation"}}]] ===== Algorithmique ===== {{ :informatique:algorithme.jpg?nolink&200|}} [Mise à jour le 12/2/2019] ==== 1. Le formalisme ==== === a. Le développement d’un programme nécessite trois phases === {{ :informatique:schemaalgo.png?nolink |}} {{:informatique:phase1.png?nolink |}} **Cahier des Charges Fonctionnel** (CdCF) \\ Expression en français ou avec des outils de spécification du besoin. \\ \\ {{:informatique:phase2.png?nolink |}} **ALGORITHMIQUE** (Analyse structurée du problème) \\ **Définition** : « Un algorithme est une suite d’actions que devra effectuer un « calculateur » pour arriver, en un temps fini, à un résultat déterminé, à partir d’une situation donnée. La suite d’opérations sera composée d’actions élémentaires, ou instructions ». {{:informatique:phase3.png?nolink |}} **Traduction dans un langage « de programmation »** {{ :informatique:langages.png?nolink |}} > **N.B.** Cette dernière étape devrait être celle à laquelle le concepteur consacre le moins de temps (dans l’hypothèse où les deux étapes précédentes ont été correctement développées !) === b. Conception d'un algorithme === > Pour concevoir un algorithme, **trois étapes** sont nécessaires : > - La **préparation** du traitement : recherche des données nécessaires à la résolution d’un problème. > - Le **traitement** : résolution pas-à-pas du problème après décomposition en plusieurs sous-ensembles si nécessaire. > - L’**édition** des résultats. === c. Les modes d’expression d’un algorithme === * le **langage littéral** (**pseudo-code**) par l’utilisation de mots-clés et de délimiteurs. On parle de langage algorithmique. ^ Exemples de mot-clé ^ Exemples de délimiteurs ^ |**Const** - **Var** |Les délimiteurs fixent les bornes des entrées et des sorties des structures algorithmiques \\ \\ **Début** - **Fin** - **FinSi** \\ \\ **FinTantQue** - **FinPour** \\ \\ **FinPoc** - **FinFonc** | |**Lire** – **Ecrire** |::: | |**Si** ... **Alors** ... **Sinon** |::: | |**Tant Que** ... **Faire** |::: | |**Répéter** ... **Jusqu'à** ... |::: | |**Pour** ... **Variant** de ... à ... **Faire** ... |::: | |**Procédure** - **Fonction** |::: | * la représentation **graphique** (utilisation de symboles normalisés, on parle d’algorigramme) {{ :informatique:algorigrammealgo.png?nolink&600 |}} ==== 2. Les variables et opérateurs ==== ==== 3. Test et logique booléenne ==== ==== 4. Les boucles ==== ==== 5. Les tableaux et les structures ==== ==== 6. Les sous-programmes ==== ==== 7. Les fichiers ====