La librairie assert.h.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Chapitre annexe. Récursivité
Les fonctions A quoi ça sert ?
Rappels C.
Initiation à la programmation et algorithmique cours 4
Introduction à l’Algorithmique
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX
Synchronisation des processus père - fils
GEF 243B Programmation informatique appliquée
la programmation en langage C
C.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
Principes de programmation (suite)
Pb1 - Hello world - Regarder en pseudo code ce que cela donne.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
TRAITEMENT DE STRUCTURES
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Abder Alikacem Semaine 13 La récursivité
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Conteneurs STL.
Instruction sélective switch-case Instruction répétitive do-while For
Chapitre XI Gestion des erreurs et exceptions. 2 La gestion des erreurs et exceptions De nombreux problèmes peuvent survenir pendant lexécution dun programme:
IFT 6800 Atelier en Technologies d’information
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Plan troisième cours Instruction sélective Instruction répétitive
Les chaînes de caractères
Procédures et fonctions
Structures alternative et répétitive
Formation C++. Hello World ! #include /* Commentaire sur plusieurs lignes */ int main() { //Affiche hello world std::cout
Les assertions en Java.
2.1 - Historique Chapitre 2 : Introduction au langage C++
Programmer en langage c
Programmation Système et Réseau (sous Linux)
B.Shishedjiev -Débogueur1 Déboguer? Comment trouver et corriger les erreurs?
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
SPIP SPIP est le système de publication développé par le minirézo.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Sous-programmes.
Les adresses des fonctions
GESTION ET TRAITEMENT DES ERREURS
8PRO100 Éléments de programmation Comment répéter plusieurs fois une séquence d’instructions.
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Entrées / Sorties.
Programmation Système et Réseau
Introduction au langage C Fonctions et Procédures
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
8PRO100 Éléments de programmation Les pointeurs de caractères.
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
6ième Classe (Mercredi, 17 novembre) CSI2572
Langage de programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
1 Cpt JAVA : Eclipse (bis) Debogage. 2 Code à tester public class siecle { int t; public siecle() { super(); t=1; } static public boolean vrai() { return(false);
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Informatique 2A Langage C 4ème séance
Question 1 Pour afficher un tableau d’entiers tab en C :
Transcription de la présentation:

La librairie assert.h

La fonction assert() La fonction assert() permet: La validation des assertions d'un algorithmes La détection d'erreurs d'exécution fatales. Jusqu’à présent, nous avons appris à gérer nous même et par du code toutes les assertions vérifiables dans un programme.

La fonction assert() Il existe en fait 2 versions de assert: La version "debug", que l'on retrouve dans la librairie <crtdbg.h> de Visual C++: _ASSERT(condition) La version "release" qui se trouve dans la librairie <assert.h>: void assert(int condition); Cette dernière est plus portable: nous vous encourageons à l ’utiliser à la place de la librairie <crtdbg.h> .

La fonction assert() il s'agit d'une macro qui est évaluée comme une instruction conditionnelle. Si expression retourne zéro, assert affiche un message d'erreur et appelle la fonction abort pour finir le programme. Le message d'erreur affiché est de la forme : Assertion failed: expression, file __FILE__, line __LINE__ avec : __FILE__ est une macro donnant le nom du fichier source __LINE__ est une macro donnant le numéro de ligne courante

La fonction assert() Par exemple, le programme suivant: int main(void) { int i = 0; assert(i > 5); return 0; }

Aura le résultat suivant

traduction de l ’assertion sur le débordement du tableau Essayez cet exemple! #include <assert.h> #include <stdio.h> #define TAILLE 512 int calcul(int tab[], int i) { assert(i >= 0 && i < TAILLE); return 2 * tab[i] + 5; } int main() {int tableau[TAILLE]; int i; for (i=0; i<TAILLE; i++) tableau[i]=2; printf("%d\n", calcul(tableau, 1024)); return 0; traduction de l ’assertion sur le débordement du tableau initialisation arbitraire du tableau