EVALUATION EN ALGORITHMIQUE TEST  10/ XX  

 

Exercice 1  6pts :

 

Kenfack Paul étudiants du GROUPE GENIUS cherche à localiser le maximum et le minimum des valeurs stockées dans un vecteur V de dimension N . Pour cela, il vous demande d’écrire un algorithme qui permet de :

  • Lire la dimension n du vecteur tel n ≤ N=50que ;
  • Lire le vecteur  à éléments réels ;
  • Chercher   MAX   et  MIN       ;
  • Afficher MAX   et  MIN   ainsi que leurs positions respectives (ou première apparition) dans V . 

Problème 16 pts:
Les étudiants du GROUPE GENIUS souhaitent écrire un algorithme pour résoudre chacun des problèmes suivants :
1- Calcul de la somme des N premiers nombres entiers.
2- Recherche du minimum et du maximum dans un ensemble de N nombres.
3- Calcul du quotient et reste de la division de deux entiers A et B sans utiliser l’opération de division.
4- Le calcul du produit de deux entiers en utilisant uniquement l'opération d'addition '+’.
5- Détermination si A est divisible par B. Avec A et B des entiers positifs.
6- Déterminer tous les diviseurs d’un entier X donné.
7- Déterminer si un nombre entier X est premier ou non.
8- Calcule la somme des chiffres qui composent un entier naturel N.

 

                                                                                                                                                                                                                                                                                                                                                  Par Joel_Yk | Contact :+237652027193

 

Correction :

correction EVALUATION EN ALGORITHMIQUE TEST  10/ XX

 

CORRECTION


Exercice 1 : MAX / MIN dans un vecteur (6 pts)

On veut lire un vecteur V de taille n avec 1 ≤ n ≤ 50, puis déterminer : MAX, MIN et leurs positions de première apparition.

Algorithme Max_Min

Algorithme Max_Min ;

Const Nmax = 50 ;

Var
    V : tableau[1..Nmax] de reel ;
    n, i, Imax, Imin : entier ;
    max, min : reel ;

Debut
    Repeter
        Ecrire('Donner la dimension du vecteur (1..50)') ;
        Lire(n) ;
    Jusqu'a (n >= 1 ET n <= 50) ;

    Pour i de 1 a n faire
        Ecrire('V[', i, '] = ') ;
        Lire(V[i]) ;
    FinPour

    max  <- V[1] ;
    min  <- V[1] ;
    Imax <- 1 ;
    Imin <- 1 ;

    Pour i de 2 a n faire
        Si (V[i] > max) alors
            max  <- V[i] ;
            Imax <- i ;
        SinonSi (V[i] < min) alors
            min  <- V[i] ;
            Imin <- i ;
        FinSi
    FinPour

    Ecrire('La valeur maximale est : ', max, ' position : ', Imax) ;
    Ecrire('La valeur minimale est : ', min, ' position : ', Imin) ;
Fin.

NB (piège examen) : on utilise > et < (pas >= ou <=) afin de conserver la première apparition.


Problème 16 pts : Corrections des 8 sous-problèmes

 

1) Somme des N premiers entiers

Algorithme Somme_N ;

Var
    i, N, S : entier ;

Debut
    Ecrire('Donner un entier N >= 1') ;
    Repeter
        Lire(N) ;
    Jusqu'a (N >= 1) ;

    S <- 0 ;
    Pour i de 1 a N faire
        S <- S + i ;
    FinPour

    Ecrire('Somme des ', N, ' premiers entiers = ', S) ;
Fin.

2) Minimum et maximum dans N nombres

Algorithme MinMax_Ensemble ;

Var
    i, N : entier ;
    x, min, max : entier ;

Debut
    Ecrire('Donner N > 0') ;
    Repeter
        Lire(N) ;
    Jusqu'a (N > 0) ;

    Ecrire('Donner la valeur 1 : ') ;
    Lire(x) ;
    min <- x ;
    max <- x ;

    Pour i de 2 a N faire
        Ecrire('Donner la valeur ', i, ' : ') ;
        Lire(x) ;

        Si (x > max) alors
            max <- x ;
        SinonSi (x < min) alors
            min <- x ;
        FinSi
    FinPour

    Ecrire('Min = ', min, ' ; Max = ', max) ;
Fin.

3) Quotient et reste de A/B sans division

