2de7-Algorithmique 1 (Fonctions et Calculs)

publicité
2de7 - Algorithmique 1 (Fonctions et Calculs) - Énoncé
2. Quelques exemples
2.1 Afficher un message
AlgoBox est un logiciel d’aide à l’élaboration et à l’exécution d’algorithmes.
« Hello world » sont les mots traditionnellement écrits par un programme informatique simple dont le
Pour le télécharger, aller sur : http://www.xm1math.net/algobox
but est de faire la démonstration d’un langage de programmation.
• Cliquer sur le bouton :
1. Présentation du logiciel
(4)
De haut en bas de l’écran se trouvent :
• Une fenêtre 1 : « Présentation de l’algorithme » qui présente une description du code de l’utilisateur
• Une fenêtre 2 : « Code de l’algorithme » qui présente la liste de toutes les instructions qui composent
Une nouvelle ligne apparaı̂t dans la fenêtre 2.
• Cliquer alors sur :
(3a)
l’algorithme.
• Une fenêtre 3 : « Menu » composée de trois onglets (a), (b) et (c) dans lesquels on trouvera l’ensemble
des commandes et instructions qui composeront l’algorithme.
puis taper le texte « Hello world » dans le champ de saisie et valider.
• Cliquer ensuite sur :
• Une fenêtre 4 : « Edition et exécution » de l’algorithme
(3a)
Une nouvelle fenêtre apparait qui résume le code complet de l’algorithme et une fenêtre « Résultat ».
• Pour tester l’algorithme, cliquer sur le bouton :
et observer le résultat.
2.2 Poser une question et afficher une réponse
Dans cet exemple on demande à l’utilisateur de saisir son prénom puis on affiche un message de
bienvenue. Cliquer sur l’icône « Nouveau » sans enregistrer le travail précédent.
• Cliquer sur :
(3a)
Dans le champ « Nom de la variable », saisir prénom. Choisir ensuite « CHAINE » comme type de
variable. Cela signifie que la variable prénom est une donnée de type « texte ».
• Déclarer ensuite une autre variable message de type « CHAINE ».
Dans toute la suite, on indique entre parenthèses et en bout de ligne le numéro de la fenêtre dans
• Insérer ensuite une nouvelle ligne, puis cliquer sur :
laquelle se trouve la commande utilisée.
Lycée Albert Calmette, Nice
1/8
2/8
Il n’y a aucune modification à faire dans cette boı̂te de dialogue. C’est la valeur de la variable prénom
2.4 Structure itérative : la boucle
qui sera demandée à l’utilisateur. Valider.
Dans cet exemple, on affiche la liste des dix premiers entiers naturels, en partant de 1.
• Insérer une nouvelle ligne, puis cliquer sur :
• Déclarer une variable n de type « NOMBRE ».
• Insérer une nouvelle ligne, puis cliquer sur :
(3a)
(3a)
Paramétrer le champ de la fenêtre de façon à ce que la variable message prenne la valeur :
"bonjour "+prenom
Paramétrer le champ de la fenêtre de façon à ce que la variable n varie de 1 à 10.
puis valider. On dit que l’on a concaténé les deux chaı̂nes (via l’opération +).
Dans la fenêtre 2, deux balises apparaissent : « DEBUT POUR » et « FIN POUR » ainsi qu’une ligne
• Pour terminer, insérer une nouvelle ligne puis cliquer sur :
vide entre les deux.
• Dans la ligne vide, faire afficher la variable n, en cochant l’option « Ajouter un retour à la ligne »
(3a)
Séléctionner la variable message au niveau du champ « Afficher la variable ».
• Exécuter cet algorithme et observer le résultat.
2.5 Modifier une variable
• Exécuter cet algorithme et observer le résultat.
Dans cet exemple, on affiche les dix premiers nombres pairs.
• Créer deux variables n et p de type « NOMBRE ».
2.3 Effectuer un calcul
• Affecter 0 à la variable p.
Dans cet exemple, on demande à l’utilisateur de saisir son année de naissance puis on retourne son âge
(en années).
• Programmer une boucle qui fait varier n de 1 à 10.
• Dans cette boucle, faire afficher la variable p (avec un saut à la ligne)
• Déclarer les variables naissance et age de type « NOMBRE » puis programmer une boı̂te de dialogue
• Dans cette même boucle, insérer une nouvelle ligne puis choisir :
demandant l’année de naissance à l’utilisateur.
• Insérer une nouvelle ligne, puis cliquer sur :
(3a)
(3a)
Paramétrer le champ de la fenêtre de façon à ce que la variable p prenne la valeur p+2
• Exécuter cet algorithme et observer le résultat.
Paramétrer le champ de la fenêtre de façon à ce que la variable age prenne la valeur :
2009-naissance
2.6 Structure de test
• Afficher ensuite l’âge de l’utilisateur
Dans cet exemple, on demande à l’utilisateur de saisir son âge. S’il a au moins 18 ans, on affiche « Vous
• Améliorer la réponse en affichant « Cette année, votre âge est de ... ans ».
êtes majeur », sinon « Vous êtes mineur ».
Remarque : on peut concaténer une chaı̂ne à un nombre bien que leur type soit différent.
Lycée Albert Calmette, Nice
3/8
• Créer une variable age de type « NOMBRE ».
4/8
• Demander à l’utilisateur de saisir son âge et récupérer la réponse dans la variable age
Paramétrer le champ de la fenêtre en saisissant la condition :
• Insérer une nouvelle ligne puis cliquer sur :
n !=6
• Dans la fenêtre 2, deux balises apparaissent : « DEBUT TANT QUE » et « FIN TANT QUE ». Entre
(3a)
ces deux balises, programmer un nouveau calcul de n (même ligne de commande que la précédente,
pourquoi ?) ainsi qu’un affichage de n.
Paramétrer le champ de la fenêtre en saisissant la condition :
• Exécuter cet algorithme et observer le résultat.
age>=18
puis cocher la case « Ajouter SINON » et valider. Dans la fenêtre 2, plusieurs balises apparaissent :
3. Exercices
« DEBUT SI », « FIN SI », « DEBUT SINON » et « FIN SINON », ainsi que deux lignes vides.
Exercice 1. Programmer une fonction f c’est demander à l’utilisateur de saisir la valeur de la variable
• Dans la première ligne vide (balise SI), faire afficher « Vous êtes majeur ». Pour cela, cliquer sur :
réelle x et afficher f (x).
1/ Programmer les fonctions suivantes :
(3a)
f (x) = x2 + x + 1
f (x) = 3x − 1
puis saisir le texte.
f (x) =
2/ Tester l’algorithme en calculant f (0) et f (1) dans chacun des trois cas.
• Dans la deuxième ligne (balise SINON), faire afficher « Vous êtes mineur ».
Exercice 2. Écrire un algorithme qui demande à un utilisateur le prix hors taxe d’un article et qui
• Exécuter cet algorithme et observer le résultat.
retourne le prix TTC (TVA à 19,6%).
Tester cet algorithme en calculant le prix TTC d’un article qui coûte 10 e HT.
2.7 Structure itérative : la répétition
Exercice 3. (Brevet 2008). Écrire le programme de calcul suivant :
Dans cet exemple, on simule plusieurs lancers d’un dé à 6 faces et on arrête le processus dès que l’on
obtient la face 6.
Choisir un nombre
a) Multiplier ce nombre par 3
• Créer une variable n de type « NOMBRE ».
b) Ajouter le carré du nombre choisi
• Sous Algobox, la fonction floor retourne la partie entière d’un nombre.
c) Multiplier par 2
Écrire le résultat
Par exemple floor(5.73) retourne 5.
La fonction random() retourne un nombre décimal « au hasard » dans l’intervalle [0 ;1[.
Tester cet algorithme en choisissant 0 puis −3 comme nombre de départ.
Affecter à n la valeur 1+floor(random()∗6). Quelles sont les valeurs possibles de n ?
• Afficher la valeur de n (avec un retour à la ligne)
• Insérer une nouvelle ligne, puis cliquer sur :
(3a)
Lycée Albert Calmette, Nice
3x − 1
x−1
5/8
6/8
Exercice 4. Alex souhaite vendre un objet sur Ebay. Si son objet se vend, il devra payer des frais de
Exercice 7. (Rallye mathématique 3e ).
vente pour son annonce.
« Je suis un nombre entier de quatre chiffres. Si on ajoute 304 ou 405 à ce nombre, le résultat est un carré
Prix de l’article
Frais Ebay
Entre 0 et 50 e
6, 5% du prix final
4, 5% × prix final − 50 + 3, 25 e
2, 5% × prix final − 500 + 23, 50 e
Entre 50 et 500 e
Plus de 500 e
parfait ! ». Quel est ce nombre ?
Méthode :
• Créer une variable N de type « nombre » qui varie de 1000 à 9999
• S’inspirer de l’exercice précédent
• Une condition SI peut contenir plusieurs contraintes. Il suffit de les écrire les unes à la suite des
1/ Écrire un algorithme qui demande à Alex le prix de vente de son objet et qui retourne le montant des
autres en ajoutant entre elles l’instruction ET
frais qu’il devra payer à 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 8. Reprendre l’exemple 2.7 de la page 5 et compléter l’algorithme de façon à retourner le
nombre de lancers qu’il a fallu simuler pour obtenir la face 6.
Exercice 5. Programmer le calcul de la somme 1 + 2 + 3 + · · · + 2 009 + 2 010 à l’aide d’une boucle.
Exercice 9. Le mathématicien grec Euclide (3e siècle av. JC) a proposé une méthode pour calculer le
Méthode :
• Créer une variable s de type « nombre » et initialiser sa valeur à zéro.
• Créer une boucle dans laquelle on augmentera autant de fois que nécessaire s d’une quantité judicieusement choisie pour obtenir le résultat attendu.
PGCD (Plus Grand Commun Diviseur) de A et de B, deux entiers. Cet algorithme est le suivant :
• Calculer le reste de la division entière de A par B
• Si ce reste est nul, le PGCD est égal à B, et c’est fini.
• Si ce reste n’est pas nul, faire prendre à A la valeur de B et à B la valeur du reste, puis recommencer
Exercice 6. Sous Algobox (comme pour beaucoup d’autres langages), la fonction sqrt retourne la
le processus.
racine carrée d’un nombre réel positif. On rappelle que la fonction floor retourne la partie entière d’un
nombre. Dans le programme ci-dessous, remplacer les deux instructions « AFFICHER -------- » par
1/ Calculer « à la main » le PGCD de 12 et 40 puis celui de 60 et 13.
2/ Programmer l’algorithme d’Euclide avec Algobox.
un affichage plus explicite.
Remarque : la fonction qui permet de calculer le reste dans la division euclidienne de A par B est A%B.
Exercice 10. Un commerçant désire calculer son chiffre d’affaire quotidien, ainsi que le nombre de ventes
d’un montant supérieur ou égal à 100 e. Écrire un algorithme qui :
• permet la saisie successive des montants des différentes ventes réalisées par le commerçant.
Cette saisie s’arrêtera lorsqu’il donne un montant égal à 0.
• affiche :
– le chiffre d’affaire réalisé (la somme des différents montants saisis)
– le nombre de ventes réalisées (le nombre de montants saisis sans compter le 0)
– le nombre de ventes réalisées dont le montant est supérieur ou égal à 100 e.
On pourra tester cet algorithme avec les valeurs entières de N suivantes : 0, 2, 4, 7, 9, 16, 25 et 100.
Lycée Albert Calmette, Nice
7/8
8/8
Téléchargement