# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # Structures de données : les tuples

# ## Exercice 1 - Alignement de points
#
# Dans cet exercice, nous allons utiliser la notion de tuple. Ainsi, un point dans le plan sera un couple avec une abscisse et une ordonnée.  
#
# Q1. Ecrire un programme python qui :
# 1. lit les coordonnées de 3 points A, B et C, notés $(x_A, y_A)$, $(x_B, y_B)$ et $(x_C, y_C)$
# 2. affecte une variable booléenne *sont_alignes* qui vaut vrai ssi ces 3 points sont alignés
# 3. affecte une variable booléenne *sont_orthogonaux* qui vaut vrai ssi les droites $(AB)$ et $(AC)$ sont orthogonales
# 4. affiche la valeur de ces deux variables booléennes.
#
# Indications :  
# - A, B et C sont alignés ssi C appartient à la droite $(AB)$, c’est-à-dire ssi $(x_C, y_C)$ vérifie l’équation : \[y=m.x+p\ \mbox{avec}\ m = \frac{(y_B - y_A)}{(x_B - x_A)}\ \mbox{et}\ p = y_A - m.x_A\]
# - $(AB)$ et $(AC)$ orthogonales ssi $\overrightarrow{AB}.\overrightarrow{AC} = 0$, c’est-à-dire ssi :
# \[(x_B − x_A).(x_C − x_A)+(y_B − y_A).(y_C − y_A)=0\]

# ## Exercice 2 - A propos de dates
#
# Le programme Python ci-dessous représente des dates sous la forme d’un tuple (Jour, Mois, Annee). 
#
# Q1. Complétez ce programme pour :
#    
# 1. Lire une date au clavier (en lisant successivement un Jour, un Mois et une Annee)
# 2. Afficher cette date à l’écran
# 3. Afficher un message indiquant si cette date est "correcte" ou non. On considérera qu’une date est correcte si elle remplit les conditions suivantes :
# - le jour est un entier entre 1 et 28 (ou 29, ou 30, ou 31, selon le mois et l’année considérée) ;
# - les années bissextiles (qui ont 29 jours en février) sont celles qui sont soit divisibles par 4 mais pas
# par 100, soit divisibles par 400.  
#
# Indications :
# - pour lire une date au clavier vous pouvez saisir un entier pour le mois (1 pour janvier, 2 pour février, etc.)
# - pour afficher une date à l’écran vous pouvez utilisez la fonction afficheDate fournie
#
# Q2. Complétez maintenant ce programme pour qu’il lise deux dates au clavier, et, si elles sont correctes, les
# affiche par ordre chronologique.

StarcoderdataJupyterScriptsDedupFiltered