Skip to content
Snippets Groups Projects
Commit 59d7b623 authored by DARWICH ALI's avatar DARWICH ALI
Browse files

zeby

parent fa67328d
No related merge requests found
Showing
with 548 additions and 0 deletions
File added
CC=gcc
CFLAGS= -g -Wall
INC= -I include
vpath %.h include
vpath %.c src
vpath %.o obj
OBJECTS = $(patsubst src/%.c , obj/%.o , $(wildcard src/*.c))
OBJ=obj/
test: $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(INC)
mkdir -p bin
mv -f $@ bin/
$(OBJ)test.o: test.c pile_char.h parentheses.h base.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
$(OBJ)%.o: %.c %.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
clean:
rm -rf bin obj
File added
// fichier base.h
#ifndef BASE
#define BASE
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
typedef bool Bool;
#define faux false
#define vrai true
//#define vrai 1
//#define faux 0
//typedef unsigned char Bool;
typedef unsigned int Nat;
typedef int Ent;
typedef float Reel;
typedef float Rat;
typedef char Car;
typedef Car * Chaine;
#define MALLOC(t) ((t*)malloc(sizeof(t)))
#define MALLOCN(n, t) ((t*)calloc(n, sizeof(t)))
#define CALLOCN(n, t) ((t*)malloc(n * sizeof(t)))
#define REALLOC(p,n,t) ((t*)realloc(p, n * sizeof(t)))
#define FREE(t) free(t)
#endif
#ifndef __FILE_INT_H__
#define __FILE_INT_H__
#include "base.h"
#define MAX_P 50
#define S int
typedef struct sfile {
int v ;
struct sfile *s;} *Sfile ;
typedef struct {
Sfile h ;
Sfile q ;} File ;
File filenouv();
File adjq(File f,S s);
File supt(File f);
S tete(File f);
Bool vide(File f);
Nat longueur(File f);
void affiche(File f);
#endif
#include "file_int.h"
File filenouv()
{
File new_file ;
new_file.h = NULL ;
new_file.q = NULL ;
return new_file ;
}
File adjq(File f,S s)
{
Sfile sf = (Sfile) malloc(sizeof(struct sfile)) ;
sf->v = s ;
sf->s = NULL ;
if(f.h == NULL)
{
f.h = sf ;
f.q = sf ;
return f ;
}//else
f.q->s = sf ;
f.q = sf ;
return f ;
}
File supt(File f)
{
if(vide(f))
{
printf("file vide on peut pas suprimer\n");
return f ;
}
//else
Sfile temp = f.h->s ;
free(f.h) ;
f.h = temp ;
return f ;
}
S tete(File f)
{
if(vide(f))
{
printf("file vide pas de tete\n");
return 0 ;
}//else
return f.h->v;
}
Bool vide(File f)
{
return f.h == NULL ;
}
Nat longueur(File f)
{
Nat i = 0 ;
Sfile parc = f.h ;
while(parc != NULL)
{
i++;
parc = parc->s ;
}
return i ;
}
void affiche(File f)
{
Sfile parc = f.h ;
while(parc != NULL)
{
printf("%d ",parc->v) ;
parc = parc->s ;
}
printf("\n");
return ;
}
#include "file_int.h"
#define N 10
int main()
{
printf("###########################TEST############################\n");
File F1 = filenouv();
for(int i = 0; i < MAX_P ; i++)
{
F1 = supt(adjq(F1,1));
}
printf("longueur = %d\n",longueur(F1));
for(int i = 0; i < N ; i++)
{
F1 = adjq(F1,i);
}
affiche(F1);
F1 = supt(supt(F1));
affiche(F1);
printf("tete = %d \n",tete(F1));
if(vide(F1))printf("F1 vide\n");
File F2 = filenouv() ;
if(vide(F2)) printf("F2 vide\n");
return 0 ;
}
CC=gcc
CFLAGS= -g -Wall
INC= -I include
vpath %.h include
vpath %.c src
vpath %.o obj
OBJECTS = $(patsubst src/%.c , obj/%.o , $(wildcard src/*.c))
OBJ=obj/
test: $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(INC)
mkdir -p bin
mv -f $@ bin/
$(OBJ)test.o: test.c pile_char.h parentheses.h base.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
$(OBJ)%.o: %.c %.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
clean:
rm -rf bin obj
File added
// fichier base.h
#ifndef BASE
#define BASE
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
typedef bool Bool;
#define faux false
#define vrai true
//#define vrai 1
//#define faux 0
//typedef unsigned char Bool;
typedef unsigned int Nat;
typedef int Ent;
typedef float Reel;
typedef float Rat;
typedef char Car;
typedef Car * Chaine;
#define MALLOC(t) ((t*)malloc(sizeof(t)))
#define MALLOCN(n, t) ((t*)calloc(n, sizeof(t)))
#define CALLOCN(n, t) ((t*)malloc(n * sizeof(t)))
#define REALLOC(p,n,t) ((t*)realloc(p, n * sizeof(t)))
#define FREE(t) free(t)
#endif
#ifndef __FILE_INT_H__
#define __FILE_INT_H__
#include "base.h"
#define MAX_P 50
#define S int
typedef struct sfile {
int v ;
struct sfile *s;
struct sfile *p; } Sfile, *File ;
File filenouv();
File adjq(File f,S s);
File supt(File f);
S tete(File f);
Bool vide(File f);
Nat longueur(File f);
void affiche(File f);
#endif
#ifndef __FLAVIUS_H__
#define __FLAVIUS_H__
#include "file_int.h"
typedef enum { droit ,gauche , } direction ;
File tourne(File f,Nat foix , direction dir) ;
S pos(File f , Nat deb , Nat foix , direction dir ) ;
#endif
#include "file_int.h"
File filenouv()
{
return (File) NULL ;
}
File adjq(File f,S s)
{
File sf = (File) malloc(sizeof(Sfile)) ;
sf->v = s ;
if(f == NULL)
{
sf->s = sf ;
sf->p = sf ;
f = sf ;
return f ;
}//else
sf->s = f->s ;
sf->p = f->p ;
f->p->s = sf ;
f->s->p = sf;
f = sf ;
return f ;
}
File supt(File f)
{
if(vide(f))
{
printf("file vide on peut pas suprimer\n");
return f ;
}
//else
if(longueur(f) == 1 )
{
free(f) ;
return (File) NULL ;
}
File temp = f->s->s ;
free(f->s) ;
f->s = temp ;
temp->p = f ;
return f ;
}
S tete(File f)
{
if(vide(f))
{
printf("file vide pas de tete\n");
return 0 ;
}//else
return f->s->v;
}
Bool vide(File f)
{
return f == NULL ;
}
Nat longueur(File f)
{
if(vide(f)) return 0 ;
//else
Nat i = 1 ;
File parc = f->s ;
while(parc != f)
{
i++;
parc = parc->s ;
}
return i ;
}
void affiche(File f)
{
if(vide(f)) return ;
//else
File parc = f->s ;
while(parc != f)
{
printf("%d ",parc->v) ;
parc = parc->s ;
}
printf("%d ",parc->v);
printf("\n");
return ;
}
#include "flavius.h"
File tourne(File f,Nat foix , direction dir)
{
Nat i = foix ;
if(dir == droit)
{
while(i != 0)
{
f = f->s ;
i-- ;
}
return f ;
}//else
while(i != 0)
{
f = f->p ;
i-- ;
}
return f ;
}
S pos(File f , Nat deb , Nat foix , direction dir )
{
f = tourne(f,deb,droit);
while(longueur(f) != 1 )
{
f = tourne(f,foix,dir) ;
f = supt(f) ;
}
return tete(f) ;
}
#include "file_int.h"
#include "flavius.h"
#define N 10
int main()
{
printf("###########################TEST############################\n");
File F1 = filenouv();
for(int i = 0; i < MAX_P ; i++)
{
F1 = supt(adjq(F1,1));
}
printf("longueur = %d\n",longueur(F1));
for(int i = 0; i < N ; i++)
{
F1 = adjq(F1,i);
}
affiche(F1);
F1 = supt(supt(F1));
affiche(F1);
printf("tete = %d \n",tete(F1));
if(vide(F1))printf("F1 vide\n");
File F2 = filenouv() ;
if(vide(F2)) printf("F2 vide\n");
printf("###########################FLAVIUS############################\n");
File F3 = filenouv() ;
for(int i = 0; i < N ; i++)
{
F3 = adjq(F1,i+1);
}
printf("pos %d \n",pos(F3,0,1,droit));
return 0 ;
}
CC=gcc
CFLAGS= -g -Wall
INC= -I include
vpath %.h include
vpath %.c src
vpath %.o obj
OBJECTS = $(patsubst src/%.c , obj/%.o , $(wildcard src/*.c))
OBJ=obj/
test: $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(INC)
mkdir -p bin
mv -f $@ bin/
$(OBJ)test.o: test.c pile_char.h parentheses.h base.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
$(OBJ)%.o: %.c %.h
$(CC) $(CFLAGS) -c $< $(INC)
mkdir -p obj
mv -f *.o $(OBJ)
clean:
rm -rf bin obj
File added
// fichier base.h
#ifndef BASE
#define BASE
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
typedef bool Bool;
#define faux false
#define vrai true
//#define vrai 1
//#define faux 0
//typedef unsigned char Bool;
typedef unsigned int Nat;
typedef int Ent;
typedef float Reel;
typedef float Rat;
typedef char Car;
typedef Car * Chaine;
#define MALLOC(t) ((t*)malloc(sizeof(t)))
#define MALLOCN(n, t) ((t*)calloc(n, sizeof(t)))
#define CALLOCN(n, t) ((t*)malloc(n * sizeof(t)))
#define REALLOC(p,n,t) ((t*)realloc(p, n * sizeof(t)))
#define FREE(t) free(t)
#endif
#ifndef __FILE_INT_H__
#define __FILE_INT_H__
#include "base.h"
#define MAX_P 50
#define S int
typedef struct {
S tab[MAX_P] ;
Nat t ;
Nat l ; } File ;
File filenouv();
File adjq(File f,S s);
File supt(File f);
S tete(File f);
Bool vide(File f);
Nat longueur(File f);
void affiche(File f);
#endif
#include "file_int.h"
File filenouv()
{
File new_file ;
new_file.t = 0 ;
new_file.l = 0 ;
return new_file ;
}
File adjq(File f,S s)
{
if(f.l == MAX_P)
{
printf("file remplie on peut rien ajouter\n");
return f;
}//else
f.tab[(f.t+(f.l++))%MAX_P] = s ;
return f ;
}
File supt(File f)
{
if(f.l == 0)
{
printf("file vide on peut pas suprimer\n");
return f;
}//else
f.l--;
f.t++;
return f ;
}
S tete(File f)
{
if(vide(f))
{
printf("file vide pas de tete\n");
return 0 ;
}//else
return f.tab[(f.t+f.l-1)%MAX_P] ;
}
Bool vide(File f)
{
return f.l == 0 ;
}
Nat longueur(File f)
{
return f.l ;
}
void affiche(File f)
{
for(int i = 0 ; i < f.l ; i++) printf("%d ",f.tab[(f.t+i)%MAX_P]) ;
printf("\n");
return ;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment