• Aucun résultat trouvé

TD - NSI

N/A
N/A
Protected

Academic year: 2022

Partager "TD - NSI"

Copied!
4
0
0

Texte intégral

(1)

TD - NSI - Minis Projets Python 2

TD - NSI

Minis Projets Python 2

Les mini projets sont des épreuves de qualification pour le concours PROLOGIN adaptées à pyhton

GPS – Niveau 2

1 Énoncé et objectifs

1.1 Énoncé

On vous donne une liste de coordonnées de type (xi,yi) , nombres entiers relatifs, représentant les coor- données cartésiennes sur une carte de France des différents centres d’examen pour les demi-finales d’une compétition. Vous vous situez en (x,y).

L’objectif est d’écrire une fonction qui renvoie le centre le plus proche de vous ainsi que divers fonctions permettant de faire des tests. On va aussi proposer un affichage des points avec Matplotlib.

Vous utiliserez la distance euclidienne dans vos calculs.

On se place dans un repère orthonormée. Soit les pointsA¡

xA; yA¢ etB¡

xB; yB¢ . La distance euclidienneABest donnée, en unité de longueur par :

AB= q

(xBxA)2+(yByA)2 Distance euclidienne

1.2 Exemples d’entrée/sortie (ne commencer pas à programmer, lisez bien les consignes)

# Dans la console Python

>>> mesCoords=(38,5)

>>> centreExam=[(54, 82),(75, 21),( 6, 21),( 61, 21),( 60, 68)]

>>> GPS(mesCoords,centreExam) (61,21)

2 Des fonction tests

1. Écrire une fonctionalea(a,b)qui génère un couple d’entiers aléatoires deaàb.

from random import randint

def alea(a,b):

'''in : a,b des entiers relatifs avec a < b

out : un couple d'entiers compris entre a et b''' return ...

www.math93.com / M. Courtois, M. Duffaud 1/4

(2)

TD - NSI - Minis Projets Python 2

# On obtient dans la console

> alea(-50,50) (-21, -7)

2. Écrire une fonctioncentreExam(a,b,n) qui génère une liste den couples distincts, d’entiers aléa- toires compris entreaetb, aveca<b.

Cela va donc nous donner une liste des coordonnées des centres d’examen.

Remarque: On peut dans un premier temps créer une liste quelconque puis améliorer la fonction afin d’obtenir n couples tous distincts.

from random import randint

def centreExam(a,b,n):

'''in : a,b des entiers relatifs (a<b) et n entier naturel >1 out : une liste de n couples distincts d'entiers

compris entre a et b''' ...

return ...

# On obtient dans la console

> centreExam(-10,10,5)

[(8, -6), (-4, -9), (2, 9), (-7, 1), (8, 3)]

3 La fonction distance

1. Écrire la fonctiondistance(A,B)qui renvoie la distance (euclidienne) AB si A et B sont deux couples de coordonnées dans un repère orthonormé.

from math import sqrt def distance(A,B):

'''in : A et B des couples de coordonnées out : la distance AB dans un r.o.n.''' ....

# On obtient dans la console

>>> A=(1,2)

>>> B=(4,6)

>>> distance(A,B) 5.0

www.math93.com / M. Courtois, M. Duffaud 2/4

(3)

TD - NSI - Minis Projets Python 2

On peut vérifier par le calcul que dans un R.O.N on a bien, en unité de longueur :

(A(1 ; 2)

B(4 ; 6) =⇒AB=p

(4−1)2+(6−2)2=p

32+42=p 25=5 Remarque

2. Tester votre fonctiondistanceavec deux points générés avec votre fonctionalea.

4 La fonction GPS

Écrire une fonctionGPS(mesC oor d,l i st eC ent r es)qui renvoie un couple contenant deux entiers, repré- sentant les coordonnées du centre le plus proche de vous. Dans le cas où plusieurs centres sont à la même distance de vous, renvoyez le premier apparaissant dans l’entrée.

def GPS(mesCoords,listeCentres):

'''in : mesCoords un couple de coordonnée et

listeCentres une liste des coordonnées des centres

out : un couple, les coordonnées du centre le plus proche de vous''' ....

# On obtient dans la console

>>> mesCoords=(38,5)

>>> listeCentres=[(54, 82),(75, 21),( 6, 21),( 61, 21),( 60, 68)]

>>> GPS(mesCoords,listeCentres) (61,21)

5 La phase de tests

Tester votre fonction GPS en utilisant des listes aléatoires et donc vos fonctionsaleaetcentreExam.

6 Des graphiques

1. Avec Matplotlib, placer les centres d’examen en bleu et visualiser votre position en rouge.

Aide: il faudra créer une liste d’abscisses et une des ordonnées à partir de la liste de centres d’examen.

Consultez la page dédiée àmatplotlib: https://www.math93.com

Aide

2. Tracer en vert le segment reliant vous et le centre d’examen le plus proche puis le cercle centré sur votre position et de rayon ce segment.

www.math93.com / M. Courtois, M. Duffaud 3/4

(4)

TD - NSI - Minis Projets Python 2

Consultez la page dédiée àmatplotlibpour tracer un cercle : https://www.math93.com

Aide

3. Afficher aussi le distance minimale sur le graphique.

7 Une nouvelle fonction de tri

Adapter un des algorithmes de tri étudiés afin de renvoyer la liste des coordonnées des centres par ordre croissant des distances par rapport à votre position.

Imaginez une visualisation sur Matplotlib.

def tri(mesCoord,listeCentres):

'''in : mesCoord un couple de coordonnée et

listeCentres une liste des coordonnées des centres

out : la liste des coordonnées des centres par ordre croissant des distances par rapport à votre position mesCoord''' ....

www.math93.com / M. Courtois, M. Duffaud 4/4

Références

Documents relatifs

Par conséquent, en supprimant la première ligne de li py l'élément a m , qui figurait en tète de la dernière colonne, se trouve sup- primé, et la dernière colonne du

En effet, si 9 est de degré p , il résulte du lemme III que le système S^ admet pour les [3 et les a une solution unique (abstraction faite d'un facteur constant arbi- traire),

A partir du fichier initial, créer un fichier .CSV nommé NouveauFichier.csv ne conservant que les colonnes longueur pétale, largeur pétale et l’espèce.. Profitez-en pour renommer

Interprétation graphique dans le cas où f est continue et positive sur [a ; b] et où m &gt; 0 : L'aire du domaine limité par la courbe, l'axe des abscisses et les droites

Dans la même classe, écrire une autre fonction horizontal qui prend deux arguments entiers et renvoie une règle graduée : par exemple, horizontal(27,5) renvoie la

´ Ecrire une fonction C2 d’argument un entier naturel n qui renvoie la liste ordonn´ ee de tous les entiers naturels inf´ erieurs ou ´ egaux ` a n qui s’´ ecrivent comme somme

Il s'agit de tracer l'évolution de l'énergie de position lorsque l'objet est lancé à la verticale au cours du temps.. Puis pareil pour

Puis pareil pour