From 1b85ed51314e4354375875e01bfab7e4714c7f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9l=C3=A8ne=20TRAN?= <helene.tran@ensiie.fr> Date: Tue, 26 Dec 2017 20:49:21 +0100 Subject: [PATCH] Correction labgen.c ok --- Labgen/a.out | Bin 9096 -> 13488 bytes Labgen/labgen.c | 131 +++++++++++++++++++++++++++++++----------------- Labgen/labgen.h | 22 +++++--- 3 files changed, 100 insertions(+), 53 deletions(-) diff --git a/Labgen/a.out b/Labgen/a.out index 1776c76cb4eaf2afa28a505bbbb6bd0ca61d0195..6dc060296f6a65e13977c12e48cc264760244e59 100755 GIT binary patch literal 13488 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 VMv3NUrTQ<{@nW{fR%oyPzX1cWpYH$w literal 9096 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 AssI20 diff --git a/Labgen/labgen.c b/Labgen/labgen.c index a952bdd..4520ab8 100644 --- a/Labgen/labgen.c +++ b/Labgen/labgen.c @@ -1,5 +1,5 @@ #include "labgen.h" -point size; +point size; /*Attention c'est la taille réelle de la matrice*/ char *** matrice = NULL ; int in,out; variables listevars; @@ -15,21 +15,23 @@ point new_point(int x, int y) } -/* Crée une matrice de taille (s1, s2) */ +/* Crée une matrice de taille (s1, s2) + * /!\ Attention : toujours créer la matrice avant d'utiliser + * les autres fonctions */ void create_matrice(int s1, int s2) { int i,j; - matrice = malloc(s1*sizeof(char **)); - - for (i= 0; i<s1 ;i++){ - matrice[i] = malloc(s2 * sizeof(char *)); - for (j=0; j<s2; j++) - { - matrice[i][j] = malloc(sizeof(char)); - strcpy(matrice[i][j],""); - } + matrice = malloc((s1+1)*sizeof(char **)); + + for (i= 0; i<s1+1; i++){ + matrice[i] = malloc((s2+1) * sizeof(char *)); + for (j=0; j<s2+1; j++) { + matrice[i][j] = malloc(sizeof(char)); + strcpy(matrice[i][j],""); + } } - size = new_point(s1,s2); + size = new_point(s1+1,s2+1); + /*Attention c'est la taille réelle de la matrice*/ in = 0; out = 0; } @@ -38,10 +40,14 @@ void create_matrice(int s1, int s2) /* 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) - { - return matrice[p.x][p.y]; /* Définir la matrice avant ? */ + if (matrice == NULL){ + printf("Matrice non initialisée.\n"); } + else if (p.x >= 0 && p.y >= 0 && p.x < size.x && p.y < size.y){ + return matrice[p.x][p.y]; + } + else + printf("Impossible de lire la valeur au point (%d,%d).\n", p.x,p.y); return NULL; } @@ -50,18 +56,27 @@ char* lecture(point p) /* Change la valeur de la matrice de coordonnées p par la valeur msg */ void change_val_matrice(point p, char * msg) { - char * m1; - if (p.x > 0 && p.y > 0 && p.x < size.x && p.y < size.y) - { + if (matrice == NULL){ + printf("Matrice non initialisée.\n"); + } + + else if (p.x >= 0 && p.y >= 0 && p.x < size.x && p.y < size.y) { + char * m1; m1 = malloc(strlen(msg)*sizeof(char)); strcpy(m1,msg); if (matrice[p.x][p.y] != NULL){ free(matrice[p.x][p.y]) ; } matrice[p.x][p.y] = m1; - } + } + else { + printf("Impossible de changer de valeur la valeur au point (%d,%d).\n", + p.x,p.y); + } } + +/* Initialise listevars */ void init_listevars(){ listevars.last = 0; } @@ -70,10 +85,10 @@ void init_listevars(){ /* Vérifie si var est dans listevars : * - si oui, renvoie l'adresse correspondante - sinon, renvoie NULL */ -int find_var (char* var) -{ +int find_var(char* var) { int i; int ret; + for (i=0; i<listevars.last; i++) { ret = strcmp(listevars.ident[i], var); if (ret==0) { @@ -89,51 +104,77 @@ int find_var (char* var) * 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) -{ -int index = find_var(nom); +void create_modif_var(char* nom, int val) { + int index = find_var(nom); -if (index != -1) -{ - listevars.val[index] = val; + if (index != -1) + { + listevars.val[index] = val; + } + + else{ + if (listevars.last > TAILLE) { + printf("Il n'y a plus de place pour tous ces variables.\n"); + exit(1); + } + else + listevars.ident[listevars.last] = malloc(strlen(nom)*sizeof(char)); + + strcpy(listevars.ident[listevars.last],nom); + listevars.val[listevars.last] = val; + listevars.last++; + } } -else{ - if (listevars.last > TAILLE) - { - printf(" il n'y a plus de place pour tous ces variables\n"); - exit(1); - } - else - listevars.ident[listevars.last] = malloc(strlen(nom)*sizeof(char)); - strcpy(listevars.ident[listevars.last],nom); - listevars.val[listevars.last] = val; - listevars.last++; -}} +/*void ligne(){ + int j; + for (j=0;j<size.y;j++) + printf(" -------"); + printf("\n"); +}*/ +void affichmat() { + int i,j; + + /*ligne();*/ + for(i=0;i<size.x;i++){ + for(j=0;j<size.y;j++){ + printf("|%s \t",matrice[i][j]); + } + printf("|\n"); + /*ligne();*/ + } + /*ligne();*/ +} int main () { create_matrice(5,4); - point p1 = new_point(1,2); - change_val_matrice(p1, "ABC"); - printf("%s\n", lecture(p1)); + point p1 = new_point(5,4); + printf("Point p1 (%d,%d)\n",p1.x,p1.y); + printf("\nAppel de la fonction change_val_matrice(p1,ABC)\n"); + change_val_matrice(p1,"ABC"); + printf("Point p1 :%s\n", lecture(p1)); + printf("\nAppel de la fonction change_val_matrice(p1,DEF)\n"); change_val_matrice(p1, "DEF"); - printf("%s\n", lecture(p1)); + printf("Point p1 :%s\n", lecture(p1)); + + printf("\nTaille de la matrice : (%d,%d)\n",size.x-1,size.y-1); + printf("Matrice correspondante :\n"); + affichmat(matrice); 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("\n\nTaille listevars : %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; } diff --git a/Labgen/labgen.h b/Labgen/labgen.h index 12788ae..271ef44 100644 --- a/Labgen/labgen.h +++ b/Labgen/labgen.h @@ -1,20 +1,26 @@ #include<stdio.h> #include<stdlib.h> #include<string.h> -#define TAILLE 255 +#define TAILLE 255 + typedef struct { int x; int y; } point; -typedef struct -{ + +typedef struct { char* ident[TAILLE]; int val[TAILLE]; int last; -}variables; +} variables; -char*** create_matrice(int,int); point new_point(int ,int); -char* lecture(point, char***); -void change_val_matrice(point,char*,char***); -void affichmat(char *** matrice); + +void create_matrice(int,int); +char* lecture(point); +void change_val_matrice(point,char*); + +void init_listevars(); +int find_var(char*); +void create_modif_var(char*,int); +void affichmat(); -- GitLab