Vous êtes sur la page 1sur 64

1

I) Une premire approche de lalgorithme en seconde, saison 2010 _ 2011. Antoine ROMBALDI
Lobjectif est de rendre les lves capables :
De dcrire certains algorithmes en langage naturel.
Den raliser quelques uns, tableur ou petit programme sur la calculatrice.
Dinterprter quelques algorithmes plus complexes.
Le logiciel utilis pour les exemples suivants est le logiciel ALGOBOX. Cest un logiciel trs simple et trs rapide
de prise en main et qui semble parfaitement adapt la dcouverte de lalgorithmique.
Les activits suivantes sont de difficults progressives et qui permettent un lve de seconde de dcouvrir
lalgorithmique.
Il ne faut pas hsiter utiliser le mode pas pas du logiciel Algobox car il permet de faire un parfait dbogage.
Chacune des activits proposes commence par la mise en place dun algorithme suivi de quelques exercices.
Pour prolonger ces activits et faire de la programmation un autre niveau avec des constructions de procdures de
fonctions etc, il faudra utiliser des langages standards comme le VISUAL BASIC ou le PASCAL avec la
plateforme DELPHI ou bien encore avec le langage C avec C++.
Une fois lalgorithme termin dans Algobox, si celui-ci ne fonctionne pas, nhsitez pas utiliser le mode PAS A
PAS de ce logiciel pour voir comment volue le contenu de toutes vos variables.

SOMMAIRE.
I.
II.
III.
IV.
V.
VI.
VII.
VIII.

Premire approche : La division.


PGCD de deux nombres entiers.
Travailler sur quatre semaines.
Les chanes de caractres : les palindromes.
Le jeu du cest plus cest moins.
Dans la foule : la dichotomie.
Moyenne, cart-type, tri et mdiane.
Un peu de probabilits : la somme de deux ds.

I) Premire approche : la division.


Entrer deux nombres entiers A et B et de rcuprer le quotient Q de ces deux nombres.
Mthode :
Demander la saisie du nombre A.
Demander la saisie du nombre B.
Calculer le quotient A/B et le mettre dans Q.
Afficher la valeur de Q.
Variables utiliss :
Les trois variables numriques A, B et Q.
Ralisation de lalgorithme :
1) Lancer le logiciel Algobox
2) Cliquer sur dclarer une nouvelle variable :

, ce qui donne

3) Taper la variable A en laissant bien NOMBRE comme TYPE DE VARIABLE, comme indique cidessus.
4) Cliquer alors sur le bouton Nouvelle ligne ou bien appuyer sur la combinaison de touche [CTRL]
[Entre], puis cliquer sur le bouton lire variable pour demander la saisie du nombre A .
5) Faire la mme opration pour la saisie du nombre B. A cette tape votre
algorithme doit tre comme reprsente sur la figure ci-contre. Il nous faut ,
maintenant que les deux variables A et B sont bien en mmoire , calculer le
quotient en prenant bien soin que le diviseur B ne soit pas nul.
6) Cliquer sur nouvelle ligne puis sur le bouton Affecter valeur variable. Puis
choisir la variable Q et la suite de prend la valeur taper A/B, et il nous
reste afficher le quotient obtenu.
7) Rajouter une nouvelle ligne, puis cliquer sur
ajouter afficher message et taper alors le message
suivant La valeur du quotient A/B est . Ajouter
une nouvelle ligne puis cliquer alors sur ajouter
afficher variable et choisir la variable Q, en ajoutant un retour la ligne.
Lalgorithme final est alors le suivant :
8) Il sagit maintenant de tester cet algorithme , pour
cela il faut cliquer sur le bouton Tester
Algorithme, puis sur le bouton Lancer lalgorithme
et le rsultat saffiche comme dans la fentre cidessous aprs avoir entre les nombres 10 et 3 :

Quelques amliorations pour cet algorithme :


Il serait agrable davoir une petite explication avant de saisir les deux entiers afin dviter de taper un diviseur
gal zro. Pour cela on introduit une nouvelle ligne deux fois et on obtient lalgorithme ci-dessous :

4
La structure algorithmique TANT QUE :
Il est assez risqu de laisser lutilisateur saisir un diviseur gal zro, pour cela nous allons demander de lire B tant
que la valeur de B est de zro.
Mthode :
Insrer une ligne aprs la ligne AFFICHER Donner votre diviseur B , puis cliquer sur le bouton AJOUTER
TANT QUE. Comme condition taper B 0 , en faisant bien attention de mettre deus signes = !.
Ce double = est pour indiquer que nous sommes pas sur une affectation de variable mais sur un test dgalit : la
variable B est-elle gale zro ?
Entre les deux instructions de DEBUT et FIN il faut ajouter la ligne LIRE B et supprimer lancienne ligne, et on
obtient alors lalgorithme suivant
Ensuite il ne reste qu tester ce nouvel algorithme en
essayant par exemple de rentrer pour B la valeur 0, ce
qui donne :

Nouvelle amlioration : Fixer le nombres de dcimales afficher :


Ce problme devient un problme mathmatique, cest--dire de la rponse
3, 257257257 , il faut arriver 3, 26 par exemple o 3, 25 .
En fait, une solution simple consiste utiliser la fonction partie entire en procdant de la manire suivante :
3, 257257257 100 devient 325, 7257257 , dont on prend la partie entire 325 , et il suffit alors de diviser ce
nouveau rsultat par 100 pour obtenir 3,25.
La fonction partie entire, comme dans beaucoup de langages informatiques est donne par linstruction suivante :
floor
Et notre ligne de calcul devient alors Q floor A / B *100 /100
Au niveau de lalgorithme , il suffit de se positionner sur la ligne Q PREND LA VALEUR A/B puis de cliquer sur
le bouton MODIFIER LIGNE , puis remplacer alors A/B par la formule floor A / B *100 /100 , ce qui donne le
nouvel algorithme ci-dessous :

Exercice 1 : Modifier lalgorithme pour obtenir un affichage 3 dcimales.


Il sagit de rajouter une variable pour demander lutilisateur le nombre de dcimales souhait.
Note pour cet exercice, il faut utiliser la fonction puissance pow x, n qui correspond la puissance nime de x.

Solutions :

6
Ce qui donne aprs utilisation : en prenant par exemple A = 14 523 , puis B = 17 et enfin dcimales = 11

Exercice 2 : La division lancienne. Les premiers processeurs ne faisaient que des additions et des
soustractions ! Comment alors peut-on raliser une division ?

Solutions :
Voici la mthode directe employe pour faire la division avec un quotient entier de deux nombres entiers A et B.
On soustrait B de a tant que cest possible et on compte le nombre de soustractions faites, ce qui est assez simple :
Un exemple, on cherche le quotient entier de 11 par 3.
On calcule donc 11 3 8 , et on compte 1 ( une soustraction ).
Puis 8 3 5 et on compte 2
Puis 5 3 2 et on compte 3
Puis 2 3 1 ce qui est impossible dans , donc on sarrte de compter, et alors le quotient entier de 11 par 3 est
donc 3.
Ci-dessous lalgorithme avec Algobox est :

Exercice 3 : Que se passe-t-il si les lignes Q PREND LA VALEUR Q+1 et diff PREND LA VALEUR diff B
sont inverses ? Lalgorithme fonctionne t-il encore correctement ?
Solutions :
A faire dans le programme

Exercice 4 : Utiliser la variable R pour afficher le reste dans la division de A par B la place du quotient Q.

II) Le pgcd de deux nombres entiers.


Rappelons que le plus grand diviseur commun aux deux nombres entiers 12 et 18 est 6 car les diviseurs de 12 sont
{1 ;2 ;3 ;4 ;6 ;12} et les diviseurs de 18 sont {1 ;2 ;3 ;6 ;9 ;18}, et les diviseurs communs aux deux entiers sont
{1 ;2 ;3 ;6}, et le plus grand entier est bien 6.
Voici ci-dessous un algorithme pour dterminer le PGCD de deux nombres entiers A et B : (Algorithmes des
soustractions successives).

Ce qui donne avec Algobox :

9
Puis lexcution de ce programme en prenant A=12 et B=18, donne bien comme PGCD 6.

Comme exercice supplmentaire, on peut par exemple se servir de cet algorithme pour dterminer si deux entiers
sont premiers entre eux. A titre de rappel, deux entiers naturels sont premiers entre eux si et seulement si leur
PGCD vaut 1

10

III) Travailler sur quatre semaines.


Dans certains emploi du temps il faut dcouper sur quatre semaines plutt que sur deux. Cest le cas pour certains
lves de seconde en informatique dans un lyce quelconque : par exemple en semaine 41, nous sommes en
semaine 1, en semaine 42 nous sommes en semaine 2, en semaine 43 nous sommes en semaine 3, en semaine 44
nous sommes en semaine 4, en semaine 45 nous sommes en semaine 1 et ainsi de suite.
On voudrait faire afficher, partir du numro de semaine du calendrier, le numro de semaine de lemploi du
temps, cest--dire 1, 2, 3 ou 4.
La mthode :
Prendre le numro de semaine du calendrier dans la variable semaine, calculer le reste dans la division entire par 4
de cette semaine et le stocker dans semaine_info.
Si semaine_info vaut zro le mettre 4. Les variables utiliser seront donc semaine, de type numrique, et
semaine_info galement de type numrique.
Et il faudra utiliser le fonction A%B qui donne le reste dans la division euclidienne de A par B, et lalgorithme est
alors le suivant :

1) Exercice :
On sait que les cours dinformatique de la classe de seconde 12 sont en semaine 4, crire un algorithme permettant
dafficher toutes les semaines 4 de lanne.
Il faudra donc utiliser une boucle pour explorer les 53 semaines de 1 53, et cette boucle peut avoir la structure
suivante :
POUR semaine ALLANT DE 1 A 53
DEBUT POUR

FIN POUR

11
Solution de lexercice 1 :

2) Exercice :
La mme problmatique, mais cette fois pour une des quatre semaines au choix de lutilisateur. On va donc crer
une nouvelle variable et demander lutilisateur quelle liste de semaines il veut, soit 1, 2, 3 ou 4.
Solution de lexercice 2 :

12

IV) Les chanes de caractres : les palindromes.


Le travail avec les variables alphanumriques dites CHAINES DE CARACTERES est toujours assez difficile en
programmation. Les mots, les phrases, les structures nobissant pas du tout des rgles mathmatiques mais tant
bourre dexceptions.
Ici, il sagit de crer un algorithme qui renverse un mot ou une expression pour vrifier sil sagit dun palindrome,
comme LAVAL, ERDRE, RADAR .)
Mthode :
Un mot est saisi dans la variable CHAINE Palind.
La variable CHAINE Rsult va rcuprer une par une les lettres de palind partir de la dernire etc
Il est utile pour cet algorithme de connaitre les fonctions de manipulation de chanes suivante :
palind.length : renvoi la longueur de la chane (par exemple 5 si on tape LAVAL)
palind.sibstr(3,1) : renvoi la chane de longueur 1 situe en 3 position (par exemple V pour LAVAL)
Attention :
En dclarant les variables il faut videmment choisir le type chane dans Algobox.
Ce qui donne lalgorithme suivant :

Lexcution de cet algorithme avec LAVAL, RADAR, puis JEAN donne :

Sous forme dexercice , essayer de complter cet algorithme en ajoutant un test SI ALORS pour afficher un
message de russite si le mot tape est bien un palindrome ou non.
Ce qui donne

13

Lexcution de cet algorithme avec RADAR, puis JEAN donne :

14

V) Le jeu du cest plus..cest moins.


Classique jeu du cest plus cest moins avec un nombre entre 1 et 100 choisi au hasard par la machine.
Pour calculer un nombre au hasard entre 1 et 100 on utilise la fonction random() qui renvoie une valeur dcimale
entre 0 et 0,9999999 !
La formule classique pour obtenir un ombre entre 1 et 100 sera la suivante dans Algobox : floor(random()*100+1)
Explication :
random() sort un nombre dcimal entre 0 et 0,9999999.
random()*100 sort un nombre dcimal entre 0 et 99,99999.
random()*100 + 1 sort un nombre dcimal entre 1 et 100,99999, dont il faut prendre la partie entire en utilisant
linstruction floor(), ce qui donne lalgorithme suivant :

Prolongement :
Nous avons la un problme algorithmique trs intressant car
nous utilisons une instruction TANT QUE dans laquelle nous
avons un test (proposition !=hasard) en dbut de boucle alors
quil aurait fallu ce test en fin de boucle pour ne pas avoir a faire
un passage inutile !
Si bien que nous nous trouvons souvent avec un cest moins en
trop .
Nous devons donc ajouter un test dans le SINON pour empcher
laffichage du cest moins en cas dgalit, ce qui nous donne
lalgorithme suivant :

15
Autre prolongement :
Problme qui aurait put tre solutionn aussi avec une variable SORTIE qui prend la valeur 1 en cas dgalit
comme dans lalgorithme ci-contre. Lorsque vous modifiez votre algorithme vous pouvez aussi utilisez les
raccourcis clavier ci-aprs pour les lignes ou les blocs
Ctrl C pour copier

Ctrl X
Ctrl V

pour couper

pour coller
Noubliez pas dans les recherches ci-dessous dutiliser lors de lexcution des algorithmes dans Algobox la
fonction PAS A PAS qui vous permet de surveiller la valeur de vos variables chaque passage dune boucle.

16
EXERCICE 1 :
En dernire ligne proposer lutilisateur le nombre de coups qui ont t ncessaires avec un affichage du genre :
BRAVO, vous avez trouv en 7 coups.
CORRECTION DE LEXERCICE 1 :

17
EXERCICE 2 :
Afficher lintervalle dans lequel se trouve le nombre pour faciliter la tache lutilisateur !
Par exemple : aprs avoir propos le nombre 50 lutilisateur verra safficher un message du genre :
Cest moins, le nombre est situ entre 0 et 50.
Puis aprs avoir propos 20, il aura un message du genre :
Cest plus, le nombre est situ entre 20 et 50 etc..
CORRECTION DE LEXERCICE 2 :

18

VI) Dans la foule, la dichotomie.


Il sagit de calculer la valeur (souvent approche) qui annule une fonction donne
f1 x .
La mthode est simple : on se place sur un intervalle de continuit monotone et on
calcule limage du milieu de cet intervalle par cette fonction.
En fonction du signe de cette image ce milieu remplace une des deux bornes et ainsi de
suite.
Exemple :
On considre la fonction f1 x x 2 6 , et sur le graphique ci-contre sur lintervalle

0; 4 . Nous remarquons que le milieu est 2 et que f1 2 2 0 , donc notre intervalle


de travail va devenir 2; 4 , puis de mme si on remarque que f1 3 3 0 , notre
intervalle de travail devient donc 2;3 , etc
Lalgorithme :
Attention, il faut dfinir une fonction en utilisant longlet UTILISER UNE FONCTION
NUMERIQUE. Cette fonction aura pour nom prdfini F1(x).
Dans lexemple, ci vous dsirez utiliser la fonction ci-dessus f1 x x 2 6 , il faut
taper pow(x,2)-6, ou bien tout simplement x*x-6.
Vous pouvez aussi utiliser longlet DESSINER DANS UN REPERE pour voir le parcours fait par le point de
recherche F1(middle).
Ce qui donne lalgorithme suivant :

A titre dexercice supplmentaire, vous pouvez demander lutilisateur les deux valeurs de min et de max, mais il
nest pas possible, avec ce programme de demander lutilisateur de dfini r lui-mme la fonction F1(x).

19

VII) Moyenne, cart-type, tri et mdiane.


Pour calculer la moyenne dun certain nombre de notes (combien par exemple) nous devons utiliser une liste
(mathmatiquement on dirait plutt un vecteur), note[1] contient la premire note, puis note[2] qui contient la
seconde et ainsi de suite.
Nous pouvons ainsi saisir les notes au sein dune boucle de longueur combien.
Il ne reste qu faire la somme des notes et diviser par combien.
Ce qui donne lalgorithme suivant :

20
Exercice : faire afficher la moyenne, la variance et lcart type de la srie de notes :
Solution :
Utilisation, en prenant 10 notes : soit 12;11;8;15;12;14;17; 2;6;13 , on obtient le rsultat ci-dessous :

21
Prolongement :
Dtermination de la mdiane de la srie de notes, et pour dterminer cette mdiane, il faut dabord trier dans lordre
croissant la srie, qui est une opration pas vidente au sein dun algorithme. Il existe de nombreuses faons de
raliser un tri. Nous allons choisir la plus simple mais peut tre pas la plus rapide au niveau de trs grandes sries
statistiques.
Ralisons un tri dans lordre croissant de la srie de notes ci-dessus.
Le principe est le suivant : on fait parcourir la srie et ds que lon trouve deux notes conscutives qui ne sont pas
dans lordre on les inverse et on refait le parcours de la srie.
La variable PERMUTE est mise zro puis on fait le parcours de la srie de 1 combien 1.
Si on trouve note i note i 1 dans la srie on met la variable PERMUTE 1 et on inverse les deux notes.
Quand la variable PERMUTE restera zro, il ny aura plus rien inverser et donc la srie sera bien tri dans
lordre croissant.
On utilise un repre pour tracer lhistogramme de la srie. Il faut pour cela cliquer sur DESSINER DANS UN
REPERE pour pouvoir utiliser la fonction TRACER_SEGMENT de la couleur choisie et aprs avoir dfinis les
intervalle X et y du repre.
A titre dexercice supplmentaire, faire un tri dcroissant de la srie de notes.
Une fois la srie trie il ne reste plus qu calculer la mdiane. Pour viter davoir tester la parit du nombre de
notes on utilise une petite astuce :
On calcule le centre de la srie et on fait la moyenne des valeurs entourant ce centre. Si la srie est impaire ces
deux nombres seront les mmes sinon ils entoureront le centre.
Nous calculons med1 floor 1 combien / 2 puis med 2 floor 1 combien / 2 0,5 , le milieu sera

med1 med 2 / 2

, ( med1 med 2 si on a un nombre impair) et la mdiane sera note med1 note med 2 / 2 .

Et il ne reste qu tracer la mdiane aprs avoir tracer la srie.

22
Solution du tracer de la mdiane de la srie de notes :

23

VIII) Un peu de probabilits : la somme de deux ds.


Nous savons que la probabilit dapparition de la somme 7 lors du jet de deux ds de couleurs diffrentes est de 1/6
cest--dire peu prs 17 %.
Nous pouvons utiliser un algorithme pour vrifier si ce nombre thorique se retrouve sur 1000 lancers alatoires de
la machine. Utilisons comme nous lavons dj fait la fonction RANDOM() qui gnre un dcimal entre 0 et
0,9999999.
Fabriquons la formule :
RANDOM()*6
donne un nombre entre 0 et 5,999999
RANDOM()*6+1
est donc entre 1 et 6,99999
Et il suffit dutiliser la fonction partie entire floor() pour achever la formule, soit
FLOOR(RANDOM()*6+1).
Ce qui donne lalgorithme suivant :

Quelques exercices supplmentaires.


EXERCICE 1 :

Demander lutilisateur quelle somme il veut tester, entre 2 et 12 bien sur, et sur combien de lancers il veut faire
ce test.

24
CORRECTION DE LEXERCICE 1 :

25
EXERCICE 2 :
Demander le nombre de lancers dsir et faire afficher toutes les sommes de 2 12, pour cela il faudra utiliser
videmment une liste.
CORRECTION DE LEXERCICE 2 :

EXERCICE 3 :

Demander le nombre de lancers dsir et faire afficher toutes les sommes de 2 12, pour cela il faudra utiliser
videmment une liste.
CORRECTION DE LEXERCICE 3 :

En utilisant la partie DESSINER DANS UN REPERE vous pouvez, partir de lalgorithme ci-dessus, faire un
histogramme des pourcentages.
Il est intressant dtudier la rgularit et la symtrie de lhistogramme en fonction du nombre de lancers
demands.

26

27
Voici le graphe pour 100 lancers ;

Voici le graphe pour 1000 lancers ;

28

29

II) Algorithme en seconde, saison 2010 _ 2011. Antoine ROMBALDI


I) Ce que disent les nouveaux programmes.
Algorithmes, objectifs pour le lyce, extrait du programme.
La dmarche algorithmique est, depuis les origines, une composante essentielle de lactivit mathmatique. Au
collge, les lves ont rencontr des algorithmes (Algorithmes opratoires, algorithmes des diffrences,
algorithmes dEuclide, algorithmes de construction en gomtrie.)
Ce qui est propos dans les programmes est une formalisation en langage naturel propre donner lieu traduction
sur une calculatrice ou laide dun logiciel. Il sagit de familiariser les lves avec les trois grands principes de
lorganisation dun algorithme :
Gestion des entres sorties.
Affectation dune valeur
Mise ne forma dun calcul.
Dans le cadre de cette activit logarithmique les lves sont entrans :
A dcrire certains algorithmes en langage naturel ou dans un langage symbolique ;
A en raliser quelques uns laide dun tableur ou dun petit programme ralis sur une calculatrice ou
avec un logiciel adapt.
A interprter des algorithmes plus complexes.
Aucun langage n aucun logiciel nest impos.
Instructions lmentaires (affectation, calcul, entre, sortie).
Les lves, dans le cadre dune rsolution de problmes, doivent tre capables :
Dcrire une formule permettant un calcul.
Dcrire un programme calculatoire et donnant la valeur dune fonction.
Dutiliser les instructions dentres et sorties ncessaires au traitement.

Boucle itrative, instruction conditionnelle.


Les lves, dans le cadre d une rsolution de problmes, doivent tre capables :
De programmer un calcul itratif, le nombre ditrations tant donn.
Dcrire un programme calculant et donnant la valeur dune fonction.
De programmer une instruction conditionnelle, un calcul itratif, avec une fin de boucle conditionnelle.

Lalgorithmique a une place naturelle dans tous les champs des mathmatiques et les problmes poss doivent tre
en relation avec les autres parties du programme : (Fonctions, gomtrie, statistiques et probabilits, logique.) mais
aussi avec les autres disciplines ou bien dans la vie courante.
A loccasion de lcriture dalgorithmes et de petits programmes, il convient de donner aux lves de bonnes
habitudes de rigueur et de les entraner aux pratiques systmatiques de vrification et de contrle.

II) Quest ce quun algorithme ?


Une dfinition :
Un algorithme est une suite finie de rgles appliquer dans un ordre dtermin un nombre fini de donnes
pour arriver, en un nombre fini dtapes, un certain rsultat et cela indpendamment des donnes.
Cette notion est trs rpandue dans la vie courante, un algorithme peut par exemple y prendre la forme :
- dune recette de cuisine.
- Dun mode demploi.
- Dune notice de montage.
- Dune partition musicale.
- Dun texte de loi.
- Dun itinraire routier.

30

III) La dmarche algorithme.


La rsolution dun problme passe par deux tapes:
2. Concevoir une procdure qui une fois applique amnera une solution du problme pos :
cest ce quon appelle lalgorithme.
3. Rsoudre effectivement le problme pos en appliquant cet algorithme
Quelques algorithmes en Mathmatiques connus des lves:
algorithmes opratoires
algorithmes de constructions gomtriques (notamment avec un logiciel de gomtrie)
algorithme dEuclide
algorithme des diffrences
Et bien dautres encore...
Un algorithme dcrit les diffrentes tapes qui permettent de rsoudre un problme.
Il est donc crit dans un langage naturel. Nanmoins, ltape 2 conditionne souvent la faon de concevoir
lalgorithme. Tout dpend de la personne ou de la machine qui va lutiliser: tout dpend de son niveau de
comprhension
Dans le cas de lutilisation dune machine (ordinateur ou calculatrice) l'algorithme doit tre rendu
comprhensible par la machine que nous allons utiliser pour rsoudre effectivement le problme. Le rsultat de la
traduction de l'algorithme dans un langage connu de la machine est appel un programme.
Les langages informatiques ne sont l que pour faire fonctionner les algorithmes
PROBLEME
SOLUTION

ALGORITHME

On teste l'algorithme : on le fait tourner la main

PROGRAMME.
Traduction dans un langage informatique
Un algorithme bien conu peut tre traduit dans la plupart des langages
informatiques courants
Les principaux logiciels gratuits sont les suivants :
ALGOBOX
SCRATCH
XCAS
SCILAB
PYTHON
Dans la suite, nous utiliserons le logiciel ALGOBOX pour traduire et excuter les algorithmes.
Ce logiciel gratuit peut se tlcharger ladresse suivante:
http://www.xm1math.net/algobox/index.html

31
AlgoBox est un logiciel libre, multi-plateforme et gratuit daide llaboration et lexcution dalgorithmes dans
lesprit du nouveau programme de seconde. Il a t conu par Pascal Brachet, qui est lauteur de PstPlus et de
Texmaker, logiciels forts utiles pour les utilisateurs de LaTeX.

IV) Pourquoi choisir AlgoBox ?


Avantages
Les commandes sont en Franais
Linterface est simple et limpide ce qui vite llve tout problme dapprentissage de syntaxe et lui
permet donc de se concentrer sur la logique algorithmique.
Il rpond parfaitement une initiation lalgorithmique et aucune connaissance dun langage particulier
nest ncessaire.
Inconvnients: langage assez limit
Par exemple ne permet pas de faire des sous programmes
(procdures ou fonctions), graphiques ..

V) Comment concevoir un algorithme ?


Un algorithme se compose en gnral de trois parties :

Cest un schma simplifi. Il arrive dailleurs que les sorties se fassent au cours du traitement.
Pour crire un algorithme, il faut commencer par lanalyse du problme
Il sagit de dterminer les donnes utilises et les oprations effectuer sur ces donnes et de trouver la dmarche
pour rsoudre le problme.

VI) Les variables.


Un algorithme manipule des donnes, donnes initiales ou rsultats intermdiaires.
Ces donnes pour pouvoir tre utilises par un algorithme doivent tre ranges dans des VARIABLES
Attention: Une variable en algorithmique est diffrente dune variable en mathmatiques (ce qui peut poser un
problme pour les lves)
Du point de vue de lordinateur, une variable est une zone de mmoire au contenu de laquelle on accde via un
identificateur. Du point de vue algorithmique, une variable est caractrise par:
son nom

sa structure : variable simple, liste, tableau, fichier

sa nature: numrique, chane de caractres, boolen

son contenu qui peut changer au cours de lexcution de lalgorithme


BOOLEEN : Une variable boolenne est une variable qui ne peut prendre que deux valeurs VRAI ou FAUX.
Son intrt: ncessite moins de place en mmoire quune variable numrique
Ce type de variable nexiste pas dans tous les langages.
LISTE TABLEAUX : Les listes et les tableaux sont des suites de donnes indices caractrises par un nom,
le nombre dlments et la nature des donnes quils contiennent. On accde un lment de la liste ou du
tableau en indiquant sa position :
LISTE [I] est le terme de rang I de la liste nomme LISTE
TABLEAU [I,J] est le terme situ ligne I, colonne J du tableau deux dimensions
En algorithmique, les listes et les tableaux sont deux structures de donnes diffrentes. Une liste est une variable
dynamique: la taille nest pas donne lors de la dclaration, on peut ajouter des lments une liste (augmenter le
nombre dlments). Un tableau est une variable statique: il a des dimensions prdfinies lors de sa dclaration ;
on peut seulement modifier les lments quil contient.
Dans la plupart des langages de programmation, il est ncessaire de dclarer toutes les variables utilises ds le
dbut du programme La dclaration de variables ninitialise pas les variables.
Une variable ne peut tre utilise que si elle est initialise cest--dire si elle a un contenu.

32
Certaines erreurs dans les algorithmes viennent donc parfois de la :
Non dclaration de la variable
Non initialisation de la variable.
Il peut tre prfrable pour les lves dutiliser des noms de variables significatifs qui ont un lien avec leur
contenu.
Par exemple:
salaire au lieu de S
longueur au lieu de L ..
Les oprations que lon peut effectuer sur les donnes dpendent de la nature de ces variables.

VII) Les instructions.


Les instructions sont les rgles que lon applique aux donnes
Instruction dentre
Il sagit de demander lutilisateur une valeur que lon va attribuer une variable
Plusieurs formulations sont possibles:
Demander A
Lire A
Saisir A
Instruction de sortie
Il sagit dafficher (ou dimprimer) les rsultats, cest--dire le contenu de certaines variables ou bien des
messages
Afficher A
Afficher message
Instruction daffectation
Il sagit daffecter cest--dire dattribuer une valeur une variable. Cette valeur peut tre une constante ou le
rsultat dun calcul.
Plusieurs formulations sont possibles:
Donner A la valeur 2
A prend la valeur 2
Affecter A la valeur 2
Stocker dans A la valeur 2
Pour modifier le contenu par un calcul
augmenter A de 2
remplacer A par la valeur A+2
Donner A la valeur A+2
Affecter A la valeur A+2
Stocker dans A la valeur A+ 2
A prend la valeur A+2
A
A+2
Les deux premires sont plus parlantes pour les lves mais ainsi formules, ne sont pas comprises par les
langages de programmation

VIII) Les premiers exemples.


Dans les algorithmes qui suivent le traitement est un traitement squentiel
Les instructions y sont excutes les unes aprs les autres par ordre dapparition.
instruction 1;
instruction 2;
instruction n.

... ;

33
Il sagit dexercices qui nutilisent que :
Des instructions dentre et de sortie
Des instructions daffectation
Des calculs
Exercice 1 :
Un algorithme important
Ecrire un algorithme qui change le contenu de deux variables A et B
Il permet de comprendre le fonctionnement des variables.
Cest le fonctionnement du presse papiers des ordinateurs.
Corrections de lexercice 1 :
On va faire lalgorithme avec des variables numriques. Il est vident quil marche avec nimporte quel autre type
de variable
Variables:
A un nombre
B un nombre
C un nombre
Entre
Demander A
Demander B
Traitement
Donner C la valeur de A
Donner A la valeur de B
Donner B la valeur de C
Sortie
Afficher la valeur de A est: , A
Afficher la valeur de B est: , B
Comment se prsente un algorithme dans ALGOBOX ?

34
Les variables avec ALGOBOX
Les variables doivent tre dclares en dbut de programme laide de la touche :
Il faut donner un nom cette variable et choisir son type parmi les
trois types proposs:
Nombre
Chane
Liste

Instructions dentre :
Pour entrer une instruction il faut dabord crer une nouvelle ligne
On se place sur la ligne vide et on actionne la touche :
La boite de dialogue suivante apparat :

Et on choisit alors la variable que lon veut utiliser.


Instructions de sortie :
Pour entrer une instruction il faut dabord crer une nouvelle ligne
On se place ensuite sur la ligne vide et on actionne la touche :

Les boites de messages suivantes apparaissent alors.

35

Instructions daffectation :
Pour entrer une instruction il faut dabord crer une nouvelle ligne
On se place ensuite sur la ligne vide et on actionne la touche :
La boite de dialogue suivante apparat :

Lalgorithme est alors le suivant :

36

Et quand on lance lalgorithme, avec la touche

37
Remarque : si les messages "Algorithme lanc" et "Algorithme termin" n'apparaissent pas au bout d'un moment
dans la zone ci-dessous, c'est que l'algorithme contient une erreur.
Les oprations sur les variables numriques avec ALGOBOX
Le sparateur dcimal est le point.
Les quatre oprations: +, - , * /
Le signe * est obligatoire : Il faut crire 2*x et non 2x
Les autres oprations
Racine carre d'une variable x
sqrt(x)
Mettre une variable x la puissance n

pow(x,n)

Obtenir un nombre pseudo-alatoire compris en 0 et random()


1
Nombre PI
Math.PI
Partie entire d'une variable x
Cosinus d'une variable x (en radians)

floor(x)
cos(x)

Sinus d'une variable x (en radians)

sin(x)

Tangente d'une variable x (en radians)

tan(x)

Exponentielle d'une variable x

exp(x)

Logarithme nprien d'une variable x

log(x)

Valeur absolue d'une variable x

abs(x)

Arrondi d'une variable x l'entier le plus proche

round(x)

Reste de la division de la variable x par la variable y x%y


Il faut respecter les majuscules et minuscules
Exercice 2 :

Dans les sujets du brevet des collges, on trouve souvent des programmes de calculs du style:

Choisir un nombre
Lui ajouter 4
Multiplier la somme obtenue par le nombre choisi
Ajouter 4
Ecrire le rsultat obtenu

Ecrire un algorithme que lon puisse faire tourner sur une machine
Corrections de lexercice 2 :

Commentaires
Lexercice prcdent permet de comprendre la diffrence entre un algorithme pour un tre humain ou pour une
machine. Un algorithme pour ordinateurs ne doit contenir que des instructions comprhensibles par la machine
Un ordinateur ne sait faire que:
Mettre des valeurs dans des zones mmoires
Faire des oprations sur des variables
Faire des tests et des branchements
Il permet aussi de travailler sur les expressions algbriques et les fonctions

38
Variables:
Choisir le nombre a.
Puis b, c et d
Entre
Demander a.
Ajouter 4, afficher la somme
Multiplier la somme b par a.
Afficher le produit c.
Ajouter 4 c qui donne d.
Sortie
Afficher le rsultat obtenu, d

b.

Exercice 3 :
Ecrire un algorithme qui calcule le primtre dun cercle et laire dun disque dont on donne le rayon.
Corrections de lexercice 3 :
Variables:
rayon :
un nombre
primtre : un nombre
aire :
un nombre
Entre
demander la valeur de rayon
Traitement

donner primtre la valeur 2**rayon


donner aire la valeur *rayon

afficher le primtre est:


afficher primtre
afficher aire du disque est
afficher aire

Sortie

Avec la TI 89, on obtient le programme suivant :

39
Avec Algobox, on obtient le programme suivant :
On traduit lalgorithme dans ALGOBOX. Attention respecter les majuscules et les minuscules des diffrentes
instructions.

Pour lancer cet algorithme, on procde de la manire suivante :

40
Exercice 4 :
Ecrire un algorithme qui calcule les coordonnes du milieu dun segment
Corrections de lexercice 4 :
Variables:
xA , yA , xB, yB des nombres.
X milieu et y milieu des nombres.
Entre
Demander xA
Demander yA
Demander xB
Demander yB
Traitement

Donner x milieu la valeur de (xA+xB)/2


Donner y milieu la valeur de (yA+yB)/2

Afficher Labscisse du milieu est : , x milieu


Afficher Lordonne du milieu est : , y milieu

Sortie

Avec la TI 89, on obtient le programme suivant :

Avec Algobox, on obtient le programme suivant :


On traduit lalgorithme dans ALGOBOX.

41
Exercice 5 : Les fonctions dans Algobox.
Calcul de limage dun nombre par une fonction donne/
Ecrire un algorithme qui calcule et affiche limage dun nombre rel par une fonction f donne.
Corrections de lexercice 5 :

Pour utiliser une fonction note par exemple F1, il faut la dfinir en dehors de lalgorithme. On procde de la
manire suivante :
Activer loption Utiliser une fonction dans longlet Utiliser une fonction numrique .

Entrer lexpression de F1(x) en fonction de x dans la boite de


dialogue dfinie pour cela.

Pour utiliser limage dun nombre x par la fonction F1 dans lalgorithme,


il suffit dutiliser le code F1 x
ce qui donne le rsultat suivant :

AIDE

42

INSTRUCTION CONDITIONNELLE OU ALTERNATIVE.


(1) La forme simple :

Si

condition Alors
Instructions

FinSi
(2) La forme la plus courante:

Si

condition Alors
Instructions 1

Sinon
Instructions 2
FinSi
On peut schmatiser ce fonctionnement de la faon suivante :

(3) Conditions et tests:


Une condition est base sur une comparaison
, , , , ,
Oprateurs :
Conditions composes :
On peut mettre plusieurs conditions lies par ET ou OU
Par exemple 5 x 8 se traduit par 5 x ET x 8
Les expressions conditionnelles avec Algobox sont les suivantes.

On peut combiner des conditions avec ET ou OU.


Exercice 6 : Un classique important.

Ecrire un algorithme qui donne le plus grand et le plus petit de deux nombres A et B.
Corrections de lexercice 6 :
Variables:
A un nombre.
B un nombre.
max un nombre.
min un nombre.
Entre
Demander A
Demander B

43
Traitement

Si A B alors
Donner max la valeur A
Donner min la valeur B.
Sinon
Donner max la valeur B
Donner min la valeur A
FinSi

Afficher Le maximum est : , max


Afficher Le minimum , min

Sortie

Ce qui donne :

Prolongement:
Ecrire un algorithme qui dtermine le plus grand de trois nombres A, B et C
Variables:
A, B , C max des nombres.
Entre
Demander A
Demander B
Demander C

44
Traitement

Si A B alors
Donner max la valeur A
Si C>max alors
- Donner max la valeur C.
FinSi
Sinon
Donner max la valeur B
Si C>max alors
- Donner max la valeur C
FinSi
FinSi

Afficher Le maximum est : , max

Sortie

Ce qui donne :

Une autre mthode consiste a supposer que le maximum est A au dpart et ensuite comparer le max
successivement B puis C.
Traitement :
Donner max la valeur de A.
Si B>max alors
Donner max la valeur de B
Sinon
Si C>max alors
Donner max la valeur de C
FinSi
FinSi

45
Cet algorithme peut se gnraliser la recherche du maximum dune liste de valeurs.
Avec Algobox, on ne coche pas linstruction sinon.

Exercice 7 :

On donne trois points A, B et C par leurs coordonnes dans un repre.


Ecrire un algorithme qui permet de savoir si le triangle ABC est rectangle ? Isocle ? Equilatral ?
Problme darrondis avec la racine carre pour comparer des distances : problme habituel de lutilisation des
valeurs approches.
Corrections de lexercice 7 :
Variables:

x A , y A , xB , yB , xC , yC des nombres.
AB, AC, BC des nombres.

Demander x A , y A
Demander xB , yB
Demander xC , yC

Donner AB la valeur de racine xB x A yB y A .

Entre

Traitement

Donner AC la valeur de racine x


Donner BC la valeur de racine x

Si AB 2 AC 2 BC 2 alors afficher ABC est rectangle en A .


Si AB 2 BC 2 AC 2 alors afficher ABC est rectangle en B .
Si BC 2 AC 2 AB 2 alors afficher ABC est rectangle en C .

x A yC

xB yC

y .
y .
2

46
Remarque :
On a fait les trois tests. Donc chaque excution les trois tests seront excuts. On peut amliorer ce programme en
utilisant des si-imbriques.
Si AB 2 AC 2 BC 2 alors
afficher rectangle en A
Sinon
Si AB 2 BC 2 AC 2 alors
afficher rectangle en B
Sinon
Si BC 2 AC 2 AB 2 alors
Afficher rectangle en C
FinSi
FinSi
FinSi
Exercice 8 : Forfait SMS.
On compare trois forfaits mensuels pour des SMS.
FORFAIT A :
fixe de 20 quelque soit le nombre de SMS envoys.
FORFAIT B :
0,15 par SMS envoys.
FORFAIT C :
fixe de 12 et 0,05 par SMS envoys.
Elaborer une dmarche permettant dafficher le forfait le plus avantageux et le montant mensuel rgler, en euros,
en fonction du nombre de SMS envoys dans le mois.
Corrections de lexercice 8 :

TRAITEMENT ITERATIF ET BOUCLES.


Il sagit dinstructions qui permettent de rpter des instructions: on parle ditrations ou de boucles.
Il existe deux types de boucles:
Les boucles dont on connat le nombre de rptitions
Les boucles conditionnelles : on ne connat pas lavance le nombre de rptitions
On connat le nombre N ditrations

Rpter pour I allant de 1 N


Instructions
Fin Re peter Valeur suivante de I
N doit tre initialis avant le dbut de la boucle
I est une variable (appele compteur) ; elle est initialise lentre de la boucle, incrmente de 1
chaque passage Fin rpter et vaut N+1 en sortie de boucle
Dans certains langages de programmation, on peut modifier lincrment. On a alors par exemple:
Rpter pour I allant de 1 N pas 3

Instructions
Fin Re peter Valeur suivante de I

47
Avec Algobox , on a :

Exercice 9 :

Ecrire un algorithme qui permet dafficher les carrs des entiers compris entre 1 et N
Prolongement : Modifier lalgorithme pour quil calcule la somme des carrs.
Corrections de lexercice 9 :
Variables:

N est un nombre.
Carre est un nombre.
S est un nombre
I est un nombre.

Demander N.

Donner S la valeur 0.
Rpter pour I allant de 1 N.
Donner carre la valeur de I 2 .
Afficher carr.
Donner S la valeur de S + carre.
Fin Rpter.

Afficher La somme des carrs est , S.

Entre
Traitement

Sortie

Avec Algobox, on obtient :

48

Exercice 10 :
Ecrire un algorithme qui permet de calculer la somme des N premiers entiers naturels.
Sans utiliser les formules sur les suites
Corrections de lexercice 10 :

Variables:

N est un nombre.
S est un nombre
I est un nombre.

Demander N.

Donner S la valeur 0.
Rpter pour I allant de 1 N.
Donner S la valeur de S+I.
Fin Rpter.

Afficher La somme des , N, premiers entiers est :


Afficher S

Entre
Traitement

Sortie

Avec Algobox, on obtient :

49

Exercice 11 :
Ecrire un algorithme qui permet de calculer la somme (ou la moyenne) de N nombres donns par
lutilisateur.
Cela peut tre loccasion dutiliser des listes si on veut garder les nombres en mmoire.
Prolongement possible : Moyenne pondre avec cration de deux listes ou dun tableau deux dimensions.
Corrections de lexercice 11 :

Variables:

N est un nombre.
S est un nombre
NB est un nombre.
I est un nombre.

Demander N.

Donner S la valeur 0.
Rpter pour I allant de 1 N.
Demander NB.
Donner S la valeur de S + NB
Fin Rpter.

Afficher La somme est :


Afficher S

Entre
Traitement

Sortie

Avec Algobox, on obtient :

50

OPERATIONS AVEC LES LISTES.


Les listes AlgoBox sont des listes numrotes de nombres (il n'y a pas besoin de prciser le nombre d'lments de
la liste).
Si vous slectionnez pour la variable une variable du type LISTE, vous devez indiquer dans le champ rang du
terme de la liste le numro du terme de la liste auquel vous voulez affecter une valeur.
Pour utiliser un terme d'une liste dans un calcul, il faut utiliser la syntaxe suivante :
nomliste[rang]
Exemple : moy prend la valeur (maliste[1]+maliste[2]+maliste[3])/3 (la variable du type NOMBRE moy
contiendra la moyenne des trois premiers termes de la liste maliste)
Initialisation dune liste. Prolongement de lexercice 11.
Ecrire un algorithme qui demande N nombres et les met dans un tableau.
(Modification de lexercice 11: on conserve les nombres entrs) ;
Ecrire un algorithme qui permet de dterminer le maximum et le minimum dune liste de N nombres.
Le prolongement possible est par exemple un algorithme de tri.
Exercice 12 :
Ecrire un algorithme qui simule N lancers dun d et calcule la frquence dapparition du 6.
On ne connait pas le nombre ditrations.
TANT QUE
condition

instructions.
FIN TANT QUE
Le bloc instructions est rpt tant que la condition est vraie.
Remarques importantes sur la boucle TANT QUE .
La condition doit tre initialise avant le dbut de la boucle.
La condition doit tre modifie dans la boucle et doit pouvoir prendre un moment donn la valeur
FAUX car sinon la boucle est infinie (on ne sort jamais de la boucle) et le programme ne sarrte jamais.
La boucle peut ne jamais tre excute, car condition fausse ds le dpart.

51
Il peut tre intressant de faire vrifier des algorithmes avec boucles et comprenant des erreurs.
Sur Algobox, il faut activer la touche :

Exercice 13 :
Ecrire un algorithme utilisant la boucle TANT QUE3 qui simule une boucle dont on connait le nombre de
rptitions.
Cet exercice montre quon peut se contenter de la boucle conditionnelle dans les algorithmes.
Exercice 14 :

Ecrire un algorithme qui redemande un nombre tant que le nombre donn nest pas compris dans un intervalle fix.
Application :
Cet algorithme peut tre utilise pour faire tourner un algorithme tant que lon rpond OUI la question
Voulez vous recommencer ? .
Exercice 15 : Donn en terminale L.

Soit N un entier naturel non nul. On considre lalgorithme suivant :

Entre :
Initialisation :
Traitement :

Sortie :

Un entier naturel N
Donner A la valeur de N
Donner K la valeur de N.
Tant que K>2, ritrer la procdure
suivante
Donner K la valeur K 1
Donner A la valeur A K
Donner A la valeur A 1
Fin Tant que
Afficher A

1. Pour tout entier naturel N, on note AN le nombre affich en sortie de cet algorithme.
a) Calculer A1 , A2 , A2 et A4 .
b) Vrifier que A5 119.

52
c) Calculer A10 .
2. Pour chacune des propositions suivantes, dire si elle est vraie ou fausse en justifiant la rponse donne :
a) A11 est un nombre premier pour certaines valeurs de N .
b) A11 est un nombre premier pour nimporte quelle valeur de N .
c) Quel que soit lentier naturel non nul N, si N est premier, alors A11 est premier.
d) Il existe A11 premier tel que N nest pas premier .
3. Etudier la parit des nombres AN
Exercice 16 : Autre exercice donn en TL.
On considre lalgorithme suivant:
Entre :

un entier naturel N

Initialisation :

Donner U la valeur de N

Traitement :

Tant que U > = 10


Donner U la valeur de U-10
fin tant que
Donner A la valeur (N-U)/10
Donner C la valeur A (A+1) 100+25

Sortie :

Afficher C.

1. Quobtient-on en sortie si on donne en entre N la valeur 27 ? Et pour 129 ?


Que remarque-t-on?
2. Soit N un entier dont le chiffre des units est 5.
a) Faire fonctionner cet algorithme avec plusieurs entiers N et vrifier que la sortie de lalgorithme appliqu
N donne alors le carr de N.
b) Justifier ce rsultat.
3. Calculer sans calculatrice le carr de 45 et de 75.
Exercice 17 :
Division euclidienne
Ecrire un algorithme qui donne le quotient et le reste de la division euclidienne dun entier naturel a par un
entier naturel b.
Prolongement : recherche du PGCD de deux entiers naturels
Corrections de lexercice 17 :
Avec la TI 89, on a :

53
Exercice 18 :
Ecrire un algorithme qui permet dafficher la liste et la somme des diviseurs dun entier naturel N.
Exercice 19 :
Les grands parents de Julien dposent sa naissance en 2010 une somme de 1500 sur un livret dpargne.
Ce livret rapporte 2,5% par an.
En quelle anne, la somme aura-t-elle double?
Prolongements possibles:
Modifier la somme de dpart ou la mettre en donne saisir
Mettre le taux dintrt en donne saisir pour pouvoir comparer diffrents placements possibles
Exercice 20 :
Jeu du trop grand-trop petit
Ecrire un algorithme qui choisit un nombre entier alatoire et vous propose de deviner ce nombre.
Lalgorithme affichera le nombre de coups utiliss pour trouver le rsultat.

LES FONCTIONS AVEC ALGOBOX.


Tableau de valeurs et reprsentation graphique dune fonction.
Etant donne une fonction f, crire un algorithme qui permet dobtenir un tableau de valeurs de f sur un segment
[a;b] et dafficher les points de la courbe correspondants.
Cet nonc est trop gnraliste: il faut prciser par exemple la fonction

Les fonctions dans Algobox


Pour utiliser une focntion note F1 ; il faut la dfinir en dehors de lalogorithme. Pour cela :
Activer loption Utiliser une fonction dans longlet Utiliser une fonction numrqiue :

Entrer lexpression de F1(x) en fonction de x dans le champ prvue pour cela. (On peut ausisi utilser laide , en bas
, droite).

Pour utiliser l'image d'un nombre nb par la fonction F1 dans l'algorithme, il suffit d'utiliser le code : F1(nb)
Analyse du problme:
Dans un premier temps, on va demander la valeur de labscisse entire du premier point et on va faire la
table des valeurs F1 des nombres obtenus avec un pas de 1
Il faut dfinir la fonction F1

54
Variables :
A, N, I des nombres.
x, y des nombres.
Entre

: Demander A
: Demander N
Traitement :

Rpter pour I allant de 1 N


Donner x la valeur x + ( I 1 )
Donner y la valeur F1(x)
Afficher x
Afficher y
Placer le point de coordonnes (x ;y).
Fin Rpter.
Les sorties sont faites lors du traitement.

Ce qui donne avec Algobox :

55
Exercice 21 :
Tableau de valeurs et reprsentation graphique dune fonction.
Etant donne une fonction f, crire un algorithme qui permet dobtenir un tableau de valeurs de f sur un
segment [a;b] avec un pas de 0,1 et dafficher les points de la courbe correspondants.

Tracer des points et des segments dans un repre


Il faut :
Aller dans longlet "Dessiner dans un repre

activer l'option Utiliser un repre dans l'onglet


"Dessiner dans un repre
Un repre graphique est automatiquement ajout dans
la fentre de test de l'algorithme.

Les boutons Ajouter TRACER POINT et


Ajouter TRACER SEGMENT sont alors activs
et peuvent tre inclus dans le code de l'algorithme
des instructions pour tracer des points et des
segments dans ce repre

