Trouvez des réponses facilement sur Laurentvidal.fr, la plateforme de Q&R de confiance. Découvrez des solutions complètes à vos questions grâce à des professionnels expérimentés dans divers domaines sur notre plateforme. Connectez-vous avec une communauté d'experts prêts à fournir des solutions précises à vos questions de manière rapide et efficace sur notre plateforme conviviale de questions-réponses.

Bonjour tout le monde j'espère que vous allez tous très bien... Je n'étais pas là au dernier cours d'outil numérique, et le prof semble s'en foutre de mon absence.
J'ai du mal avec cette exercice.


Objectifs : programmer des petites routines qui manipulent des listes.

1. Programme une fonction rotation(liste) qui décale d’un rang tous les éléments d’une liste (le dernier élément devenant le premier). La fonction renvoie une nouvelle liste.
Par exemple rotation([1,2,3,4]) renvoie la liste [4,1,2,3].

2. Programme une fonction inverser(liste) qui inverse l’ordre des éléments d’une liste.
Par exemple inverser([1,2,3,4]) renvoie la liste [4,3,2,1].

3. A) Programme une fonction supprimer_rang(liste,rang) qui renvoie une liste formée de tous les éléments, sauf celui au rang donné.
Par exemple supprimer_rang([8,7,6,5,4].

B) renvoie la liste [8,7,5,4] (l’élément 6 qui était au rang 2 est supprimé).

4. Programme une fonction supprimer_element(liste,element) renvoyant une liste qui contient tous les éléments sauf ceux égaux à l’élément spécifié.
Par exemple supprimer_element([8,7,4,6,5,4],4) renvoie la liste [8,7,6,5] (tous les éléments égaux à 4 ont été supprimés).​


Sagot :

caylus

Réponse :

Bonjour,

Explications :

1. Programme une fonction rotation(liste) qui décale d’un rang tous les éléments d’une liste (le dernier élément devenant le premier). La fonction renvoie une nouvelle liste.

Par exemple rotation([1,2,3,4]) renvoie la liste [4,1,2,3].

Considérons l'ensemble des nombres i tels que 0≤i≤4

E={0,1,2,3,4}={i ∈N | 0≤i≤4}

F={ i % 5 | i∈E}

F =E n'est autre que l'ensembre des restes de la division de tout élément de E par 5.

Retirons 1 à chaque valeur de i

1-1=0 => 0 %5 =0

2-1=1 => 1 % 5 =1

3-1=2 => 2 %5 =2

4-1=3 => 3 %5 =3

0-1=-1 => -1 %5 =4  (car -1 %5 =(-1+5)%5 =4%5=4)

def rotation (pListe):

   return ([ pListe[(i-1)% len(pListe) ] for i in range(len(pListe))])

2. Programme une fonction inverser(liste) qui inverse l’ordre des éléments d’une liste.

Par exemple inverser([1,2,3,4]) renvoie la liste [4,3,2,1].

un grand classique:

def inverser(pListe):

   return [pListe[::-1]]

3. A) Programme une fonction supprimer_rang(liste,rang) qui renvoie une liste formée de tous les éléments, sauf celui au rang donné.

Par exemple supprimer_rang([8,7,6,5,4].

Incompréhensible

B) renvoie la liste [8,7,5,4] (l’élément 6 qui était au rang 2 est supprimé).

def supprimer_rang(pListe,pRang):

   def phi(y, x):

       if y < x: return y

       else: return y + 1

   for i in range(len(pListe)-1):

       print (i,phi(i,pRang) )

   return ([pListe[phi(i,pRang) ] for i in range(len(pListe)-1)] )

Rem: phi est une fonction définie uniquement dans la fonction supprimer_rang.

On recherche len(pListe)-1 nombres puisque l'on en a supprimé 1.

On itère des les nombres x de 0,1,2,... ,len(pListe)-1 et si celui-ci est

inférieur à pRang, on le renvoie

sinon on renvoie le suivant de x

ex:

E=[8,7,6,5,4]

A=supprimer_rang(E,2)

x est le rang : il varie depuis 0 jusque 4 (exclus)

x=0 =>on renvoie  0 , E[x) vaut 8

x=1 => 1 E[x]=7

x=2 => on renvoie 2+1 =3 , E[3]=5

x=3 => 3+1=4, E[4]=4

4. Programme une fonction supprimer_element(liste,element) renvoyant une liste qui contient tous les éléments sauf ceux égaux à l’élément spécifié.

Par exemple supprimer_element([8,7,4,6,5,4],4) renvoie la liste [8,7,6,5] (tous les éléments égaux à 4 ont été supprimés).​

Un petit parcours de la liste sans renvoyer les éléments égaux à pElement.

def supprimer_element(pListe,pElement):

   return ([ i for i in pListe  if i != pElement] )

View image caylus
Nous apprécions votre temps. Revenez quand vous voulez pour obtenir les informations les plus récentes et des réponses à vos questions. Merci d'avoir choisi notre plateforme. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Visitez toujours Laurentvidal.fr pour obtenir de nouvelles et fiables réponses de nos experts.