Untitled
Untitled
Untitled
ci)
183300832
SRABEDIS EDIH
(https://partiel2.uvci.edu.ci/mod/quiz/attempt.php?attempt=38427&cmid=827&lang=fr)
(https://partiel2.uvci.edu.ci/mod/quiz/attempt.php?attempt=38427&cmid=827&lang=en)
AA A
Mes cours
Tableau de bord (https://partiel2.uvci.edu.ci/my/) → Mes cours → EXAMEN - SEMESTRE 3 - SESSION NORMALE - MMX) 2020
(https://partiel2.uvci.edu.ci/course/view.php?id=37) → SESSION 1 - 13 JUIN - 2020 (https://partiel2.uvci.edu.ci/course/view.php?id=37#section-2) → Épreuve :
Algorithmique avancée (https://partiel2.uvci.edu.ci/mod/quiz/view.php?id=827)
Tableau de bord Accueil du site Calendrier
Badges Tous les cours Course dashboard
(https://partiel2.uvci.edu.ci/badges/mybadges.php) (https://partiel2.uvci.edu.ci/course/)
Question 1 Exercice 1 :
Réponse
Toutes les réponses ne doivent pas avoir des espaces, ni de ponctuation et elles doivent être en minuscule.
incomplète
Noté sur 20,00 Nous supposons dans que la liste a déjà été saisie
Partie 1 :
SRABEDIS EDIH
Ecrire une fonction qui renvoie le nombre d'éléments d'une liste chaînée.
Solution :
fonction cpterEltListe(
{E
T} :
liste
):
------
chaîne entier
Var
nbElt : entier
pliste : Liste
Début
nbelt
←0
pliste ← T
Tantque
T<>nil
faire
nbElt ←
nbelt+1
pliste ←
p^.suivant
ntantque
renvoyer
nbelt+1
Fin
Algorithme nbrelet
fonction
nbrelet
({E}T : Liste) :
entier
Type
liste
=
structure
Info : chaîne
Suivant :
chaine
Finstructure
Type Liste =
structure
var
val : Liste
SRABEDIS EDIH
nb : entier
Début
nb ←
cptereltliste
Af cher "Le nombre d'éléments est :", nb
Fin
Partie 2 :
Ecrire une fonction qui renvoie le nombre d'éléments d'une liste chaînée ayant une valeur donnée (champ Info).
Solution :
fonction cpterOccEltListe(
{E
T} : Liste,
{E
val} : chaîne) :
entier
Var
nbOcc : entier
pliste : Liste
Début
nbOcc ←
pliste
←T
tantque
pliste<>0
faire
si
nbocc>=0
alors
nbOcc ←
nbocc+1
nsi
pliste ←
p^.suivant
ntantque
renvoyer
nbocc
n
Algorithme nbroccelet
fonction
cpteroccelet
( {E}T : Liste, {E}val : chaîne) :
entier
SRABEDIS EDIH
Type
liste
=
structure
Info : chaîne
Suivant :
chaîne
Finstructure
Type Liste =
structure
var
vale : Liste
ch : chaîne
nb : entier
Début
nb ←
cpterocceltliste()
Af cher "Le nombre d’occurrence de l'éléments est :", nb
Fin
Partie 3 :
Ecrire une fonction qui véri e si une liste chaînée est triée par valeurs croissantes du champ Info.
Solution :
fonction estTriee(
{S
T} : Liste) :
booleen
Var
trie : booléen
pliste : Liste
Début
trie ← vrai
pliste
←T
si
t=pliste^suivant
alors
tantque
pliste^suivant<>nil
et
trie
= vrai faire
si
pliste^suivant
SRABEDIS EDIH
<=
pliste^suivant+1
alors
pliste ←
pliste^suivant
sinon
trie ←
faux
nsi
ntantque
nsi
renvoyer
trie
Fin
Algorithme Listetrie
fonction
listetrie
({E}T : Liste) :
booleen
Type
liste
=
structure
Info : chaîne
Suivant :
chaîne
Finstructure
Type Liste =
structure
var
val : Liste
rep : booléen
Début
nb ←
esttriee()
si
trie=vrai
alors
nsi
Fin
SRABEDIS EDIH
//****************************************************************************************************************************
Exercice 2 :
Toutes les réponses ne doivent pas avoir des espaces, ni de ponctuation et elles doivent être en minuscule.
L’université virtuelle de Côte d'ivoire(UVCI) dans laquelle vous êtes inscrit souhaite gérer la moyenne de ses
étudiants. Un étudiant est caractérisé par les champs suivants : matricule,nom,prenoms,specialite, moyenne et
statut(admis ou refuse). Ces informations sont stockées dans une liste.
L'algorithme devra :
Créer une procédure (inserete)pour insérer 15 nouveaux étudiants en tête d'une liste chaînée.
Créer une procédure (inserequ)pour insérer 30 nouveaux étudiants en queue d'une liste chaînée.
Créer une procédure (donnestat) qui insère la valeur du statut en fonction de la moyenne ( admis quand la valeur
est supérieur ou égale à 10 sinon refuse).
Créer une procédure (af chages) qui af che les valeurs de la liste.
Solution :
Procedure
inserete
(
{S
} T : Liste )
Var
P : Liste
Début
Pour i ← 1 à
15
faire
allouer(p)
Af cher "Entrer le matricule de l'étudiant N° ",i
Saisir
etuduvci[i].matricule
Af cher "Entrer le nom de l'étudiant N° ",i
Saisir
etuduvci[i].nom
Af cher "Entrer le prénom de l'étudiant N° ",i
Saisir
etuduvci[i].prenom
Af cher "Entrer la spécialité de l'étudiant N° ",i
Saisir
etuduvci[i].specialite
Af cher "Entrer la moyenne de l'étudiant N° ",i
Saisir
etuduvci[i].moyenne
P^.Suivant ←
t
t
SRABEDIS EDIH
nid
Fin
Procedure
inserequ
(
{S
} T,Q : Liste )
Var
P : Liste
Début
Pour i ← 1 à
30
faire
allouer(p)
Af cher "Entrer le matricule de l'étudiant N° ",i
Saisir
etuduvci[i].matricule
Af cher "Entrer le nom de l'étudiant N° ",i
Saisir
etuduvci[i].nom
Af cher "Entrer le prénom de l'étudiant N° ",i
Saisir
etuduvci[i].prenom
Af cher "Entrer la spécialité de l'étudiant N° ",i
Saisir
etuduvci[i].specialite
Af cher "Entrer la moyenne de l'étudiant N° ",i
Saisir
etuduvci[i].moyenne
p^.suivant
← nil
Si
p
=
p+1
alors
t
←
p
Sinon
p^.suivant
SRABEDIS EDIH
←
p
Finsi
q
←
p
Fin
Fin
Procedure
donnestat
(
{E
} T: Liste )
var
P : Liste
début
t
←
p
tantque
p
<>
nil
faire
si
etuduvci[i].note
>=
10
alors
P^.statut ← "admis"
sinon
P^.statut ← "refuse"
nsi
p←
p^.suivant
n
Procedure af chages(
{E
} T: Liste )
var
P : Liste
SRABEDIS EDIH
début
etuduvci[i].matricule
Af cher "Nom=",
etuduvci[i].nom
Af cher "Prénoms =",
etuduvci[i].prenom
Af cher "Spécialité =",
etuduvci[i].specialite
Af cher "Moyenne =",
etuduvci[i].moyenne
Af cher "Statut =",
etuduvci[i].statut
P ←
p^.suivant
n
Algorithme TrtEtudiant
Type Etudiant =
structure
matricule
: chaîne
nom
: chaîne
prenom
: chaîne
specialite
: chaîne
moyenne
: reel
statut
: chaîne
Suivant : Liste
FinStructure
Type Liste =
structure
Procedure
inserete
(
{E
} T : Liste )
Procedure
SRABEDIS EDIH
inserequ
(
{E
} T,Q : Liste )
Procedure donnestatut(
{E
} T: Liste )
Procedure
affichages
(
{E
} T: Liste )
var
Te,Qe : Liste
début
te
←
0
inseret(Te)
insereq(Te,Qe)
donnestatut(Te)
af chage(Te)
//****************************************************************************************************************************
Exercice 3 :
Toutes les réponses ne doivent pas avoir des espaces, ni de ponctuation et elles doivent être en minuscule.
Respecter également l'ordre de l'énumération des champs.
Soit un chier uvci.txt, écrire un algorithme qui permet de saisir 50 étudiants dans le chier uvci.txt à l'aide d'un
enregistrement étudiant ayant pour champs nom, prenoms, matricule, note et spécialité. L'algorithme devra
permettre d'af cher la liste des étudiants ayant une note supérieur à 9.
Solution :
Algorithme TrtEtudiant
Type
Etudiant =
enregistrement
nom
: chaîne
prenoms
: chaîne
matricule
: chaîne
note
: reel
---------
spécialité specialite
SRABEDIS EDIH
: chaîne
nenreg
Var
etuduvci :
tableau[1..50]
d'
-------
étudiant etudiant
etud :
-------
étudiant etudiant
i : entier
Début
Ouvrir
"uvci.txt"
sur 2 en
ecriture
pour
i←
50
faire
Saisir
etuduvci[i]. matricule
Saisir
etuduvci[i].nom
Saisir
etuduvci[i].prenoms
Saisir
etuduvci[i].note
Saisir
etuduvci[i]. specialite
npour
EcrireFichier
2
,
etuduvci
fermer(2)
Ouvrir
SRABEDIS EDIH
"uvci.txt"
sur 1 en
lecture
tantque
Non
eof (1)
faire
lirefichier
1,
etud
si
etuduvci[i].note
>=
9
alors
etuduvci[i].matricule
Af cher "Nom=",
etuduvci[i].nom
Af cher "Prénoms =",
etuduvci[i].prenoms
Af cher "Spécialité =",
etuduvci[i].specialite
nsi
FinTq
fermer(1)
Fin