Algorithme Quotient_Reste ;

Var
    A, B, Q, R : entier ;

Debut
    Ecrire('Donner A et B (B > 0)') ;
    Repeter
        Lire(A, B) ;
    Jusqu'a (B > 0) ;

    Q <- 0 ;
    R <- A ;

    Tantque (R >= B) faire
        R <- R - B ;
        Q <- Q + 1 ;
    FinTantque

    Ecrire('Quotient = ', Q) ;
    Ecrire('Reste    = ', R) ;
Fin.

4) Produit de deux entiers avec uniquement des additions

Algorithme Produit_Addition ;

Var
    A, B, P, i : entier ;

Debut
    Ecrire('Donner A et B (B >= 0)') ;
    Repeter
        Lire(A, B) ;
    Jusqu'a (B >= 0) ;

    P <- 0 ;
    Pour i de 1 a B faire
        P <- P + A ;
    FinPour

    Ecrire('Produit = ', P) ;
Fin.

Version optimisée (moins d’itérations)

Algorithme Produit_Addition_Optim ;

Var
    A, B, P, i : entier ;

Debut
    Ecrire('Donner A et B (A >= 0 et B >= 0)') ;
    Repeter
        Lire(A, B) ;
    Jusqu'a (A >= 0 et B >= 0) ;

    Si (A = 0 ou B = 0) alors
        P <- 0 ;
    SinonSi (A < B) alors
        P <- 0 ;
        Pour i de 1 a A faire
            P <- P + B ;
        FinPour
    Sinon
        P <- 0 ;
        Pour i de 1 a B faire
            P <- P + A ;
        FinPour
    FinSi

    Ecrire('Produit = ', P) ;
Fin.

5) Tester si A est divisible par B (A, B positifs)

Algorithme Divisible ;

Var
    A, B, R : entier ;

Debut
    Ecrire('Donner A > 0 et B > 0') ;
    Repeter
        Lire(A, B) ;
    Jusqu'a (A > 0 et B > 0) ;

    R <- A ;
    Tantque (R > 0) faire
        R <- R - B ;
    FinTantque

    Si (R = 0) alors
        Ecrire(A, ' est divisible par ', B) ;
    Sinon
        Ecrire(A, ' n''est pas divisible par ', B) ;
    FinSi
Fin.

6) Diviseurs d’un entier X

Algorithme Diviseurs_X ;

Var
    X, i, M : entier ;

Debut
    Ecrire('Donner X > 0') ;
    Repeter
        Lire(X) ;
    Jusqu'a (X > 0) ;

    Ecrire('Diviseurs de ', X, ' :') ;

    M <- X DIV 2 ;
    Pour i de 1 a M faire
        Si (X MOD i = 0) alors
            Ecrire(i) ;
        FinSi
    FinPour
    Ecrire(X) ;
Fin.

7) Tester si X est premier

Algorithme EstPremier ;

Var
    X, i, M : entier ;
    pr : booleen ;

Debut
    Ecrire('Donner X > 0') ;
    Repeter
        Lire(X) ;
    Jusqu'a (X > 0) ;

    Si (X = 1) alors
        pr <- FAUX ;
    Sinon
        pr <- VRAI ;
        M <- X DIV 2 ;
        i <- 2 ;

        Tantque (i <= M ET pr) faire
            Si (X MOD i = 0) alors
                pr <- FAUX ;
            FinSi
            i <- i + 1 ;
        FinTantque
    FinSi

    Si (pr) alors
        Ecrire(X, ' est premier') ;
    Sinon
        Ecrire(X, ' n''est pas premier') ;
    FinSi
Fin.

8) Somme des chiffres d’un entier naturel N

Algorithme SommeChiffres ;

Var
    N, R, S : entier ;

Debut
    Ecrire('Donner un entier naturel N >= 0') ;
    Repeter
        Lire(N) ;
    Jusqu'a (N >= 0) ;

    S <- 0 ;
    R <- N ;

    Tantque (R > 0) faire
        S <- S + (R MOD 10) ;
        R <- R DIV 10 ;
    FinTantque

    Ecrire('Somme des chiffres de ', N, ' = ', S) ;
Fin.

 

Par Mr Joel_Yankam | Contact :+237652027193

Si vous avez trouvé les eaxamens corrigés en Algorithme 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 Joël_Yk

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

 

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam