EVALUATION EN ALGORITHMIQUE TEST  12 / XX  

Exercice 01 :  Généralités 6pts

  1. Exécution d’un PseudoCode :

ALGORITHME 01

ALGORITHME 02

Algorithme Test1 ;

Début

 Ecrire ("Heure : ") ;

 Lire(h) ;

 Ecrire ("Minute : ") ;

 Lire(m) ;

  Si ( m<55 )  alors 

        m ← m+5 ;

  sinon

        si(h<23) alors

              h ← h+1

              m ← m-55

          sinon

               h ← 0

               m ← m-55

        FinSi

  FinSi

 Ecrire("Affichage :", h, " :", m);

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour heure ( h )=10 minute (m)=57 , dire ce que réalise cet algorithme. 1pts

Algorithme  Test2 ;

Ecrire("Donner un entier composé de 3 chiffres :") ; 
lire(n) ;
c ← n div 100 ;
d ← (n mod 100) div 10 ;
u ← n mod 10 ;
s ← u+d+c ;
si (s>=10) alors
    d2 ← s div 10 ;
    u2 ← s mod 10 ;
    s2 ← u2+d2 ;
    si (s2>=10) alors
       d3 ←s2 div 10 ;
       u3 ←s2 mod 10 ;
       s3 ← u3+d3 ;
       Ecrire("S3=",s3);
    sinon
       Ecrire("S2=",s2) ;              
sinon
Ecrire(" s= ", s) ;

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour n = 946 dire ce que réalise cet algorithme. 1pts

  1.  Question de Cours :
  1. Donner la différence entre un paramètre effectif et un paramètre formel.1pts 
  2. Donner la différence entre le passage par valeur et le passage par adresse avec exemple a l’appui.1pts
  3. Donner un algorithme du Calcule du PGCD de 02 nombres.1pts

Exercice 02 : Structure Conditionnelle & Répétitive 4pts

Ecrire un Algorithme qui déterminer si un nombre est un nombre Premier ou pas.

Principe : Un nombre premier est un nombre dont ses seuls diviseurs sont 1 et lui-même.

Exemple : 7 est un nombre premier car il n’a que deux diviseurs distincts : 1 et lui-même 7.

Problème :  Gestion d’une Université 10 pts

Une université est une institution d'enseignement supérieur, d'étude et de recherché, Etablissement d'enseignement supérieur destiné à la transmission des connaissances entre les professeurs (Enseignants) et les étudiants. Etablissement scolaire qui fédère la production, la transmission et la conservation du savoir. La relation entre un étudiant et son enseignant est un facteur clé de la réussite scolaire, particulièrement chez les plus jeunes. Or, la qualité de celle-ci varie en fonction du sexe, de la situation économique et du comportement des enfants. Voilà ce qui ressort d’analyses des données de l’étude longitudinale du développement des enfants du Cameroun effectuées par des chercheurs de l’Université de Dschang et de l’Institut de Formation GeniusClassrooms. Bien à partir de ces informations l’on désire créer une petite interface pour manipuler ses étudiants et enseignants en mémoire vive. Le ou la professeur(e) {Enseignants} d'université est un enseignant-chercheur. Il/elle a pour mission d’enseigner, de guider et de conseiller les étudiants. En parallèle, il/elle encadre une équipe de recherche dans le cadre de sa discipline. Il est caractérisé par son matricule, son grade, son nom, son prénom, son sexe, son âge, sa date de naissance sous le format (jour-mois-année ; exemple : 01-01-2000) et de étudiants qu’il encadre et de sa ville. Le professeur d'université est entièrement responsable de son enseignement et libre d’en fixer le contenu. Un étudiant est caractérise quant à lui par son matricule son matricule, son nom, son prénom, son âge, son sexe ( M ou F )  , sa ville , sa filière d’études ( informatique , mathématiques , chimie etc. …) et son niveau d’études ( 1 , 2 , 3 ) . Etant donné que l’université de Dschang compte plus de 1000 étudiants nous allons tout de même nous restreindre qu’elle comporte exactement 1000 étudiants et 100 enseignants.

  1. Proposer une structure de donnée adéquate permettant de manipuler ses données en mémoires vive. 1pts
  2. Proposer une fonction rechercheEtud permettant de recherche un Enseignant par son matricule dans l’ensemble.1pts
  3. Proposer une fonction saisirEtud permettant de saisi les informations sur tous les Etudiants de l’ensemble.1pts
  4. Proposer une fonction rechercheEns permettant de recherche un Etudiant par son matricule dans l’ensemble.1pts
  5. Proposer une fonction tri_Age_Ens permettant de trier l’âge des Enseignants par ordre décroissant dans l’ensemble (utiliser le trie Sélection).1pts
  6. Proposer une fonction ajoutEtud permettant d’ajouter un Etudiant dans l’ensemble.1pts
  7. Proposer une fonction compteVilleEtud permettant de compte les Etudiants dont la ville est = ‘’ Dschang ‘’ et de filière ‘’ Informatique ‘’ dans l’ensemble.1pts
  8. Proposer une fonction ajoutEns permettant d’ajouter un Enseignant dans l’ensemble.1pts
  9. Proposer une fonction posVilleEtud permettant de dire si oui (Vrai) ou Non (Faux) un étudiant de l’ensemble est dans la ville de Dschang.1pts
  10. Proposer une fonction sauvEtud permettant de sauvegarder dans un disque dur les étudiants et dans une disquette les enseignants dans l’ensemble.0,5pts
  11. Proposer une fonction sauvEns permettant de sauvegarder dans une disquette les enseignants dans l’ensemble.0,5pt
Par Joel_Yk | Contact :+237658395978

Correction :

Exercice 01 :  Généralités 6pts

  1. Exécution d’un PseudoCode :

ALGORITHME 01

ALGORITHME 02

Algorithme Test1 ;

Début

 Ecrire ("Heure : ") ;

 Lire(h) ;

 Ecrire ("Minute : ") ;

 Lire(m) ;

  Si ( m<55 )  alors 

        m ← m+5 ;

  sinon

        si(h<23) alors

              h ← h+1

              m ← m-55

          sinon

               h ← 0

               m ← m-55

        FinSi

  FinSi

 Ecrire("Affichage :", h, " :", m);

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour heure ( h )=10 minute (m)=57 , dire ce que réalise cet algorithme. 1pts

Algorithme  Test2 ;

Ecrire("Donner un entier composé de 3 chiffres :") ; 
lire(n) ;
c ← n div 100 ;
d ← (n mod 100) div 10 ;
u ← n mod 10 ;
s ← u+d+c ;
si (s>=10) alors
    d2 ← s div 10 ;
    u2 ← s mod 10 ;
    s2 ← u2+d2 ;
    si (s2>=10) alors
       d3 ←s2 div 10 ;
       u3 ←s2 mod 10 ;
       s3 ← u3+d3 ;
       Ecrire("S3=",s3);
    sinon
       Ecrire("S2=",s2) ;              
sinon
Ecrire(" s= ", s) ;

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour n = 946 dire ce que réalise cet algorithme. 1pts

Correction :

ALGORITHME 01

ALGORITHME 02

Algorithme Test1 ;

Var h , m : entier ;

Début

 Ecrire ("Heure : ") ;

 Lire(h) ;

 Ecrire ("Minute : ") ;

 Lire(m) ;

  Si ( m<55 )  alors 

        m ← m+5 ;

  sinon

        si(h<23) alors

              h ← h+1 ;

              m ← m-55 ;

          sinon

               h ← 0 ;

               m ← m-55 ;

        FinSi

  FinSi

 Ecrire("Affichage :", h, " :", m);

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour heure ( h )=23 minute (m)=55 , dire ce que réalise cet algorithme. 1pts

Algorithme  Test2 ;

Var c , d ,u , s,n,d2,d3,u2,s1,s3,u3 : entier ;

Debut

Ecrire("Donner un entier composé de 3 chiffres :") ; 
lire(n) ;
c ← n div 100 ;
d ← (n mod 100) div 10 ;
u ← n mod 10 ;
s ← u+d+c ;
si (s>=10) alors
    d2 ← s div 10 ;
    u2 ← s mod 10 ;
    s2 ← u2+d2 ;
    si (s2>=10) alors
       d3 ←s2 div 10 ;
       u3 ←s2 mod 10 ;
       s3 ← u3+d3 ;
       Ecrire("S3=",s3);
    sinon
       Ecrire("S2=",s2) ;              
sinon
Ecrire(" s= ", s) ;

Fin.

Questions :

  1. Dénichez les potentielles erreurs dans cet algorithme. 0.5pts
  2. Pour n = 946 dire ce que réalise cet algorithme. 1pts

Dans l’algorithme 01 on dénote l’absence de déclaration de variable et de points virgule dans l’instruction si (ligne 9,10,12,13).

Alors cet algorithme permet de saisir un temps (heure et minute) lui ajoute 5 minutes puis l'affiche.

Exemples :heure : 10 minute : 20 après 5 minutes : 10:25
heure : 10 minute:57 après 5 minutes : 11: 02
heure : 23 minute:55 après 5 minutes : 00:00

Dans l’algorithme 02 on dénote l’absence de déclaration de variable et du Debut. Alors cet algorithme permet de saisir un entier de 3 chiffres puis affiche la somme S de ces 3 chiffres. Puis si S est composé de 2 chiffres alors faire leurs somme S2 enfin si S2 est composé de 2 chiffres alors faire leurs somme S3.

Exemple : pour 946  S=9+4+6=19   S2=1+9=10   S3=1+0=1

  1.  Question de Cours :
  1. Donner la différence entre un paramètre effectif et un paramètre formel.1pts
  2. Donner la différence entre le passage par valeur et le passage par adresse avec exemple a l’appui.1pts
  3. Donner un algorithme du Calcule du PGCD de 02 nombres.1pts

Correction :

  1. Les paramètres formels sont la définition du nombre et du type de valeurs que devra recevoir le sous-algorithme pour se mettre en route avec succès. On déclare les paramètres formels pendant la déclaration du sous-algorithme. Hors Les paramètres effectifs sont des valeurs réelles (constantes ou variables) reçues par le sous-algorithme au cours de l’exécution du bloc principal. On les définit indépendamment à chaque appel du sous-algorithme dans l’algorithme principal.
  2. Passage paramètres par valeur C’est le mode de transmission par défaut, il y a copie de la valeur, des paramètres effectifs dans les variables locales issues des paramètres formels de la procédure ou de la fonction appelée. Dans ce mode, le contenu des paramètres effectifs ne peut pas être modifié par les instructions de la fonction ou de la procédure ; car nous ne travaillons pas directement avec la variable, mais sur une copie. À la fin de l’exécution du sous-algorithme la variable conservera sa valeur initiale. Les paramètres dans ce cas sont utilisés comme données. Hors Passage paramètres par variable Ici, il s’agit non plus d’utiliser simplement la valeur de la variable, mais également son emplacement dans la mémoire (d’où l’expression « par adresse »). En fait, le paramètre formel se substitue au paramètre effectif durant le temps d’exécution du sous-programme et à la sortie il lui transmet sa nouvelle valeur. Un tel passage de paramètre se fait par l’utilisation du mot-clé Var.
  3. Algorithme de PGCD

Algorithme PGCD ;

var : A,B,MyPGCD : entier ;

Debut

