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