Skip to content
Snippets Groups Projects
Commit 47fda9ed authored by Youssef  NIDABRAHIM's avatar Youssef NIDABRAHIM
Browse files

TP5

parent 0537ce30
No related branches found
No related tags found
No related merge requests found
......@@ -29,7 +29,7 @@ int GetNbObjetGraphique(void){
void ConstructeurObjetGraphique(PObjetGraphique othis){
printf("ObjetGraphique::ConstructeurObjetGraphique\n");
this->myClass = &LeMetaObjetGraphique;
othis->myClass = &LeMetaObjetGraphique;
othis->x = 0;
othis->y = 0;
}
......@@ -37,5 +37,5 @@ void ConstructeurObjetGraphique(PObjetGraphique othis){
int main(){
ObjetGraphique objetGraphique = new ObjetGraphique();
ObjetGraphique objetGraphique = ObjetGraphique();
}
File added
File added
#include <stdio.h>
#define TAILLE_MAX 5
typedef enum{FAUX=0, VRAI=1} bool;
#define DECLARER_PILE(TYPE) \
typedef struct Pile##TYPE \
{ \
TYPE pile[TAILLE_MAX]; \
TYPE* top; \
int itop; \
}Pile##TYPE##_t; \
\
/* empile la valeur */ \
void empiler##TYPE(TYPE valeur, struct Pile##TYPE* this); \
\
/* dépile en retournant le sommet */ \
TYPE depiler##TYPE(struct Pile##TYPE* this); \
\
/* Prédicat: la pile est-elle vide? */ \
bool estVide##TYPE(struct Pile##TYPE* this); \
\
/* renvoie le sommet de pile */ \
TYPE sommet##TYPE(struct Pile##TYPE* this); \
\
#define IMPLEMENTER_PILE(TYPE) \
void empiler##TYPE(TYPE valeur, struct Pile##TYPE* this){ \
if(this->itop < TAILLE_MAX-1){ \
this->top = &valeur; \
this->pile[++this->itop] = valeur; \
} \
} \
TYPE depiler##TYPE(struct Pile##TYPE* this){ \
if(estVide##TYPE(this)) return NULL; \
TYPE* element = this->top; \
if(this->itop == 0) this->top = NULL; \
else this->top = this->pile[--this->itop]; \
return element; \
} \
bool estVide##TYPE(struct Pile##TYPE* this){ \
return this->top == NULL; \
} \
TYPE sommet##TYPE(struct Pile##TYPE* this){ \
return this->top; \
}
DECLARER_PILE(int)
DECLARER_PILE(float)
IMPLEMENTER_PILE(int)
IMPLEMENTER_PILE(float)
int main(int argc, char* argv[])
{
Pileint_t pi;
Pilefloat_t pf;
pi.top = NULL;
empilerint(5, &pi);
depilerint(&pi);
pf.top = NULL;
empilerfloat(5, &pf);
depilerfloat(&pf);
return 0;
}
/* test_max.c */
#include <stdio.h>
#define DEFINIR_MAX(TYPE) \
TYPE max##TYPE(TYPE a, TYPE b) {return a >=b ? a : b;}
DEFINIR_MAX(int) /* maxint(int a, int b) est maintenant disponible*/
DEFINIR_MAX(float) /* maxfloat(float a, float b) est maintenant disponible */
int main(int argc, char* argv[])
{
printf("%d\n", maxint(10,2));
printf("%f\n", maxfloat(1,2));
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment