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.