Skip to content
Extraits de code Groupes Projets
Valider 23616dc2 rédigé par Hélène TRAN's avatar Hélène TRAN
Parcourir les fichiers

Rajout fichier labgen.c

parent 73cc3fa3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
#include "labgen.h" #include "labgen.h"
point size; point size;
//char *** matrice=NULL ; char *** matrice = NULL ;
int in,out; int in,out;
variables listevars; variables listevars;
/* Crée un nouveau point de coordonnées (x,y) */
point new_point(int x, int y) point new_point(int x, int y)
{ {
point monpoint; point monpoint;
monpoint.x =x; monpoint.x = x;
monpoint.y=y; monpoint.y = y;
return monpoint; return monpoint;
} }
char*** create_matrice(int s1, int s2)
/* Crée une matrice de taille (s1, s2) */
void create_matrice(int s1, int s2)
{ {
int i,j; int i,j;
char*** matrice = malloc(s1*sizeof(char **)); matrice = malloc(s1*sizeof(char **));
for (i= 0; i<s1 ;i++){ for (i= 0; i<s1 ;i++){
matrice[i] = malloc(s2 * sizeof(char *)); matrice[i] = malloc(s2 * sizeof(char *));
for (j=0; j<s2; j++) for (j=0; j<s2; j++)
...@@ -26,89 +30,110 @@ char*** create_matrice(int s1, int s2) ...@@ -26,89 +30,110 @@ char*** create_matrice(int s1, int s2)
} }
} }
size = new_point(s1,s2); size = new_point(s1,s2);
in =0; in = 0;
out = 0; out = 0;
return matrice;
} }
char* lecture(point p, char*** matrice) /* Renvoie la valeur de la matrice de coordonnées p */
{ char* lecture(point p)
{
if (p.x > 0 && p.y > 0 && p.x < size.x && p.y < size.y) if (p.x > 0 && p.y > 0 && p.x < size.x && p.y < size.y)
{ {
return matrice[p.x][p.y]; return matrice[p.x][p.y]; /* Définir la matrice avant ? */
} }
return NULL; return NULL;
} }
//void stock_val
void change_val_matrice(point p, char * msg, char*** matrice) /* void stock_val */
/* Change la valeur de la matrice de coordonnées p par la valeur msg */
void change_val_matrice(point p, char * msg)
{ {
char * m1; char * m1;
if (p.x > 0 && p.y > 0 && p.x < size.x && p.y < size.y) if (p.x > 0 && p.y > 0 && p.x < size.x && p.y < size.y)
{ {
m1 = malloc (strlen(msg)*sizeof(char)); m1 = malloc(strlen(msg)*sizeof(char));
strcpy(m1,msg); strcpy(m1,msg);
if (matrice[p.x][p.y] != NULL) if (matrice[p.x][p.y] != NULL){
{ free(matrice[p.x][p.y]) ;
free (matrice[p.x][p.y]) ; }
}
matrice[p.x][p.y] = m1; matrice[p.x][p.y] = m1;
} }
} }
int * find_var (char* var) void init_listevars(){
{ listevars.last = 0;
int i; }
int ret;
for (i=0; i<listevars.last; i++)
{ /* Vérifie si var est dans listevars :
ret = strcmp(listevars.ident[i], var); * - si oui, renvoie l'adresse correspondante
if (ret==0) - sinon, renvoie NULL */
int find_var (char* var)
{ {
return &listevars.val[i]; int i;
}} int ret;
return NULL; for (i=0; i<listevars.last; i++) {
ret = strcmp(listevars.ident[i], var);
if (ret==0) {
return i;
}
}
return -1;
} }
/* Modifie la valeur de la variable :
* - Si "nom" fait partie de la liste des variables, alors la variable est
* directement modifiée
* - Sinon rajoute le nom de la variable et sa valeur dans listevars
si la taille de listevars le permet */
void create_modif_var(char* nom, int val) void create_modif_var(char* nom, int val)
{ {
int * res = find_var(nom); int index = find_var(nom);
if (res != NULL) if (index != -1)
{ {
*res = val; listevars.val[index] = val;
} }
else{ else{
if (listevars.last > TAILLE) if (listevars.last > TAILLE)
{ {
printf(" il n ya plus de place pour tous ces variables\n"); printf(" il n'y a plus de place pour tous ces variables\n");
exit(1); exit(1);
} }
else else
listevars.ident[listevars.last] = malloc(strlen(nom)*sizeof(char)); listevars.ident[listevars.last] = malloc(strlen(nom)*sizeof(char));
strcpy(listevars.ident[listevars.last],nom); strcpy(listevars.ident[listevars.last],nom);
listevars.val[listevars.last] = val; listevars.val[listevars.last] = val;
listevars.last++; listevars.last++;
}} }}
void affichmat(char *** matrice){
int i,j;
for(i=0;i<size.x;i++){
for(j=0;j<size.y;j++){
printf("|%s \t",matrice[i][j]);
}printf("\n");}
}
/*
int main ()
{
create_matrice(5,4);
point p1 = new_point(1,2);
change_val_matrice(p1, "ABC");
printf("%s\n", lecture(p1));
change_val_matrice(p1, "DEF");
printf("%s\n", lecture(p1)); int main () {
create_matrice(5,4);
point p1 = new_point(1,2);
change_val_matrice(p1, "ABC");
printf("%s\n", lecture(p1));
change_val_matrice(p1, "DEF");
printf("%s\n", lecture(p1));
init_listevars();
create_modif_var("IDENT",1);
create_modif_var("IDENT",2);
create_modif_var("IDENT",1);
create_modif_var("IDENT2",5);
printf("Taille : %d\n",listevars.last);
printf("Premier nom : %s\n",listevars.ident[0]);
printf("Première valeur : %d\n",listevars.val[0]);
printf("Deuxième nom : %s\n",listevars.ident[1]);
printf("Deuxième valeur : %d\n",listevars.val[1]);
return 0;
} }
*/
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter