👤

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

© 2024 IDNLearn. All rights reserved.