Vous êtes sur la page 1sur 1

 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 uvci.txt, écrire un algorithme qui permet de saisir 50 étudiants dans le chier listeetu.txt à 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 "listeetu.txt" 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 , listeetu.txt

ouvrir(1)

Ouvrir "uvci.txt" sur 1 en ecriture

tantque Non eof1 faire

ouvrir 1, uvci.txt

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...

Vous aimerez peut-être aussi