Exercice 3 · Bac Numérique et Sciences Informatiques Amérique du Nord 2021 (jour 1)

Thème : Coût des algorithmes, tris et recherche · Tiré du sujet Jour 1 (2021)

Énoncé

Exercice 3 (4 points)

Cet exercice porte sur les tableaux et sur la programmation de base en Python.

On rappelle que len est une fonction qui prend un tableau en paramètre et renvoie sa longueur, c'est-à-dire le nombre d'éléments présents dans le tableau.

Exemple: len([12, 54, 34, 57]) vaut 4.

Le but de cet exercice est de programmer différentes réductions pour un site de vente de vêtements en ligne.

On rappelle que si le prix d'un article avant réduction est de xx euros: son prix vaut 0,5x0{,}5x si on lui applique une réduction de 50%,

son prix vaut 0,6x0{,}6x si on lui applique une réduction de 40%,

son prix vaut 0,7x0{,}7x si on lui applique une réduction de 30%,

son prix vaut 0,8x0{,}8x si on lui applique une réduction de 20%,

son prix vaut 0,9x0{,}9x si on lui applique une réduction de 10%.

Dans le système informatique du site de vente, l'ensemble des articles qu'un client veut acheter, appelé panier, est modélisé par un tableau de flottants.

Par exemple, si un client veut acheter un pantalon à 30,50 euros, un tee-shirt à 15 euros, une paire de chaussettes à 6 euros, une jupe à 20 euros, une paire de collants à 5 euros, une robe à 35 euros et un short à 10,50 euros, le système informatique aura le tableau suivant:

tab = [30.5, 15.0, 6.0, 20.0, 5.0, 35.0, 10.5] 1. (a)

Écrire une fonction Python total_hors_reduction ayant pour argument le tableau des prix des articles du panier d'un client et renvoyant le total des prix de ces articles.

1. (b)

Le site de vente propose la promotion suivante comme offre de bienvenue: 20% de réduction sur le premier article de la liste, 30% de réduction sur le deuxième article de la liste (s'il y a au moins deux articles) et aucune réduction sur le reste des articles (s'il y en a).

Compléter la fonction Python offre_bienvenue:

def offre_bienvenue(tab):

""" tableau -> float """

somme = 0

longueur = len(tab)

if longueur > 0:

somme = tab[0] *

if longueur > 1:

somme = somme +

if longueur > 2:

for i in range(2, longueur):

somme =

return

Pour toute la suite de l'exercice, on pourra utiliser la fonction total_hors_reduction même si la question 1 n'a pas été traitée.

2.

Lors de la période des soldes, le site de vente propose les réductions suivantes: si le panier contient 5 articles ou plus, une réduction globale de 50%,

si le panier contient 4 articles, une réduction globale de 40%,

si le panier contient 3 articles, une réduction globale de 30%,

si le panier contient 2 articles, une réduction globale de 20%,

si le panier contient 1 article, une réduction globale de 10%.

Proposer une fonction Python prix_solde ayant pour argument le tableau tab des prix des articles du panier d'un client et renvoyant le total des prix de ces articles lorsqu'on leur applique la réduction des soldes.

3. (a)

Écrire une fonction minimum qui prend en paramètre un tableau tab de nombres et renvoie la valeur minimum présente dans le tableau.

3. (b)

Pour ses bons clients, le site de vente propose une offre promotionnelle, à partir de 2 articles achetés, l'article le moins cher des articles commandés est offert.

Écrire une fonction Python offre_bon_client ayant pour paramètre le tableau des prix des articles du panier d'un client et renvoyant le total à payer lorsqu'on leur applique l'offre bon client.

4.

Afin de diminuer le stock de ses articles dans ses entrepôts, l'entreprise imagine faire l'offre suivante à ses clients: en suivant l'ordre des articles dans le panier du client, elle considère les 3 premiers articles et offre le moins cher, puis les 3 suivants et offre le moins cher et ainsi de suite jusqu'à ce qu'il reste au plus 2 articles qui n'ont alors droit à aucune réduction.

Exemple: pour le tableau tab = [30.5, 15.0, 6.0, 20.0, 5.0, 35.0, 10.5], le premier groupe offre 6.0 euros, le second offre 5.0 euros, et le total est 111 euros.

4. (a)

Proposer un panier contenant les mêmes articles que ceux de l'exemple mais ayant un prix après promotion de déstockage différent de 111 euros.

4. (b)

Proposer un panier contenant les mêmes articles mais ayant le prix après promotion de déstockage le plus bas possible.

4. (c)

Une fois ses articles choisis, quel algorithme le client peut-il utiliser pour modifier son panier afin de s'assurer qu'il obtiendra le prix après promotion de déstockage le plus bas possible ? On ne demande pas d'écrire cet algorithme.

Énoncé: Exercice 3 · Bac Numérique et Sciences Informatiques Amérique du Nord 2021 (jour 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. (a) Écrire une fonction Python total_hors_reduction ayant pour argument le tableau des prix des articles du panier d'un client et renvoyant le total des prix de ces articles.

Réponse : ```python def total_hors_reduction(tab): somme = 0 for p in tab: somme += p return somme ```

1. (b) Compléter la ligne 6 de la fonction offre_bienvenue : somme = tab[0] * ...

Réponse : ```python 0.8 ```

1. (b) Compléter la ligne 8 de la fonction offre_bienvenue : somme = somme + ...

Réponse : ```python tab[1] * 0.7 ```

1. (b) Compléter la ligne 11 de la fonction offre_bienvenue : somme = ...

Réponse : ```python somme + tab[i] ```

1. (b) Compléter la ligne 12 de la fonction offre_bienvenue : return ...

Réponse : ```python somme ```

2. Proposer une fonction Python prix_solde ayant pour argument le tableau tab des prix des articles du panier d'un client et renvoyant le total des prix de ces articles lorsqu'on leur applique la réduction des soldes.

Réponse : ```python def prix_solde(tab): n = len(tab) total = total_hors_reduction(tab) if n >= 5: return total * 0.5 elif n == 4: return total * 0.6 elif n == 3: return total * 0.7 elif n == 2: return total * 0.8 elif n == 1: return total * 0.9 else: return 0.0 ```

Les réponses des 5 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

‹ Exercice 1 - Coût des algorithmes, tris et recher… · Amérique du Nord 2024 (jour 2)

Plus d’exercices de Coût des algorithmes, tris et recherche