EVALUATION EN ALGORITHMIQUE TEST  13 / XX  

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

  1. Exécution d’un PseudoCode :

ALGORITHME 01

ALGORITHME 02

 fonction F1 ( n : entier , a : entier ): entier;

Début

  si(n=0)alors

    F1 <- a ;

    sinon 

     F1 <- F1(n-1,n*a);

  fsi

Fin;

Questions :

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

fonction F2 (x : flottant, n : entier) : flottant
res : flottant ;
debut
si (n == 0) alors
res = 1;
sinon
res =  F2(x, n DIV 2)
si ( n MOD 2 == 0) alors // n est pair
res = res * res
sinon // n est impair
res = res * res * x
fin si
fin si
F2 <- res ;
fin; 

 

Questions :

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

  1. Donner le type et le résultat des expressions suivantes, ou dire si elles ne sont pas bien formées.
  • 12 / 3
  • 12 div 3
  • 11 div 3 div 2
  • 1.0 * 2 + 3 - 4 (50 < 3 * 8) faux ou non faux et vrai
  • (12 > 24) + (2 + 4 = 12) 12 > 3 > 4
  • 3.5 + 7 > 4 > faux non (12 < > 3 * 16.8 / 4) et vraie

EXERCICE 02 : 5pts

Algorithme RechercheOriginale ;

Fonction : recherche(tab, valeur)
Action : recherche la valeur « valeur » dans le tableau « tab »
Début
i ⟵ 0
i_val ⟵ -1
nb ⟵ Longueur(tab)
TantQue i < nb Faire
Si tab[i] = valeur Alors
i_val ⟵ i
FinSi
i ⟵ i + 1
FinTantQue
Renvoyer i_val
Fin

  1. Décrire le fonctionnement de l’algorithme pour les valeurs tab = [1, 8, 3, 54, 95] et val = 3.
  2. Cet algorithme ressemble a quel algorthime de trie classique ?
  3. Démontrer que l’algorithme se termine.
  4. Démontrer que l’algorithme est correct.
  5. Peut-on executer cet algorithme sur un tableau qui n'est pas trie?

Problème : La Librairie Genius 10pts

Les étudiants du GROUPE toujours très curieux désirent pour un expose en algorithmique et Langage C , manipuler en mémoire centrale d’un ordinateur en ensemble de Livre .  Les informations concernant un Livre sont : le code, nom, l’auteur, description, prix, quantité et la notation du livre ( de 0 à 5 ) .

  1. Proposer une structure de donnée adéquate permettant de manipuler ces données en mémoire. (en Algo et en C )
  2. Proposer une fonction permettant de rechercher un Livre par son code dans l’ensemble.  (en Algo et en C )
  3. Proposer une fonction permettant d’insérez un Livre dans l’ensemble des Livres. (en Algo )
  4. Proposer une fonction permettant compter tous les Livres dont le nom est : GENIUS dans l’ensemble des Livres. (en Algo et C  )
  5. Proposer une fonction permettant classer tous les Livres par ordre croissant dans l’ensemble des produits (utiliser le trie insertion) ceci par la notation. (en Algo )
  6. Proposer une fonction permettant de supprimer tous les Livres dont le code est pris en paramètre de la Fonction dans l’ensemble des Livres. (en Algo )
  7. Proposer une fonction permettant de modifier le prix d’un Livre dans l’ensemble des Livres. (en Algo )
  8. Proposer une fonction permettant d’afficher tous les produits les plus vendues dans l’ensemble des Livres. (Nb : un Livre qui a eu du succès auprès des étudiants est un Livre qui a reçu une notation supérieure à 2.5, on s’attarderas pas sur la gestion de la notation mais plutôt sur sa valeur brute.) (en Algo et C )
  9. Proposer une fonction permettant de sauvegarder de façon permanente les données relatives à l’ensemble des Livres. (en Algo )
  10. Donnez la différence entre un Tableau et un Fichier en Algo.

 

Par Joel_Yk | Contact :+237658395978

Correction :

 

 

Problème : La Librairie Genius 10pts