Ecrire ( ' Entrer La valeur d'un nombre  ' );

Lire ( A );

Ecricre ( ' Entrer La valeur d'un second nombre   ' );

Lire ( B);

tantque (  A < > B ) faire

si (  A <  B ) alors

B := B - A

sinon

 A := A - B ;

finsi

fintantque

MyPGCD := A;

Ecricre ( ' Le PGCD de  ', A , ' et ', B , ' est :  '  MyPGCD );

Fin.

Exercice 02 : Structure Conditionnelle & Répétitive 4pts

Ecrire un Algorithme qui déterminer si un nombre est un nombre Premier ou pas.

Principe : Un nombre premier est un nombre dont ses seuls diviseurs sont 1 et lui-même.

Exemple : 7 est un nombre premier car il n’a que deux diviseurs distincts : 1 et lui-même 7.

Correction :

// Une version assez naïve de l’algorithme

Algorithme NombrePremier;

var nbre,cpt,i:entier;

Début
répéter
    ecrire('Entrez un nombre qui sera testé: ');
    lire(nbre);
    jusqu’à(nbre>=0);
    cpt<-0;
   pour i de 1 à nbre faire
   si(nbre mod i =0)alors
   cpt<-cpt+1
   fsi
   fpour
   si(cpt=2)alors
   ecrire('Ce nombre est premier')
   sinon
   ecrire('Ce nombre n est pas premier');
   fsi
fin.

// Une autre version de l’algorithme

Algorithme NombrePremier;

var nbre,i:entier;

Début
    répéter
      ecrire('’ Entrez un nombre qui sera testé: ‘' );
      lire(nbre);
    jusqu’à(nbre>=0);
   i <-2 ;
   tantque( (i < > (nbre div 2)) && (nbre mod i< > 0)) alors

     i <- i + 1 ;

   ftantque
   si(i > (nbre div 2))alors
   ecrire('Ce nombre est premier')
   sinon
   ecrire('’ Ce nombre n’est pas premier ‘' );
   fsi
fin.

Problème :  Gestion d’une Université 10 pts

Une université est une institution d'enseignement supérieur, d'étude et de recherché, Etablissement d'enseignement supérieur destiné à la transmission des connaissances entre les professeurs (Enseignants) et les étudiants. Etablissement scolaire qui fédère la production, la transmission et la conservation du savoir. La relation entre un étudiant et son enseignant est un facteur clé de la réussite scolaire, particulièrement chez les plus jeunes. Or, la qualité de celle-ci varie en fonction du sexe, de la situation économique et du comportement des enfants. Voilà ce qui ressort d’analyses des données de l’étude longitudinale du développement des enfants du Cameroun effectuées par des chercheurs de l’Université de Dschang et de l’Institut de Formation GeniusClassrooms . Bien à partir de ces informations l’on désire créer une petite interface pour manipuler ses étudiants et enseignants en mémoire vive. Le ou la professeur(e) {Enseignants} d'université est un enseignant-chercheur. Il/elle a pour mission d’enseigner, de guider et de conseiller les étudiants. En parallèle, il/elle encadre une équipe de recherche dans le cadre de sa discipline. Il est caractérisé par son matricule, son grade, son nom, son prénom, son sexe, son âge, sa date de naissance sous le format (jour-mois-année ; exemple : 01-01-2000) et de étudiants qu’il encadre et de sa ville. Le professeur d'université est entièrement responsable de son enseignement et libre d’en fixer le contenu. Un étudiant est caractérise quant à lui par son matricule son matricule, son nom, son prénom, son âge, son sexe ( M ou F )  , sa ville , sa filière d’études ( informatique , mathématiques , chimie etc. …) et son niveau d’études ( 1 , 2 , 3 ) . Etant donné que l’université de Dschang compte plus de 1000 étudiants nous allons tout de même nous restreindre qu’elle comporte exactement 1000 étudiants et 100 enseignants.

  1. Proposer une structure de donnée adéquate permettant de manipuler ses données en mémoires vive. 1pts
  2. Proposer une fonction rechercheEtud permettant de recherche un Enseignant par son matricule dans l’ensemble.1pts
  3. Proposer une fonction saisirEtud permettant de saisi les informations sur tous les Etudiants de l’ensemble.1pts
  4. Proposer une fonction rechercheEns permettant de recherche un Etudiant par son matricule dans l’ensemble.1pts
  5. Proposer une fonction tri_Age_Ens permettant de trier l’âge des Enseignants par ordre décroissant dans l’ensemble (utiliser le trie Sélection).1pts
  6. Proposer une fonction ajoutEtud permettant d’ajouter un Etudiant dans l’ensemble.1pts
  7. Proposer une fonction compteVilleEtud permettant de compte les Etudiants dont la ville est = ‘’ Dschang ‘’ et de filière ‘’ Informatique ‘’ dans l’ensemble.1pts
  8. Proposer une fonction ajoutEns permettant d’ajouter un Enseignant dans l’ensemble.1pts
  9. Proposer une fonction posVilleEtud permettant de dire si oui (Vrai) ou Non (Faux) un étudiant de l’ensemble est dans la ville de Dschang.1pts
  10. Proposer une fonction sauvEtud permettant de sauvegarder dans un disque dur les étudiants et dans une disquette les enseignants dans l’ensemble.0,5pts
  11. Proposer une fonction sauvEns permettant de sauvegarder dans une disquette les enseignants dans l’ensemble.0,5pts

Correction :

Const N_Etud = 1000 ;

 Const N_Ens = 100 ;

type  Date    = Enregistrement

                          jour : entier ;

                          mois : entier ;

                       annee : entier ;

                     Fin ;

       Etudiant  = Enregistrement

                            matriculeEtud : chaine de caractère ;

                            nom                 : chaine de caractère ;

                            prénom            : chaine de caractère ;

                            age                   : entier ;

                            sexe                  :  caractère ;

                            villeEtud          :  chaine de caractère ;

                            filliereEtud      :  chaine de caractère ;

                            nivEtud            : entier ;

                         Fin ;

     Enseignant = Enregistrement

                            matriculeEns : chaine de caractère ;

                            grade                 : chaine de caractère ;

                            nom                 : chaine de caractère ;

                            prénom            : chaine de caractère ;

                            age                   : entier ;

                            sexe                  :  caractère ;

                            dateNaiss         :  Date  ;

                            equipeR    :  chaine de caractère ;

                            nivEtud            : entier ;

                         Fin ;

     tabEtud  = tableau [1.. N_Etud] de Etudiant ;

     tabEns  = tableau [1.. N_Ens] de Enseignant ;

Télécharger L'exercice Sous Forme de PDF

 
  • 1 vote. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam