SlideShare une entreprise Scribd logo
1  sur  26
M. ZAIR
Exercices de
révision sur les
listes
1) (3,5pts)
Etant donnée une liste non vide L.
Ecrire une fonction qui calcule le plus grand écart entre deux
valeurs dans L.
Fonction PGE (L : Liste) : entier ; 0,5pt
Variable p : Liste; min, max : entier ;
Début
pL ; maxVal(L); minVal(L); 0,75pt
tant que (p<>Nil) faire
si(Val(p)> max) alors max Val(p); finsi ;
si(Val(p)< min) alors min Val(p);finsi ; 2pts
pSuiv(p);
Fait;
Retourner(max-min); 0,25pt
Fin 2
Révision sur les listes
2) (3pts)
Etant donnée une liste non vide L, et un nombre entier v.
Ecrire une fonction qui calcule le nombre d’occurrence de
v dans la liste L.
Fonction OCC (L : Liste, v : entier) : entier ; 0,75pt
Variable p : Liste; min, max : entier ;
Début
pL ; cpt0 ; 0,5pt
tant que (p<>Nil) faire
si(Val(p)= v) alors cptcpt+1; finsi ;
p Suiv(p) ; 1,5pt
Fait;
Retourner(cpt) ; 0,25pt
Fin 3
Révision sur les listes
3) (0,5+1,5+1,5=3,5pts)
Soit une liste L, écrire un traitement qui permet de
soustraire 1 à tous les éléments de rang impair,
puis d’ajouter 1 à tous les éléments pairs.
i1; pL;
tantque (p<>Nil) faire
si(i mod 2<>0) alors Aff_Val(p, Val(p)-1); finsi ;
si(Val(p) mod 2=0) alors Aff_Val(p, Val(p)+1); finsi;
ii+1; p Suiv(p);
fait ;
4
Révision sur les listes
5
Rangs des éléments d’une liste
Afficher les éléments de rang pair d’une liste L.
p  Suiv(L) ;
Tant que(p<>NIL) faire
Ecrire(Val(p));
p  Suiv(p);
Si (p <>NIL) alors pSuiv(p); finsi;
fait ;
p  Suiv(L) ;
Tant que(p<>NIL) faire
Ecrire(Val(p));
p  Suiv(p); p  Suiv(p);
{ou alors : p  Suiv(Suiv(p));}
fait ;
p  L ;
Tant que(p<>NIL) faire
Si(p mod 2 = 0) alors Ecrire(Val(p)); finsi;
p  Suiv(p);
fait ;
p  L ; i  1 ;
Tant que(p<>NIL) faire
Si(i mod 2 = 0) alors Ecrire(Val(p)); finsi;
p  Suiv(p); i  i+1 ;
fait ;
Fausse
Fausse Correcte
Correcte
6
Exercice X
4) Afficher les valeurs de tous les éléments sauf
le premier et le dernier :
PSuiv(L);
Tant que(Suiv(P)<>Nil) faire
Ecrire(Val(P)); PSuiv(P);
fait;
5 0 3
L P P
Arrêt :
Suiv(P)=Nil
-1
P
5) (0,5+1+1=2,5pts)
Soit une liste non vide L. Ecrire un
traitement qui permet de la rendre une
liste circulaire en reliant le dernier élément
avec le premier élément.
pL;
tant que(Suiv(p)<>Nil) faire
pSuiv(p);
Fait;
Aff_Suiv(p, L); 7
Révision sur les listes
6) (0,75+1,5+0,75=3pts)
Ecrire un traitement qui permet de calculer la moyenne des
éléments d’une liste circulaire.
8
Révision sur les listes
sVal(L); cpt1; pSuiv(L); {0,75pt}
tantque (p<>L) faire
cptcpt+1; ss + Val(p); p Suiv(p); {1,5pt}
fait ;
moys/cpt; {0,75pt}
s0; cpt0; pL; {0,75pt}
Répéter
ss + Val(p); cptcpt+1; p Suiv(p); {1,5pt}
Jusqu’à (p=L);
moys/cpt; {0,75pt}
s0; cpt0; pL; {0,75pt}
tantque (Suiv(p)<>L) faire
cptcpt+1; ss + Val(p); p Suiv(p); {1,5pt}
fait ;
moy  (s+Val(p)) / (cpt+1); {0,75pt}
7) (3pts)
Effectuer une rotation à gauche dans une liste non vide L.
Exemple : 𝟓 → 𝟕 → 𝟎 → 𝟏 devient 𝟕 → 𝟎 → 𝟏 → 𝟓
{Méthode 1 : avec modification des valeurs. Principe : on met la
valeur du 1er maillon dans x, puis on décale à gauche les valeurs de
tous les éléments (du 2ème au dernier), puis on met x dans le dernier}
x Val(L);
qL; p Suiv(L);
tant que (p<>Nil) faire
Aff_Val(q, Val(p)); qp; pSuiv(p);
fait;
Aff_Val(q, x); 9
Révision sur les listes
5 0 1
L
7
x=5
5 0 1
L q p
7
q p
q p
7 0 1 5
q p=Nil
{Méthode 2 : avec modification des chainages. Principe : Mettre le
premier élément à la fin de la liste, ainsi le 2ème maillon devient le
premier maillon dans la liste}
{placer q sur le deuxième maillon} qSuiv(L);
{placer p sur le dernier maillon}
pL; tant que (Suiv(p)<>Nil) faire pSuiv(p); fait;
{Relier le dernier(p) avec le premier(L)} Aff_Suiv(p, L);
{Casser le chainage entre le premier (L) avec le deuxième (q)}
Aff_Suiv(L, Nil);
{Placer L avec q}
Lq; 10
Révision sur les listes
5 0 1
L
7
5 0 1
L p
7
q p p
p
L
8) (4pts)
Effectuer une rotation à droite dans une liste non vide L.
Exemple : 𝟓 → 𝟕 → 𝟎 → 𝟏 devient 𝟏 → 𝟓 → 𝟕 → 𝟎
{Méthode 1 : Avec modification des valeurs. Principe : on
permute entre le 1er et le 2ème, ensuite entre le 1er et le 3ème,
ensuite entre le 1er et le 4ème, …}
p Suiv(L);
Tant que(p<>Nil) faire
x Val(L); Aff_Val(L, Val(p)); Aff_Val(p, x);
p Suiv(p);
Fait; 11
Révision sur les listes
5 0 1
L p
7
p p
7 5 7 0
5 0 1
L
7
x=5 x=7 x=0 p=Nil
0
1
{Méthode 2 : avec modification des chainages. Principe : Mettre le
dernier élément au début de la liste, ainsi l’avant dernier maillon
devient le dernier maillon dans la liste}
{placer p sur le dernier maillon et q sur l’avant dernier}
pL; tant que (Suiv(p)<>Nil) faire qp; pSuiv(p); fait;
{Relier le dernier(p) avec le premier(L)} Aff_Suiv(p, L);
{Casser le chainage entre l’avant dernier (q) avec le dernier (p)}
Aff_Suiv(q, Nil);
{Placer L avec p}
Lp; 12
Révision sur les listes
5 0 1
L p
7
p p
5 0 1
L
7
q p q q L
9) (5,5pts)
Etant donnée une liste non vide L1
contenant que des 0 et des 1.
Ecrire une procédure qui construit
une liste L2 qui représente le
complément de 1 de la liste L1 (le 0
devient 1 et le 1 devient 0).
13
Révision sur les listes
9) Procédure Complément_à_1 (L1 : Liste, var L2 : Liste); {1pt}
Variable p1, p2, q2 : Liste;
Début
p1  L1; L2 Nil; {0,5pt}
tant que (p1<>Nil) faire
p2Allouer();
Si (Val(p1)=0) alors Aff_Val(p2, 1);
Sinon Aff_Val(p2, 0);
Finsi; {ou alors : } Aff_Val(p2, 1- Val(p1));
si(L2=Nil) alors L2  p2; q2  p2; {3,5pt}
sinon Aff_Suiv(q2, p2); q2  p2;
finsi;
p1  Suiv(p1);
fait;
Si(L2˂˃Nil) alors Aff_Suiv(p2, Nil); finsi; {0,5pt}
Fin 14
Révision sur les listes
10) (1+5=6pts)
Etant donnée une liste non vide L.
Ecrire une procédure ‘Inverse’ qui inverse la liste L.
Procédure Inverse (var L : Liste);
Variable Q, P : Liste;
Début
Fin 15
Révision sur les listes
Q Suiv(L);
Aff_Suiv(L, Nil);
Tantque(Q < > Nil) faire
P Suiv(Q);
Aff_Suiv(Q, L);
LQ;
QP;
Fait;
QNil; P Suiv(L);
Tantque(P < > Nil) faire
Aff_Suiv(L, Q);
QL;
L P;
P Suiv(P);
Fait ;
Aff_Suiv(L, Q);
16
Révision sur les listes
qNil; p Suiv(L); {𝒒 → 𝑳 → 𝒑}
Tant que (p < > Nil) faire
Aff_Suiv(L, q);
qL; L p p Suiv(p);
Fait ;
Aff_Suiv(L, q);
5 0 1
L q p
7
q p
q p p=Nil
5 0
7
P A F
q=Nil
L L L
1
P A F
Exercice Interrogation Mai 2019 : (12,5 pts)
1) (1,5pt)
Définir les structures de données d’une liste d’entiers tel
que vous l’avez vue en cours.
Algorithme exo1;
Type Maillon= structure
Val : entier; {1pt}
Suiv : pointeur Maillon;
Fin ;
Liste = pointeur Maillon; {0,5pt}
Variable p, q, L : Liste; n, i : entier;
17
Révision sur les listes
2) (4,5pts)
Ecrire une fonction qui vérifie si un
nombre entier donné x>1 est premier
ou non. (Un nombre x est premier s’il
accepte exactement 2 diviseurs.
~~Prévoir une solution optimale si
possible~~
18
Révision sur les listes
Fonction Premier (x : entier) : booléen; {1pt}
Variable i, cpt : entier; pr : booléen;
Début
{solution non optimale}
cpt  0; {0,5pt}
pour i  1 à x pas 1 faire
si(x mod i =0) alors
cpt  cpt+1; {1,5pt}
Finsi ;
fait ;
si (cpt=2) alors retourner(vrai);
sinon retourner(faux); {0,5pt}
finsi ; 19
Révision sur les listes
{solution optimale}
pr  vrai; {0,5pt} i  2;
tant que (i<=x div 2) et (pr=vrai) faire
si(x mod i =0) alors
pr  faux;
sinon i  i+1; {2,5pts}
Finsi;
Fait;
retourner(pr); {0,5pt}
Fin
20
Révision sur les listes
3) Ecrire un algorithme qui :
a. (0,5pt)
Lit un nombre entier n >1.
b. (5pts)
Utilise la fonction précédente pour créer une liste
L contenant tous les nombres premiers positifs
qui sont inférieurs ou égal n.
Exemple : si n=10 alors la liste va être :
21
Révision sur les listes
DEBUT
Répéter
Ecrire(“Donner n>1“); lire(n); {0,5pt}
jusqu’à(n>1);
LNil; {0,5pt}
pour i  2 à n pas 1 faire
si(Premier(i)) alors
pAllouer(); Aff_Val(p, i);
Si(L=Nil) alors L  p; q  p; {4pts}
Sinon Aff_Suiv(q, p); q  p;
Finsi;
Finsi;
Fait;
Aff_Suiv(p, Nil); {0,5pt}
22
Révision sur les listes
c. (1pt)
Affiche la liste L.
p  L;
tant que (p<>Nil) faire
Ecrire(Val(p)); {1pt}
p  Suiv(p);
fait;
FIN
23
Révision sur les listes
24
Le Beurre de cette séance : (‫)فوائد‬
1) Refaite l’exercice 1, la maitrise du modèle
doit être à 100%
2) Il ne faut surtout pas oublier d’avancer le
pointeur lors des opérations qui
nécessitent un parcours sur les éléments
de la liste (PSuiv(P);).
3)
Liste vide : L=Nil
Liste avec un seul élément : Suiv(L) = Nil
Liste avec plus d’un élément : Suiv(L) <> Nil
25
4)
5) Le premier maillon constitue un cas spécial, alors si on
pose une question dans laquelle on veut faire la
création d’une liste, une insertion/suppression d’un
maillon alors il faut voir si le cas du premier élément se
pose ou pas.
Tant que (P<>Nil)…. Tant que (Suiv(P)<>Nil)….
Les actions de la boucles
sont exécutées sur tous
les éléments de la liste
Les actions de la boucles
sont exécutées sur tous
les éléments de la liste
sanf le dernier
A la sortie de la boucle
on trouve P = Nil
A la sortie de la boucle
on trouve Suiv(P) = Nil
mais P<>Nil
Le Beurre de cette séance : (‫)فوائد‬
26
6) Lorsqu’on veut modifier une liste (modification
de la valeur/chainage d’un maillon, l’insertion,
ou la suppression d’un maillon), il faut :
a)Dessiner une liste comportant au moins 4
maillons
b)Détecter les maillons qui sont infectés par
ces modifications, et placer un pointeur sur
chaque maillon infecté (sur le schéma)
c)Effectuer les modifications nécessaires sur
chaque maillon infecté et faire attention à
l‘ordre (sur le schéma)
d)Ecrire la solution algorithmique
Le Beurre de cette séance : (‫)فوائد‬

Contenu connexe

Plus de OlyvierNzighou1

Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxAlgorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxOlyvierNzighou1
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup managementOlyvierNzighou1
 
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...OlyvierNzighou1
 
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).pptOlyvierNzighou1
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.OlyvierNzighou1
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxOlyvierNzighou1
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxOlyvierNzighou1
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxOlyvierNzighou1
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptxOlyvierNzighou1
 

Plus de OlyvierNzighou1 (12)

Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxAlgorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
 
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
 
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt0015- Sous-programmes (Partie 4 - Divers  Bonnes Pratiques).ppt
0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptx
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
 
Algebre_Boole-1.pptx
Algebre_Boole-1.pptxAlgebre_Boole-1.pptx
Algebre_Boole-1.pptx
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptx
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptx
 
AG-15-12-2023.ppt
AG-15-12-2023.pptAG-15-12-2023.ppt
AG-15-12-2023.ppt
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptx
 

Dernier

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Dernier (20)

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

1- Exercices de révision sur les listes.pptx

  • 2. 1) (3,5pts) Etant donnée une liste non vide L. Ecrire une fonction qui calcule le plus grand écart entre deux valeurs dans L. Fonction PGE (L : Liste) : entier ; 0,5pt Variable p : Liste; min, max : entier ; Début pL ; maxVal(L); minVal(L); 0,75pt tant que (p<>Nil) faire si(Val(p)> max) alors max Val(p); finsi ; si(Val(p)< min) alors min Val(p);finsi ; 2pts pSuiv(p); Fait; Retourner(max-min); 0,25pt Fin 2 Révision sur les listes
  • 3. 2) (3pts) Etant donnée une liste non vide L, et un nombre entier v. Ecrire une fonction qui calcule le nombre d’occurrence de v dans la liste L. Fonction OCC (L : Liste, v : entier) : entier ; 0,75pt Variable p : Liste; min, max : entier ; Début pL ; cpt0 ; 0,5pt tant que (p<>Nil) faire si(Val(p)= v) alors cptcpt+1; finsi ; p Suiv(p) ; 1,5pt Fait; Retourner(cpt) ; 0,25pt Fin 3 Révision sur les listes
  • 4. 3) (0,5+1,5+1,5=3,5pts) Soit une liste L, écrire un traitement qui permet de soustraire 1 à tous les éléments de rang impair, puis d’ajouter 1 à tous les éléments pairs. i1; pL; tantque (p<>Nil) faire si(i mod 2<>0) alors Aff_Val(p, Val(p)-1); finsi ; si(Val(p) mod 2=0) alors Aff_Val(p, Val(p)+1); finsi; ii+1; p Suiv(p); fait ; 4 Révision sur les listes
  • 5. 5 Rangs des éléments d’une liste Afficher les éléments de rang pair d’une liste L. p  Suiv(L) ; Tant que(p<>NIL) faire Ecrire(Val(p)); p  Suiv(p); Si (p <>NIL) alors pSuiv(p); finsi; fait ; p  Suiv(L) ; Tant que(p<>NIL) faire Ecrire(Val(p)); p  Suiv(p); p  Suiv(p); {ou alors : p  Suiv(Suiv(p));} fait ; p  L ; Tant que(p<>NIL) faire Si(p mod 2 = 0) alors Ecrire(Val(p)); finsi; p  Suiv(p); fait ; p  L ; i  1 ; Tant que(p<>NIL) faire Si(i mod 2 = 0) alors Ecrire(Val(p)); finsi; p  Suiv(p); i  i+1 ; fait ; Fausse Fausse Correcte Correcte
  • 6. 6 Exercice X 4) Afficher les valeurs de tous les éléments sauf le premier et le dernier : PSuiv(L); Tant que(Suiv(P)<>Nil) faire Ecrire(Val(P)); PSuiv(P); fait; 5 0 3 L P P Arrêt : Suiv(P)=Nil -1 P
  • 7. 5) (0,5+1+1=2,5pts) Soit une liste non vide L. Ecrire un traitement qui permet de la rendre une liste circulaire en reliant le dernier élément avec le premier élément. pL; tant que(Suiv(p)<>Nil) faire pSuiv(p); Fait; Aff_Suiv(p, L); 7 Révision sur les listes
  • 8. 6) (0,75+1,5+0,75=3pts) Ecrire un traitement qui permet de calculer la moyenne des éléments d’une liste circulaire. 8 Révision sur les listes sVal(L); cpt1; pSuiv(L); {0,75pt} tantque (p<>L) faire cptcpt+1; ss + Val(p); p Suiv(p); {1,5pt} fait ; moys/cpt; {0,75pt} s0; cpt0; pL; {0,75pt} Répéter ss + Val(p); cptcpt+1; p Suiv(p); {1,5pt} Jusqu’à (p=L); moys/cpt; {0,75pt} s0; cpt0; pL; {0,75pt} tantque (Suiv(p)<>L) faire cptcpt+1; ss + Val(p); p Suiv(p); {1,5pt} fait ; moy  (s+Val(p)) / (cpt+1); {0,75pt}
  • 9. 7) (3pts) Effectuer une rotation à gauche dans une liste non vide L. Exemple : 𝟓 → 𝟕 → 𝟎 → 𝟏 devient 𝟕 → 𝟎 → 𝟏 → 𝟓 {Méthode 1 : avec modification des valeurs. Principe : on met la valeur du 1er maillon dans x, puis on décale à gauche les valeurs de tous les éléments (du 2ème au dernier), puis on met x dans le dernier} x Val(L); qL; p Suiv(L); tant que (p<>Nil) faire Aff_Val(q, Val(p)); qp; pSuiv(p); fait; Aff_Val(q, x); 9 Révision sur les listes 5 0 1 L 7 x=5 5 0 1 L q p 7 q p q p 7 0 1 5 q p=Nil
  • 10. {Méthode 2 : avec modification des chainages. Principe : Mettre le premier élément à la fin de la liste, ainsi le 2ème maillon devient le premier maillon dans la liste} {placer q sur le deuxième maillon} qSuiv(L); {placer p sur le dernier maillon} pL; tant que (Suiv(p)<>Nil) faire pSuiv(p); fait; {Relier le dernier(p) avec le premier(L)} Aff_Suiv(p, L); {Casser le chainage entre le premier (L) avec le deuxième (q)} Aff_Suiv(L, Nil); {Placer L avec q} Lq; 10 Révision sur les listes 5 0 1 L 7 5 0 1 L p 7 q p p p L
  • 11. 8) (4pts) Effectuer une rotation à droite dans une liste non vide L. Exemple : 𝟓 → 𝟕 → 𝟎 → 𝟏 devient 𝟏 → 𝟓 → 𝟕 → 𝟎 {Méthode 1 : Avec modification des valeurs. Principe : on permute entre le 1er et le 2ème, ensuite entre le 1er et le 3ème, ensuite entre le 1er et le 4ème, …} p Suiv(L); Tant que(p<>Nil) faire x Val(L); Aff_Val(L, Val(p)); Aff_Val(p, x); p Suiv(p); Fait; 11 Révision sur les listes 5 0 1 L p 7 p p 7 5 7 0 5 0 1 L 7 x=5 x=7 x=0 p=Nil 0 1
  • 12. {Méthode 2 : avec modification des chainages. Principe : Mettre le dernier élément au début de la liste, ainsi l’avant dernier maillon devient le dernier maillon dans la liste} {placer p sur le dernier maillon et q sur l’avant dernier} pL; tant que (Suiv(p)<>Nil) faire qp; pSuiv(p); fait; {Relier le dernier(p) avec le premier(L)} Aff_Suiv(p, L); {Casser le chainage entre l’avant dernier (q) avec le dernier (p)} Aff_Suiv(q, Nil); {Placer L avec p} Lp; 12 Révision sur les listes 5 0 1 L p 7 p p 5 0 1 L 7 q p q q L
  • 13. 9) (5,5pts) Etant donnée une liste non vide L1 contenant que des 0 et des 1. Ecrire une procédure qui construit une liste L2 qui représente le complément de 1 de la liste L1 (le 0 devient 1 et le 1 devient 0). 13 Révision sur les listes
  • 14. 9) Procédure Complément_à_1 (L1 : Liste, var L2 : Liste); {1pt} Variable p1, p2, q2 : Liste; Début p1  L1; L2 Nil; {0,5pt} tant que (p1<>Nil) faire p2Allouer(); Si (Val(p1)=0) alors Aff_Val(p2, 1); Sinon Aff_Val(p2, 0); Finsi; {ou alors : } Aff_Val(p2, 1- Val(p1)); si(L2=Nil) alors L2  p2; q2  p2; {3,5pt} sinon Aff_Suiv(q2, p2); q2  p2; finsi; p1  Suiv(p1); fait; Si(L2˂˃Nil) alors Aff_Suiv(p2, Nil); finsi; {0,5pt} Fin 14 Révision sur les listes
  • 15. 10) (1+5=6pts) Etant donnée une liste non vide L. Ecrire une procédure ‘Inverse’ qui inverse la liste L. Procédure Inverse (var L : Liste); Variable Q, P : Liste; Début Fin 15 Révision sur les listes Q Suiv(L); Aff_Suiv(L, Nil); Tantque(Q < > Nil) faire P Suiv(Q); Aff_Suiv(Q, L); LQ; QP; Fait; QNil; P Suiv(L); Tantque(P < > Nil) faire Aff_Suiv(L, Q); QL; L P; P Suiv(P); Fait ; Aff_Suiv(L, Q);
  • 16. 16 Révision sur les listes qNil; p Suiv(L); {𝒒 → 𝑳 → 𝒑} Tant que (p < > Nil) faire Aff_Suiv(L, q); qL; L p p Suiv(p); Fait ; Aff_Suiv(L, q); 5 0 1 L q p 7 q p q p p=Nil 5 0 7 P A F q=Nil L L L 1 P A F
  • 17. Exercice Interrogation Mai 2019 : (12,5 pts) 1) (1,5pt) Définir les structures de données d’une liste d’entiers tel que vous l’avez vue en cours. Algorithme exo1; Type Maillon= structure Val : entier; {1pt} Suiv : pointeur Maillon; Fin ; Liste = pointeur Maillon; {0,5pt} Variable p, q, L : Liste; n, i : entier; 17 Révision sur les listes
  • 18. 2) (4,5pts) Ecrire une fonction qui vérifie si un nombre entier donné x>1 est premier ou non. (Un nombre x est premier s’il accepte exactement 2 diviseurs. ~~Prévoir une solution optimale si possible~~ 18 Révision sur les listes
  • 19. Fonction Premier (x : entier) : booléen; {1pt} Variable i, cpt : entier; pr : booléen; Début {solution non optimale} cpt  0; {0,5pt} pour i  1 à x pas 1 faire si(x mod i =0) alors cpt  cpt+1; {1,5pt} Finsi ; fait ; si (cpt=2) alors retourner(vrai); sinon retourner(faux); {0,5pt} finsi ; 19 Révision sur les listes
  • 20. {solution optimale} pr  vrai; {0,5pt} i  2; tant que (i<=x div 2) et (pr=vrai) faire si(x mod i =0) alors pr  faux; sinon i  i+1; {2,5pts} Finsi; Fait; retourner(pr); {0,5pt} Fin 20 Révision sur les listes
  • 21. 3) Ecrire un algorithme qui : a. (0,5pt) Lit un nombre entier n >1. b. (5pts) Utilise la fonction précédente pour créer une liste L contenant tous les nombres premiers positifs qui sont inférieurs ou égal n. Exemple : si n=10 alors la liste va être : 21 Révision sur les listes
  • 22. DEBUT Répéter Ecrire(“Donner n>1“); lire(n); {0,5pt} jusqu’à(n>1); LNil; {0,5pt} pour i  2 à n pas 1 faire si(Premier(i)) alors pAllouer(); Aff_Val(p, i); Si(L=Nil) alors L  p; q  p; {4pts} Sinon Aff_Suiv(q, p); q  p; Finsi; Finsi; Fait; Aff_Suiv(p, Nil); {0,5pt} 22 Révision sur les listes
  • 23. c. (1pt) Affiche la liste L. p  L; tant que (p<>Nil) faire Ecrire(Val(p)); {1pt} p  Suiv(p); fait; FIN 23 Révision sur les listes
  • 24. 24 Le Beurre de cette séance : (‫)فوائد‬ 1) Refaite l’exercice 1, la maitrise du modèle doit être à 100% 2) Il ne faut surtout pas oublier d’avancer le pointeur lors des opérations qui nécessitent un parcours sur les éléments de la liste (PSuiv(P);). 3) Liste vide : L=Nil Liste avec un seul élément : Suiv(L) = Nil Liste avec plus d’un élément : Suiv(L) <> Nil
  • 25. 25 4) 5) Le premier maillon constitue un cas spécial, alors si on pose une question dans laquelle on veut faire la création d’une liste, une insertion/suppression d’un maillon alors il faut voir si le cas du premier élément se pose ou pas. Tant que (P<>Nil)…. Tant que (Suiv(P)<>Nil)…. Les actions de la boucles sont exécutées sur tous les éléments de la liste Les actions de la boucles sont exécutées sur tous les éléments de la liste sanf le dernier A la sortie de la boucle on trouve P = Nil A la sortie de la boucle on trouve Suiv(P) = Nil mais P<>Nil Le Beurre de cette séance : (‫)فوائد‬
  • 26. 26 6) Lorsqu’on veut modifier une liste (modification de la valeur/chainage d’un maillon, l’insertion, ou la suppression d’un maillon), il faut : a)Dessiner une liste comportant au moins 4 maillons b)Détecter les maillons qui sont infectés par ces modifications, et placer un pointeur sur chaque maillon infecté (sur le schéma) c)Effectuer les modifications nécessaires sur chaque maillon infecté et faire attention à l‘ordre (sur le schéma) d)Ecrire la solution algorithmique Le Beurre de cette séance : (‫)فوائد‬