• Aucun résultat trouvé

Instruction conditionnelle

N/A
N/A
Protected

Academic year: 2022

Partager "Instruction conditionnelle "

Copied!
8
0
0

Texte intégral

(1)

Algorithmique

Source : Yvan Monka – Académie de Strasbourg – www.maths-et-tiques.fr

Un algorithme est une suite d'instructions permettant de donner la réponse à un problème.

Il comprend :

- une entrée : phase d'initialisation c’est à dire de saisie des données ; - une phase de traitement de ces données ;

- une sortie : énoncé des résultats.

Il peut se présenter sous différentes formes : les instructions peuvent être données en langage naturel, sous forme codée avec des conventions, sous forme d'un organigramme, d'un programme ....

On appelle variable tout emplacement de la mémoire de l’ordinateur dans lequel on stocke une information qui peut être changée par la suite.

Une variable est donc constituée :

- d'un nom, qui permet de reconnaitre où elle se situe dans la mémoire

- d'une valeur, sous forme d'un nombre ou plus généralement d'une information stockée.

Affectation

Exemple préliminaire

Instructions sous forme codée Instructions en langage naturel Variables : A , B

Début A ← 1 B ← A + 3 A ← 3 Fin

...

...

...

A l'issue de cet algorithme, quelle est la valeur stockée dans A ? ... dans B ? ...

Savoir lire Variables : A , B Début

A ← 5 B ← A + 4 A ← A + 1 B ← A - 4 Fin

La valeur de A est : ...

La valeur de B est : ...

Variables : A , B Début

A ← 12 B ← 20 A ← A - B B ← A + B A ← A - B Fin

La valeur de A est : ...

La valeur de B est : ...

Variables : A , B , C Début

A ← 5 B ← 3 C ← A + B A ← 2 C ← B - A Fin

La valeur de A est : ...

La valeur de B est : ...

La valeur de C est : ...

Traduction en langage Python (deux méthodes) Instructions langage Python Explications

On crée une fonction qui effectue toutes instructions suivantes pour X On affecte à X la valeur de X+1

On affecte à X la valeur de 3*X

Le programme affiche la dernière valeur de X

Instructions langage Python Explications

Le programme s’arrête et demande d’entrer une valeur pour X On affecte à X la valeur de X+1

On affecte à X la valeur de 3*X

Le programme affiche la dernière valeur de X

(2)

Savoir écrire Exercice A1 :

On affecte à A la valeur 5 On affecte à B la valeur 2 On affecte à A la valeur A + B On affecte à B la valeur A - B Afficher A

Afficher B

Exercice A2 :

Entrer une valeur pour X On affecte à X la valeur de X + 7 On affecte à X la valeur de X - 8 Afficher X

Que fait cet algorithme ?

Exercice A3 : Ecrire un algorithme qui lorsqu'on entre une valeur renvoit le carré de cette valeur.

Exercice A4 : Ecrire un algorithme permettant d'échanger les valeurs de deux variables A et B .

Exercice A5 :

Voici un algorithme écrit en langage naturel :

Ce même algorithme peut se traduire en langage de programmation Python :

1) Quelle valeur obtient-on en sortie ? Vérifier en saisissant le programme.

2) Modifier le programme en affectant à A la valeur 4 et en affichant également la valeur de B en sortie. Tester le programme et noter la valeur obtenue en sortie.

3) Modifier la première ligne du programme pour obtenir C = 25 en sortie.

Exercice A6 :

1) a) Saisir le programme Python ci-contre.

b) Depuis la console, saisir calculs(0). Qu’obtient-on en sortie ? c) Donner une interprétation des résultats obtenus en sortie.

2) a) À l’aide du programme, calculer les images de f (x) = x2 − 5 et g(x) = −3x2+ 8x + 7 pour toutes les valeurs entières de x de 1 à 10.

b) Existe-t-il une valeur de x pour laquelle f (x) = g(x) ? Exercice A7 :

Ecrire un programme où l'on saisit deux nombres entiers naturels au départ et où l'on obtient le quotient et le reste de la division euclidienne de ces deux nombres en sortie.

Affecter à A la valeur 2 Affecter à B la valeur 2 x A Affecter à C la valeur B2 Afficher C

(3)

Chapitre Pourcentages

Exercice B1 :

Un commerçant accorde une remise sur des articles. On souhaite connaître le montant de la remise en euros. Voici un algorithme donnant la solution au problème.

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 l’algorithme pour afficher également le prix à payer B.

4) a) Calculer la valeur des variables R et B avec A =159 et P=24.

b) Donne une interprétation concrète des résultats précédents.

5) Programmer l’algorithme en langage Python et retrouver les résultats précédents.

Exercice B2 :

Rédiger un algorithme permettant de retrouver le prix de départ en connaissant le prix final et pourcentage de remise.

Exercice B3 :

Rédiger un algorithme permettant de calculer le pourcentage de réduction d’un article en connaissant le prix de départ et le prix final.

Chapitre Repérage

Exercice C1 :

Ecrire un programme qui affiche les coordonnées du milieu d’un segment [AB] connaissant les coordonnées des points A et de B.

Exercice C2 :

Ecrire un programme qui affiche la longueur d’un segment [AB] connaissant les coordonnées des points A et de B.

Saisir le prix de départ A

Saisir le pourcentage de remise P

Affecter au montant de la remise R la valeur 𝐴 × !""!

Afficher R

(4)

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 :

Exemple Cas général Instructions langage Python

Si c'est un garçon

Alors il s'appellera Paul Sinon

Elle s'appellera Paulette Fin Si

Si Condition

Alors Instructions 1 Sinon

Instructions 2 Fin SI

Exercice D1 : On considère l'algorithme suivant

Algorithme en langage naturel Algorithme Python Entrée

Saisir A Saisir B

Traitement des données Si 3A<B

Alors

Affecter à A la valeur 3A Sinon

Affecter à B la valeur 3B Fin

Sortie

Afficher A+B

Faire fonctionner l'algorithme (à la main) et compléter le tableau :

Entrée A 2 7 -3 10 12

Entrée B 15 15 7 30 7

Inégalité vérifiée ? Sortie A

Sortie B Sortie A+B

Vérifier les solutions en programmant l'algorithme sur Edupython.

Exercice D2 :

Comment vérifie-t-on si un triangle est rectangle à l'aide des trois longueurs ? Ecrire l'algorithme en langage naturel puis en Python.

(5)

Exercice D3 :

1) Expliquer le principe de l’algorithme ci-dessus. Que permet-il de faire ? 2) Quelles valeurs obtient-on pour b et c lorsqu'on saisit a = 182 au départ ? Qu'affiche l'algorithme en sortie dans ce cas.

3) a) Modifier le programme dans le but de vérifier si un nombre est divisible par 29.

b) Les nombres suivants sont-ils divisibles par 29 ? 565 – 6785 – 646 195 034 – 1 970 659 794 Exercice D4 :

Ecrire un programme permettant de vérifier si un nombre donné est divisible par 13 en effectuant un test sur le reste de la division de ce nombre par 13.

Exercice D5 :

Dans le programme ci-contre, les affichages en sortie de l'algorithme ont été supprimes.

1) Quel problème permet de résoudre cet algorithme ? 2) Compléter le programme par les affichages en sortie manquants.

3) Tester ce programme pour différentes valeurs de a et b.

Exercice D6 :

Ecrire et tester un programme qui demande en entrée à un client le montant total de ses achats.

En fonction de la somme dépensée, le programme affiche en sortie le prix à payer : - Si la somme dépensée est strictement inferieure à 75 €, il obtient 5 % de remise.

- Si la somme dépensée est supérieure à 75 €, il obtient 8 % de remise.

Exercice D7 :

Durant tout le week-end, un site marchand propose une promotion pour toute commande d'un montant minimum de 20€.

Si le montant de la commande est : - strictement inférieur 100€, une remise de 10€ est offerte;

- entre 100€ compris et 200€

non compris, une remise de 25% est offerte;

- supérieur ou égal à 200€, une remise de 20% est offerte.

a) Calculer le prix à payer pour une commande d'un montant

de 150€ : ...

de 75€ : ...

et de 300€ :...

b) On a commencé à écrire l'algorithme qui automatise le calcul du prix à payer pour une commande dont on saisit le montant 𝑀 ≥20. Compléter et finir cet algorithme pour qu’il fonctionne correctement.

c) Le coder en Python.

Algorithme en langage naturel Algorithme Python Saisir A

Affecter à B la valeur A/13

Affecter à C le quotient de la division euclidienne de A par 13

Si b = c

Alors afficher "True"

Sinon afficher "False"

Commentaires :

" == " est le symbole d'Egalité ; " = " celui d'affectation.

(6)

Boucles

Les boucles permettent de répéter des instructions.

Boucle « Tant que »

On peut répéter les mêmes instructions tant qu'une condition reste vérifiée.

Cette boucle est dite non bornée (cas où la condition n’est jamais vérifiée).

En langage naturel, cela peut se présenter sous la forme suivante :

Une instruction conditionnelle permet d'effectuer un test suivant certaines conditions.

En langage naturel, elle peut se présenter sous la forme suivante :

Exemple Cas général Instructions langage Python

Tant que le verre n’est pas plein Verser de l’eau

Fin Tant que

Tant que Condition est vraie Instructions

Fin Tant que Boucle « Pour »

On peut répéter les mêmes instructions pour un nombre de répétitions prédéfinies par une variable.

Cette boucle est dite bornée.

En langage naturel, cela peut se présenter sous la forme suivante :

Exercice E1 :

1) Tester le programme ci-contre. Qu’affiche-t-il en sortie ? 2) Ecrire et tester un programme qui affiche tous les entiers inférieurs à 16.

3) Ecrire et tester un programme qui affiche tous les entiers compris entre 18 et 45.

Exercice E2 :

Ecrire et tester un programme qui affiche la table de 7 jusqu’à 70.

Exercice E3 :

1) Tester le programme ci-contre. Qu’affiche-t-il en sortie ?

2) Ecrire et tester un programme qui affiche tous les entiers pairs compris entre 18 et 45.

3) Ecrire et tester un programme qui affiche tous les entiers impairs compris entre 50 et 150.

Exemple Cas général

Pour compter allant de 1 à 10 Lancer le dé

Fin Pour

Pour variable allant de valeur de départ à valeur de fin Instructions

Fin Pour

(7)

Exercice E4 :

1) On donne le programme ci-contre.

Recopier et compléter le tableau suivant par les premières valeurs prises par les variables S et i.

I 1 2 3

S 0 1 3

2) Quel problème permet de résoudre cet algorithme.

3) a) En s'inspirant des programmes précédents, écrire et tester un programme permettant de calculer la somme des entiers de 34 à 145.

b) Même question pour la somme des entiers de 67 à 456.

Exercice E5 :

On place un capital de 500€ sur un compte rémunéré à 3% par an.

L’algorithme ci-contre, écrit en langage naturel, permet de calculer le nombre d'années au bout desquelles le capital sera doublé.

1) Le programme ci-contre traduisant l'algorithme précédent comprend une erreur. Corriger le programme et le tester.

2) Modifier le programme précédent de telle sorte que le capital et le taux de rémunération soient saisis en entrée. Le tester dans un nouveau contexte à décrire.

Exercice E6 :

On dépose 25€ dans une tirelire.

L’algorithme suivant, écrit en langage naturel, permet de calculer le nombre de pièces de 1€ ou 2€ ajoutés de façon aléatoire dans la tirelire avant de dépasser 50€.

1) Compléter l’algorithme.

2) Pourquoi le programme affiche en sortie « D–1 » ? 3) Ecrire et tester un programme

traduisant cet algorithme.

Exercice E7 :

Ecrire et tester un programme permettant de calculer la somme des entiers naturels pairs inferieurs ou égaux à 1000.

Exercice E8 :

Ecrire et tester un programme permettant de calculer la puissance d’un nombre.

Exercice E9 :

1) Ecrire un algorithme qui permet de déterminer la moyenne d'une série de notes, où N est le nombre de notes. On pourra utiliser une boucle Pour.

2) Ecrire et tester un programme traduisant cet algorithme.

Affecter à S la valeur 500 Affecter à A la valeur 0 Tant que S<1000

Affecter à S la valeur 1,03xS Affecter à A la valeur A+1 Fin Tant que

Afficher A

Affecter à S la valeur 25 Affecter à D la valeur 0 Tant que S<...

Affecter à A la valeur aléatoire 1 ou 2 Affecter à S la valeur ...

Affecter à D la valeur D+1 Afficher A

Fin Tant que Afficher D–1

(8)

Exercice E10 :

D'après "Document ressource pour la classe de seconde" – juin 2009

On demande à l’utilisateur de deviner en moins de six essais un nombre tiré au hasard entre 10 et 100.

On lui indique à chaque fois si le nombre proposé est supérieur ou inferieur au nombre cherché.

1) L'algorithme qui suit, écrit en langage naturel, permet d'effectuer le jeu.

a) Que représentent les variables E, S et N ?

b) Ecrire et tester un programme traduisant cet algorithme.

2) Sans stratégie, il est difficile de gagner. En effet, selon le choix des valeurs, il sera ou non possible de déterminer à coup sûr la solution.

La méthode consiste, en choisissant à chaque fois la valeur située au milieu de l’intervalle en cours, à réduire de moitié l’amplitude de l’intervalle dans lequel se trouve le nombre.

Tester cette stratégie pour gagner à tous les coups à ce jeu et détailler un coup gagnant.

Affecter à S la valeur d'un nombre aléatoire entier compris entre 10 et 100 Affecter à E la valeur 1

Tant que E<7 Saisir N Si N>S Alors

afficher "C'est moins"

Sinon

Si N<S Alors

afficher "C'est plus"

Sinon

Afficher "C'est gagné"

Sortir de la boucle Fin Si

Fin Si

Affecter à E la valeur E+1 Fin Tant que

Si E=7 Alors

afficher "C'est perdu"

Fin Si

Références

Documents relatifs

• Travailler en parallèle de l’écrit une autre lecture orale régulière des nombres (asiatique ou suisse romande- voir dans le Dictionnaire de l'Académie française et qui

On tire ensuite partie de cette relation pour se ramener au calcul d’une intégrale simple

Fixons un nombre pair n supérieur à 4, double d’un nombre composé (car les doubles de nombres premiers vérifient trivialement la conjecture)... Le complémentaire du vide n’est

L’ann´ ee courante sera mise dans une variable.. Exercice

Le programme devra dire si l’utilisateur a trouv´ e ou pas le nombre, si l’utilisateur ne le trouve pas, le programme devra indiquer si le nombre saisi est trop grand ou trop

Ecrire un programme qui lit deux variables de type enti` ´ ere, les affiche, ´ echange leur contenu et les affiche de nouveau. On peut aussi exprimer des bool´ eens avec and, or et

2520 est le plus petit entier divisible par tous les entiers compris entre 1 et 10. Ecrire un programme permettant de vérier

5 Voici la liste des musées français les plus visités au monde en 2012.. Complète