0. Avant -propos
Cette page sert à acquérir ou consolider les bases de programmation du programme deseconde.
On cherche ici à affermir un socle sur lequel vous pourrez réussir en Python au lycée.
Cette page contient :
-
De vidéos qui permettent de reprendre chez vous des points sur lesquels vous ne vous sentez pas très à l'aise ou pour vous
remémorer le contenu.
-
Des rappels écrits des notions avec des exemples,
-
Des exercices fondamentaux, ceux où apparaissent la balise "fondamental", à savoir faire pour aborder sereinement la première NSI,
-
Des exercices de renforcement, ceux en fin de page où apparaissent la balise "renforcement" et accessible directement par un lien,
pour s'assurer que les exercices fondamentaux sont maîtrisés,
-
Quelques exercices plus poussés, ceux étiquetés par la balise "confirmé".
C'est ce niveau d'exercices qu'il faut essayer d'atteindre en fin de seconde.
En parallèle vous devez vous inscrire sur le site "france-ioi". Ce site propose un entraînement au langage python( et d'autres) sous la forme d'un parcours.
Demandez à votre professeur la démarche pour rejoindre votre groupe.
Lien vers france-IOI
Outils
Pour l'ensemble de ce travail, utilisez le logiciel Edupython.
Dans le cas où Edupython ne marcherait pas sur vos machines, vous pouvez réaliser l'ensemble des exercices ici :
Affectation en Python
En programmation, nous avons besoin de stocker des éléments , de les mettre en mémoire. Pour cela , on procède à l'affectation d'une variable par une donnée.
En Python, l' affectation se réalise avec l'opérateur =
le script :
a=5
met en mémoire l'entier 5 dans la variable a
a="easy"
met en mémoire la chaine de caractères "easy" dans la variable a
Que vaut a à la fin de ce script :
a=1
b=-1
a=a*b
a=a+b
Un exercice de renforcement, reprenant les mêmes compétences est dispoible directement en cliquant ci-dessous :
exercice de renforcement
Un exercice plus compliqué utilisant l'affectation :
Hervé Trézène aimerait avoir un algorithme permettant de permuter les nombres stockés dans deux variables $a$ et $b$.
Pour simplifier, on suppose que la variable $a$ stocke le nombre 8,
tandis que la variable $b$ stocke le nombre -3.
-
Yves Aladaire propose l'algorithme suivant :
# ceci est un commentaire (il commence par le symbole dièse #) :
# il n'est pas pris en compte par l'interpréteur, il n'est lu que par le programmeur et l'utilisateur : vous.
# mémorisation des valeurs initiales :
a=8
b=-3
# programme proposé par Yves pour la permutation du contenu :
a=b
b=a
-
Compléter sur une feuille la table d'exécution commencée ci-dessous, sans prendre en compte les lignes de commentaires :
ligne numéro
|
valeur stockée dans la variable $a$
|
valeur stockée dans la variable $b$ |
4 |
8 |
rien |
... |
... |
... |
... |
... |
... |
... |
... |
... |
Est-ce le programme proposé par Yves permet d'échanger les valeurs stockées dans les varaibles $a$ et de $b$ ?
-
Amin Bhar propose l'algorithme suivant :
# mémorisation des valeurs initiales :
a=8
b=-3
# programme proposé par Roger pour la permutation du contenu :
b=a
a=b
-
Compléter sur une feuille la table d'exécution commencée ci-dessous, sans prendre en compte les lignes de commentaires :
ligne numéro
|
valeur stockée dans la variable $a$
|
valeur stockée dans la variable $b$ |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
Est-ce le programme proposé par Amine permet d'échanger les valeurs stockées dans les variables $a$ et de $b$ ?
-
Proposer un programme qui permet d'échanger les valeurs stockées dans les variables $a$ et de $b$ ?
Comme tel un Thésée vous êtes le héros de Trézène,
Hervé veut vous remercier pour votre aide : il sert un verre d'eau et un verre de jus de fruit, un pour lui et un pour vous,...
mais il se trompe de verre ! Comment permuter le contenu de ces deux verres sans changer de verre ?
Affichage en python
Une chaîne de caractères correspond à un texte pouvant contenir différents symboles.
En Python, une chaîne de caractères est le contenu délimité par ""
.
Pour afficher une chaine de caractères en Python on utilise la fonction print()
Testez ces différents scripts :
-
print("Vivement les vacances !")
-
prenom="Bob"
print("Mon prénom est :",prenom)
Réaliser un script qui contient trois variables : prenom
, nom
et
age
et qui doit afficher :
"Bonjour je m'appelle Alphonse Dansletas, j'ai 358 ans. "
Dans le cas où vous vous appelleriez Alphonse Dansletas et que vous seriez âgé de 358 ans.
exercice de renforcement
Dialogue avec l'utilisateur
La fonction input
permet d'ouvrir une boite de dialogue et de récupérer une information saisie par l'utilisateur.
L'information récupérée grâce à un input
est une chaîne de caractères.
prenom=input("quel est ton prénom?")
print(prenom)
Ecrire un script en Python qui demande à l'utilisateur, son prénom, son nom et son âge et qui réalise un affichage comme dans l'exercice 2.
exercice de renforcement
Comme l'information récupérée grâce à un input
est une chaîne de caractères, il va falloir changer le type de
la variable pour permettre d'effectuer des calculs avec.
Un boulanger désire un programme qui demande à l'utilisateur le nombre de baguettes qu'il désire,
qui calcule le prix total (sachant qu'une baguette coûte 1.10 €)
et qui affiche le prix que l'utilisateur doit payer.
-
Testez le script suivant :
nombre=input("Combien de baguettes désirez-vous ?")
prix = nombre * 1.1
print("Vous avez à payer",prix,"euros.")
-
Quel message d'erreur obtenez-vous ?
-
Testez le script suivant :
nombre=int(input("Combien de baguettes désirez-vous ?"))
prix = nombre * 1.1
print("Vous avez à payer",prix,"euros.")
-
Quelle est la différence avec le code précédent de cet exemple ?
L'instruction int
permet de changer certaines chaînes de caractères en un nombre entier.
L'instruction float
permet de changer certaines chaînes de caractères en un flottant, c'est-à-dire un
"nombre à virgule".
Vous êtes chargé.e de mettre en place une borne automatique pour régler les droits d’entrée à un parc d’attraction.
Chaque adulte doit payer 21€ pour rentrer et chaque enfant doit payer 13€.
Pour cette borne, vous devez programmer sur Python un algorithme qui renvoie le prix à payer en fonction du nombre d’adultes et d’enfants du groupe.
Sachant que la variable $A$ stocke le nombre d’adultes, $E$ le nombre d’enfants et $P$ le prix à payer,
proposez un tel algorithme qui demande à l'utilisateur le nombre de personnes dans chacune des catégories et qui affiche le prix total à payer.
exercice de renforcement
L'Indice de Masse Corporelle (IMC) est un indicateur chiffré utilisé en médecine.
L'IMC d'une personne est donné par la formule $ IMC= \frac{masse}{taille^2}$ où la masse est en kilos et la taille en mètres.
Proposez un algorithme qui demande à l'utilisateur sa taille et sa masse puis qui affiche l'IMC de la personne.
Pensez à écrire un texte clair à destination de l'utilisateur pour qu'il sache quoi saisir.
La surface $S$ en mètre carrés de la peau d'un adulte est donnée approximativement par la formule
$ \dfrac{\sqrt{L\times M}}{6}$ où $L$ est la taille de l'individu en mètres et $M$ sa masse en kilogramme.
Vous devez créer ci-dessous un programme en Python.
Votre programme doit :
-
Importer la fonction sqrt
de la bibliothèque math
en commençant votre code par la ligne suivante :
from math import sqrt
Vous pourrez ainsi utiliser la fonction racine carrée en saisissant sqrt() et en insérant dans les parenthèses le nombre
dont vous voulez calculer la racine carrée.
a=sqrt(4)
conduit au stockage du nombre 2 dans la variable
a
.
-
Demander à l'utilisateur un entier qui représente la taille en centimètres d'un adulte.
-
Demander à l'utilisateur un réel qui représente la masse en kilogrammes du même adulte.
-
Calculer ensuite la surface corporelle de cet adulte.
-
Afficher enfin cette surface avec une phrase explicative.
Exemple de trace d'exécution apparaissant dans la partie console :
Quelle est la taille en centimètres d'un adulte ? 180
Quelle est la masse en kilogrammes du même adulte ? 81.5
La surface corporelle d'un individu de 180 centimètres et de 81.5 kg est d'environ 2.0187 m^2.
Instruction conditionnelle en Python
Les tests en Python :
Chaque utilisation de ces tests renvoie une variable qui ne peut prendre que deux valeurs booléenne : True
ou False
;
On parle alors de booléen.
Attention à ne pas confondre :
exécutez le code suivant pour visualiser la différence entre affectation et test d'égalité :
La structure conditionnelle "if"
En Python, voici la structure :
if condition :
instruction(s) à effectuer dans la cas où la condition est remplie
else :
instruction(s) à effectuer dans la cas contraire
Le bloc else
n'est pas obligatoire
Vous remarquerez le symbole :
très important en Python qui marque le début d'un bloc.
C'est l'indentation (=décalage) qui délimite le bloc d'instructions.
a=float(input("Entrer un nombre réel : "))
if a>=0 :
print("Vous avez entré un nombre positif ou nul",a)
else :
print("Vous avez entré un nombre négatif",a)
Qu'affiche le programme de l'exemple dans chacun des cas suivants :
-
Avec a=8
?
-
Avec a=-6
?
-
Avec a=0
?
-
Avec a="positif"
?
exercice de renforcement
Vous pouvez tester directement le programme précédent ci-dessous. En appuyant sur la touche Next>, vous visualiserez le fait que l'interpréteur du code
ne traite que l'instruction du if
ou celle du else
suivant si la condition est remplie ou non.
Il est possible d'imbriquer plusieurs instructions conditionnelles ensemble.
On peut détailler l'exemple précédent ainsi en trois cas distinctions par imbrications de deux instructions conditionnelles :
a=float(input("Entrer un nombre réel : "))
if a>0:
print("Vous avez entré un nombre strictement positif",a)
else: # ici, on est dans le cas où a<= 0
if a==0:
print("Vous avez entré un nombre nul",a)
else: # ici, on est dans le cas où a<=0 et a!=0 donc où a<0
print("Vous avez entré un nombre négatif",a)
Il est possible de simplifier l'écriture de ces imbrication en utilisant le mot clé elif
qui est la contraction de else if
.
La structure elif
:
if condition1 :
instruction(s)
elif condition2 :
instruction(s)
elif condition3 :
instruction(s)
else :
instruction(s)
On peut réécrire l'imbrication de l'exemple précédent ainsi :
a=float(input("Entrer un nombre : "))
if a>0 :
print("Vous avez entré un nombre strictement positif",a)"
elif a==0 :
print("Vous avez entré un nombre nul",a)
else :
print("Vous avez entré un nombre strictement négatif",a)
Écrire un programme qui :
Corrigé de cet exercice dans la vidéo accessible avec ce lien.
Un cinéma pratique trois types de tarifs pour deux personnes.
-
si les deux personnes sont mineures, elles payent 7€ chacune,
-
si l'une seulement est mineure, elles payent un tarif de groupe de 15€,
-
si les deux personnes sont majeures, elles payent 18 € en tout.
Écrire un programme qui :
Corrigé de cet exercice dans la vidéo accessible avec ce lien.
exercice de renforcement
Dans une école de rugby, il y a quatre groupes :
-
le groupe des U8 pour les joueurs entre 8 ans inclus et 10 ans exclus ;
-
le groupe des U10 pour les joueurs entre 10 ans inclus et 12 ans exclus ;
-
le groupe des U12 pour les joueurs entre 12 ans inclus et 14 ans exclus ;
-
le groupe des U14 pour les joueurs entre 14 ans inclus et 16 ans exclus.
Le dirigeant veut qu'un enfant, accompagné de ses parents, allant sur le site Internet de l'école puisse
connaître le groupe qui lui correspondrait une fois son âge saisi.
Ne sachant comment structurer le programme, il fait appel à vous afin que vous lui écriviez un programme, écrit en langage Python,
qui demande l'âge de l'enfant et renvoie la catégorie une fois la saisie de l'âge effectuée.
Fonction en Python
Une fonction en informatique est un peu comme une fonction en maths. Elle prend un ensemble d'argument et renvoie quelque chose.
Définir une fonction en Python
La syntaxe pour définir une fonction en Python est celle ci :
def nomDeLaFonction(argument1,argument2...):
instruction 1
instruction 2
.
.
.
return retourDeLaFonction
-
Prenons la fonction $f:x\longmapsto x^2$.
si vous voulez implémenter cette fonction en Python, il suffira d'écrire :
def f(x):
return x**2
Pour calculer l'image de 1 , en mathématiques vous feriez $f(1)$ , en Python c'est pareil !
Testez :
f(1)
-
Testez aussi le code suivant :
def somme(a,b):
return a+b
Écrire une fonction multiplication(a,b)
qui renvoie la multiplication de a par b.
exercice de renforcement
Dans une fonction on peut faire appelle à d'autre fonction.
Tester cette fonction :
def f(a,b):
a=somme(a,b)
b=multiplication(a,b)
return somme(a,b)
Donner l'expression de $f$ en fonction de $a$ et de $b$.
exercice de renforcement
-
Proposer une fonction, nommée mini2
qui prend comme arguments deux nombres entiers a
et b
et qui renvoie
le minimum de ces deux nombres.
-
Proposer une fonction, nommée mini4
, qui :
-
prend comme arguments quatre nombres entiers
a
, b
, c
et d
,
-
fait appel plusieurs fois à la fonction mini2
pour finalement trouver le minimum des quatre nombres
-
renvoie le minimum trouvé.
exercice de renforcement
Ecrire une fonction signe_prod(a,b)
qui reçoit deux entiers a et b relatifs et qui renvoie True si le produit de a par b est positif et False sinon. Attention : on ne doit pas calculer le produit des deux nombres.
Boucle itérative : pour/for
Avec l'instruction range
La structure "for" avec range
Voici la structure en Python d'une boucle répétitive for
avec range
for i in range(n):
instruction 1
instruction 2
...
Dans cette boucle $i$ prendra les valeurs de 0 à $n-1$.
Toutes les instructions dans la boucle seront appliquées pour chaque valeur de $i$.
Dans cette structure, on connait à l'avance le nombre de répétitions. Dans notre cas, il est égal à $n$.
Cette boucle fait le calcul : 0+1+2+3+...+10
s=0
for i in range(11):
s=s+i
print(s)
Vérifier que le résultat affiché correspond bien à la somme 0+1+2+3+...+10.
Vous pouvez visualiser les différentes étapes de calcul mises en oeuvre par cet algorithme ci-dessous :
Plus généralement, lors de l'instruction for i in range(m,n)
, où m
et n
sont deux entiers tels que
n>m
, i
prend toutes les valeurs entières entre m
et n-1
.
Écrire une fonction somme(n)
où $n$ est un entier qui renvoie la valeur de la somme $1+2+3+...+n$.
exercice de renforcement
Un village en zone périurbaine compte aujourd'hui 2300 habitants. Le village voit sa population augmenter chaque année de 120 habitants.
-
Proposez une fonction nommée population
qui prend comme argument un entier $N$ et qui renvoie la population de
ce village au bout de $N$ années écoulées.
-
Testez votre fonction avec quelques valeurs.
Correction de l'exercice en vidéo accessible par ce lien.
exercice de renforcement
Proposez un programme qui affiche tous les résultats possibles (éventuellement redondants) du produit deux nombres entiers compris entre 0 et 10.
La comète de Halley passe à proximité du Soleil tous les 76 ans. Son dernier passage a eu lieu 1986.
La comète 55P/Tempel-Tuttle pase à proximité du Soleil tous les 33 ans. Son dernier passage a eu lieu en 1998.
Proposer un algorithme qui affiche l'année de la prochaine fois où les deux comètes paseront à proximité du Soleil la même année.
-
Proposer un code qui affiche toutes les manières possibles d’obtenir un euro avec des pièces de 2 centimes et de 5 centimes.
-
Améliorer le code afin qu'il affiche le nombre de possibilités différentes d'obtenir ainsi un euro.
sur un objet itérable
La structure "for" avec in
Voici la structure en Python d'une boucle for avec in
for elt in iterable:
instruction 1
instruction 2
...
Dans cette boucle, elt
va parcourir les éléments de la iterable
.
La iterable
peut être une chaine de caractères
.
Le programme ci-dessous affiche séparément chaque caractère d'une chaîne de caractères :
# -*- coding: utf-8 -*-
ch="Bonjour à tou.te.s"
for elt in ch:
print(elt)
Vérifier que le programme .
Tester le script ci-dessus pour vérifier qu'il réalise bien à ce qui a été annoncé et modifier la chaîne de carctères
avec une autre phrase (Vous pouvez aussi rajouter des nombres et des symboles).
-
Que fait le code suivant :
# -*- coding: utf-8 -*-
citation="Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions."
compteur=0
for elt in citation:
if elt=="e":
compteur=compteur+1
print(compteur)
-
Transformer le code pour qu'il compte le nombre de i.
exercice de renforcement
Proposer une fonction pour_perec
qui remplace tous les "e" d'une phrase par un espace " ".
Boucle itérative : while
La structure while
Voici la structure en Python d'une boucle while
while condition:
instruction 1
instruction 2
...
Tant que la condition
est vraie les instructions du bloc
sont exécutées.
Dans cette structure, on ne connait pas à l'avance le nombre de répétitions.
Deux écueils à éviter :
-
Ne jamais entrer dans une boucle : si la condition au départ vaut False
, la boucle while
ne sera jamais exécutée.
-
Tourner indéfiniment : Si la condition ne change jamais de valeur, la boucle ne s'arrêtera pas et l'algorithme
restera bloqué sur le while
.
Une balle part d'une hauteur de 2 mètres et perd 10% de sa hauteur à chaque rebond. On cherche le nombre de rebonds pour la balle atteigne un
maximum de 1,5 mètre de hauteur. Ce problème (on parle de problème de seuil) peut être traité en python par le script suivant :
hauteur = 2
rebond = 0
seuil = 1.5
while hauteur>seuil:
rebond = rebond+1
hauteur = hauteur*0.9
print(rebond)
Tester ce script
Vous pouvez visualiser les étapes de mise en oeuvre de ce programme en utilisant le lien suivant :
Modifier les valeurs pour que la balle démarre à une hauteur de 3 mètres et atteigne la hauteur de 2 mètres.
Une cuve d'eau à une contenance de 1000L. En moyenne la cuve d'eau se remplis de 3L d'eau par jours.
Écrire une fonction remplir()
qui renvoie le nombre jours qu'il faudra pour remplir la cuve.
exercice de renforcement
Arjuna souhaite travailler dans un centre d'arts martiaux quelques heures par semaine. À la suite d'un entretien, deux possibilités
de salaire s'offrent à lui :
-
Proposition 1 : toucher 8 euros de l'heure,
-
Proposition 2 : versement de 91€ en début de mois, puis toucher 5 € chaque heure travaillée.
Proposer une fonction choix
qui renvoie le nombre d'heures à partir duquel la proposition 1 est préférable pour Arjuna.
Pour accéder au code de la correction : lien
Lorsque l'utilisateur saisit une donnée, il peut être utile de vérifier qu'elle est conforme à ce qu'on attend de lui.
-
Proposer un programme qui demande à l'utisateur de rentrer un nombre positif.
-
Compléter ce programme afin de demander à l'utilisateur de saisir un nouveau nombre si le nombre entré ne correspond
pas à la demande.
-
Modifier le programme précédent pour limiter la répétition à au plus 10 demandes successives.
Rajouter un message d'arrêt si l'utilisateur "s'obstine" à saisir un nombre strictement négatif.
Pour accéder au code de la correction : lien
Une banque propose à ses clients une carte de crédit. Chaque mois elle prélève le minimum entre 3 euros et 1%
du montant des transactions effectuées par cette carte de crédit. Dans le cas, où il ne reste plus assez sur le compte
pour payer les frais, elle ne prélève que le restant sur le compte.
-
Proposer une fonction minimum
qui renvoie le minimum des deux nombres entrés comme
arguments.
-
Proposer une fonction frais
qui prend en paramètres deux nombres réels : la somme
sur
le compte et le montant
des transactions effectués par carte bancaire et qui renvoie les frais bancaires
qui seront prélevés.
-
Un client impécunieux possède 5073.68€ sur son compte. Il possède une carte de crédit avec laquelle il retire chaque mois
200€. Sachant qu'il ne remet pas d'argent sur son compte, pendant combien de temps pourra-t-il prélever ainsi
de l'argent sur son compte.
Pour accéder au code de la correction : lien
Votre enseignant vous exploite : il vous demande de créer un programme qui lui renverra la moyenne des notes saisies.
Pour cela, il vous donne le cahier des charges suivant :
-
Créer une fonction continuer
, sans paramètre d'entrée qui demande à l'utilisateur s'il veut poursuivre ou non la saisie
de notes et qui renvie un booléen True
en cas de poursuite et False
sinon.
-
Créer une fonction moyenne
qui calcule la nouvelle moyenne liée à l'ajout d'une note.
-
Créer dans le programme principal une fonction main
qui conduit à demander une nouvelle note et à calculer la moyenne
obtenue alors jusqu'à ce que l'utilisateur décide d'arrêter la saisie.
-
Proposer une fonction continuer
qui répond au cahier des charges. Faire en sorte que la casse (=minuscule ou majuscule) ne
soit pas un problème pour la saisie, par exemple en utilisant ma méthode upper
.
"mélanGes".upper()
renvoie 'MÉLANGES'
.
-
Tester la fonction continuer
créée.
-
Proposer une fonction moyenne
qui répond au cahier des charges. Cette fonction aura trois paramètres :
moy
un flottant qui correspond à la moyenne pour l'instant obtenue,
nb_notes
un entier qui correspond au nombre de notes déjà pris en compte dans la moyenne moy
,
new_note
un flottant qui correspond à la nouvelle note à prendre en compte pour la moyenne.
Cette fonction renverra la moyenne de l'ensemble des notes saisies (en comptant aussi la dernière).
Aide mathématique :
On considère deux ensembles de notes A et B de moyenne respective $moy_A$ et $moy_B$ comprenant respectivement $nb_A$ et $nb_B$ notes.
La moyenne des notes formant la réunion de ces deux ensembles est doné par la formule :
$$ moyenne = \frac{moy_A \times nb_A + moy_B \times nb_B}{nb_A + nb_B}$$.
-
Tester la fonction moyenne
créée.
-
Proposer une fonction main
qui répond au cahier des charges. Cette fonction fera appel aux deux fonctions
continuer
et moyenne
et n'aura pas de paramètre ; elle renverra la moyenne de toutes les notes successivement
saisies.
-
Tester votre programme principal, par exemple en saisissant successivement les valeurs 10, 19 et 13.
Pour accéder au code de la correction : lien
Exercices de renforcement
Sur l'affectation
Quel nombre est stcokée dans la variable $a$ à la fin de ce script :
a=5
a=2*a
b=2*a
a=a*a
a=a-b+1
Pour accéder au code de la correction : lien
Sur l'affichage
Réaliser un script qui contient trois variables : prenom
, nom
et
num_tel
et qui doit afficher :
"Bonjour, je veux joindre Mélusine Hamphaïte au 0665432100 "
Dans le cas où vous vouliez joindre votre amie Mélusine Hamphaïte dont vous connaissez le numéro.
Pour accéder au code de la correction : lien
Sur la saisie
Pour accéder au code de la correction : lien
Pour accéder au code de la correction : lien
Sur l'instruction conditionnelle
Proposer un algorithme qui :
-
Demande à l'utilisateur de saisir un nombre,
-
Affiche si ce nombre est plus grand ou égal à 10 ou s'il est strictement plus petit.
Pour accéder au code de la correction : lien
Un théâtre pratique trois types de tarifs suivant le nombre de pièces regardées.
-
Pour au plus de 2 pièces vues, la personne doit payer 15€ la séance,
-
Entre 3 et 5 pièces vues, la personne doit payer 12€ la séance,
-
À partir de 6 séances, la personne doit payer 10€ la séance.
Écrire un programme qui :
Pour accéder au code de la correction : lien
Sur les fonctions
En vous inspirant de l'exercice sur l'IMC (cf. lien direct), proposez une fonction nommée IMC
qui demande à l'utilisateur sa taille et sa masse puis qui renvoie son IMC.
Rappel :
L'IMC d'une personne est donné par la forumle $ IMC= \frac{masse}{taille^2}$ où la masse est en kilos et la taille en mètres.
Pour accéder au code de la correction : lien
Un site en ligne propose une promotion sur des téléphones portables suivant les cas suivants :
-
Si l'appreil coûte moins de 200€, la promotion est de 10% (cela revient à dire que le prix initial est multiplié par 0.9 pour obtenir le prix
après réduction).
-
Si l'appreil coûte plus de 200€, la promotion est de 20%.
-
Proposez une fonction promotion
qui prend comme argument le prix initial et qui renvoie le prix en prenant en compte la promotion.
-
Les frais de port de 10€ sont offerts si le montant de la commande, après promotion (mais hors frais de port) est strictement supérieur à 100€.
Proposez une fonction payer
qui :
-
demande le prix initial,
-
utilise la fonction promotion
pour déterminer le prix après promotion,
-
prend en compte l'éventuelle offre des frais de port,
-
renvoie le prix final à payer.
-
Testez votre programme avec quelques prix initiaux. Par exemple, avec 50€, 100€, 200€, 1000€, ...
Pour accéder au code de la correction : lien
On suppose que vous disposez déjà des deux fonctions mini2
et mini4
programmées dans un exercice précédent
(cf. lien direct)
Proposer une fonction, nommée
mini4
, qui :
-
prend comme arguments huit nombres entiers, nommés de a
à h
,
-
fait appel aux fonctions mini2
et mini4
pour finalement trouver le minimum des huit nombres,
-
renvoie le minimum trouvé.
Pour accéder au code de la correction : lien
Sur la boucle répétitive for
Écrire une fonction somme_carree(n)
où $n$ est un entier qui renvoie la valeur de $1^2+2^2+...+n^2$.
Pour accéder au code de la correction : lien
Éléonore Wouétel fait des économies. Elle a placé en début d'année 1000€ sur un compte rémunéré en banque.
Elle pense que durant chacune des huit années suivantes, elle pourra déposer sur ce compte 200€.
De plus, la banque lui verse, à la fin de chaque année, 1% d'intérêt, c'est à dire qu'elle rajoute sur le compte 1% de la somme
présente sur le compte en début d'année.
Proposer un algorithme qui affiche la somme qu'Élénore aura sur son compte au bout de huit années de placement.
Pour accéder au code de la correction : lien
Proposer une fonction nommée nb_voyelles
qui prend en arguments une chaîne de caractères et qui renvoie le nombre de voyelles
(minuscules non accentuées) de cette chaîne. Tester ensuite par exemple en exécutant nb_voyelles("Ah oui ! Vive l'été !"")
.
Vous pouvez utiliser le mot-clé or
; exemple : elt=='e' or elt='i'
signifie que l'on teste si "elt est un 'e'
ou un 'i' ".
Pour accéder au code de la correction : lien
Sur la boucle répétitive conditionnelle while
Chaque année la consommation énergétique d'un data center est estimée augmenter de 8 %.
Déterminer le nombre d'années nécessaires au doublement de la consommation énegétique de ce data center.
Le résultat ne dépend pas de la consommation énergétique actuelle de ce data center.
Pour accéder au code de la correction : lien