2de7 - Algorithmique 1 (Fonctions et Calculs) - ´
Enonc´
e
AlgoBox est un logiciel d’aide `a l’´elaboration et `a l’ex´ecution d’algorithmes.
Pour le t´el´echarger, aller sur : http://www.xm1math.net/algobox
1. Pr´esentation du logiciel
De haut en bas de l’´ecran se trouvent :
Une fenˆetre 1 : «Pr´esentation de l’algorithme »qui pr´esente une description du code de l’utilisateur
Une fenˆetre 2 : «Code de l’algorithme »qui pr´esente la liste de toutes les instructions qui composent
l’algorithme.
Une fenˆetre 3 : «Menu »compos´ee de trois onglets (a), (b) et (c) dans lesquels on trouvera l’ensemble
des commandes et instructions qui composeront l’algorithme.
Une fenˆetre 4 : «Edition et ex´ecution »de l’algorithme
Dans toute la suite, on indique entre parenth`eses et en bout de ligne le num´ero de la fenˆetre dans
laquelle se trouve la commande utilis´ee.
Lyc´ee Albert Calmette, Nice 1/8
2. Quelques exemples
2.1 Acher un message
«Hello world »sont les mots traditionnellement ´ecrits par un programme informatique simple dont le
but est de faire la d´emonstration d’un langage de programmation.
Cliquer sur le bouton :
(4)
Une nouvelle ligne apparaˆıt dans la fenˆetre 2.
Cliquer alors sur :
(3a)
puis taper le texte «Hello world »dans le champ de saisie et valider.
Cliquer ensuite sur :
(3a)
Une nouvelle fenˆetre apparait qui r´esume le code complet de l’algorithme et une fenˆetre «R´esultat ».
Pour tester l’algorithme, cliquer sur le bouton :
et observer le r´esultat.
2.2 Poser une question et acher une r´eponse
Dans cet exemple on demande `a l’utilisateur de saisir son pr´enom puis on ache un message de
bienvenue. Cliquer sur l’ic ˆone «Nouveau »sans enregistrer le travail pr´ec´edent.
Cliquer sur :
(3a)
Dans le champ «Nom de la variable », saisir pr´
enom. Choisir ensuite «CHAINE »comme type de
variable. Cela signifie que la variable pr´
enom est une donn´ee de type «texte ».
D´eclarer ensuite une autre variable message de type «CHAINE ».
Ins´erer ensuite une nouvelle ligne, puis cliquer sur :
2/8
Il n’y a aucune modification `a faire dans cette boˆıte de dialogue. C’est la valeur de la variable pr´
enom
qui sera demand´ee `a l’utilisateur. Valider.
Ins´erer une nouvelle ligne, puis cliquer sur :
(3a)
Param´etrer le champ de la fenˆetre de fac¸on `a ce que la variable message prenne la valeur :
"bonjour "+prenom
puis valider. On dit que l’on a concat´en´e les deux chaˆınes (via l’op´eration +).
Pour terminer, ins´erer une nouvelle ligne puis cliquer sur :
(3a)
S´el´ectionner la variable message au niveau du champ «Acher la variable ».
Ex´ecuter cet algorithme et observer le r´esultat.
2.3 Eectuer un calcul
Dans cet exemple, on demande `a l’utilisateur de saisir son ann´ee de naissance puis on retourne son ˆage
(en ann´ees).
D´eclarer les variables naissance et age de type «NOMBRE »puis programmer une boˆıte de dialogue
demandant l’ann´ee de naissance `a l’utilisateur.
Ins´erer une nouvelle ligne, puis cliquer sur :
(3a)
Param´etrer le champ de la fenˆetre de fac¸on `a ce que la variable age prenne la valeur :
2009-naissance
Acher ensuite l’ˆage de l’utilisateur
Am´eliorer la r´eponse en achant «Cette ann´ee, votre ˆage est de ... ans ».
Remarque : on peut concat´ener une chaˆıne `a un nombre bien que leur type soit di´erent.
Lyc´ee Albert Calmette, Nice 3/8
2.4 Structure it´erative : la boucle
Dans cet exemple, on ache la liste des dix premiers entiers naturels, en partant de 1.
D´eclarer une variable nde type «NOMBRE ».
Ins´erer une nouvelle ligne, puis cliquer sur :
(3a)
Param´etrer le champ de la fenˆetre de fac¸on `a ce que la variable nvarie de 1 `a 10.
Dans la fenˆetre 2, deux balises apparaissent : «DEBUT POUR »et «FIN POUR »ainsi qu’une ligne
vide entre les deux.
Dans la ligne vide, faire acher la variable n, en cochant l’option «Ajouter un retour `a la ligne »
Ex´ecuter cet algorithme et observer le r´esultat.
2.5 Modifier une variable
Dans cet exemple, on ache les dix premiers nombres pairs.
Cr´eer deux variables net pde type «NOMBRE ».
Aecter 0 `a la variable p.
Programmer une boucle qui fait varier nde 1 `a 10.
Dans cette boucle, faire acher la variable p(avec un saut `a la ligne)
Dans cette mˆeme boucle, ins´erer une nouvelle ligne puis choisir :
(3a)
Param´etrer le champ de la fenˆetre de fac¸on `a ce que la variable pprenne la valeur p+2
Ex´ecuter cet algorithme et observer le r´esultat.
2.6 Structure de test
Dans cet exemple, on demande `a l’utilisateur de saisir son ˆage. S’il a au moins 18 ans, on ache «Vous
ˆetes majeur », sinon «Vous ˆetes mineur ».
Cr´eer une variable age de type «NOMBRE ».
4/8
Demander `a l’utilisateur de saisir son ˆage et r´ecup´erer la r´eponse dans la variable age
Ins´erer une nouvelle ligne puis cliquer sur :
(3a)
Param´etrer le champ de la fenˆetre en saisissant la condition :
age>=18
puis cocher la case «Ajouter SINON »et valider. Dans la fenˆetre 2, plusieurs balises apparaissent :
«DEBUT SI »,«FIN SI »,«DEBUT SINON »et «FIN SINON », ainsi que deux lignes vides.
Dans la premi`ere ligne vide (balise SI), faire acher «Vous ˆetes majeur ». Pour cela, cliquer sur :
(3a)
puis saisir le texte.
Dans la deuxi`eme ligne (balise SINON), faire acher «Vous ˆetes mineur ».
Ex´ecuter cet algorithme et observer le r´esultat.
2.7 Structure it´erative : la r´ep´etition
Dans cet exemple, on simule plusieurs lancers d’un d´e `a 6 faces et on arrˆete le processus d`es que l’on
obtient la face 6.
Cr´eer une variable nde type «NOMBRE ».
Sous Algobox, la fonction floor retourne la partie enti`ere d’un nombre.
Par exemple floor(5.73) retourne 5.
La fonction random() retourne un nombre d´ecimal «au hasard »dans l’intervalle [0 ;1[.
Aecter `a nla valeur 1+floor(random()6). Quelles sont les valeurs possibles de n?
Acher la valeur de n(avec un retour `a la ligne)
Ins´erer une nouvelle ligne, puis cliquer sur :
(3a)
Lyc´ee Albert Calmette, Nice 5/8
Param´etrer le champ de la fenˆetre en saisissant la condition :
n !=6
Dans la fenˆetre 2, deux balises apparaissent : «DEBUT TANT QUE »et «FIN TANT QUE ». Entre
ces deux balises, programmer un nouveau calcul de n(mˆeme ligne de commande que la pr´ec´edente,
pourquoi ?) ainsi qu’un achage de n.
Ex´ecuter cet algorithme et observer le r´esultat.
3. Exercices
Exercice 1. Programmer une fonction fc’est demander `a l’utilisateur de saisir la valeur de la variable
r´eelle xet acher f(x).
1/Programmer les fonctions suivantes :
f(x)=3x1f(x)=x2+x+1f(x)=3x1
x1
2/Tester l’algorithme en calculant f(0)et f(1)dans chacun des trois cas.
Exercice 2. ´
Ecrire un algorithme qui demande `a un utilisateur le prix hors taxe d’un article et qui
retourne le prix TTC (TVA `a 19,6%).
Tester cet algorithme en calculant le prix TTC d’un article qui co ˆute 10 eHT.
Exercice 3. (Brevet 2008). ´
Ecrire le programme de calcul suivant :
Choisir un nombre
a) Multiplier ce nombre par 3
b) Ajouter le carr´e du nombre choisi
c) Multiplier par 2
´
Ecrire le r´esultat
Tester cet algorithme en choisissant 0 puis 3 comme nombre de d´epart.
6/8
Exercice 4. Alex souhaite vendre un objet sur Ebay. Si son objet se vend, il devra payer des frais de
vente pour son annonce.
Prix de l’article Frais Ebay
Entre 0 et 50 e6,5% du prix final
Entre 50 et 500 e4,5% ×prix final 50+3,25 e
Plus de 500 e2,5% ×prix final 500+23,50 e
1/´
Ecrire un algorithme qui demande `a Alex le prix de vente de son objet et qui retourne le montant des
frais qu’il devra payer `a Ebay.
2/Quels seront les frais si le prix final de l’article est de 30 e? 50 e? 500 e? 1 000 e?
Exercice 5. Programmer le calcul de la somme 1 +2+3+···+2 009 +2 010 `a l’aide d’une boucle.
M´ethode :
Cr´eer une variable sde type «nombre »et initialiser sa valeur `a z´ero.
Cr´eer une boucle dans laquelle on augmentera autant de fois que n´ecessaire sd’une quantit´e judi-
cieusement choisie pour obtenir le r´esultat attendu.
Exercice 6. Sous Algobox (comme pour beaucoup d’autres langages), la fonction sqrt retourne la
racine carr´ee d’un nombre r´eel positif. On rappelle que la fonction floor retourne la partie enti`ere d’un
nombre. Dans le programme ci-dessous, remplacer les deux instructions «AFFICHER -------- »par
un achage plus explicite.
On pourra tester cet algorithme avec les valeurs enti`eres de Nsuivantes : 0,2,4,7,9,16,25 et 100.
Lyc´ee Albert Calmette, Nice 7/8
Exercice 7. (Rallye math´ematique 3e).
«Je suis un nombre entier de quatre chires. Si on ajoute 304 ou 405 `a ce nombre, le r´esultat est un carr´e
parfait ! ». Quel est ce nombre ?
M´ethode :
Cr´eer une variable Nde type «nombre »qui varie de 1000 `a 9999
S’inspirer de l’exercice pr´ec´edent
Une condition SI peut contenir plusieurs contraintes. Il sut de les ´ecrire les unes `a la suite des
autres en ajoutant entre elles l’instruction ET
Exercice 8. Reprendre l’exemple 2.7 de la page 5 et compl´eter l’algorithme de fac¸on `a retourner le
nombre de lancers qu’il a fallu simuler pour obtenir la face 6.
Exercice 9. Le math´ematicien grec Euclide (3esi`ecle av. JC) a propos´e une m´ethode pour calculer le
PGCD (Plus Grand Commun Diviseur) de Aet de B, deux entiers. Cet algorithme est le suivant :
Calculer le reste de la division enti`ere de Apar B
Si ce reste est nul, le PGCD est ´egal `a B, et c’est fini.
Si ce reste n’est pas nul, faire prendre `a Ala valeur de Bet `a Bla valeur du reste, puis recommencer
le processus.
1/Calculer «`a la main »le PGCD de 12 et 40 puis celui de 60 et 13.
2/Programmer l’algorithme d’Euclide avec Algobox.
Remarque : la fonction qui permet de calculer le reste dans la division euclidienne de Apar Best A%B.
Exercice 10. Un commerc¸ant d´esire calculer son chire d’aaire quotidien, ainsi que le nombre de ventes
d’un montant sup´erieur ou ´egal `a 100 e.´
Ecrire un algorithme qui :
permet la saisie successive des montants des di´erentes ventes r´ealis´ees par le commerc¸ant.
Cette saisie s’arrˆetera lorsqu’il donne un montant ´egal `a 0.
ache :
le chire d’aaire r´ealis´e (la somme des di´erents montants saisis)
le nombre de ventes r´ealis´ees (le nombre de montants saisis sans compter le 0)
le nombre de ventes r´ealis´ees dont le montant est sup´erieur ou ´egal `a 100 e.
8/8
1 / 4 100%