56

Ajouter TRACER POINT

Si on clique sur ce bouton, la fentre suivante apparat

Ajouter TRACER SEGMENT

Si on clique sur ce bouton, la fentre suivante apparat

57
Prolongements:
Tableau de valeurs et reprsentation graphique dune fonction.
a) Le pas est choisi par lutilisateur
b)Ecrire un algorithme permettant dencadrer, avec une prcision donne, la valeur qui annule une fonction
continue et strictement monotone sur un segment [a;b]: mthode du balayage.
Exercice 22 :
On jette un d autant de fois quil faut pour obtenir un 6
Ecrire un algorithme qui compte le nombre de lancers ncessaires pour obtenir un 6 pour la premire fois.
Prolongement:
Adapter lalgorithme prcdent afin de calculer le nombre moyen de lancers pour obtenir un premier 6
Autre exercice du mme type :
Etude du lancer de deux ds et de la somme obtenue
On veut tudier le nombre de lancers ncessaires pour obtenir une somme donne
Exercice 23 :
Marche alatoire sur une droite

Une puce se dplace sur un axe gradu : elle part de lorigine et, chaque saut, elle se dplace d'une unit vers la
droite ou vers la gauche, de manire alatoire.
Pour choisir le sens (gauche, droite) de chaque saut, on lance une pice de monnaie quilibre : si l'on obtient PILE
(cod P) la puce se dplace gauche, si l'on obtient FACE (cod F) la puce part droite.
Ecrire un algorithme qui permette de simuler N promenades de 4 sauts et de dnombrer le nombre de promenades
qui se terminent la distance 0, 2 ou 4 de lorigine.
Exercice 24 :
Un exemple de TP
Passage en caisse
PREMIERE PARTIE
Lors du passage la caisse, on veut calculer le total payer, les prix des articles sont rentrs un par un.

On veut faire l'addition des nombres rentrs dans la machine.


Chaque prix saisi est suivi de la touche entre (on ne se sert pas de la touche "+").
Pour signaler que la saisie est termine, on rentre le nombre zro.
La machine doit fournir alors le total payer.
Rdiger un algorithme qui permettra ce travail
DEUXIEME PARTIE
Nombre d'articles, prix moyen

Complter l'algorithme prcdent pour quil donne en plus le nombre d'articles achets et le prix moyen dun
article.
TROISIEME PARTIE
Le magasin fte son anniversaire: offre promotionnelle! Pendant la dure de la journe anniversaire, le
magasin offre une remise de 15% sur l'article le plus cher.

Complter l'algorithme prcdent de faon ce quil calcule et affiche la rduction ainsi que le nouveau total
payer.

58
Exercice complmentaire
Pour manipuler les chanes de caractres
Ecrire un algorithme qui teste si un mot ou une phrase est un palindrome
Exercice 25 :

Parit dun nombre entier positif :


Structure de lalgorithme :
Si n a pour reste 0 dans la division par 2 alors
Afficher nombre pair
Sinon
Afficher nombre impair
FinSi
Ce qui donne avec Algobox :

Exercice 26 :

Algorithme donnant le rsultat en augmentant de 4 % un certain montant M en euros, pour rappel le rsultat est
4

alors M 1
M 1, 04 .
100
Par exemple, on dpose sur un livret un montant M et il augment chaque anne de 4 %. On veut connaitre le
montant obtenu au bout de 10 ans.
On rpte pour cela 10 fois de suite laugmentation de 4 %, et on obtient lalgorithme suivant :
Variables :
M, I des nombres.
Entre

: Demander M
Traitement :

Sortie :

Pour I allant de 1 10 faire


M prend la valeur M*1,04
Pour.
Afficher M.

59
Avec Algobox , on a :

Exercice 27 :

Programmer les puissances de 2 successives, sans utiliser la fonction puissance.

60
Exercice 28 :
Valeur absolue dun nombre

Exercice 29 :

Equations du second degr dans lensemble des nombres rels, cest--dire sans les solutions complexes.

61
Exercice 30:
Le calcul dune somme, par exemple le calcul de la somme des 100 premiers inverses des entiers naturels.

Exercice 31:

Calcul itratif, le nombre de boucles tant donn.

62
Exercice 32 :
La suite de Fibonacci, sans le dire, uniquement pour faire une boucle avec un arrt conditionnel .
Mathmaticien italien, n et mort Pise. Connu aussi sous le nom de Lonard de Pise, Leonardo Fibonacci fut duqu en
Afrique du Nord, o son pre, marchand de la ville de Pise (l'un des plus grands centres commerciaux d'Italie, l'poque, au
mme rang que Venise et Gnes), dirigeait une sorte de comptoir ; c'est ainsi qu'il eut l'occasion d'tudier les travaux
algbriques d'al-Khuwarizmi. Par la suite, Fibonacci voyagea dans tout le monde mditerranen, rencontrant de nombreux
scientifiques et prenant connaissance des diffrents systmes de calcul en usage chez les marchands de l'poque. De toutes les
mthodes de calcul, il jugea celle des Arabes la plus avance. Aussi, de retour Pise, il publie en 1202 un ouvrage, Liber
abbaci, o, le comparant au systme romain, il expose le systme de numration indo-arabe. Il est le premier grand
mathmaticien l'adopter et le vulgariser auprs des scientifiques. Son ouvrage contient galement la plupart des rsultats
connus des Arabes en algbre et en arithmtique (racines carres, racines cubiques, quations du premier et du second degr).
En 1220, il publie Practica geometriae, qui recense toutes les connaissances de l'poque en gomtrie et en trigonomtrie
(crits d'Euclide et des autres mathmaticiens grecs, transmis par des manuscrits arabes ou traduits par des Italiens) ; en
particulier, l'ouvrage contient la formule de Hron donnant l'aire du triangle en fonction des longueurs des trois cts. Mais
Fibonacci ne se contenta pas de faire connatre les travaux des Anciens et d'tre l'origine de la renaissance des tudes
mathmatiques en Occident, il poursuivit aussi ses propres travaux. Sa rputation scientifique tait telle que l'empereur
Frdric II s'arrta Pise pour le voir et lui poser des colles (cette sorte de comptition entre scientifiques devait se
dvelopper au XVIe et au XVIIe sicle). La rsolution de ces problmes (les plus clbres tant : trouver un nombre x tel que
x2 + 5 et x2 - 5 soient tous deux des carrs ; rsoudre l'quation du troisime degr x3 + 2 x2 + 10 x = 20) ainsi que la
rsolution d'autres problmes de mme nature sont contenues dans Liber quadratorum (1225). Notons enfin que Fibonacci est
l'origine d'une suite rcurrente qui porte son nom, suite dont les deux premiers termes sont 0 et 1 et dont le terme d'ordre
n + 1 est gal la somme des deux termes d'ordre n et n - 1 pour tout n suprieur ou gal 2.

63
Exercice 33 :
Les variables sont des tiroirs dans lesquels on range des nombres. Il faut suivre a, b et c.

Exercice 34:

Suite gomtrique de raison 4/3, en premire :

64
Exercice 35 :
f
Gestion de la valeur interdite de la fonction x

1
x3

Vous aimerez peut-être aussi