Un algorithme est-il correct?

Deux types de correction:
  • Syntaxique: L'algorithme vérifie t-il la syntaxe donnée? C'est au concepteur de vérifier à la main si son algorithme est syntaxiquement correct.
    exemple: le corps de l'algorithme suivant n'est pas syntaxiquement correct.


       demander("prix hors taxe d'un DVD", pHT);
       demander(" nombre de DVDs achetés", nbDVD);
        pHTTot = nbDVD * pHT
        pTTCTot = /* C'est le prix total TTC de nb DVDs*/ pHTTot + (pHTTot * mTVA/100);
        afficher ("Prix total TTC des ", nbDVD, " DVDs:", pTTCTot);


    1. Il manque un ; a la fin de la ligne 4.
    2. Il y a un commentaire mal placé à la ligne 5


  • Sémantique: L'algorithme résout il le problème donné dans tous les cas?
    exemple: le corps de l'algorithme suivant n'est pas sémantiquement correct.


        demander("prix hors taxe d'un DVD", pHT);

        demander("nombre de DVDs achetés", nbDVD);
        pHTTot = nbDVD * pHT;    
        pTTCTot =  (pHTTot + (pHTTot *  mTVA)) /100;
        afficher ("Prix total TTC des ", nbDVD, " DVDs:", pTTCTot);



    Le calcul de pTTCTot est faux. 

    • Vérification à la main: Pour chaque cas du jeu d'essais il faut dérouler l'algorithme et vérifier que le résultat attendu est celui obtenu.
    • Preuve: Il y a des techniques mathématiques qui permettent de prouver qu'un algorithme est sémantiquement correct ... mais c'est hors programme du DUT.
 suivant       plan