INITIATION A L`ALGORITHMIQUE I GENERALITES Un algorithme
Transcription
INITIATION A L`ALGORITHMIQUE I GENERALITES Un algorithme
INITIATION A L’ALGORITHMIQUE I GENERALITES Un algorithme est une suite d’instructions, qui permet à une machine de réaliser des tâches données. Les recettes de cuisine sont des algorithmes. Il existe de nombreux logiciels et plateformes. Construction d’un algorithme Un algorithme se présente en général sous la forme suivante : Déclaration des variables : on décrit dans le détail les éléments que l’on va utiliser dans l’algorithme, Initialisation ou Entrée des données : on récupère les données et/ou on les initialise, Traitement des données : on effectue les opérations nécessaires pour répondre au problème posé, Sortie : on affiche le résultat. Utilisation du logiciel ALGOBOX téléchargeable gratuitement. Des tutoriels : http://www.xm1math.net/algobox/tutoalgobox/index.html Utilisation en ligne : http://proglab.fr/ Le programme. Le logiciel ALGOBOX : Les actions possibles. Pour insérer une ligne. Avec algobox, on a réalisé l’algorithme suivant : Combien y-a-t-il de variables dans ce programme ? Quelles données sont rentrées au clavier ? Quel est l’objectif de l’algorithme ? Quelle est la sortie ? Voici une sortie console Création d’un programme permettant de calculer l’IMC : Indice de Masse Corporelle. Ce calcul est à titre purement indicatif. Seuls le poids et la taille sont pris en compte, ce qui rend le résultat moins proche de la réalité. IMC = poids / taille² Avec la taille en cm Code avec algobox Algorithme langage naturel Variables P est un nombre T est un nombre I est un nombre Initialisation Saisir P Saisir T Traitement I=P/T² Sorties Afficher I Commentaires P est le poids en kg. T est la taille en cm. I est l’IMC Pow(T,2) donne T² Sortie console Voici une liste de formules trouvées sur internet Formule de Monnerot-Dumaine Ce calcul est à titre purement indicatif. L'ossature et la masse musculaire sont prises en compte dans cette formule, via la circonférence du poignet, afin d'obtenir un résultat plus proche de la réalité. C'est certainement le calcul le plus "réaliste". Poids idéal (en Kg) = [Taille (en cm) - 100 + (4 * Circonférence du poignet (en cm))] / 2 Formule de Lorentz Ce calcul est à titre purement indicatif, il prend en compte uniquement la taille et le sexe. Poids = (taille - 100) - [(taille - 150) / a] où : a = 4 pour les hommes a = 2,5 pour les femmes Formule de Creff Ce calcul est à titre purement indicatif. Il "améliore" la formule de Lorentz, en incluant la notion de morphologie. Poids idéal pour une morphologie "mince" = (Taille - 100 + Age / 10 ) * 0,9² Poids idéal pour une morphologie "normale" = (Taille - 100 + Age / 10 ) * 0,9 Poids idéal pour une morphologie "large" = (Taille - 100 + Age / 10 ) * 0,9 * 1,1 Réaliser un algorithme en langage naturel pour les formules de Monnerot-Dumaine et Lorentz. Réaliser un algorithme à l’aide du logiciel Algobox pour les formules de Monnerot-Dumaine et Lorentz. Que posent comme problème les formules de Lorentz et de Creff ? II AVEC UNE CALCULATRICE. On peut réaliser des algorithmes avec une calculatrice. Il faut respecter la même démarche intellectuelle. Déclaration des variables Initialisation ou Entrée des données Traitement des données Sortie Version TI Version Casio Appuyer sur ‘programme’ PRGM Appuyer sur ‘menu’ MENU Sélectionner ‘nouveau’ NOUV Sélectionner ‘programme’ PRGM Donner un nom au programme Sélectionner ‘nouveau’ NEW Donner un nom au programme :Input ‘’ P = ‘’, P :Input ‘’ T = ‘’, T P/T^2->I Disp ‘’I=’’, I ‘’ P = ‘’ : ? ->P ‘’ T = ‘’ : ? ->T P/T^2->I ‘’I = ‘’ : I Appuyer sur ‘programme’ PRGM Sélectionner ‘Exécuter’ EXEC Sélectionner le programme Appuyer sur ‘programme’ PRGM Sélectionner le programme III L’INSTRUCTION CONDITIONNELLE. Pour résoudre certains problèmes, il est nécessaire de mettre en place un test pour effectuer une tâche. Si le test est positif, on effectue la tâche, Sinon, on effectue une autre tâche (cette ligne n’est pas obligatoire. En langage naturel, cela donne : Si condition alors tâche 1 sinon tâche 2 (ligne non obligatoire) FinSi Problème : écrire un algorithme permettant de jouer à pile ou f truquée. On représente pile par 0 et face par 1. Code avec algobox Algorithme langage naturel Variables C est un nombre N est un nombre Initialisation Saisir C N reçoit un nombre au hasard parmi {0,1} Traitement Si C=N Alors afficher « vous avez gagné » Sinon afficher « vous avez perdu » ace avec une pièce non Commentaires Sortie console C est la face choisie par le joueur. N est la face qui sort au hasard. Exercice : Réaliser un algorithme qui permet de tester si un triangle est rectangle ou non (en utilisant la réciproque du théorème de Pythagore) IV LA BOUCLE ITERATIVE. Dans un programme, on effectue parfois plusieurs fois la même tâche avec un nombre de fois déterminé à l’avance. En algorithmique, on parle de boucle. On utilise une variable (souvent i) qui est un compteur, elle augmente de 1 à chaque fois.. En langage naturel, cela donne Pour i de 1 jusque N Faire tâche Dans ce cas on répète notre tâche N fois. N est un nombre que l’on doit demander dans le programme dans la face d’initialisation. Problème : création d’un algorithme permettant de calculer les N premiers nombres naturels. Code avec algobox Algorithme langage Commentaires Sortie console naturel Variables N : nombre termes de N,S,i des entiers la somme Initialisation S : la somme S reçoit O i : le compteur pour la Saisir N boucle Traitement S est initialisé à 0 Pour i de 1 jusque N On affiche la dernière faire valeur de S S reçoit S+1 FinPour Sortie Afficher S V LA BOUCLE CONDITIONNELLE. Dans un programme, on effectue parfois plusieurs fois la même tâche avec un nombre de fois non déterminé à l’avance. On répète les mêmes instructions tant qu’une certaine condition n’est pas remplie. On utilise alors une boucle conditionnelle : la boucle s’arrête quand la condition n’est plus remplie. En langage naturel, cela donne Tant que condition faire Tâche FinTant Problème : déterminer le PGCD de deux nombres en utilisant l’algorithme d Euclide. Code avec algobox Algorithme langage naturel Variables Initialisation Traitement Sorties Commentaires != signifie différent de A%b reste de la division Euclidienne. Sortie console VII TRACER DANS UN REPERE. Construire la représentation graphique de la fonction f définie par f(x) = 3x²+2x-4 On définit quatre variables : Min : valeur en abscisse minimale Max : valeur en abscisse maximale Pas : précision du tracé I : valeur de boucle. On utilise deux boites de travail supplémentaires : Utiliser une fonction numérique (faire attention à la syntaxe des calculs) La fonction utilisée s’appelle F1 Dessiner dans un repère Exercice : Représenter dans un repère la fonction les fonctions g(x) = -x²+1 et h(x) = 2x²+3. A l’aide de votre représentation, indiquer les éventuels points d’intersection.