Outils pour utilisateurs

Outils du site


cours:progra1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cours:progra1 [2022/01/26 13:37]
mrcjl
cours:progra1 [2023/11/26 15:48] (Version actuelle)
mrcjl
Ligne 1: Ligne 1:
 ~~NOTOC~~ ~~NOTOC~~
-======Algorithme======+======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'ordinateur, il faut réfléchir au problème à résoudre et trouver la solution à appliquer. Un programme ne pourra fonctionner correctement que s'il a été réfléchi et prévoit tous les cas de fonctionnement possible.  Pour piloter le fonctionnement de nombreux objets techniques, on fait appel à des programmes. Mais avant de écrire un programme sur l'ordinateur, il faut réfléchir au problème à résoudre et trouver la solution à appliquer. Un programme ne pourra fonctionner correctement que s'il a été réfléchi et prévoit tous les cas de fonctionnement possible. 
  
-L'algorithme fait parti de cette étape, la plus importante de la programmation.+<WRAP round box>  
 +**Compétences :** 
 +  * CT 1.3 – CT 2.5 – CT 2.7 - DIC 1.5 : Imaginer des solutions pour produire des objets et des éléments de programmes informatiques en réponse au besoin. 
 +  * CT 3.1 - OTSCIS 2.1 : Exprimer sa pensée à l’aide d’outils de description adaptés : croquis, schémas, graphes, diagrammes, tableaux. 
 +  * 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
  
-=====Algorithme===== +**J’ai acquis la compétence si : ** 
-<WRAP tip> +  * Je sais ce qu'est un algorithme et les règles qu'il respecte. 
-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 le résoudre. Il est exprimé en langage naturel (français) et en respectant certaines règles comme l'indentation.</WRAP>+  * Je sais écrire sous forme d'algorithme la solution d'un problème informatique simple. 
 +</WRAP>
  
-  * Un algorithme s'exprime dans un langage naturel +Nous allons étudier ici l'algorithme qui est la parti la plus importante de la programmation. L'algorithme est la solution du problème. Il fonctionnera avec n'importe quel langage de programmation. 
-  * Il n'est pas un programme mais une méthode + 
 +=====Les étapes de la programmation===== 
 +"Programmer" n'est que la 2ème étapes qui mises bout à bout permettent à un ordinateur d'exécuter une tâche. 
 +{{ :cours:etapesprogrammation.png?400 |}} 
 + 
 +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'algorithme**. Il permet, en français, d'expliquer la solution permettant de résoudre le problème et de vérifier que tous les cas de fonctionnement aient été prévus. Si l'algorithme ne fonctionne pas le programme ne pourra pas fonctionner. 
 +  * **Traduire l'algorithme en un programme**. En fonction du type de problème et du matériel disponible, l'algorithme doit être traduit dans un des nombreux langages de programmation disponibles. C'est une manière normalisée et compréhensible par tous les programmeurs (de n'importe quel pays) d'exprimer la solution. 
 +  * **Interpréter ou compiler le programme en code machine** le programme, bien que normalisé, est toujours un langage humain. Un programme déjà existant permet toutefois l'effectuer une nouvelle traduction en la seule chose compréhensible par l'ordinateur, une suite de 0 et 1, le code machine. 
 +<WRAP round tip>**Programmer comporte 3 étapes :** 
 +  * Résoudre et expliquer le problème à l'aide d'un langage textuel ou graphique dans le langage natif du programmeur : **L'algorithme ou organigramme** 
 +  * Traduire l'algorithme en un des nombreux langages de programmation existant afin de le mettre sous une forme normalisée et internationale : **Le programme** 
 +  * Faire effectuer à un programme une nouvelle traduction dans le langage de l'ordinateur : **Le code machine** 
 +</WRAP> 
 + 
 +=====Algorithme===== 
 +  * Un **algorithme** s'exprime dans le langage textuel naturel au programmeur 
 +  * Il n'est pas réellement un programme mais une méthode à suivre adaptée au problème 
   * 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'être plus facilement lisible et compréhensible.   * Il est structuré grâce à des indentations (décalages en début de lignes) dans le but d'être plus facilement lisible et compréhensible.
  
 **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'indentation.</WRAP>
  
 =====Organigramme===== =====Organigramme=====
Ligne 20: Ligne 45:
   * Les rectangles indiquent les actions internes au programme (affectation de variable, calcul ...)   * Les rectangles indiquent les actions internes au programme (affectation de variable, calcul ...)
   * Les parallélogramme indiquent une entrée/sortie d'information   * Les parallélogramme indiquent une entrée/sortie d'information
-  * les losanges indiquent les conditions/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 indique une boucle.+  * Les flèches indiquent le sens de lecture. Une flèche qui remonte signale une répétition. 
 + 
 +<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.</WRAP>
  
 =====Exemple===== =====Exemple=====
Ligne 28: 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>{{ :cours:img_algorithme1.jpg?300 |}}</WRAP>+<WRAP half column>{{ :cours:organigramme_d2b.png?400 |}}</WRAP>
 <WRAP half column><code> <WRAP half column><code>
 01  Demander un nombre entre 0 et 255 inclus 01  Demander un nombre entre 0 et 255 inclus
-02  Mettre la variable NOMBRE à la valeur de la réponse+02  Mettre dans la variable NOMBRE la réponse
 03  Si NOMBRE < 0 ou > 255 03  Si NOMBRE < 0 ou > 255
 04      Signaler l'erreur 04      Signaler l'erreur
Ligne 37: Ligne 65:
 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 8 fois les instructions suivantes+08  Répéter jusqu'à SEUIL < 1 
 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
Ligne 49: Ligne 77:
   * **répétitions** : Les lignes 9 à 14 sont répétées 8 fois avant d'exécuter la ligne 15.   * **répétitions** : Les lignes 9 à 14 sont répétées 8 fois avant d'exécuter la ligne 15.
   * **conditions** : Si NOMBRE < SEUIL j'exécute la ligne 10 puis la 14 ; Si NOMBRE >= SEUIL j'exécute les lignes 12 et 13 avant d'aller à 14   * **conditions** : Si NOMBRE < SEUIL j'exécute la ligne 10 puis la 14 ; Si NOMBRE >= SEUIL j'exécute les lignes 12 et 13 avant d'aller à 14
-</WRAP>+</WRAP></WRAP>
  
 =====Pour aller plus loin===== =====Pour aller plus loin=====
 Si j'ai correctement pensé la solution de mon problème informatique et si je l'ai correctement rédigé, n'importe qui qui lit mon algorithme ou organigramme doit arriver à un résultat correct quelles que soit les données. Si j'ai correctement pensé la solution de mon problème informatique et si je l'ai correctement rédigé, n'importe qui qui lit mon algorithme ou organigramme doit arriver à un résultat correct quelles que soit les données.
-<WRAP info>+<WRAP round info> 
 +  * [[https://jean-rostand.ecollege.haute-garonne.fr/lectureFichiergw.do?ID_FICHIER=32833|Fiche ressource algorigramme PDF]]
   * [[wpfr>Algorithme]] sur Wikipédia   * [[wpfr>Algorithme]] sur Wikipédia
 +  * [[https://jean-rostand.ecollege.haute-garonne.fr/lectureFichiergw.do?ID_FICHIER=32832|Exercices d'entraînement PDF]]
 </WRAP> </WRAP>
  
cours/progra1.1643200620.txt.gz · Dernière modification: 2022/01/26 13:37 de mrcjl