Chapitre 2 : algorithme Page 1 Objectifs :
*Savoir ce qu’est un algorithme
*Savoir traduire un algorithme sur calculatrice.
* Savoir écrire un algorithme simple et un algorithme avec boucle conditionnelle.
* Savoir écrire un algorithme avec boucle tant que ou pour
Exemples:
*Sans le savoir, vous utilisez des algorithmes tous les jours, comme le montre l’exemple suivant : On souhaite préparer un moelleux au chocolat :
*Les algorithmes sont particulièrement utiles en Mathématiques, pour effectuer des calculs, par exemple. Voici un programme de calcul vu au collège :
*voici la méthode de résolution d’une équation du type x²=a lorsque a est strictement positif:
Chapitre 2 : Algorithme
Un peu d’histoire : Le mot « algorithme » vient du nom d’un mathématicien arabe du VIIIème siècle après J.C., Al-Khwarizmi. Ce mathématicien écrivit en langue arabe le plus ancien traité d’algèbre « Al-Jabr » sur la résolution des équations. Il y proposait les solutions en décrivant l’enchainement d’étapes à suivre pour résoudre les équations.
Ingrédients : 250 g de chocolat noir, 250 g de beurre,
4 œufs,
250 g de sucre, 75 g de farine.
Faire fondre le chocolat au bain marie ; ajouter le beurre, mélanger ; ajouter la farine, mélanger.
Battre les œufs en omelette ; ajouter le sucre et mélanger.
Mélanger les deux préparations.
Verser dans un moule et faire cuire 45 min au four à 220°C.
Servir le gâteau froid.
1- choisir une valeur 2- La diviser par 3 3- Enlever 2 au résultat
4- Multiplier par 5 le résultat précédent 5- Donner le résultat obtenu
1-Donner la valeur de a 2- Prendre la racine carrée de a 3-Donner le résultat
4- Donner également l’opposé du résultat précédent.
Chapitre 2 : algorithme Page 2 I- Qu’est ce qu’un algorithme ?
a) Ecrire un algorithme consiste à donner une méthode détaillée décrivant toutes les étapes d’une tache à accomplir, réparties en trois phases :
- Les éléments ou les variables dont on part : les entrées - les actions à effectuer sur ces éléments : le traitement - le résultat obtenu : les sorties
b) Durant l’exécution d’un algorithme, on va avoir besoin de stocker des données, voire des résultats. Pour cela on utilise ce que l’on appelle une « variable ». On attribue un nom à chaque variable. Une variable est comme une boite, repérée par un nom, qui va contenir une
information. Au sein d’un algorithme, pour utiliser le contenu d’une variable, il suffira de l’appeler par son nom.
Remarque : La valeur du contenu d’une variable pourra être modifiée pendant l’exécution.
Déclaration de variable: Dans l’écriture d’un algorithme, il est utile de préciser dès le début le nom des variables que l’on va utiliser, en indiquant leur type (un nombre, entier, décimal, positif..., une chaine de caractère, une liste de valeur...)
II- Comment se présente un algorithme : 1. Algorithme simple
Exemple 1 : Un commerçant accorde une remise sur des articles. On souhaite connaître le montant de la remise en euros. Voici un algorithme écrit en langage naturel donnant la
solution au problème :
Déclaration de variables : A, P et R sont du type nombre
Entrée : Saisir le prix de départ A
Saisir le pourcentage de remise P Traitement des données : R prend la valeur A x P
100 Sortie : Afficher R
Chapitre 2 : algorithme Page 3 1) a) Calculer la valeur de la variable R lorsque A = 56 et P = 30.
b) Donner une interprétation concrète du résultat précédent.
2) Même question avec A = 13 et P = 45.
3) Compléter les paragraphes "Traitement des données" et "Sortie" pour que l'algorithme affiche également le prix à payer B.
4) a) Calculer la valeur des variables R et B lorsque A = 159 et P = 24.
b) Donner une interprétation concrète des résultats précédents.
5) Vérifier les résultats en rentrant le programme sur votre calculatrice.
Exercices : Math repère 2010 Hachette 5pIX
2. Algorithme avec instruction conditionnelle
Une instruction conditionnelle permet d'effectuer un test suivant certaines conditions.
En langage naturel, elle peut se présenter sous la forme suivante : Si Condition Alors
Instructions 1
Sinon Instructions 2 Fin Si
Exemple 1 :
Si la pièce tombe sur pile Alors je gagnes
Sinon tu gagnes Fin Si
Exemple 2 : Lors d’un jeu TV, on répond à une question à choix multiples. Une bonne réponse nous fait gagner 1000€. Une mauvaise nous fait perdre.
Déclaration de variables : A et G sont du type nombre Entrée : G prend la valeur 0
afficher « Quelle est la capitale de la France ? 1.Paris 2. Marseille 3.Lyon 4. Nice»
Saisir A Traitement des données : Si A 1 alors
afficher « vous gagnez 1000€ » G prend la valeur 1000
Sinon afficher « perdu » Fin Si
Sortie : Afficher G
Chapitre 2 : algorithme Page 4 Exemple 3 : On considère l'algorithme suivant donné en langage naturel :
Déclaration de variables : A est du type nombre B est du type nombre C est du type nombre Entrée : Saisir A
Traitement des données : B prend la valeur A
C prend la valeur arrondie à l'unité de B Sortie : Si B = C Alors
afficher "A est un carré parfait"
Sinon Afficher "A n'est pas un carré parfait"
Fin Si
1) Lire l'algorithme. Quel problème permet-il de résoudre ? 2) a) Quelle est la valeur de B et la valeur de C lorsque A = 40 ?
b) Dans ce cas, quel est le résultat affiché à la suite de l'instruction conditionnelle ? 3) Mêmes questions avec A = 2025.
4) Vérifier les résultats précédents en entrant le programme dans votre calculatrice.
Exercices : Math repère 2010 Hachette 5.1,2,4pXIII
3. Algorithme avec boucle itérative ( connaissant le nombre de répétitions)
On peut répéter les mêmes instructions pour un nombre de répétitions prédéfini par une variable. En langage naturel, cela peut se présenter sous la forme suivante :
Pour Variable allant de Valeur début à Valeur fin Faire Instructions
Fin Pour
Exemple 1 : Chaque année jusqu’à ses 18ans, on ajoute 50€ sur le livre d’un enfant pour son anniversaire. On pourrait faire ceci :
Déclaration de variables : S est du type nombre Entrée : S prend la valeur 0 Traitement des données : S prend la valeur S+50 S prend la valeur S+50 …
Sortie : Afficher S
Il faudrait alors écrire 18 fois le S prend la valeur S+50 (d’où les …) .
Chapitre 2 : algorithme Page 5 Avec le pour, on obtiendrait ceci :
Déclaration de variables : S est du type nombre Entrée : S prend la valeur 0
Traitement des données : Pour I allant de 1 à 18 Faire S prend la valeur S+50 Fin Pour
Sortie : Afficher S
Exemple 2 : On considère l'algorithme suivant donné en langage naturel : Déclaration de variables : A est du type nombre
Entrée : Saisir A
Traitement: Pour I allant de 1 à 5 Faire A prend la valeur A+1 Fin Pour
Sortie : Afficher A a) Pour A = 3 qu'affiche l'algorithme en sortie.
I 1 2 3 4 5
A+1->A 3+1=4 4+1=5 5+1=6 6+1=7 7+1=8
L’algorithme affiche 8
b) Même question pour A = -4.
Exemple 3 : Sur chaque case d’un échiquier (on rappelle qu’il ya 64 cases), je dépose des grains de riz (un grain de riz pèse : 0,2 g). Sur le premier, j’en mets un et ensuite je double le nombre de grains de riz sur chaque case suivante.
Déclaration de variables : G est du type nombre S est du type nombre Entrée : G prend la valeur 1 S prend la valeur 1
Traitement : Pour I allant de 1 à 63 Faire G prend la valeur 2 G S prend la valeur S+G
P prend la valeur 0,2 S Fin Pour
Sortie : Afficher S Afficher P
Chapitre 2 : algorithme Page 6 1. A quoi correspond concrètement la variable G ?
2. A quoi correspond concrètement la variable S ? 3. A quoi correspond concrètement la variable P ?
4. Programmer cet algorithme sur la calculatrice. Que se passe-t-il ? 4. Algorithme avec boucle itérative ( connaissant le test d’arrêt)
On peut répéter les mêmes instructions pour un nombre de répétitions prédéfini par une variable. Cette fois si, on sait jusqu’où il faut aller. En langage naturel, cela peut se présenter sous la forme suivante :
Tant que Condition est vraie Faire Instructions
Fin Tant que
Exemple 1 : Tant que je n’ai pas trouvé la solution Faire Chercher la solution
Fin Tant que
remarque : On peut avoir un énoncé sous la forme : jusqu’à ce que j’ai trouvé la solution je continue de la chercher. Il faut alors chercher la négation du « jusqu’à » pour obtenir la même chose que pour l’exemple 1.
Exemple 2 : On considère l'algorithme suivant donné en langage naturel : Déclaration de variables : n est du type nombre
Entrée : Saisir n
Traitement et sortie : Tant que n < 50 Faire n prend la valeur n+1 Afficher n
Fin Tant que a) Pour n = 45 qu'affiche l'algorithme en sortie.
Condition Vrai(45<50) Vrai(46<50) Vrai(47<50) Vrai Vrai Faux
n+1->n 45+1=46 46+1=47 47+1=48 49 50
L’algorithme affiche 46 ;47 ;48 ;49 ;50
b) Même question pour n = 48,1 et pour n = 53.
Chapitre 2 : algorithme Page 7 Exemple 3 : Chaque mois je gagne 50 € d’argent de poche. Je veux acheter un pc à 1495€.
Au bout de combien de mois pourrais je acheter le pc ?
Déclaration de variables : A et M sont du type nombre Entrée : A prend la valeur 50
M prend la valeur 1 Traitement : Tant que A < 1495 Faire
A prend la valeur A+50 M prend la valeur M+1 Fin Tant que
Sortie : Afficher M 1. A quoi correspond concrètement la variable A ? 2. A quoi correspond concrètement la variable M ?
3. Au bout de combien de mois pourrais je acheter le pc ? (en faisant tourner l’algorithme à la main) . Vérifier le résultat à l’aide de la calculatrice Exercices : Math repère 2010 Hachette
1,2,3,4,5pXXI
Exercices supplémentaires : Math repère 2010 Hachette 6,7,8pXXI+pXXII
5. Langage de calculatrice
Accéder aux programmes :
Appuyer ici : Pour obtenir :
sous EXEC, il suffit de choisir le programme que l’on veut exécuter et d’appuyer sur
sous EDIT il suffit de choisir le programme que l’on veut modifier(éditer) et d’appuyer sur
sous NEW, appuyer sur puis rentrer le nom choisi pour le nouveau programme et
Pour quitter l’édition d’un programme (la sauvegarde est automatique)
Accéder aux programmes :
Appuyer ici : pour obtenir :
il suffit de choisir le programme que l’on veut exécuter et d’appuyer sur
il suffit de choisir le programme que l’on veut modifier(éditer) et d’appuyer sur
appuyer sur puis rentrer le nom choisi pour le nouveau programme et
Pour quitter l’édition d’un programme (la sauvegarde est automatique)
Chapitre 2 : algorithme Page 8 Editer un programme basique :
Pour passer d’une ligne à la suivante , on utilise
Pour affecter à une variable une valeur, on
utilise (ex : )
Pour demander à l’utilisateur de saisir une valeur pour une variable A, on utilise puis Input dans l’onglet I/O :
(ex : )
Pour demander à la calculatrice d’afficher un résultat A, on utilise puis Disp dans
l’onglet I/O : (ex : )
Pour demander à la calculatrice d’afficher un texte , on utilise puis Disp dans l’onglet I/O et les guillemets : : (ex :
)
Pour afficher un opérateur relationnels ( , on utilise et on choisit l’opérateur.
Editer un programme avec boucle:
Pour passer accéder aux fonctions de boucles , on utilise et l’onglet CTL
Si : Alors :
Sinon : Pour :
Fin Si , Pour ,Tant que:
Tant que :
Editer un programme basique:
Pour passer d’une ligne à la suivante , on utilise
Pour affecter à une variable une valeur, on utilise
Pour demander à l’utilisateur de saisir une valeur pour une variable A, on utilise
puis (ex : )
Pour demander à la calculatrice d’afficher un résultat A, on utilise puis : (ex : ) dans ce cas, pas besoin d’aller à la ligne en utilisant
Pour demander à la calculatrice d’afficher un texte , on utilise puis et les
guillemets : : (ex : ) dans
ce cas, pas besoin d’aller à la ligne en utilisant
Pour afficher un opérateur relationnels ( , on utilise puis
et on choisit l’opérateur.
Editer un programme basique :
Pour passer accéder aux fonctions de boucles ,
on utilise
Si : Alors : Sinon : Fin Si :
Pour : à : Fin Pour : Tant que : Fin Tant que :
Chapitre 2 : algorithme Page 9 Exemples (pour la syntaxe):
(Pour I allant de 1à15) Expérience aléatoire:
Pour générer un nombre réel aléatoire entre 0 compris et 1 non compris: Faire
puis dans PRB faire rand et
Pour générer un nombre réel aléatoire entre 0 compris et N non compris (avec N un entier) : Faire puis dans PRB faire rand puis et
Pour générer un nombre entier entre 0 compris et N non compris (avec N un entier) : Faire
dans num on fait int puis puis dans PRB faire rand puis et
Pour générer un nombre entier entre 1 compris et N non compris (avec N un entier) : Faire
dans num on fait int puis puis dans PRB faire rand puis et
Exemples (pour la syntaxe):
(Pour I allant de 1à15) Expérience aléatoire:
Pour générer un nombre réel aléatoire entre 0 compris et 1 non compris:
puis
Pour générer un nombre réel aléatoire entre 0 compris et N non compris (avec N un entier) :
puis
Pour générer un nombre entier entre 0 compris et N non compris (avec N un entier) :
puis
Pour générer un nombre entier entre 1 compris et N non compris (avec N un entier) :
puis