Laurentvidal.fr facilite la recherche de réponses à toutes vos questions avec l'aide de notre communauté active. Expérimentez la commodité de trouver des réponses précises à vos questions grâce à une communauté dévouée d'experts. Découvrez une mine de connaissances de professionnels dans différentes disciplines 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
Merci d'utiliser notre plateforme. Nous nous efforçons de fournir des réponses précises et à jour à toutes vos questions. Revenez bientôt. Merci d'avoir choisi notre plateforme. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Nous sommes ravis de répondre à vos questions sur Laurentvidal.fr. N'oubliez pas de revenir pour en savoir plus.