From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_5/HLIN504_Systeme/TP1/TD.txt | 37 +++++++++++++++++++++++++++++++++++ sem_5/HLIN504_Systeme/TP1/argenv | Bin 0 -> 8612 bytes sem_5/HLIN504_Systeme/TP1/argenv.c | 16 +++++++++++++++ sem_5/HLIN504_Systeme/TP1/fact | Bin 0 -> 8639 bytes sem_5/HLIN504_Systeme/TP1/fact.c | 13 ++++++++++++ sem_5/HLIN504_Systeme/TP1/pascal | Bin 0 -> 8779 bytes sem_5/HLIN504_Systeme/TP1/pascal.c | 35 +++++++++++++++++++++++++++++++++ sem_5/HLIN504_Systeme/TP1/segfault | Bin 0 -> 9810 bytes sem_5/HLIN504_Systeme/TP1/segfault.c | 8 ++++++++ sem_5/HLIN504_Systeme/TP1/tp1 | Bin 0 -> 8559 bytes 10 files changed, 109 insertions(+) create mode 100644 sem_5/HLIN504_Systeme/TP1/TD.txt create mode 100644 sem_5/HLIN504_Systeme/TP1/argenv create mode 100644 sem_5/HLIN504_Systeme/TP1/argenv.c create mode 100644 sem_5/HLIN504_Systeme/TP1/fact create mode 100644 sem_5/HLIN504_Systeme/TP1/fact.c create mode 100644 sem_5/HLIN504_Systeme/TP1/pascal create mode 100644 sem_5/HLIN504_Systeme/TP1/pascal.c create mode 100644 sem_5/HLIN504_Systeme/TP1/segfault create mode 100644 sem_5/HLIN504_Systeme/TP1/segfault.c create mode 100644 sem_5/HLIN504_Systeme/TP1/tp1 (limited to 'sem_5/HLIN504_Systeme/TP1') diff --git a/sem_5/HLIN504_Systeme/TP1/TD.txt b/sem_5/HLIN504_Systeme/TP1/TD.txt new file mode 100644 index 0000000..f6a8d0c --- /dev/null +++ b/sem_5/HLIN504_Systeme/TP1/TD.txt @@ -0,0 +1,37 @@ +Exercice 1 : +int : 4 octets +float : 4 octets +char : 4 octets +pointeur : 8 octets + +2) Une variable non initialisé contient une valeur Random + +3) les static dans le secteur static, *td dans le secteur dynamique, (*h) est defini dnas le segment code, et le reste +dans le tas. + +4) + +5) + +Exercice 2 : +1) int tab[N1]; +2)scanf("%d", N2); +int tab[N2]; +3) scanf("%d", N3); +int * tab = malloc(N3*sizeof(int)); +4) scanf("%d", N2); +scanf("%d", N3); +int ** Mat = malloc(sizeof(int*)*N2); +for (int i =0; i < N2; i ++){ + Mat[i]=malloc(sizeof(int)*N3); +} + +On accede a l'element Mat i-j en faisait Mat[i][j], les element ne sont pas initialisés, et la durée de vie s'etend entre le malloc et le free + +5) Il faut a tout prix preserver la valeur de Mat, qui est l'adresse du tableau contenant les adresses des tableaux de la matrice. + +6) int Mat[N2][N3]; +La durée de vie est limité, la taille doit etre connu à l'execution... + +Exercice 3: +En systeme mono-programmable, le programme s'execute "normalement" jusqu'a l'arret du processeur, dans un systeme multi-progammable, diff --git a/sem_5/HLIN504_Systeme/TP1/argenv b/sem_5/HLIN504_Systeme/TP1/argenv new file mode 100644 index 0000000..63f556e Binary files /dev/null and b/sem_5/HLIN504_Systeme/TP1/argenv differ diff --git a/sem_5/HLIN504_Systeme/TP1/argenv.c b/sem_5/HLIN504_Systeme/TP1/argenv.c new file mode 100644 index 0000000..eee73e4 --- /dev/null +++ b/sem_5/HLIN504_Systeme/TP1/argenv.c @@ -0,0 +1,16 @@ +#include +#include + +int main ( int argc, char ** argv, char *envp[]){ + printf("Nb d'arguments : %d \n", argc); + for (int i = 0 ; i < argc; i ++){ + printf(" Argument %d : %s \n", i, argv[i]); + } + printf ("Environnement : \n"); + int index = 0; + while(envp[index]){ + printf("Var Env %d : %s \n",index,envp[index]); + index++; + } + return 0; +} diff --git a/sem_5/HLIN504_Systeme/TP1/fact b/sem_5/HLIN504_Systeme/TP1/fact new file mode 100644 index 0000000..87ba3f7 Binary files /dev/null and b/sem_5/HLIN504_Systeme/TP1/fact differ diff --git a/sem_5/HLIN504_Systeme/TP1/fact.c b/sem_5/HLIN504_Systeme/TP1/fact.c new file mode 100644 index 0000000..3c33b09 --- /dev/null +++ b/sem_5/HLIN504_Systeme/TP1/fact.c @@ -0,0 +1,13 @@ +#include +#include + +int fact (int x); + +int main (int argc, char ** argv){ + printf("%d \n", fact(atoi(argv[1]))); + return 0; +} + +int fact (int x){ + return x == 0 ? 1: x * fact( x-1); +} diff --git a/sem_5/HLIN504_Systeme/TP1/pascal b/sem_5/HLIN504_Systeme/TP1/pascal new file mode 100644 index 0000000..9ae5674 Binary files /dev/null and b/sem_5/HLIN504_Systeme/TP1/pascal differ diff --git a/sem_5/HLIN504_Systeme/TP1/pascal.c b/sem_5/HLIN504_Systeme/TP1/pascal.c new file mode 100644 index 0000000..9e98eda --- /dev/null +++ b/sem_5/HLIN504_Systeme/TP1/pascal.c @@ -0,0 +1,35 @@ +#include +#include + +int ** pasc(int n); +void printtab(int ** tab, int n); +int main ( int argc, char ** argv){ + // pasc(atoi(argv[1])); + printtab(pasc(atoi(argv[1])), (atoi(argv[1]))); + return 0; +} + +void printtab(int ** tab, int n){ + for(int i = 0; i < n; i ++){ + for (int j = 0; j < n; j ++){ + printf ("%d \t ", tab[i][j]); + } + printf("\n"); + } +} +int ** pasc(int n){ + int ** tab = malloc ( sizeof(int*)*n); + for (int i =0; i < n; i ++){ + tab[i]=malloc(sizeof(int)*n); + for (int j = 0 ; j < n; j ++){ + tab[i][j]=0; + } + } + for (int i=0; i < n; i ++){ + for (int j = 0 ; j <= i; j ++){ + tab[i][j]= (i>0?(j>0?tab[i-1][j]+tab[i-1][j-1]:tab[i-1][0]):1); + // printf("%d %d %d \n",i,j, tab[i][j]); + } + } + return tab; +} diff --git a/sem_5/HLIN504_Systeme/TP1/segfault b/sem_5/HLIN504_Systeme/TP1/segfault new file mode 100644 index 0000000..0444f07 Binary files /dev/null and b/sem_5/HLIN504_Systeme/TP1/segfault differ diff --git a/sem_5/HLIN504_Systeme/TP1/segfault.c b/sem_5/HLIN504_Systeme/TP1/segfault.c new file mode 100644 index 0000000..b864316 --- /dev/null +++ b/sem_5/HLIN504_Systeme/TP1/segfault.c @@ -0,0 +1,8 @@ +#include +#include +char *s; +void g(void){printf("%c\n",s[0]);} +void f(void){g();} +int main(){ + f(); +} diff --git a/sem_5/HLIN504_Systeme/TP1/tp1 b/sem_5/HLIN504_Systeme/TP1/tp1 new file mode 100644 index 0000000..244e612 Binary files /dev/null and b/sem_5/HLIN504_Systeme/TP1/tp1 differ -- cgit v1.2.3