Les étudiants du GROUPE toujours très curieux désirent pour un expose en algorithmique et Langage C , manipuler en mémoire centrale d’un ordinateur en ensemble de Livre .  Les informations concernant un Livre sont : le code, nom, l’auteur, description, prix, quantité et la notation du livre ( de 0 à 5 ) .

  1. Proposer une structure de donnée adéquate permettant de manipuler ces données en mémoire. (en Algo et en C ) .

CORRECTION : (En algo)

                Const N=100 ;

                Type  livre= enregistrement

                                      code : chaine de caractère ;

                                      nom : chaine de caractère ;

                                      auteur :chaine de caractere ;

                                      descript : chaine de caractère ;

                                      prix : réel ;

                                      quantité : réel ;

                                      notation : réel ;

                                   Fin ;

                        tabliv= tableau[1…N] de livre ;              

  1. Proposer une fonction permettant de rechercher un Livre par son code dans l’ensemble.  (en Algo et en C )

CORRECTION : (en algo)

Fonction rechercheliv(t :tabliv , code :chaine de caractère) : entier ;

          Var  i :entier ;

          Debut

                   iß1 ;

                   tantque( i<=N et t[i].code<>code)faire

                             ißi+1 ;

                   fintantque

                   si(i=N+1) alors

                             recherchelivß-1 ;

                   sinon

                             recherchelivß i ;

                   finsi

          fin ;

         

  1. Proposer une fonction permettant d’insérez un Livre dans l’ensemble des Livres. (en Algo )

CORRECTION :

          Procedure insertliv(var t :tabliv, L :livre) ;

                   Var i, case : entier ;

                   Debut

                             Si(rechercheliv(t , livcode)=-1) alors

                                      iß1 ; caseß0 ;

                             tantque(i<=N et case=0) faire

                                      si(t[i].code= ’’ ’’) alors

                                                t[i].codeßL.code ;

                                                t[i].nomßL.nom ;

                                                t[i].auteurßL.auteur ;

                                                t[i].descriptß L.descript ;

                                                t[i].prixßL.prix ;

                                                t[i].quantiteßL.quantite ;

                                                t[i].notationßL.notation ;

                                                caseßcase+1 ;

                                      finsi

                                      ißi+1 ;

                             fintantque

                             si(case=0) alors

                                      ecrire(’’insertion impossible car le tableau est plein’’) ;

                             sinon

                                      ecrire(’’insertion reussie’’) ;

                             finsi

                             sinon

                                      ecrire(’’l’element existe déjà dans le tableau’’) ;

                             finsi

                   fin ;

  1. Proposer une fonction permettant compter tous les Livres dont le nom est : GENIUS dans l’ensemble des Livres. (en Algo et C  )

CORRECTION : (en algo)

          Fonction compteliv(t :tabliv) :entier ;

                   Var i, cpt :entier ;

                   Debut

                             Cptß0 ;

                             Pour i de 1 à N faire

                                      Si(t[i].nom= ‘’Genuis’’) alors

                                                CptßCpt+1 ;

                                      Finsi

                             Finpour

                             Comptelivßctp ;

                   Fin ;

  1. Proposer une fonction permettant classer tous les Livres par ordre croissant dans l’ensemble des produits (utiliser le trie insertion) ceci par la notation. (en Algo )

CORRECTION :

          Procedure trinotation(var t :tabliv) ;

                   Var cle :livre ; i,j :entier ;

                   Debut

                             Pour i de 2 à N faire

                                      cle.notationßt[i].notation ;

                                      cle.codeßt[i].code ;

                                      cle.nomßt[i].nom ;

                                      cle.auteurßt[i].auteur ;

                                      cle.descriptßt[i].descript ;

                                      cle.prixßt[i].prix ;

                                      cle.quantiteßt[i].quantite ;

                                      jßi-1 ;

                                      tantque(cle.notation<t[j].notation et j>0)faire

                                                t[j+1].codeßt[j].code ;

                                                t[j+1].nomßt[j].nom ;

                                                t[j+1].auteurßt[j].auteur ;

                                                t[j+1].descriptßt[j].descript ;

                                                t[j+1].prixßt[j].prix ;

                                                t[j+1].quantiteßt[j].quantite ;

                                                t[j+1].notationßt[j].notation ;

                                                tßj-1 ;

                                      fin tantque

                                      t[j+1].notationßcle.notation ;

                                      t[j+1].codeßcle.code ;

                                      t[j+1].nomßcle.nom ;

                                      t[j+1].auteurßcle.auteur ;

                                      t[j+1].descriptßcle.descipt ;

                                      t[j+1].prixßcle.prix ;

                                      t[j+1].quantiteßcle.quantite ;

                             finpour

                             pour i de 1 à N faire

                                      ecrire(t[i].code) ;

                                      ecrire(t[i].nom) ;

                                      ecrire(t[i].auteur) ;

                                      ecrire(t[i].descript) ;

                                      ecrire(t[i].prix) ;

                                      ecrire(t[i].quantite) ;

                                      ecrire(t[i].notation) ;

                             finpour

                   fin ;

  1. Proposer une fonction permettant de supprimer tous les Livres dont le code est pris en paramètre de la Fonction dans l’ensemble des Livres. (en Algo )

CORRECTION :

          Procedure supliv(var t :tabliv , code : chaine de caractere) ;

          Var i :entier ;

          Debut

                   ißrechercheliv(t,code) ;

                   si(i<>-1) alors

                             t[i].codeß’’  ‘’ ;

                             t[i].nomß’’  ‘’ ;

                             t[i].auteurß’’  ‘’ ;

                             t[i].descriptß’’ ‘’ ;

                             t[i].prixßNIL ;

                             t[i].quantiteßNIL ;

                             t[i].notationßNIL ;

                   sinon 

                             ecrire(‘’l’element n’existe pas’’) ;

                   finsi

          fin ;  

  1. Proposer une fonction permettant de modifier le prix d’un Livre dans l’ensemble des Livres. (en Algo )

CORRECTION :

          Procedure modifprix(var t :tabliv , l :libre ) ;

          Var i :entier ;

          Debut

                   Ißrechercheliv(t , l.code) ;

                   Si(i<>-1)alors

                             t[i].prixßl.prix 

                   sinon

                             ecrire(‘’le livre n’existe pas’’) ;

                   finsi

          fin ;

  1. Proposer une fonction permettant d’afficher tous les produits les plus vendues dans l’ensemble des Livres. (Nb : un Livre qui a eu du succès auprès des étudiants est un Livre qui a reçu une notation supérieure à 2.5, on s’attarderas pas sur la gestion de la notation mais plutôt sur sa valeur brute.) (en Algo et C )

CORRECTION :

          Procedure affichlivre(t :tabliv ) ;

          Var i :entier ;

          Debut

                   Pour i de 1 à N faire

                             Si (t[i].notation>2,5)alors

                                      Ecrire(t[i].code) ;

                                      Ecrire(t[i].nom) ;

                                      Ecrire(t[i].auteur) ;

                                      Ecrire(t[i].descript) ;

                                      Ecrire(t[i].prix) ;

                                      Ecrire(t[i].quantite) ;

                                      Ecrire(t[i].notation ) ;

                             Finsi

                   Finpour

          Fin ;

  1. Proposer une fonction permettant de sauvegarder de façon permanente les données relatives à l’ensemble des Livres. (en Algo )

CORRECTION :

          Type fichliv=fichier de livre ;

          Procedure sauvegarde(f :fivhliv , t :tabliv)

          Var i :entier ;

          Debut

                   Ouvrire(f) ;

                   iß1 ;

                   Tantque( non(fin(f)) et i<=N)faire

                             ecrire(f,t[i]) ;

                             ißi+1 ;

                   fintantque

                    fermer(f) ;

                   ecrire(‘’sauvegarde terminer’’) ;

          fin ;

  1. Donnez la différence entre un Tableau et un Fichier en Algo.

CORRECTION :

          La différence entre un tableau et un fichier est que dans  un tableau les traitements se font dans la mémoire vive (la RAM) par conséquent les informations ne sont pas définitives or dans un fichier les traitements de font dans  une mémoire morte (ROM, disquette…) donc les informations sont enregistrer de façon définitives ;

GROUPE GENIUS REPETITION Contact :   +237 658 39 59 78

Coordonnateur : Mr Joël_yk

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

 
  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam