Commit 489aa3fd authored by BERNHARD Delphine's avatar BERNHARD Delphine
Browse files

Mise à jour cours 5

parent 28ec9529
%% Cell type:markdown id: tags:
# Structures de contrôle
## Sommaire
- [Instructions de test](#Instructions-de-test)
- [Exemple : conjuguer un verbe au présent de l'indicatif](#Exemple-:-conjuguer-un-verbe-au-présent-de-l'indicatif)
- [L'instruction if-else (si-alors-sinon)](#L'instruction-if-else-(si-alors-sinon))
- [Notion de bloc](#Notion-de-bloc)
- [L'instruction if - elif](#L'instruction-if---elif)
- [Comment écrire une condition ?](#Comment-écrire-une-condition-?)
- [Les booléens](#Les-booléens)
- [Les opérateurs relationnels](#Les-opérateurs-relationnels)
- [Les opérateurs logiques](#Les-opérateurs-logiques)
- [Exemples : opérateurs relationnels](#Exemples-:--opérateurs-relationnels)
- [Exemples : opérateurs logiques](#Exemples-:-opérateurs-logiques)
- [Tables de vérités](#Tables-de-vérités)
- [✏️ Exercice : difficulté d'un mot](#✏️-Exercice-:-difficulté-d'un-mot)
- [✏️ Exercice : produit](#✏️-Exercice-:-produit)
- [✏️ Exercice : note](#✏️-Exercice-:-note)
- [✏️ Exercice : calcul d'une remise lors d'une facturation](#✏️-Exercice-:-calcul-d'une-remise-lors-d'une-facturation)
- [✏️ Exercice : espérance de vie](#✏️-Exercice-:-espérance-de-vie)
- [✏️ Exercice : tarif d'une chambre d'hôtel](#✏️-Exercice-:-tarif-d'une-chambre-d'hôtel)
- [Les boucles](#Les-boucles)
- [Notion de boucle](#Notion-de-boucle)
- [Boucles while](#Boucles-while)
- [Boucles for](#Boucles-for)
- [Interruption d'une boucle](#Interruption-d'une-boucle)
- [Court-circuitage d'une boucle](#Court-circuitage-d'une-boucle)
- [✏️ Exercice : compter le nombre de voyelles dans une chaîne](#✏️-Exercice-:-compter-le-nombre-de-voyelles-dans-une-chaîne)
- [✏️ Exercice : conjugaison des verbes du premier et du deuxième groupe](#✏️-Exercice-:-conjugaison-des-verbes-du-premier-et-du-deuxième-groupe)
- [✏️ Exercice : recherche zéro](#✏️-Exercice-:-recherche-zéro)
- [✏️ Exercice : compte zéro](#✏️-Exercice-:-compte-zéro)
- [✏️ Exercice : maximum dans une liste](#✏️-Exercice-:-maximum-dans-une-liste)
- [✏️ Exercice : échiquier](#✏️-Exercice-:-échiquier)
- [✏️ Exercice : tarif de groupe](#✏️-Exercice-:-tarif-de-groupe)
- [✏️ Exercice noté : Calcul du poids idéal](#✏️-Exercice-noté-:-Calcul-du-poids-idéal)
- [Calcul de l'IMC](#Calcul-de-l'IMC)
- [Formule de Monnerot-Dumaine](#Formule-de-Monnerot-Dumaine)
- [Formule de Broca](#Formule-de-Broca)
- [Formule de Lorentz](#Formule-de-Lorentz)
%% Cell type:markdown id: tags:
## Instructions de test
### Exemple : conjuguer un verbe au présent de l'indicatif
Étapes :
......@@ -114,23 +154,23 @@
%% Cell type:code id: tags:
``` python
if age >= 18 and age <= 27:
print("Vous avez droit à la carte de réduction jeune 18-27")
print("Vous avez droit à la carte de réduction jeune 18-27")
elif age >=12 and age <= 17:
print("Vous avez droit à la carte de réduction jeune 12-17")
print("Vous avez droit à la carte de réduction jeune 12-17")
elif age >= 60 :
print("Vous avez droit à la carte de réduction Senior+")
print("Vous avez droit à la carte de réduction Senior+")
else :
print("Vous avez droit à la carte Week-end")
print("Vous avez droit à la carte Week-end")
```
%% Cell type:markdown id: tags:
### Exemples : opérateurs relationnels
*Inspiré de http://lewebpedagogique.com/langemelanie/files/2014/01/TP-7-ISN-8.pdf*
> *Inspiré de http://lewebpedagogique.com/langemelanie/files/2014/01/TP-7-ISN-8.pdf*
Observez les résultats pour les commandes suivantes :
%% Cell type:code id: tags:
......@@ -195,11 +235,11 @@
```
%% Cell type:markdown id: tags:
### Exemples : opérateurs logiques
*Inspiré de http://lewebpedagogique.com/langemelanie/files/2014/01/TP-7-ISN-8.pdf*
> *Inspiré de http://lewebpedagogique.com/langemelanie/files/2014/01/TP-7-ISN-8.pdf*
Observez les résultats pour les commandes suivantes :
%% Cell type:code id: tags:
......@@ -267,11 +307,11 @@
# Tests pour le remplissage de la table
```
%% Cell type:markdown id: tags:
## Exercice : difficulté d'un mot
## ✏️ Exercice : difficulté d'un mot
Écrire un programme qui demande à l'utilisateur d'entrer un mot et qui détermine l'âge à partir duquel il est vraisemblable qu'un enfant connaît le mot. La classification sera basée sur la longueur du mot :
- 5 ans <= 3 lettres
- 6 ans <= 4 lettres
- 8 ans <= 6 lettres
......@@ -284,11 +324,11 @@
# Exercice : difficulté d'un mot
```
%% Cell type:markdown id: tags:
## Exercice : produit
## ✏️ Exercice : produit
Étant donné deux nombres entiers, écrire un programme qui affiche l'un des deux messages suivants : "le produit des deux nombres est positif ou nul" ou "le produit des deux nombres est négatif", **sans calculer le produit de ces deux nombres**.
%% Cell type:code id: tags:
......@@ -296,26 +336,26 @@
# Exercice : produit
```
%% Cell type:markdown id: tags:
## Exercice : note
La note finale d'un.e étudiant.e dans une matière est calculée à partir des trois notes initiales qu'elle/il a obtenues dans cette matière, en prenant la meilleure parmi ces deux notes intermédiaires :
## ✏️ Exercice : note
La note finale d'un·e étudiant·e dans une matière est calculée à partir des trois notes initiales qu'elle/il a obtenues dans cette matière, en prenant la meilleure parmi ces deux notes intermédiaires :
- la moyenne de ses trois notes initiales,
- la moyenne de sa meilleure et de sa plus mauvaise note initiale
Écrivez un programme qui lit les trois notes initiales de l'étudiant.e, calcule les deux notes intermédiaires et affiche la note finale.
Écrivez un programme qui lit les trois notes initiales de l'étudiant·e, calcule les deux notes intermédiaires et affiche la note finale.
%% Cell type:code id: tags:
``` python
# Exercice : note
```
%% Cell type:markdown id: tags:
## Exercice : calcul d'une remise lors d'une facturation
## ✏️ Exercice : calcul d'une remise lors d'une facturation
Un grossiste en aliments bio souhaite calculer les remises offertes à ses clients en fonction de leurs commandes. Les restaurants obtiennent une remise de 10% si le montant de la commande est supérieur ou égal à 1500 €. Les magasins bio ont droit à une remise de 20% si le montant de la facture est supérieur ou égal à 3500 €, de 25 % si le montant est supérieur à 7000 €.
Écrire un programme qui, étant donné le type de client (restaurant ou magasin) et le montant de la facture, calcule le montant de la remise.
%% Cell type:code id: tags:
......@@ -324,20 +364,20 @@
# Exercice : calcul remise
```
%% Cell type:markdown id: tags:
## Exercice : espérance de vie
*Exercice inspiré de Learning to Program with Perl - Course Exercises v. 1.1, Simon Andrews.*
## ✏️ Exercice : espérance de vie
> *Exercice inspiré de Learning to Program with Perl - Course Exercises v. 1.1, Simon Andrews.*
L'objectif de cet exercice est d'implémenter un programme qui détermine l'espérance de vie d'une personne en fonction de diverses informations la concernant. On considère que l'espérance de vie est de 70 ans par défaut. Elle peut être améliorée ou diminuée en fonction des informations suivantes, qui devront être demandées à l'utilisateur :
- Homme ou femme ? Les femmes ont 4 ans d'espérance de vie supplémentaire.
- Fumeur.se ou non-fumeur.se ? Les non-fumeurs.ses ont 5 ans d'espérance de vie en plus, les fumeurs.ses 5 ans en moins.
- Fumeur·se ou non-fumeur·se ? Les non-fumeurs·ses ont 5 ans d'espérance de vie en plus, les fumeurs·ses 5 ans en moins.
- Combien de séances de sport par semaine ? 3 ans en moins si aucune séance de sport, 1 an en plus pour chaque séance de sport.
- Combien de verres d'alcool consommés par semaine ? 0,5 ans en moins pour chaque verre au delà de 7 verres. 2 ans en plus si la personne ne boit pas d'alcool (0 verre par semaine).
- Consommation de viande rouge et de charcuterie ? Si oui, enlever 3 ans à l'espérance de vie.
- Végétalien.ne (ne consomme aucun produit d'origine animale) ? Si oui, ajouter 3 ans à l'espérance de vie.
- Végétalien·ne (ne consomme aucun produit d'origine animale) ? Si oui, ajouter 3 ans à l'espérance de vie.
Utilisez le programme pour calculer l'espérance de vie d'un homme non-fumeur qui fait du sport deux fois par semaine, boit 10 verres d'alcool par semaine et consomme de la viande.
%% Cell type:code id: tags:
......@@ -345,11 +385,11 @@
# Exercice : espérance de vie
```
%% Cell type:markdown id: tags:
## Exercice : tarif d'une chambre d'hôtel
## ✏️ Exercice : tarif d'une chambre d'hôtel
Dans un hôtel, le calcul du tarif d'une chambre est régi par le texte suivant : "Le tarif de base d'une chambre double standard est de 80 €. Si la chambre est de qualité supérieure, le tarif augmente de 20 €. Si la chambre est occupée par deux personnes, le tarif augmente de 10 €. La réservation de la chambre un vendredi ou un samedi soir donne lieu à une réduction de 10€ pour une chambre standard et de 20€ pour une chambre supérieure."
- Écrivez un programme permet de calculer le tarif : les données entrées par l'utilisateur sont le type de chambre (standard ou supérieure) T, le nombre d'occupants N et le jour de la semaine J. Le résultat affiché est le tarif de la chambre.
- Complétez le programme en introduisant des vérifications sur la cohérence des données : par exemple, le nombre d'occupants minimum est 1 et maximum est 2.
......@@ -498,22 +538,22 @@
print(lettre, lettre.upper())
```
%% Cell type:markdown id: tags:
## Exercice : compter le nombre de voyelles dans une chaîne
## ✏️ Exercice : compter le nombre de voyelles dans une chaîne
Écrire un programme qui, étant donnée une chaîne de caractères (par exemple "J'aime beaucoup programmer en Python") compte et affiche le nombre de voyelles dans la chaîne. Vous pourrez mettre la chaîne de caractères en minuscules à l'aide de la méthode `lower()`.
%% Cell type:code id: tags:
``` python
# Exercice : nombre de voyelles
```
%% Cell type:markdown id: tags:
## Exercice : conjugaison des verbes du premier et du deuxième groupe
## ✏️ Exercice : conjugaison des verbes du premier et du deuxième groupe
Reprendre l'exercice de conjugaison des verbes au présent de l'indicatif. L'utilisateur pourra entrer au choix un verbe du premier ou du deuxième groupe. Le programme devra déterminer le groupe du verbe en fonction de la terminaison ('er' pour les verbes du premier groupe, 'ir' pour les verbes du deuxième groupe).
Les pronoms personnels seront stockés dans une liste. Les désinences (terminaisons) seront stockées dans une liste de listes :
| | |
| - | - |
......@@ -530,44 +570,44 @@
# Exercice : conjugaison verbes
```
%% Cell type:markdown id: tags:
## Exercice : recherche zéro
## ✏️ Exercice : recherche zéro
Écrire un programme qui, étant donnée une liste d'entiers (par exemple `tab=[1,2,3,5,0,4]`), cherche si elle contient un 0.
%% Cell type:code id: tags:
``` python
# Exercice : recherche zéro
```
%% Cell type:markdown id: tags:
## Exercice : compte zéro
## ✏️ Exercice : compte zéro
Écrire un programme qui, étant donnée une liste d'entiers (par exemple `tab=[1,2,3,5,0,4]`), compte combien de fois la liste contient 0.
%% Cell type:code id: tags:
``` python
# Exercice : compte zéro
```
%% Cell type:markdown id: tags:
## Exercice : maximum dans une liste
## ✏️ Exercice : maximum dans une liste
Écrire un programme qui, étant donnée une liste d'entiers (par exemple `tab=[1,2,3,5,0,4]`) trouve et affiche (a) le maximum et (b) sa position dans la liste.
%% Cell type:code id: tags:
``` python
# Exercice : maximum dans une liste
```
%% Cell type:markdown id: tags:
## Exercice : échiquier
## ✏️ Exercice : échiquier
Les positions sur un échiquier sont identifiées par une lettre et un chiffre. La lettre identifie la colonne, tandis que le chiffre identifie la ligne, comme indiqué ci-dessous :
![echiquier.PNG](attachment:echiquier.PNG)
......@@ -580,11 +620,11 @@
# Exercice : échiquier
```
%% Cell type:markdown id: tags:
## Exercice : tarif de groupe
## ✏️ Exercice : tarif de groupe
Un parc d'attraction détermine le prix d'entrée en fonction de l'âge des visiteurs.
Les visiteurs âgés de 2 ans et moins sont admis gratuitement. Les enfants âgés de 3 à 12 ans paient 14€. Les personnes âgées de 65 ans et plus paient 18,00€. L'entrée pour tous les autres visiteurs est de 23,00€.
......@@ -597,38 +637,81 @@
# Exercice : tarif de groupe
```
%% Cell type:markdown id: tags:
## Exercice noté : note moyenne aux Etats-Unis
Écrire un programme qui calcule la note moyenne d'une étudiante ou d'un étudiant à partir des 3 notes obtenues dans une matière. Les notes sont données sous forme de lettre (A+, A, A-, etc.) auxquelles correspondent des points, selon la table de correspondance suivante :
| Lettre | Points |
|:------ | :----- |
| A+ | 4.0 |
| A | 4.0 |
| A- | 3.7 |
| B+ | 3.3 |
| B | 3.0 |
| B- | 2.7 |
| C+ | 2.3 |
| C | 2.0 |
| C- | 1.7 |
| D+ | 1.3 |
| D | 1.0 |
| F | 0 |
## ✏️ Exercice noté : Calcul du poids idéal
Écrire un programme qui calcule le poids idéal d'une personne selon plusieurs méthodes (cf. https://www.bluejean.fr/poids-ideal.php)
Le programme devra afficher un menu avec deux options :
1. Calculer la note moyenne
2. Quitter le programme
Si l'option (1) est sélectionnée, le programme demande d'entrer les 3 notes sous forme de lettre l'une après l'autre, puis affiche la note moyenne calculée à l'aide de la table de correspondance ci-dessus. Le programme affiche alors à nouveau le menu. Il sera possible d'effectuer autant de calculs que souhaité, tant que l'option (2) du menu n'aura pas été sélectionnée.
Si un caractère invalide est saisi (par exemple Y ou !), alors le programme devra afficher un message d'erreur.
1. Calculer le poids idéal
2. Quitter le programme
Si l'option (1) est sélectionnée, le programme demandera le poids (en kg), la taille (en cm), la circonférence du poignet (en cm) et le sexe (masculin ou féminin) puis affichera l'IMC avec son interprétation et le poids idéal selon les formules décrites ci-après. Il affichera également une moyenne des poids proposés. Le programme affichera alors à nouveau le menu. Il sera possible d'effectuer autant de calculs que souhaité, tant que l'option (2) du menu n'aura pas été sélectionnée.
### Calcul de l'IMC
L'IMC se calcule selon la formule suivante :
```
IMC = poids / ( taille x taille)
```
La taille est exprimée en mètres avec décimales.
La table ci-dessous détaille les interprétations à afficher en fonction de la valeur de l'IMC.
Par exemple, si les lettres A, C+ et B sont données, alors la moyenne à afficher est 3.1, qui est le résultat de (4.0 + 2.3 + 3.0) / 3.
| IMC | Interprétation (d'après l'OMS) |
| :-- | :----------------------------- |
| moins de 16 | Insuffisance pondérale sévère |
| 16 à 16,99 | Insuffisance pondérale modérée |
| 17 à 18,49 | Insuffisance pondérale légère |
| 18,5 à 24,99 | Corpulence normale |
| 25 à 29,99 | Pré-obésité |
| 30 à 34,99 | Obésité modérée |
| 35 à 39,99 | Obésité sévère |
| plus de 40 | Obésité morbide ou massive |
### Formule de Monnerot-Dumaine
La formule prend en compte la taille et la circonférence du poignet (CP) :
```
poids_ideal = (taille - 100 + (4 * CP)) / 2
```
La taille est exprimée en centimètres.
### Formule de Broca
La formule prend uniquement la taille (en centimètres) en compte :
```
poids_ideal = taille - 100
```
### Formule de Lorentz
La formule prend en compte la taille (en centimètres) et le sexe (masculin / féminin) :
```
poids_ideal_masculin = (taille - 100 - ((taille - 150) / 4)
poids_ideal_feminin = (taille - 100 - ((taille - 150) / 2)
```
Ainsi, pour une personne ayant entré les informations suivantes :
- taille : 170
- poids : 68
- circonférence du poignet : 15
- sexe : féminin
le programme devra afficher les informations suivantes :
```
IMC = 23,5 (Normal)
Poids idéal (formule de Monnerot-Dumaine) : 65 kg
Poids idéal (formule de Broca) : 70 kg
Poids idéal (formule de Lorentz) : 60 kg
Poids idéal (moyenne) : 65 kg
```
%% Cell type:code id: tags:
``` python
#Exercice : Calcul de la note moyenne
#Exercice : Calcul du poids idéal
```
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment