ÉVALUATION EN ALGORITHMIQUE TEST  25 / XX  

Examen Corriges en Algorithme, Examen Algorithme, Examen Algo

 

 

Correction :

CORRECTION cc

ALGORITHME – INF 111

(Année Académique 2024-2025)

Proposé par : GROUPE GENIUS REPETITION

Par : Mr Joël_Yankam

          EXERCICE 1

  1. Analyse et exécution d’un pseudo code

ALGORITHME 1

 Questions

  1. Le programme ci-dessus ne comporte pas d’erreurs
  2. Pour a=6 et n=7 disons ce que fait ce programme

   Execution

        cc1(7,6)=30240

              l           

 cc1(6,42)

         l

       cc1(5,252)

               l

             cc1(4,1260)

                     l

                 cc1(3,5040)

                         l

                       cc1(2,15120)

                               l

                           cc1(1,30240)

                                   l

                                 cc1(0,30240)

                                            l

                                         30240

On remarque que n=6 et n=7 on obtient 30240. Or 30240=5040*6 et 7!=5040 on a donc n!*a. En conclusion le programme réalise n!*a.

ALGORITHME 2

 Questions

  1. L’erreur contenue dans ce programme est qu’il ya un manque de Fsi.
  2. Prototype: La fonction cc2 prend en paramètre un entier et retourne un booléen.

En executant pour n=3 le programme retourne vrai et pour n=4 le programme retourne faux. On retient que cc2 est un programme parité qui retoune vrai si le nombre entré est impaire et faux si ce dernier est pair.

  1. Soeint les expresions

  B-1) Donnons les différents types de A et B

  1. A ou B : A et B sont des booléens
  2. (A-1>0) et (B<0): A et B sont des entiers
  3. (A=’’M’’ et B>=21) ou (A=’’F’’ et B>=25): A une chaine et B un entier

B-2) E valuons l’expression iii pour A=M ET B=20

 ( A=’’M’’ et B>=21) ou (A=’’F’’ et B>=25)= faux

               l                                     l

              faux              ou                 faux

                                          l

                                          Faux

C-Repondre par vrai ou faux

  1. Faux
  2. Faux
  3. Faux
  4. Faux

EXERCICE 2

1-Algorithme parité

Var k:entier;

Debut

 Ecrire(‘’Entrez un nombre’’);

 Lire(k);

Si(k mod 2 =0) alors

           Ecrire(‘’ le nombre’’,k,’’ est pair’’);

        Sinon

            Ecrire(‘’le nombre’’,k,’’ est impair’’);

      Fsi

Fin

2-Fonction somme_carres(n:entier) : entier;

  Var k, sc :entier;

  Debut

Sc<--0;

 Pour k de 1 a  n faire

    Sc<-- sc + k*k;

Fpr

   Retourner sc;

Fin;

3-Fonction somme_carres2(n:entier) : entier;

     Var sc : entier;

 Debut

Sc <-- (n*(n+1)*(2*n+1))/6;

Retourner sc;

Fin;

 

4-Fonction factorielle(n :  entier): entier ;

     Var fact, k : entier ;

  Debut

Si (n=0 ou n=1) alors

   Retouner 1;

   Sinon

       Fact<-- 1;

        Pour k de 1 a n faire

          Fact <-- fact *k;

        Fpr

 Fsi

 Retouner fact;

Fin;

                 EXERCICE 3

  1. Fonction nombre_pair(n : entier) : entier;

     Var i, cptdiv : entier;

  Debut

       Cptdiv <--0;

Pour i de 2 a n faire

   Si ( n mod =0) alors

      Cptdiv <-- cptdiv +1;

    Fsi

Fpr

  Si (cptdiv =0) alors

    Retourner vrai;

   Sinon

     Retourner faux;

 Fsi

Fin;

2- Algorithme crible_erathostène

  Var i, k : entier ;

      P : tableau de entier;

Debut

  Ecrire(‘’ Entrez un nombre’’);

  Lire(n);

    K <-- 0;

      Pour i de 1 a n faire

          Si ( nombre_premier(i) = vrai) alors

                K <-- 0;

                P[k]<-- i;

           Fsi

      Fpr

Pour i de 1 a k faire

   Ecrire( p[i] );

Fpr

Fin

  1. Algorithme Multp_matice_positif

Const L= 30;

Type mat = tableau [1..L , 1..L]de entier;

 Var M1, M2 , M3 : mat ;

        i , j , k ;

Debut

   Pour i de 1 a L faire

       Pour j de 1 a L faire

            Ecrire(‘’ enrez les elements de la matrice 1);

              Repeter

                   Lire( M1[i ,j] );

              Jusqu’a( M1[i , j] )>0);

       Fpr

   Fpr

  

  Pour i de 1 a L faire

     Pour j de 1 a L faire

          Ecrire( ‘’ entrez les elements de la matrice M 2);

            Repeter

               Lire M2[i , j]);

            Jusqu’a ( M2[i , j]>0 );

     Fpr

 Fpr

     Pour i de 1 a L faire

        Pour j de 1 a L faire

           M3[i , j] <-- 0;

            pour k de 1 a L faire

                   M3[i , j] <--M3[i , j] + M1[i , j] * M2[k , j];

             Fpr

        Fpr

Fpr

Pour i de 1 a L faire

   Pour j de 1 a L faire

        Ecrire ( M3[i , j] );

   Fpr

Fpr

Fin

      

                   PROBLEME

                  

  1. Une structure de données permettant de représenter un livre

   

  Type livre = Enregistrement

                          Code: entier;

                      Nom: chaine

                      Libellé: chaine;

                      Prix: réel;

                     Quantité: réel;   

                     Notation: entier;

                  finEnregistrement ;

2)Une stucture de données permettant de manipuler ces livres en memoire centrale

   Const N=700;

Type tabliv = tableau[1..N] de livre;

3)Fonction rechercherlivre( t: tabliv , code: entier) : entier ;

  

  Var i: entier;

   Debut

     Pour i de 1 a N faire

          Si ( t[i].code = code) alors

              Retourner i ;

          Fsi

Fpr

           Retourner -1 ;

 Fin ;

4)Procédure insérerlivre(var t: tabliv , l: livre);

   

   Var i: entier;

Debut

  i <-- rechercherlivre(t , l.code);

   Si (i <> -1) alors

         Ecrire(‘’ insertion impossible le livre existe déja’’);

      Sinon

          i<-- 1;

           Tantque( i<N et t[i].code <> NIL) faire

               i<--i+1;

            Ftq

                Si( i< N) alors

                      t[i].code <-- L.code;

                      t[i].nom<-- L.nom;

                      t[i].libellé<-- L.libellé;

                      t[i].prix<-- L.prix;

                      t[i].quantoté<-- L.quantité;

                      t[i].notation<-- L.notation;

                    Sinon

                          Ecrire(‘’ Espace saturé’’);

                 Fsi

     Fsi

Fin;

5)Fonction compterlivre(t: tabliv): entier;

Var i , cpt : entier;

Debut

    Cpt<--0;

   Pour i de 1 a N faire

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

               Cpt <-- cpt +1;

          Fsi

  Fpr

        Retourner cpt;

Fin;

  1. Procédure supprimerlivre( var t: tabliv , code:entier);

       Var i: entier;

      Debut

        i<-- rechercherlivre( t , code) ;

          Si ( i = -1) alors

               Ecrire(‘’ supression impossible le livre n’existe pas’’);

                 Sinon

                   t[i].code<-- NIL;

                   t[i].nom<-- ‘’  ‘’;

                   t[i].libellé<-- ‘’  ‘’;

                   t[i].prix<-- NIL;

                   t[i].quantité<-- NIL;

                   t[i].notation<-- NIL;

          Fsi

      Fin;

  1. Procédure modifierlivre( var t: tabliv , newprix: réel , code: entier);

Var i: entier;

Debut

   i= rechercherlivre( t , code);

    Si (i = -1) alors

        Ecrire(‘’ modification impossible le livre n’existe pas’’);

        Sinon

          t[i].prix<-- newprix;

    Fsi

Fsi  ;

  1. procedure afficherliv( t: tabliv);

Var i : entier;

Debut

   Pour i de 1 a N faire

       Si (t[i].notation > 3) alors

           Ecrire(‘’ le code est:’’, t[i].code);

           Ecrire(‘’le nom est:’’,t[i].nom);

           Ecrire(‘’le libellé est:’’, t[i].libellé);

           Ecrire(‘’le prix est:’’, t[i].prix);

           Ecrire(‘’la quqntité est:’’, t[i].quantité);

           ecrire(‘’la notation est:’’, t[i].notation);

           Fsi

       Fpr

   Fin;

  • r :

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

 

Si vous avez trouvé les examens corrigés en algorithmique de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 652027193 | Réaliser Par Mr Joël_Yk

Partager ici

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam