J-0
00m
00j
00h
00min
00s

Version interactive avec LaTeX compilé

CCINP Informatique Commune TSI 2017

Notez ce sujet en cliquant sur l'étoile
0.0(0 votes)
Logo ccinp
2025_08_29_a2d16d98c4018ce303d4g

EPREUVE SPECIFIQUE - FILIERE TSI

INFORMATIQUE

Jeudi 4 mai : 14 h-17 h

N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.

Les calculatrices sont interdites

L'épreuve est composée de deux dossiers :
  • un premier dossier de 16 pages contenant le sujet (pages numérotées de à ) et les annexes (pages numérotées de à );
  • un second dossier de 8 pages constituant le document réponse ( DR ) à rendre en fin d'épreuve (pages numérotées de à ).
Les consignes permettant de compléter le document réponse (DR) sont données à la page suivante.
Seul le document réponse est à rendre.
Chaque partie ou sous-partie de ce sujet est indépendante.

Remarques générales

Les réponses aux questions sont à rédiger sur le document réponse (DR) et ne doivent pas dépasser les dimensions des cadres proposés.
Si la réponse attendue est spécifique à un langage, la réponse doit être proposée en langage Python.
Les structures algorithmiques doivent être clairement identifiables par des indentations visibles ou par des barres droites entre le début et la fin de la structure comme proposé ci-dessous:
Si (Condition)
    Alors
        | Instructions
    Sinon
        | Instructions
Fin Si

Conception d'une application sportive "RUGBY MANAGER"

L'application «Rugby Manager» est un jeu destiné aux smartphones et aux tablettes. Il permet de créer une équipe, de l'entraîner et de jouer avec elle. Il est possible de jouer seul (contre l'intelligence artificielle du logiciel) ou en mode multijoueurs. Enfin, l'application est utilisable en ligne ou en Bluetooth.
L'objectif est de programmer un certain nombre de fonctions qui seront utilisées pour créer cette application.

I Étude des modes jeu et statistiques

I. 1 Partie graphique du mode jeu

Dans cette sous-partie, nous souhaitons tout d'abord représenter la partie graphique du mode jeu, c'est-à-dire:
  • un terrain;
  • deux équipes;
  • un ballon.
On souhaite afficher l'image du terrain de rugby suivant, enregistrée dans le répertoire "C:/CCP" sous le nom stade.bmp.
Figure 1 - Image du terrain de rugby

Objectif

Les compétences évaluées dans cette partie portent sur le traitement des images. Il s'agit d'utiliser la bibliothèque d'images décrite en Annexe 1 pour compléter ou modifier des fonctions d'affichage de l'image du terrain et des pixels des maillots des joueurs. Ensuite, il s'agit de mettre en place un "floutage" d'une image pour la mettre en arrière-plan dans le mode statistique.
Q1. En utilisant l'Annexe 1, page 15, compléter le programme du document réponse qui permet:
  • de se placer dans le dossier où se trouve l'image;
  • d'ouvrir l'image et de la stocker dans une variable image_terrain;
  • d'afficher l'image en arrière-plan.
Pour la suite et notamment pour l'affichage des joueurs à l'échelle du terrain, il est nécessaire de connaître les dimensions de l'image.
Q2. Donner les instructions qui permettent de faire cette opération et de stocker le résultat dans deux variables dim_long et dim_larg respectivement dimension en longueur et en largeur. Afficher ensuite le résultat sous la forme ("longueur largeur").
On propose tout d'abord de représenter les joueurs par 4 pixels disposés en carré ayant la couleur du maillot de l'équipe. Le choix des couleurs des maillots doit être laissé libre à l'utilisateur. Cependant, le vert correspondant à la couleur du terrain et le blanc correspondant à la couleur du ballon et des lignes ne pourront pas être utilisés.
Précisons que les lignes font 2 pixels de large, sur une image qui en fait 620 . Il est donc facile de se positionner au centre du terrain. Les lignes numérotées 40 , en pointillés, sont situées à 50 pixels de la ligne centrale.
Q3. Créer une fonction coul( ) qui permet de connaître la couleur exacte du terrain et de la stocker dans une variable coul_ter. L'argument d'entrée de la fonction est la variable image, la sortie est la variable coul_ter. Attention: on choisira comme pixel de référence un des pixels le plus proche du centre du terrain.
Q4. Quel est le type de la variable coul_ter ?
Sur combien de bits mémoire est codé un pixel ?
Q5. Créer une fonction maillot( ) qui utilise la fonction précédente et qui renvoie la liste des couleurs interdites pour les maillots.

I. 2 Partie graphique du mode statistique

Objectif
Dans cette sous-partie, nous nous intéressons au traitement d'image évolué : la mise en place du "floutage" d'une image pour l'arrière-plan du mode statistique.

On s'intéresse donc ici à un autre mode du jeu vidéo: le mode statistique. Dans ce mode, une image de jeu floue va être placée en arrière-plan. Nous allons étudier les fonctions permettant d'effectuer ce floutage.
Pour réaliser un floutage par moyenne simple sur la matrice de pixels, il faut lui appliquer un filtre, que l'on appelle également un masque. Afin de comprendre ce principe, nous proposons d'étudier un exemple de filtrage. On considère les matrices
et
Pour chaque élément de , on considère la matrice carrée de taille 3 , notée qui l'entoure et on calcule le produit de par (multiplication classique ). est appelé noyau. On note la somme des coefficients de la matrice produit obtenue (on pourra utiliser la fonction np.sum sur une liste).
Si est un élément en bordure de , on posera . On forme ainsi une nouvelle matrice dont les éléments intérieurs sont les (et les éléments au bord sont les ):
  • élément se trouvant ligne i et colonne j;
  • la matrice carrée dont l'élément central est .
Ainsi, par exemple
dot et sum étant des fonctions du module numpy, avec qui effectue le produit matriciel (s'écrit aussi ) et sum qui somme tous les termes d'une matrice.
On dit que l'on a filtré la matrice par la matrice , ou que l'on a appliqué le masque (filtre) sur l'image .
Q6. Compléter la fonction filtrer1(filtreA, ) qui prend en argument une matrice carrée filtreA de dimension taille taille et une matrice quelconque matB de dimensions supérieures et qui renvoie la matrice . Vous pouvez utiliser les fonctions du module numpy que vous jugez judicieuses sans préciser l'importation.
On souhaite maintenant appliquer le filtreA à une matrice de pixels , c'est-à-dire aux 3 tableaux et enregistrer le résultat dans une matrice de même format que .
Q7. Créer une fonction filtrer(filtreA, ) qui prend en argument une matrice carrée filtreA de dimension taille taille et un tableau numpy matB de dimensions et qui renvoie le tableau de dimensions identiques. Vous pourrez calculer successivement à l'aide d'une boucle.
Ces matrices réalisent un floutage par moyenne simple (coefficients tous égaux, de somme 1). Plus la taille du filtre est grande, plus le flou sera fort. On peut améliorer cette technique en utilisant un flou gaussien. Son principe est de calculer une moyenne pondérée en accordant plus de poids au pixel central et en diminuant le poids des pixels périphériques.
La matrice servant de filtre est calculée selon le modèle d'une courbe de Gauss (courbe en cloche) à 2 dimensions.
La fonction de Laplace-Gauss à une dimension est et à deux dimensions est .
Plus l'écart-type est grand, plus l'image sera floutée. En pratique, et la taille (impaire) du filtre étant fixés, on construit la matrice filtre terme à terme, chaque élément de la matrice ayant pour expression , où et sont les nombres de lignes et de colonnes qui séparent cet élément du centre et un coefficient constant, tel que la somme de tous les éléments (de type float) ainsi calculés soit égale à 1 .
Par exemple, pour et taille , le filtre est proche de:
Q8. Compléter la fonction matriceFlouGaussien(taille,sigma) qui prend en argument la taille (impaire) de la matrice de floutage, sigma l'écart-type de déviation standard et qui retourne la matrice filtre correspondant au niveau gaussien. Encore une fois, vous pouvez utiliser les fonctions du module numpy que vous jugez judicieuses sans préciser l'importation.
Q9. Écrire ensuite la fonction FloutageGaussien(tabPix,taille,sigma) qui utilise la fonction matriceFlouGaussien(taille,sigma) et filtrer(filtreA,matB) et qui renvoie la matrice tabPix qui a été floutée grâce au filtre défini dans la fonction matriceFlouGaussien.

I. 3 Fonctionnalités du mode statistique

Objectif

Dans cette sous-partie, nous nous intéressons à certaines fonctions du mode statistique. Nous proposons tout d'abord de mettre en œuvre les fonctions permettant de tracer les statistiques de chaque joueur à l'aide d'histogrammes, puis d'écrire la fonction donnant les performances moyennes, minimales et maximales.
Nous allons ici étudier un des tableaux qui sera utilisé dans ce mode. La matrice resultat permet de stocker l'ensemble des données sur chaque joueur de l'équipe. Les lignes correspondent aux numéros des joueurs et les colonnes sont respectivement: le nombre d'essais, le nombre de passes réussies, le nombre de plaquages réussis, le nombre de plaquages manqués, le nombre de franchissements de ligne, le nombre de kilomètres parcourus.
Numéro du
joueur
nombre
d'essais
nombre de
passes
réussies
nombre de
plaquages
réussis
nombre de
plaquages
manqués
nombre de
franchissements
de ligne
nombre de
kilomètres
parcourus
1
2
On souhaite représenter un histogramme de l'équipe pour chacune des colonnes de resultat. Il s'agit d'une représentation graphique présentant en abscisse le numéro de maillot du joueur et en ordonnée la donnée en question.
Nous allons étudier ici l'histogramme pour le nombre de plaquages réussis, soit la colonne de resultat. L'affichage de l'histogramme ne sera pas étudié ici.
Q10. Écrire les instructions qui, à partir de la matrice resultat, construisent la liste des abscisses de l'histogramme et la liste des ordonnées y_plaR.
On souhaite maintenant créer l'histogramme. Pour cela, il faut créer simultanément deux listes à partir de et :
  • une liste barre, qui sera constituée, pour , des valeurs allant de 0 à la valeur y_plaR[i] incluse avec des pas de 0,1 ;
  • une liste abscisse, qui, pour , sera composée d'autant d'éléments que barre, tous égaux à .
L'instruction plot(abscisse,barre,'k.',markersize=10) donnera alors l'histogramme présenté sur la figure 2:
Figure 2 - Histogramme
Q11. Écrire les instructions qui, à partir de la matrice des listes et , construisent les listes barre et abscisse.
D'autres statistiques disponibles permettent de connaître le minimum, le maximum et la moyenne par match sur l'ensemble de la saison d'un joueur, sur la donnée qui nous intéresse. L'obtention de la liste de valeurs concernant une donnée en particulier n'est pas étudiée ici, seule la fonction qui renvoie le minimum, le maximum et la moyenne d'une liste de valeurs (float) est étudiée. Par exemple, pour 6 matchs, la liste des valeurs des plaquages réussis pour le joueur 15 est: valeurs .
Q12. Écrire une fonction minMaxMoy(valeurs), qui prend en entrée une liste de valeurs flottantes et qui renvoie la liste contenant le minimum des valeurs de la liste, le maximum et la moyenne.

II Traitement du transfert des joueurs

Objectif

Cette partie du sujet s'intéresse au traitement de la base de données des joueurs.
Dans le but de créer un jeu en ligne, il est nécessaire de prendre en compte les transferts de joueurs pour la création de sa propre équipe. Pour cela, on souhaite utiliser une base de données. L'objectif est d'analyser la structure de la base de données proposée et de réaliser les requêtes permettant de créer sa propre équipe.
On possède une base de données rugby.db3 avec 2 tables: Joueurs et Clubs.
On souhaite modéliser les transferts des joueurs de club en club comme les transferts réels. L'application donne un certain budget à son utilisateur et en fonction de ses victoires, il pourra acheter des joueurs de plus en plus chers.
Nous allons étudier comment les tables de joueurs et leurs caractéristiques sont associées aux clubs et au salaire des joueurs. Le Salaire annuel sera composé de sommes en euros, alors que celle des Budget des Clubs sera en millions d'euros. Ces attributs représentent leur valeur financière.
Joueurs
Nom Poste Age (an) Poids (kg) Taille (cm) VMA (km/h) Id_Club Salaire euros
Murel Thibault Pilier Gauche 18 105 187 13,6 102 16000
Nkang Jesus Pilier Droit 27 115 176 12,9 10 35000
Yala Olive Troisième ligne Aile 17 90 182 14,5 45 12000
Ramis Thomas Arrière 20 80 178 18,5 31 40000
Clubs
Id_Club Nom Budget total
1 Stade Français 50
2 Ulster 165
31 Stade Toulousain 150
45 Racing Club de Toulon 540
Q13. Donner la requête qui permet de trouver les joueurs de plus de 23 ans qui ont une Vitesse Maximale Aérobie (notée VMA) supérieure à .
Q14. Donner la requête qui permet de connaître les clubs dont les joueurs ont un salaire supérieur à 30000 euros.
Puis, déterminer la requête qui permet de connaître le nombre de joueurs étant au Stade Toulousain et jouant au poste de Talonneur.
Q15. Donner la requête qui permet de calculer le rapport entre la masse salariale des joueurs d'un club (somme des salaires de tous les joueurs) et le budget total du club. Le résultat sera donné en pourcentage du budget total du club.

III Évaluation des performances de l'équipe

Objectif
L'étape suivante permet de construire son équipe à partir de la liste des joueurs. Pour cela, il est important de pouvoir classer ses joueurs suivant ses préférences: le but est de trier la liste des joueurs issus de notre base de données de la manière la plus efficace pour l'utilisateur.
Dans cette partie, on s'intéresse donc au tri de la liste des joueurs de notre équipe en fonction de leurs performances.

Suite au transfert des joueurs dans notre équipe, nous avons créé une table Equipe avec les joueurs suivants:
Equipe
Joueur Poste Age (an) Poids (kg) Taille (cm) VMA (km/h)
Morellon Thibault Pilier Gauche 18 105 187 13,6
Nkeno Jules Pilier Droit 27 115 176 12,9
Yolozo Olivier Troisième ligne Aile 17 90 182 14,5
Ramis Thomas Arrière 20 80 178 18,5
Mechand Julien Talonneur 20 105 181 13,6
Cazo Cyril Deuxième ligne 20 115 197 12,9
Blue Richie Deuxième ligne 26 112 206 15,5
Diverge Martin Troisième ligne Aile 20 108 193 18,5
Dusaut Thierry Troisième ligne Centre 33 100 188 13,6
Michal Pierre Demi de mêlée/Demi d'ouverture 27 115 176 12,9
Dupont Antoine Demi de mêlée 18 70 174 14,5
Choux Jonathan Demi d'ouverture 30 92 188 18,5
Robot Jamie Trois quart Centre 25 104 193 14,9
Totana Wesley Trois quart Centre 27 93 182 18,5
Facke Gael Trois quart Centre 21 90 190 17,5
Dupond Alex Trois quart Aile 25 104 198 18,5
Wagon Anthony Trois quart Aile 21 92 188 18,5
Cours Vincent Trois quart Aile 34 80 178 18,5
Les instructions suivantes permettent d'afficher le tableau de l'équipe sous Python et de le stocker dans la variable monequipe.
import sqlite3 # Import des commandes permettant de manipuler la base de donnees
basesql = u"rugby.s3db" # Base de donnees initiale
cnx = sqlite3.connect(basesql )
curseur = cnx.cursor ()
requete = "SELECT * FROM Equipe"
curseur.execute(requete)
monequipe = curseur.fetchall()
print (monequipe)
Q16. Préciser le type de la variable monequipe.
Q17. Corriger les 2 erreurs de l'algorithme de tri suivant ainsi que l'appel de la fonction afin d'afficher les joueurs dans l'ordre de leur rapidité (rayer la ligne qui vous semble erronée et corriger à coté). La liste en entrée de tri_l est une liste de la forme [[joueur1, poste1, age1, poids1, taille1, VMA1], [joueur2, poste2, age2, poids2, taille2, VMA2], ...] et le paramètre critère correspond à l'indice du critère qui doit être trié.
def echange(l,i,j):
        """ echange 2 valeurs d'une liste """
        |[i],|[j] = |[j], |[i]
def tri_1(liste,critere):
    """ tri la liste en fonction du critere choisi """
    for i in range(liste):
        mini=i
        for j in range(i +1,len(liste)):
            if liste[j][critere] > liste[mini][critere]:
                mini=j
        echange(liste,i,mini)
    return liste
tri_1(monequipe,5)
print(monequipe)
Q18. En appelant la taille de la liste, donner la complexité de la fonction tri_l( ) en fonction de dans le pire des cas. Critiquer le résultat.
Q19. Commenter et expliquer chaque ligne d'instruction de la fonction tri_2( ) suivante (on ne commentera pas segmente).
Quelle est la particularité de cette fonction tri_2( )?
Modifier la fonction tri_2( ) afin qu'elle retourne comme résultat le nombre d'appels récursifs de la fonction tri_2( ).
def segmente(T,val,i,j):
    g=i+1
    d=j
    p=T[i][val]
    while g<=d:
        while d>=0 and T[d][val]>p:
            d=d-1
        while g<=j and T[g][val]<=p:
            g=g+1
        if g<d:
            echange(T,g,d)
            d=d-1
            g=g+1
    k=d
    echange(T,i,d)
    return k
def tri_2(L,val, i, j):
    if i<j:
        k=segmente(L,val,i,j)
        tri_2(L,val,i,k-1)
        tri_2(L,val,k+1,j)
    return L
Q20. Donner alors l'instruction qui utilise cette fonction tri_2( ) pour trier l'équipe en fonction du poids des joueurs.
Pour augmenter l'interactivité du jeu, il sera possible de rentrer ou de modifier des données de chaque joueur afin qu'elles correspondent à la réalité. Pour cela nous avons besoin de pouvoir insérer dans l'ordinateur des nombres à virgule flottante et de les convertir du décimal au binaire. Afin de ne pas gérer des formats de nombres trop grands, on choisit la norme IEE754 simple précision pour stocker les nombres à virgule flottante sur 32 bits (même si ceux-ci ne sont pas implémentés dans le langage Python).
Il n'est nul besoin d'avoir des connaissances de la norme IEE754 pour répondre aux différentes questions. Toutes les informations nécessaires pour répondre à une question seront explicitement données dans son énoncé.
Prenons un exemple pour bien comprendre le format de stockage.
Q21. Convertir le nombre décimal 74,25 en binaire.
Q22. Exprimer ce nombre au format IEE754 simple précision. On indique que les 32 bits du format IEE754 simple précision s'organisent comme suit: le bit de signe, puis l'exposant biaisé sur 8 bits (donc un biais de 127), puis la mantisse sur les 23 derniers bits.
La base de données contient 3000 joueurs ayant chacun des caractéristiques de poids, taille et vitesse, qui peuvent être des nombres flottants.
Q23. Estimer la quantité de mémoire que représentent uniquement les données numériques. Donner le résultat en kilo octets (on approximera ).
Quels sont les avantages et inconvénients du format simple précision pour la gestion des nombres flottants par rapport au format double précision?

IV Entraînement à la passe vissée au rugby

Objectif

L'objectif de cette partie est de modéliser, puis de déterminer la trajectoire d'une balle pour l'insérer dans le mode entraînement du jeu.
Une des spécificités de cette application est qu'elle permet aussi un mode d'entraînement pour améliorer les passes. Afin de réaliser des passes réalistes, dites «vissées » au rugby, il faut modéliser l'ensemble des actions qui s'exercent sur le ballon et étudier sa dynamique.
L'un des phénomènes à modéliser est la résistance de l'air. Le ballon se déplace à sa vitesse maximale quand il vient d'être lâché par les mains, puis la résistance de l'air le ralentit immédiatement. Sa vitesse diminue jusqu'à ce qu'il atteigne sa hauteur maximale. Le ballon reprend ensuite de la vitesse quand il redescend.
Un autre phénomène physique intervient dans le comportement du ballon lors des passes: les effets donnés au ballon par les joueurs en utilisant différentes techniques de prise de ballon et de lâché. Le mouvement du ballon est alors modifié par l'effet Magnus, provoqué par la naissance, dans le sillage du ballon, de tourbillons capricieux appelés vortex.
On cherche à prendre en compte ces deux phénomènes dans l'application.
La modélisation du mouvement du ballon conduit à l'équation
avec:
, constante de temps;
  • , gain statique;
    , vitesse du ballon;
  • , sollicitation.
L'objectif est d'obtenir la vitesse du ballon puis de déterminer sa trajectoire ultérieurement. Cette vitesse est obtenue pour une réponse temporelle du système à une entrée échelon (entrée constante) : .
Q24. Écrire une fonction liste_temps(pas,tmax) renvoyant une liste des temps à partir du pas (intervalle entre deux instants ; cet intervalle sera pris constant) et de tmax (borne supérieure des temps).
Q25. Donner la solution analytique de l'équation différentielle précédente, en considérant des conditions initiales nulles (cela sera le cas dans toute la suite du sujet). Écrire une fonction vitesse( , tau, , temps ) renvoyant une liste des valeurs des vitesses.
Q26. Programmer, en utilisant la méthode d'Euler d'ordre 1, une fonction ordrel_euler( , tau, , temps). Cette fonction prendra comme arguments d'entrée les coefficients de l'équation différentielle, la valeur de l'échelon d'entrée et la liste des temps. Cette fonction retournera une liste.
Q27. Nous voulons tester le programme pour différents pas de discrétisation, de [0,2; 0,4; 0,6]. Écrire la boucle qui permet de résoudre l'équation différentielle pour les différents pas en utilisant la fonction programmée à la question Q26.
La bibliothèque matplotlib est détaillée en Annexe 2 (page 16).
Q28. À partir de la question précédente, réécrire le script qui permet d'afficher les résultats de la résolution numérique par la méthode d'Euler pour les trois pas de temps considérés.

Annexe 1 - Traitement d'images

Afficher une image
import os // Import des commandes permettant de gerer les repertoires de travail
os.chdir('Repertoire de travail') // on se place dans le repertoire ou se trouve la base de donnees
import scipy.misc as scm // bibliotheque image
picture=scm.imread("image.bmp") // stocker l'image dans une variable
imshow(picture) // afficher l'image
print (picture) // donne le nombre de pixels de l'image
picture est alors un tableau aux dimensions du nombre de pixels et contenant un triplet défini pour chaque pixel utilisant le format RGB (Red, Green, Blue) en français RVB (Rouge, Vert, Bleu). La couleur "Rouge" est codée entre 00 et FF en notation hexadécimale et entre 0 et 255 en notation décimale (idem pour les couleurs "Vert" et "Bleu").
picture = array ([[[138 194 138]
    [138 194 138]
    [138 195 138]
    ...,
    [138 195 138]
    [138 195 138]
    [138 194 138]]
    ...,
    [ 49 151 49]
    [ 49 151 49]
    [ 49 151 49]]])
xmax= picture.shape[1] #taille du tableau
ymax= picture.shape[0] #taille du tableau
print ("taille de l'image : %d x %d" % (xmax,ymax))
Pour obtenir la couleur du pixel, il suffit donc de choisir le ou les bons indices du tableau.

Annexe 2 -Bibliothèque MATPLOTLIB.PYPLOT de Python

Cette bibliothèque permet de tracer des graphiques.
Dans les exemples ci-dessous,la bibliothèque matplotlib.pyplot a préalablement été importée à l'aide de la commande:
1 import matplotlib.pyplot as plt
On peut alors utiliser les fonctions de la bibliothèque,dont voici quelques exemples:
1 plt.plot(x,y)
-Arguments d'entrée:un vecteur d'abscisses (tableau de dimension )et un vecteur d'or- données (tableau de dimension
-Description:fonction permettant de tracer sur un graphique points dont les abscisses sont contenues dans le vecteur et les ordonnées dans le vecteur .Cette fonction doit être suivie de la fonction plt.show()pour que le graphique soit affiché.
-Exemple:
x= np.linspace(3,25,5)
y=sin(x)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
1 plt.xlabel(nom)
-Argument d'entrée:une chaîne de caractères.
-Description:fonction permettant d'afficher le contenu de nom en abscisse d'un graphique.
1 plt.ylabel(nom)
-Argument d'entrée:une chaîne de caractères.
-Description:fonction permettant d'afficher le contenu de nom en ordonnée d'un graphique.
1 plt.show()
-Description:fonction réalisantl'affichage d'un graphe préalablement créé par la commande plt.plot(x,y).Elle doit être appelée après la fonction plt.plot et après les fonctions plt.xlabel et plt.ylabel.
FIN

CONCEPTION D'UNE APPLICATION SPORTIVE "RUGBY MANAGER"

Document Réponse

Question 1
import os
...
"""affichage stade"""
import ...
...
...
Question 2
...
...
print( ...
Question 3
def coul(
...
    ...



6
7

Question 4



Question 5

def maillot(
2
3
4
5
6
7

Question 6

def filtrer1(filtreA,matB):
nA=filtreA.shape[0] #matrice carree, donc shape[0]=shape[1]
nb_ligneB=.
nb_colonneB=...
C=matB.copy()
bordure ..
for i .

for .


.
return ...

Question 7

def filtrer( ...

2
3
4
5
6
7
8
9
10
11
12

Question 8

def matriceFlouGaussien (taille, sigma):
"""
taille : taille de la matrice ( impaire )
sigma : écart type (déviation standard )
retourne un niveau gaussien """
mat zeros ([ taille , taille ])
taille ..
for x in range ( - taille, taille +1 ):
for in range ( - taille, taille +1 ):
return ...

Question 9

def FloutageGaussien ( ...
2
3
4
5
6
7
8
9
10
11
12
13
14

Question 10

#x
...
#y_plaR

Question 11

# listes pour l'histogramme
...
...
...
...
...

Question 12

def minMaxMoy(...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Question 13
Requetel=
Question 14
Requete2=
Requete3=
Question 15
Requete4=
Question 16
type(monequipe):

Question 17

def echange(l,i,j):
""" echange 2 valeurs d'une liste """

def tri_1(liste,critere):
""" tri la liste en fonction du critère choisi """
for i in range(liste):
mini
for j in range ( ,len(liste)):
if liste[j][critere] > liste[mini][critere]:
mini j
echange(liste,i,mini)
return liste
tri_1(monequipe,5)
print(monequipe)

Question 18

Question 19

def segmente(T,val,i,j):
    g=i+1
    d=j
    p=T[i][val]
    while g<=d :
        while d>=0 and T[d][val]>p:
            d=d-1
        while g<=j and T[g][val]<=p:
            g=g+1
        if g<d:
            echange(T,g,d)
            d=d-1
            g=g+1
    k=d
    echange(T,i,d)
    return k
def tri_2(L,val, i, j):# ...
    if i<j: # ...
        k=segmente(L,val,i,j) # ...
        tri_2(L,val,i,k-1)#
        tri_2(L,val,k+1,j) # ...
    return L # ...
#modifier la fonction tri_2
def tri_2(L,val, i, j):

Question 20

Instruction :

Question 21



Question 22

Ecriture au format IEE754 simple précision :


Question 23

Espace de stockage :

Avantages et inconvénients du format simple?

Question 24

def liste_temps(pas,tmax):
2
3
4
6

Question 25





Question 26

def ordre1_euler(Kc, tau, U0, temps):
...
...
...
5 ...
6 ...

Question 27

1 ...
...
3 ...
...
...

Question 28

#importation du module graphique de python
for
..

...
7 ...
CCINP Informatique Commune TSI 2017 - Version Web LaTeX | WikiPrépa | WikiPrépa