INFO TEST n° 2 18 novembre 2013 BTS1
---------------------------------------------------------------------------------------------
EXERCICE 1
Un musée accepte un visiteur quand il respecte l'une
des situations suivantes:
• Etre accompagné par un adulte et avoir moins de 18 ans.
• Avoir un billet d'entrée.
• Avoir plus de 18 ans et avoir un billet d'entrée.
On considère les variables booléennes suivantes:
a , b , c.
a = 1 si le visiteur est majeur ( a = 0 sinon )
b = 1 si le visiteur n'est pas accompagné ( b = 0 sinon )
c = 1 si le visiteur n'a pas de billet d'entrée ( c = 0 sinon)
1. Traduire par une expression booléenne A le fait que le
visiteur soit accepté.
2. Donner le tableau de Karnaugh de A.
3. En déduire l'expression
4. Simplifier A à l'aide du tableau de Karnaugh.
5. Retrouver cette simplification par le calcul.
--------------------------------------------------------------------------
REPONSE:
1. Donnons l'expression de A.
La première chose à faire est de traduire chaque situation.
On a ici:
• Etre accompagné par un adulte et avoir moins de 18 ans
s'écrit:
• Avoir un billet d'entrée
s'écrit :
• • Avoir plus de 18 ans et avoir un billet d'entrée
s'écrit:
Ainsi:
2. Tableau de Karnaugh de A:
b c a |
0 0 | 0 1 | 1 1 | 1 0 |
0
|
1 | 1 | 1 | |
1
|
1 | 1 |
3. Déduisons l'expression de
Conclusion: Les cases vides correspondent à:
En effet le tableau de Karnaugh de
est:
b c a |
0 0 | 0 1 | 1 1 | 1 0 |
0
|
1 | |||
1
|
1 | 1 | |
4. Simplifions A à l'aide du tableau de Karnaugh de A.
On a :
5. Simplifions A par le calcul.
--------------------------------------------------------------------------
EXERCICE 2
Voici un script écrit en Python 2.7:
def filtre_div(list_entiers,N_entier) :
L = []
for i in list_entiers:
if i % N_entier == 0:
L.append(i)
print L
1. Quel est l'effet de ce script si l'on considère?
list_entiers=[1,2,6,5,7]
N_entier = 3
REPONSE:
On obtient :
>>> filtre_div([1,2,6,5,7],3)
[6]
>>>
2. Modifier le script pour qu'il demande d'entrer
list_entiers et N_entier
REPONSE:
On peut considérer:
def filtre1_div():
list_entiers=input("Donner une liste d'entiers: ")
N_entier=input("Par quel entier voulez-vous savoir s'ils sont divisible? ")
L=[]
for i in list_entiers:
if i % N_entier == 0:
L.append(i)
print L
On obtient:
>>> filtre1_div()
Donner une liste d'entiers: [1,2,6,5,7]
Par quel entier voulez-vous savoir s'ils sont divisible? 3
[6]
>>>
3. Modifier le script de nouveau pour qu'il
génère lui-même le choix de l'entier N au hasard entre 2 et 9,
qu'il affiche cet entier puis affiche L et enfin si L est vide
indique ce qui se passe.
REPONSE:
On peut considérer:
from random import*
def filtre2_div():
list_entiers=input("Donner une liste d'entiers: ")
N_entier=randint(2,9)
print N_entier
L=[]
for i in list_entiers:
if i % N_entier == 0:
L.append(i)
print L
if L==[]:
print "Aucun élément de la liste n'est divisible par",N_entier
Cela donne par exemple:
>>> filtre2_div()
Donner une liste d'entiers: [1,16,4,5,10,78,15]
7
[]
Aucun élément de la liste n'est divisible par 7
>>>
Autre exemple:
>>> filtre2_div()
Donner une liste d'entiers: [2,16,4,5,12,10,14,7,18,21,9,8]
9
[18, 9]
>>>
4. On considère les deux scripts suivants:
Quand on exécute sum() qu'obtient-on?
from random import*
def traitement_de(lis):
L=[]
for i in lis:
if i % 2==0:
L.append(i)
return L
def sum():
lis=input("Donner une liste d'au moins dix entiers: ")
F=traitement_de(lis)
k=len(F)
SP=0
for j in range(0,k):
SP=SP+F[j]
print SP
REPONSE:
On obtient la somme des entiers pairs de la liste que l'on entre:
On obtient par exemple:
>>> sum()
Donner une liste d'au moins dix entiers: [1,2,3,4,5,6,7,8,9,11]
20
>>>
Ici on a : 2 + 4 + 6 + 8 = 20
----------------------------------------------------------------------------------
EXERCICE 3
Un particulier veut mettre n litres dans sa cuve de fioul domestique pour l'hiver.
S'il commande moins de 3000 litres l'entreprise lui demande 0,955 € / litre TTC.
S'il commande au moins 3000 litres l'entreprise lui fait une remise de 12,5% sur
le prix du litre TTC.
Ecrire un script qui demande n , calcule le montant de la facture et l'affiche.
----------------------------------------------------------------------------------------------------------------
REPONSE:
On peut proposer:
from random import*
def montant():
n=input("Combien de litres voulez-vous acheter? ")
if n<3000:
p=0.955*n
else:
p=0.955*0.875*n
print "Le montant de votre facture est : ",p,"€"
On obtient par exemple:
>>> montant()
Combien de litres voulez-vous acheter? 2500
Le montant de votre facture est : 2387.5 €
>>>
Autre exemple:
>>> montant()
Combien de litres voulez-vous acheter? 3200
Le montant de votre facture est : 2674.0 €
>>>
-------------------------------------------------------------
EXERCICE 4
Un supermarché offre la possibilité à ses clients d'acquérir une carte de fidélité
pour 20 € annuel.
Pour tout achat d'un montant d'au moins 20 € le détenteur
obtient sur sa carte 3% d'un montant de l'achat sous forme de points.
Pour 10 points le détenteur reçoit un bon-chèque de 15 €.
Ecrire un script qui traduit la situation:
Il doit demander le montant M en euros de l'achat.
Il doit indiquer, en tenant compte du prix de la carte, si elle est déjà rentabilisée ou non
pour un détenteur de la carte.
------------------------------------------------------------------------------------------------------------
REPONSE:
from random import*
from decimal import*
def car():
M=input("Donner le montant de l'achat: ")
if M>=20:
bonus=(int((M*0.03)*0.10))*15
print " le bonus est",bonus
bilan =bonus-20
print " le bilan est ",bilan
if bilan>=0:
print " la carte est déjà rentabilisée"
else:
print " La carte n'est pas encore rentabilisée"
else:
print " La carte n'est pas encore rentabilisée"
Par exemple:
>>> car()
Donner le montant de l'achat: 666.7
le bonus est 30
le bilan est 10
la carte est déjà rentabilisée
>>>
Par exemple:
>>> car()
Donner le montant de l'achat: 666.6
le bonus est 15
le bilan est -5
La carte n'est pas encore rentabilisée
>>>
Il apparaît que pour quelqu'un qui achètera en un an moins de 666,7 €
la carte est sans intérêt.
---------------------------------------------------------------------------------------