• Aucun résultat trouvé

PARTIE 2 : listes - 12 points - Dur´ ee : 45mn.

N/A
N/A
Protected

Academic year: 2022

Partager "PARTIE 2 : listes - 12 points - Dur´ ee : 45mn."

Copied!
7
0
0

Texte intégral

(1)

Polytech’Nice-Sophia Ann´ee 2014-2015

Peip1 – Programmation Imp´erative Vendredi 23 Janvier

Evaluation finale

Aucun document autoris´e.

Important : Les exercices sont ind´ependants les uns des autres. Dans un mˆeme exercice, si on vous demande d’´ecrire

une fonction puis de l’utiliser, vous pouvez utiliser la fonction mˆeme si vous n’avez pas r´eussi `a l’´ecrire. Quand on vous

donne une consigne (par exemple, utiliser une boucle for), si vous ne la respectez pas, vous aurez 0 `a la question.

PARTIE 1 : turtle et chaines de caract` eres - 8 points - Dur´ ee : 30mn.

Nom : Pr´enom : Groupe :

1 Soit la proc´edure Python3 suivante :

from turtle import *

def polygone(nbCote,cote,x,y):

up() goto(x,y) down()

angle=360/nbCote i=0

while i<nbCote:

forward(cote) left(angle) i=i+1

Ecrire un programme qui utilise cette proc´edure pour dessiner une ligne de carr´es et triangles en alternance. La ligne

commence au point (−350,300). Le programme demande `a l’utilisateur le nombre total de figures et la longueur des

cˆot´es. Remarque : Vous n’avez pas `a vous pr´eoccuper de la sortie de la fenˆetre python. Voici un exemple pour 5 figures de longueur 100.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(2)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Soit le programme Python3 suivant :

mot = input("un mot: ") for c in mot :

print(c,"A",sep="%",end="|")

Quel est le r´esultat d’ex´ecution quand mot vaut ”oui” ?

. . . . . . . .

R´e-´ecrire ce programme en utilisant une bouclewhile.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Parenth´esageOn s’int´eresse au parenth´esage d’un texte en comptant les parenth`eses ouvrantes et fermantes c’est

`

a dire ( et ).

1. En utilisant une boucle for, ´ecrire une proc´edure “verifieParenthese(t)” qui compte les parenth`eses ouvrantes et

fermantes det, qui v´erifie qu’il y a bien autant de parenth`eses ouvrantes que de parenth`eses fermantes et affiche

une message en cons´equence.

Par exemple,verifieParenthese(“((a)(b))”)affiche :

Il y a autant de ( que de )

et verifieParenthese(“((a)))(b)”)affiche : Il y a trop de )

. . . . . . . . . . . . . . . . . . . .

(3)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. On voudrait maintenant s’arrˆeter d`es qu’on a ferm´e trop de parenth`eses puisqu’on est sˆur que le texte est

mal parenth´es´e. Ecrire une deuxi`eme version de “verifieParenthese(t)” qui utilise une boucle while et qui se

comporte comme la proc´edure de la question pr´ec´edente, sauf quand il y a trop de parenth`eses fermantes.

Dans ce cas, la proc´edure s’arrˆete d`es qu’il y a trop de “)” et pr´ecise l’indice de l’erreur. Par exemple pour

verifieParenthese(“((a)))(b)”)cela affiche :

il a trop de ), arret immediat a l’indice 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(4)

. . . . . . . . . . . . . . . . . . . .

Brouillon

(5)

PARTIE 2 : listes - 12 points - Dur´ ee : 45mn.

Nom : Pr´enom : Groupe :

4 Marathon de NiceUn coureur du marathon est repr´esent´e par une liste de la forme :[nom,pr´enom,sexe,temps].

Pour simplifier, on suppose que la performance en temps est donn´ee en secondes est que le sexe est soit “F” soit “M”.

Les performances des coureurs `a un marathon sont stock´ees dans une liste de coureurs, chaque coureur ´etant lui-mˆeme

repr´esent´e par une liste de la forme ci-dessus. On appellera une telle liste un “r´esultat au marathon”. Voici un exemple :

marathonNice = [["Larue","Arlette","F",4600],["Moore","Roger","M",3700],["Lapierre","Claude","M",7890], ["Dupont","Antoine","M",4000],["Lafronte","M´elanie","F",5345],["Patine","Val´erie","F",3712],

["R´egent","R´egis","M",4356]]

a) Ecrire la fonction pourcentage(p,n) qui renvoie le pourcentage (un nombre d´ecimal) de p par rapport `a n. Par

exemple, sipest 400 etnest 1000 cela retourne 40, sipest 4 etnest 18 cela retourne 22.22222222222222.

. . . . . . . . . . . . . . . . . . . . . . . .

b) Ecrire la fonctionnbFemmes(l) qui ´etant donn´e une listelde r´esultats au marathon renvoie le nombre de femmes

dans cette liste.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

c) Ecrire la fonctionpremier(l)qui ´etant donn´e une listel(non vide) de r´esultats au marathon renvoie le coureur (ou

la coureuse) qui a gagn´e le marathon.Aide :l ´etant une liste de listes, la fonctionmindeP ython3 ne s’applique

pas, vous devez donc faire une boucle.

. . . . . . . . . . . . . . . . . . . . . . . .

(6)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

d) Ecrire la fonctionlesPremiers(n,l)qui renvoie une liste contenant lesnpremiers gagnants de la listel. Par exemple,

avec la valeur de la variablemarathonN icepr´ec´edente, l’appellesP remiers(4, marathonN ice) renvoie :

[[’Moore’, ’Roger’, ’M’, 3700], [’Patine’, ’Val´erie’, ’F’, 3712], [’Dupont’, ’Antoine’, ’M’, 4000], [’R´egent’, ’R´egis’, ’M’, 4356]]

Si nest plus grand que la longueur del, la fonction lesP remiersrenvoie la liste vide [].Aide : l ´etant une liste

de listes, la fonctionsortdeP ython3 ne s’applique pas, mais vous pouvez utiliser la fonctionpremier(l) que vous

avez d´efinie et leremovedes listes.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(7)

e) Ecrire un programme qui utilise les fonctions pr´ec´edentes pour afficher les 4 premiers de la liste marathonN ice

ainsi que le pourcentage de femmes et d’hommes parmi les 4 premiers. Voici le r´esultat d’ex´ecution :

Les 4 premiers sont : [[’Moore’, ’Roger’, ’M’, 3700], [’Patine’, ’Val´erie’, ’F’, 3712], [’Dupont’, ’Antoine’, ’M’, 4000], [’R´egent’, ’R´egis’, ’M’, 4356]]

Pourcentage de femmes parmi les quatres premiers : 25.0 % Pourcentage d’hommes parmi les quatres premiers : 75.0 %

Nota : pour simplifier, on suppose que la variable marathonN ice a d´ej`a ´et´e inialis´ee avec la valeur de l’´enonc´e,

inutile de recopier l’affectation.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Brouillon

Références

Documents relatifs

1- Trouve un titre pour chaque liste.. Je suis une fleur jaune

Montrer que la suite des d´ eriv´ ees converge uniform´ ement vers une fonction

Ainsi, ´ etant donn´ ees deux villes distinctes s et t ∈ [[n]], s’il existe dans le plan plan un chemin de s ` a t passant par exactement k villes interm´ ediaires toutes distinctes

Cas A : Les séries de données peuvent être interprétées « en lignes », c'est à dire que chaque ligne des données est interprétée comme une courbe (Figure 7). Cas B : Autrement

On considère une liste d’ouvrages LOuvrages où chaque élément de la liste contient un Livre ; caractérisé par son code (un entier), son titre (une chaîne de caractères), et le

Ecrire une fonction prenant en entrée deux listes de nombres triés par ordre croissant et renvoyant la fusion de ces deux listes (si un nombre apparait dans les deux listes il

C'est Euler qui, longtemps avant Ulam, trouva cette suite de nombres premiers, comme images d'entiers consécutifs par le polynôme P (x )=x 2 −x + 41. Si on calcule ces images avec un

tail retourne la liste compos´ ee de tous les ´ el´ ements sauf le premier isEmpty retourne True ssi la liste est vide.. Ces op´ erations sont d´ efinies comme m´ ethodes des objets