Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
cours:progra1 [2019/03/07 12:28] mrcjl créée |
cours:progra1 [2023/11/26 15:48] (Version actuelle) mrcjl |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | [[cours: | + | ~~NOTOC~~ |
| + | ======Algorithme (B ->D) 4ème====== | ||
| + | Pour piloter le fonctionnement de nombreux objets techniques, on fait appel à des programmes. Mais avant de écrire un programme sur l' | ||
| - | ======Algorithme====== | + | < |
| - | < | + | **Compétences :** |
| - | Un algorithme est une méthode générale pour atteindre la solution d'un problèmes. C'est une suite finie et non ambigüe | + | * CT 1.3 – CT 2.5 – CT 2.7 - DIC 1.5 : Imaginer des solutions pour produire des objets |
| + | * CT 3.1 - OTSCIS 2.1 : Exprimer sa pensée à l’aide | ||
| + | * CT 4.2 – CT 5.5 - IP 2.3 : Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. | ||
| - | | + | **J’ai acquis la compétence si : ** |
| - | * Il n'est pas un programme mais une méthode | + | * Je sais ce qu'est un algorithme et les règles qu'il respecte. |
| + | * Je sais écrire sous forme d' | ||
| + | </ | ||
| + | |||
| + | Nous allons étudier ici l' | ||
| + | |||
| + | =====Les étapes de la programmation===== | ||
| + | " | ||
| + | {{ : | ||
| + | |||
| + | Pour utiliser un programme informatique afin résoudre un problème à l'aide d'un microcontrôleur ou d'un ordinateur, il faut : | ||
| + | * **Définir l' | ||
| + | * **Traduire l' | ||
| + | * **Interpréter ou compiler le programme en code machine** le programme, bien que normalisé, est toujours un langage humain. | ||
| + | <WRAP round tip> | ||
| + | * Résoudre et expliquer le problème à l'aide d'un langage textuel ou graphique dans le langage natif du programmeur : **L'algorithme | ||
| + | * Traduire l' | ||
| + | * Faire effectuer à un programme une nouvelle traduction dans le langage de l' | ||
| + | </ | ||
| + | |||
| + | =====Algorithme===== | ||
| + | * Un **algorithme** | ||
| + | * Il n'est pas réellement | ||
| * Il utilise des pseudo instructions (faire, répéter ..., si ... alors ... sinon ...) pour exprimer chaque action | * Il utilise des pseudo instructions (faire, répéter ..., si ... alors ... sinon ...) pour exprimer chaque action | ||
| * Il est structuré grâce à des indentations (décalages en début de lignes) dans le but d' | * Il est structuré grâce à des indentations (décalages en début de lignes) dans le but d' | ||
| **Une recette de cuisine est un algorithme.** | **Une recette de cuisine est un algorithme.** | ||
| + | |||
| + | <WRAP round tip> | ||
| + | **Un algorithme est une méthode générale pour atteindre la solution d'un problèmes.** C'est une suite finie et non ambigüe d’opérations simples permettant de résoudre le problème. Il est exprimé **en langage naturel** (pour nous en français) et en respectant certaines règles comme l' | ||
| =====Organigramme===== | =====Organigramme===== | ||
| Un algorithme peut être représenté graphiquement sous la forme d'un **organigramme**. Pour comprendre son déroulement, | Un algorithme peut être représenté graphiquement sous la forme d'un **organigramme**. Pour comprendre son déroulement, | ||
| - | * Les rectangles indiquent les actions internes au programme | + | * Les rectangles indiquent les actions internes au programme |
| * Les parallélogramme indiquent une entrée/ | * Les parallélogramme indiquent une entrée/ | ||
| - | * les losanges indiquent les choix et disposent de 2 sorties (vrai ou faux) | + | * Les losanges indiquent les conditions/choix et disposent de 2 sorties (vrai ou faux) |
| - | * Une flèche qui remonte | + | * Les flèches indiquent le sens de lecture. |
| + | |||
| + | <WRAP round tip> | ||
| + | Un organigramme est aussi une méthode générale pour atteindre la solution d'un problèmes. Il est exprimé sous une forme plus graphique mais toujours en français et en respectant certaines règles.</ | ||
| =====Exemple===== | =====Exemple===== | ||
| Ligne 24: | Ligne 56: | ||
| Ci dessous sa traduction graphique (organigramme) et textuelle (algorithme). | Ci dessous sa traduction graphique (organigramme) et textuelle (algorithme). | ||
| <WRAP group> | <WRAP group> | ||
| - | <WRAP half column> | + | <WRAP half column> |
| <WRAP half column>< | <WRAP half column>< | ||
| 01 Demander un nombre entre 0 et 255 inclus | 01 Demander un nombre entre 0 et 255 inclus | ||
| - | 02 Mettre la variable NOMBRE | + | 02 Mettre |
| 03 Si NOMBRE < 0 ou > 255 | 03 Si NOMBRE < 0 ou > 255 | ||
| 04 Signaler l' | 04 Signaler l' | ||
| 05 Arrêter le programme | 05 Arrêter le programme | ||
| - | 06 Mettre la variable SEUIL à 128 | + | 06 Mettre la variable SEUIL à 128 |
| - | 07 Mettre la variable RÉPONSE à vide | + | 07 Mettre la variable RÉPONSE à vide |
| - | 08 Répéter | + | 08 Répéter |
| 09 Si NOMBRE < SEUIL alors | 09 Si NOMBRE < SEUIL alors | ||
| - | 10 Écrire un 0 à droite de RÉPONSE | + | 10 Écrire un 0 à droite de RÉPONSE |
| 11 Sinon | 11 Sinon | ||
| - | 12 Écrire un 1 à droite de RÉPONSE | + | 12 Écrire un 1 à droite de RÉPONSE |
| - | 13 Faire NOMBRE = NOMBRE - SEUIL | + | 13 Faire NOMBRE = NOMBRE - SEUIL |
| 14 Faire SEUIL = SEUIL / 2 | 14 Faire SEUIL = SEUIL / 2 | ||
| 15 Lire RÉPONSE | 15 Lire RÉPONSE | ||
| - | </code></ | + | </ |
| - | + | * **variables** : Lignes 6, 7, 14 ... je note une valeur, le résultat d'un calcul, une information à me rappeler plus tard | |
| - | Les lignes 9 à 14 sont répétées 8 fois avant d' | + | * **répétitions** : Les lignes 9 à 14 sont répétées 8 fois avant d' |
| - | + | * **conditions** : Si NOMBRE < SEUIL j' | |
| - | Si NOMBRE < SEUIL j' | + | </ |
| - | Si NOMBRE >= SEUIL j'exécute les lignes 12 et 13 avant d'aller à 14 | + | =====Pour aller plus loin===== |
| + | Si j'ai correctement pensé la solution de mon problème informatique | ||
| + | <WRAP round info> | ||
| + | * [[https:// | ||
| + | * [[wpfr> | ||
| + | * [[https:// | ||
| + | </ | ||