Français (fr)
Rechercher un cours
Accueil Tableau de bord Événements Mes cours Cours actuel Cacher les blocs Vue standard
Mes cours EXAMEN - SEMESTRE 3 - SESSION NORMALE BD - DAS ) SESSION 1 - JOUR 2 - (2018 - 2019 ) Épreuve : Algorithmique Avancée
Question 1
Exercice 1 :
Réponse
Navigation du test
incomplète Toutes les réponses ne doivent pas avoir des espaces, ni de ponctuation et elles doivent être en minuscule.
Noté sur 20,00
Respecter également l'ordre de l'énumération des champs.
Marquer la
question Soit un chier [Link], écrire un algorithme qui permet de saisir 50 étudiants dans le chier [Link] à l'aide d'un
enregistrement étudiant ayant pour champs nom, prenoms, matricule, note et spécialité. L'algorithme devra
permettre d'a cher la liste des étudiants ayant une note supérieur à 12.
Solution :
Algorithme TrtEtudiant
Type
Etudiant = enregistrement
nom : chaîne
prenoms : chaîne
matricule : chaîne
note : reel
specialite : chaîne
nenreg
Var
etudu : enregistrement d' etudiant
etud : tableau[1..50]
i : entier
Début
Ouvrir "[Link]" sur 2 en écriture
pour i← 1 à 50 faire
A cher "Entrer le matricule de l'étudiant N° ",i
Saisir etud[i].matricule
A cher "Entrer le nom de l'étudiant N° ",i
Saisir etud[i].nom
A cher "Entrer le prénom de l'étudiant N° ",i
Saisir etud[i].prenoms
A cher "Entrer la note de l'étudiant N° ",i
Saisir etud[i].note
A cher "Entrer la spécialité de l'étudiant N° ",i
Saisir etud[i].specialite
npour
EcrireFichier 2 , [Link]
ouvrir(1)
Ouvrir "[Link]" sur 1 en ecriture
tantque Non eof1 faire
ouvrir 1, [Link]
si etud[i].note > 12 alors
A cher "Matricule =", etud[i].matricule
A cher "Nom=", etud[i].nom
A cher "Prénoms =", etud[i].prenoms
A cher "Spécialité =", etud[i].specialite
nsi
FinTq
fermer(1)
Fin
//************************************************************************************************************************************************************************
Exercice 2 :
Toutes les réponses ne doivent pas avoir des espaces, ni de ponctuation et elles doivent être en minuscule.
Nous supposons dans que la liste a déjà été saisie
Partie 1 :
Ecrire une fonction qui renvoie le nombre d'éléments d'une liste chaînée.
Solution :
fonction cpterEltListe( {e} T} : entier ) : entier
Var
nbElt : entier
pliste : Liste
Début
nbElt ←0
pliste ← T
Tantque nbElt <> 0 faire
nbElt ←
pliste ←
ntantque
Fin
Algorithme nbrelet
fonction nbrelet ({E}T : Liste) : entier
Type =
Info : chaîne
Suivant :
Finstructure
Type Liste =
var
val : Liste
nb : entier
Début
nb ←
A 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) : chaîne
Var
nbOcc : entier
pliste : Liste
Début
nbOcc ← 0
pliste ←T
tantque pliste <> 0 faire
si alors
nbOcc ←
nsi
pliste ←
ntantque
Algorithme nbroccelet
fonction ( {E}T : Liste, {E}val : chaîne) : chaîne
Type =
Info : chaîne
Suivant :
Finstructure
Type Liste =
var
vale : Liste
ch : chaîne
nb : entier
Début
nb ←
A 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( {e, T} : Liste) : chaîne
Var
trie : booléen
pliste : Liste
Début
trie ← vrai
←T
si alors
tantque et trie = vrai faire
si <= alors
pliste ←
sinon
trie ←
nsi
ntantque
nsi
Fin
Algorithme Listetrie
fonction listetrie ({E}T : Liste) : chaîne
Type =
Info : chaîne
Suivant :
Finstructure
Type Liste =
var
val : Liste
rep : booléen
Début
nb ←
si alors
A cher "La liste est triée"
sinon
A cher "La liste n'est pas triée"
nsi
Fin
//************************************************************************************************************************************************************************
Exercice 3 :
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 (inseret)pour insérer 10 nouveaux étudiants en tête d'une liste chaînée.
Créer une procédure (insereq)pour insérer 20 nouveaux étudiants en queue d'une liste chaînée.
Créer une procédure (donnestatut) 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 (a chage) qui a che les valeurs de la liste.
Solution :
Procedure insert ( {s } T : Liste )
Var
P : Liste
Début
Pour i ← 1 à 10 faire
etud = etudiant
A cher "Entrer le matricule de l'étudiant N° ",i
Saisir etud[i].matricule
A cher "Entrer le nom de l'étudiant N° ",i
Saisir etud[i].nom
A cher "Entrer le prénom de l'étudiant N° ",i
Saisir etud[i].prenoms
A cher "Entrer la spécialité de l'étudiant N° ",i
Saisir etud[i].specialite
A cher "Entrer la moyenne de l'étudiant N° ",i
Saisir etud[i].moyenne
P^.Suivant ← etud
Fin
Procedure insereq ( {s } T,Q : Liste )
Var
P : Liste
Début
Pour i ← 1 à 20 faire
A cher "Entrer le matricule de l'étudiant N° ",i
Saisir etudu[i].matricule
A cher "Entrer le nom de l'étudiant N° ",i
Saisir etudu[i].nom
A cher "Entrer le prénom de l'étudiant N° ",i
Saisir etudu[i].prenoms
A cher "Entrer la spécialité de l'étudiant N° ",i
Saisir etudu[i].specialite
A cher "Entrer la moyenne de l'étudiant N° ",i
Saisir etudu[i].moy
p ← nil
Si p = 10 alors
p ←
Sinon
←
Finsi
Fin
Fin
Procedure donnestatut ( {e } T: Liste )
var
P : Liste
début
p ← etud[i].moyenne
tantque p <> 10 faire
si p >= 10 alors
P^.statut ← "admis"
sinon
P^.statut ← "refuse"
nsi
p ← P^.statut
Procedure a chage( {e } T: Liste )
var
P : Liste
début
Tantque P <> nil faire
A cher "Matricule =", etud[i].matricule
A cher "Nom=", etud[i].nom
A cher "Prénoms =", etud[i].prenoms
A cher "Spécialité =", etud[i].specialite
A cher "Moyenne =", etud[i].moyenne
A cher "Statut =", p
P ← P^.statut
Algorithme TrtEtudiant
Type Etudiant = enregistrement
matricule : chaîne
nom : chaîne
prenoms : chaîne
specialite : chaîne
moyenne : reel
statut : chaîne
Suivant : Liste
FinStructure
Type Liste = ecrire
Procedure inseret ( {s } T : Liste )
Procedure insereq ( {e } T,Q : Liste )
Procedure donnestatut( {s } T: Liste )
Procedure a chage ( {e } T: Liste )
var
Te,Qe : Liste
début
te ← 0
inseret(Te)
insereq(Te,Qe)
donnestatut(Te)
a chage(Te)
Merci de répondre à tous les éléments de la question.
Terminer le test...