COURS ACCELERE D'ALGORITHMIQUE Objectifs : ce cours a pour but de présenter les

COURS ACCELERE D'ALGORITHMIQUE Objectifs : ce cours a pour but de présenter les fondamentaux en algorithmique au niveau du lycée : y seront traitées notamment les notions d'entrées et de sorties de données, de boucle et d'instruction conditionnelle. On utilisera le langage naturel pour décrire les algorithmes employés ; leur mise en œuvre s'effectuera via votre calculatrice ou sur ordinateur en utilisant le langage Python. Sommaire • Entrées et sorties de données ; variables informatiques • Notion de boucle • Notion d'instruction conditionnelle • Simulation du hasard • Applications dans divers contextes Pour la première année depuis la réforme de la classe de seconde GT en 2009, l'algorithmique est au programme du bac. Ne la négligez pas ! Vous aurez au moins une question cette année ! Bon, rappelons quand même une définition plausible de l'algorithmique : Définitions : On peut définir un algorithme comme une suite d'instructions précises, à appliquer dans un ordre précis, pour arriver en un nombre fini d'étapes à un certain résultat. L'algorithmique est la science des algorithmes (création, amélioration...) Exemple : préparer une recette de cuisine ! CHAPITRE 1 : VARIABLES INFORMATIQUES ENTREES ET SORTIE DE DONNEES Considérons l'exemple simple suivant consistant à écrire un algorithme qui étant donné la longueur et la largeur d'un rectangle (disons exprimées en cm) renvoie son aire en cm². Nous aurons besoin de 3 variables : 1. Une variable longueur saisie par l'utilisateur (donc variable d'entrée) 2. Une variable largeur saisie par l'utilisateur (donc également une variable d'entrée) 3. Enfin une variable aire renvoyée par l'ordinateur (donc variable de sortie) L'algorithme pourrait se formuler ainsi : écrire « Saisir la longueur du rectangle » lire longueur écrire « Saisir la largeur du rectangle » lire largeur aire ← longueur*largeur écrire aire La valeur affectée à la variable aire dépend des valeurs affectées aux variables longueur et largeur et est donnée par la formule bien connue longueur*largeur Exercice 1 : écrire un algorithme en langage naturel qui étant donné un triangle ABC rectangle en A, demande à l'utilisateur de saisir les côtés AB et AC et renvoie la valeur de l'hypoténuse BC. Exercice 2 : écrire un algorithme en langage naturel qui étant donné un triangle équilatéral ABC renvoie la mesure de sa hauteur. SYNTHESE Définitions 1. Dans un programme, une variable correspond à un emplacement de la mémoire de la calculatrice ou de l'ordinateur. Elle est repérée par un nom et contient une valeur. 2. La notion d'affectation (ou d'assignation) désigne l'opération par laquelle on établit un lien entre le nom de la variable et sa valeur (son contenu). On l'a noté ici avec le symbole ← 3. L'entrée des données (ou lecture des données) est l'opération qui consiste à saisir des valeurs pour qu'elles soient utilisées par le programme. On la note « Saisir valeur » ou « lire valeur ». Remarque : une valeur peut être un nombre entier, un nombre réel, une chaîne de caractères... 4. La sortie des résultats (ou écriture des résultats) permet d'afficher les valeurs des variables après traitement. On note cette instruction « Afficher valeur » ou « écrire valeur » CHAPITRE 2 : NOTION DE BOUCLE Premiers exercices Dans les deux exercices qui suivent, vous pouvez utiliser les instructions suivantes : 1. Avancer (d'une longueur donnée) 2. Tourner à gauche ou à droite (d'un angle donné en degré) On suppose que le « crayon » se déplace par défaut horizontalement et vers la droite au départ. Exercice 1 : Écrire un programme permettant de construire un carré de côté 50 tout en revenant à la position de départ. Exercice 2 : Écrire un programme permettant de construire un triangle équilatéral de côté 100 tout en revenant à la position de départ. Remarque : Dans l'exercice 1 comme dans le suivant, un même bloc d'instructions a été répété plusieurs fois. Repérer lequel dans chacun des deux cas. Cette répétition des mêmes instructions un certain nombre de fois peut être « résumée » en introduisant une notion très importante en programmation, et très économique au niveau du nombre de lignes à écrire. Les instructions répétitives : notion de boucle Il existe essentiellement deux méthodes pour écrire une boucle, c'est-à-dire un procédé qui permet la répétition un certain nombre de fois d'un même processus (addition, multiplication, etc...). Afin de les mettre en pratique, nous allons résoudre l'exercice 1 de cette manière. METHODE 1 Analysons le programme en langage naturel suivant : i ← 0 Tant que i<4 (ou i<=3) faire avancer de 50 tourner à gauche de 90° i ← i + 1 Fin Tant que J' affecte à i la valeur 0 Tant que la condition annoncée est vraie, on effectue les deux instructions qui suivent On réaffecte à i sa valeur précédente augmentée de 1 Quel est le résultat obtenu ? On peut alors résumer la structure de boucle décrite ici de la manière suivante : Tant que condition vérifiée faire Bloc d'instructions Fin Tant que Remarques : Si la condition n'est pas vérifiée au début, alors le bloc d'instructions ne sera pas exécuté du tout. ATTENTION ! Pour que l'algorithme soit correct, il est nécessaire que la condition cesse d'être vérifiée au bout d'un nombre fini de répétitions. Sinon, le programme « boucle indéfiniment ». Exercice 3 : Que fait le programme suivant ? S ← 80 Tant que S>20 faire S ← S + 10 METHODE 2 Une autre manière courante d'écrire une boucle est : Pour i variant de 0 à 3 (ou de 1 à 4) faire avancer de 50 tourner à gauche de 90° Fin Pour La variable i évolue comme indiqué, par défaut de 1 en 1. Les deux instructions suivantes sont alors effectuées Le résultat obtenu est exactement le même : le dessin d'un carré de côté 50. On peut alors résumer la structure de boucle décrite ici de la manière suivante : Problème type : on veut calculer la somme S = 123…99100 . Analyse : Bien évidemment, on ne va pas saisir à la machine cette longue opération ! Il nous faut donc trouver un moyen pour que cette dernière l'exécute, mais en écrivant le moins de lignes possible. On commence par remarquer que l'opération qui est sans cesse utilisée est l'addition. D'où l'idée d'utiliser une boucle : on répète plusieurs fois le même procédé : ici additionner. Additionner oui, mais quoi ? 1 d'abord, puis 2, puis 3, … , jusqu'à 100. Autrement dit on additionne une suite de nombres qui « varient », dans le cas présent de 1 en 1. L'idée essentielle est de calculer S petit à petit, comme on le ferait à la main en ajoutant peu à peu tous les termes contenus dans l'addition. Comme S va évoluer et les termes qui la composent aussi, on a l'idée d'introduire deux variables : S elle-même et un « compteur » i, qui devra prendre successivement les valeurs 1, 2, 3, …, 100. Nous allons résoudre ce problème en créant un algorithme efficace, utilisant (mais ce n'est pas une obligation), le premier type de boucle. Pour i variant de 0 à N (ou de 1 à N) faire Bloc d'instructions Fin Pour Mise en œuvre : Instructions Signification S ← 0 i ← 1 Tant que i ≤ 100 faire S ← S + i i ← i + 1 Fin Tant que Afficher S On affecte à S la valeur 0 (valeur initiale) On affecte à i la valeur 1 (valeur initiale) La condition est posée: i varie jusqu'à 100 On réaffecte à S sa valeur précédente plus la valeur actuelle de i On réaffecte à i sa valeur augmentée de 1 Une fois sorti de la boucle, on affiche S Vous allez à présent « faire tourner l'algorithme à la main », c'est-à-dire regarder, étape par étape l'évolution des variables i et S, et enfin le résultat final. Pour cela, compléter le tableau suivant. Vous ne donnerez pas le résultat du calcul de S à chaque étape, mais seulement l'écriture de S sous la forme d'une somme. Après l'itération i S 0 1 0 1 2 3 ... 99 100 Quelle est la dernière valeur prise par la variable S ? Quel est le résultat affiché par le programme ? Exercice 5 : Écrire un programme utilisant une boucle Tant que ou une boucle Pour calculant et affichant le résultat de : 1. S = 369…201 2. P = 2×4×6×8×…×40 3. S = 11 2 1 3 ... 1 10 Exercice 6 : Construire la figure suivante en utilisant l'instruction Tant que (longueur d'un côté du quadrillage 50).On partira du point A. Exercice 7 : En utilisant une boucle Tant que, écrivez un programme permettant de calculer puis d'afficher le résultat de la somme suivante : T = 11 21 2×3 1 2×3×4… 1 2×3×4×…×10 Indication : bien analyser de combien de variables vous avez besoin. Exercice 8 : En utilisant l'instruction Tant que, soit une fois soit deux fois dans le même programme, obtenir le dessin uploads/Litterature/ www-cours-gratuit-com-coursinformatique-id3076.pdf

  • 39
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager