From 5787d314e0230438104e78870b26a28277f65795 Mon Sep 17 00:00:00 2001 From: Nigel Barink Date: Sun, 18 Oct 2020 21:39:34 +0200 Subject: [PATCH] Moved files of Assignment 1, Started Assignment 2 --- 1b.txt => Assignment 1/1b.txt | 0 .../excercise1}/names.txt | 0 .../excercise2}/2a.txt | 0 .../excercise2}/Makefile | 0 .../excercise2}/gengenome.sh | 0 .../excercise2}/genome.sh | 0 .../excercise2}/parsegenome.c | 0 .../excercise3}/exercise3b.c | 0 .../excercise3}/exercise3d.c | 0 {excercise3 => Assignment 1/excercise3}/grep | 0 .../excercise3}/lines.txt | 0 exercise3c => Assignment 1/exercise3c | 0 genome.txt => Assignment 1/genome.txt | 0 Assignment 2/exercise1.c | 33 +++++++++++++ Assignment 2/exercise1.txt | 33 +++++++++++++ Assignment 2/exercise2.c | 37 ++++++++++++++ Assignment 2/exercise3.c | 11 +++++ Assignment 2/exercise3.h | 2 + Assignment 2/main.c | 22 +++++++++ Assignment 2/memcmp.c | 17 +++++++ Assignment 2/memcmp.h | 2 + Assignment 2/memcmp_test.c | 48 +++++++++++++++++++ 22 files changed, 205 insertions(+) rename 1b.txt => Assignment 1/1b.txt (100%) rename {excercise1 => Assignment 1/excercise1}/names.txt (100%) rename {excercise2 => Assignment 1/excercise2}/2a.txt (100%) rename {excercise2 => Assignment 1/excercise2}/Makefile (100%) rename {excercise2 => Assignment 1/excercise2}/gengenome.sh (100%) rename {excercise2 => Assignment 1/excercise2}/genome.sh (100%) rename {excercise2 => Assignment 1/excercise2}/parsegenome.c (100%) rename {excercise3 => Assignment 1/excercise3}/exercise3b.c (100%) rename {excercise3 => Assignment 1/excercise3}/exercise3d.c (100%) rename {excercise3 => Assignment 1/excercise3}/grep (100%) rename {excercise3 => Assignment 1/excercise3}/lines.txt (100%) rename exercise3c => Assignment 1/exercise3c (100%) rename genome.txt => Assignment 1/genome.txt (100%) create mode 100644 Assignment 2/exercise1.c create mode 100644 Assignment 2/exercise1.txt create mode 100644 Assignment 2/exercise2.c create mode 100644 Assignment 2/exercise3.c create mode 100644 Assignment 2/exercise3.h create mode 100644 Assignment 2/main.c create mode 100644 Assignment 2/memcmp.c create mode 100644 Assignment 2/memcmp.h create mode 100644 Assignment 2/memcmp_test.c diff --git a/1b.txt b/Assignment 1/1b.txt similarity index 100% rename from 1b.txt rename to Assignment 1/1b.txt diff --git a/excercise1/names.txt b/Assignment 1/excercise1/names.txt similarity index 100% rename from excercise1/names.txt rename to Assignment 1/excercise1/names.txt diff --git a/excercise2/2a.txt b/Assignment 1/excercise2/2a.txt similarity index 100% rename from excercise2/2a.txt rename to Assignment 1/excercise2/2a.txt diff --git a/excercise2/Makefile b/Assignment 1/excercise2/Makefile similarity index 100% rename from excercise2/Makefile rename to Assignment 1/excercise2/Makefile diff --git a/excercise2/gengenome.sh b/Assignment 1/excercise2/gengenome.sh similarity index 100% rename from excercise2/gengenome.sh rename to Assignment 1/excercise2/gengenome.sh diff --git a/excercise2/genome.sh b/Assignment 1/excercise2/genome.sh similarity index 100% rename from excercise2/genome.sh rename to Assignment 1/excercise2/genome.sh diff --git a/excercise2/parsegenome.c b/Assignment 1/excercise2/parsegenome.c similarity index 100% rename from excercise2/parsegenome.c rename to Assignment 1/excercise2/parsegenome.c diff --git a/excercise3/exercise3b.c b/Assignment 1/excercise3/exercise3b.c similarity index 100% rename from excercise3/exercise3b.c rename to Assignment 1/excercise3/exercise3b.c diff --git a/excercise3/exercise3d.c b/Assignment 1/excercise3/exercise3d.c similarity index 100% rename from excercise3/exercise3d.c rename to Assignment 1/excercise3/exercise3d.c diff --git a/excercise3/grep b/Assignment 1/excercise3/grep similarity index 100% rename from excercise3/grep rename to Assignment 1/excercise3/grep diff --git a/excercise3/lines.txt b/Assignment 1/excercise3/lines.txt similarity index 100% rename from excercise3/lines.txt rename to Assignment 1/excercise3/lines.txt diff --git a/exercise3c b/Assignment 1/exercise3c similarity index 100% rename from exercise3c rename to Assignment 1/exercise3c diff --git a/genome.txt b/Assignment 1/genome.txt similarity index 100% rename from genome.txt rename to Assignment 1/genome.txt diff --git a/Assignment 2/exercise1.c b/Assignment 2/exercise1.c new file mode 100644 index 0000000..23bba69 --- /dev/null +++ b/Assignment 2/exercise1.c @@ -0,0 +1,33 @@ +#include + +void print_memory_layout (char *data, int size ); + +int main (void) +{ + short i = 0x1234; + char x = -127; + long sn1 = 1489156464; + long sn2 = 1541654916; + int y[2] = {0x11223344,0x44332211}; + + printf("Size in bytes of i: %d\n", sizeof (i)); + printf("Size in bytes of x: %d\n", sizeof(x)); + printf("Size in bytes of sn1: %d\n", sizeof(sn1)); + printf("Size in bytes of sn2: %d\n", sizeof(sn2)); + printf("Size in bytes of y: %d\n", sizeof(y)); + + // Print memory layout + printf( "Address\t\tContent (hex)\tContent(dec)\n"); + print_memory_layout((char *)&i , sizeof(i)); + print_memory_layout((char *)&x , sizeof(x)); + print_memory_layout((char *)&sn1, sizeof(sn1)); + print_memory_layout((char *)&sn2, sizeof(sn2)); + print_memory_layout((char *)&sn1, sizeof(y)); + +} + +void print_memory_layout (char *data , int size){ + for( int i = 0 ; i < size ; i++ ){ + printf("0x%08x\t0x%08x\t\%d\n", &data[i], data[i],data[i]); + } +} diff --git a/Assignment 2/exercise1.txt b/Assignment 2/exercise1.txt new file mode 100644 index 0000000..ec15873 --- /dev/null +++ b/Assignment 2/exercise1.txt @@ -0,0 +1,33 @@ +Size in bytes of i: 2 +Size in bytes of x: 1 +Size in bytes of sn1: 8 +Size in bytes of sn2: 8 +Size in bytes of y: 8 +Address Content (hex) Content(dec) +0x69caf3ae 0x00000034 52 +0x69caf3af 0x00000012 18 +0x69caf3ad 0xffffff81 -127 +0x69caf3b0 0x00000070 112 +0x69caf3b1 0xffffffb9 -71 +0x69caf3b2 0xffffffc2 -62 +0x69caf3b3 0x00000058 88 +0x69caf3b4 0x00000000 0 +0x69caf3b5 0x00000000 0 +0x69caf3b6 0x00000000 0 +0x69caf3b7 0x00000000 0 +0x69caf3b8 0xffffff84 -124 +0x69caf3b9 0xffffffc9 -55 +0x69caf3ba 0xffffffe3 -29 +0x69caf3bb 0x0000005b 91 +0x69caf3bc 0x00000000 0 +0x69caf3bd 0x00000000 0 +0x69caf3be 0x00000000 0 +0x69caf3bf 0x00000000 0 +0x69caf3b0 0x00000070 112 +0x69caf3b1 0xffffffb9 -71 +0x69caf3b2 0xffffffc2 -62 +0x69caf3b3 0x00000058 88 +0x69caf3b4 0x00000000 0 +0x69caf3b5 0x00000000 0 +0x69caf3b6 0x00000000 0 +0x69caf3b7 0x00000000 0 diff --git a/Assignment 2/exercise2.c b/Assignment 2/exercise2.c new file mode 100644 index 0000000..41514ca --- /dev/null +++ b/Assignment 2/exercise2.c @@ -0,0 +1,37 @@ +#include +#include + +int main (int argc , char **args){ + // How many bytes does the bool type use? + bool test = true; + printf("Size of bool in bytes: %d\n", sizeof(test)); + + // Hex of a boolean when its value is set to true + printf("Value of bool (State: True): 0x%08x\n", test); + + // Hex of a boolean when its value is set to false + test = false ; + printf("Value of bool (state: False): 0x%08x\n", test); + + test = 255; + if(test){ + printf("Bool with a value of 255 is interpreted as true\n"); + } + else{ + printf("Bool with a value of 255 is interpreted as false\n"); + } + test = -125; + if(test){ + printf("Bool with a value of -125 is interpreted as true\n"); + } + else{ + printf("Bool with a value of -125 is interpreted as false\n"); + } + test = 0; + if(test){ + printf("Bool with a value of 0 is interpreted as true\n"); + } + else{ + printf("Bool with a value of 0 is interpreted as false\n"); + } +} diff --git a/Assignment 2/exercise3.c b/Assignment 2/exercise3.c new file mode 100644 index 0000000..30850b7 --- /dev/null +++ b/Assignment 2/exercise3.c @@ -0,0 +1,11 @@ +void addvector(int *r, const int *a, const int *b, unsigned int len) +{ + unsigned int i; + for(i=0;i +#include "exercise3.h" + +int main(void) +{ + int a[10], b[10], r[10]; + unsigned int i; + + for(i=0;i<10;i++) + { + a[i] = b[i] = i; + } + + addvector(r, a, b, 10); + + for(i=0;i<10;i++) + { + printf("%d %d %d\n", a[i], b[i], r[i]); + } + + return 0; +} diff --git a/Assignment 2/memcmp.c b/Assignment 2/memcmp.c new file mode 100644 index 0000000..e0d1da1 --- /dev/null +++ b/Assignment 2/memcmp.c @@ -0,0 +1,17 @@ +#include + +// implementation of memcmp + +int memcmp ( void *a, void *b, size_t n){ + unsigned int i; + for ( i = 0; i < n ; i++) { + char *a1 = a + i; + char *b1 = b + i; + + char return_value = *a1 - *b1; + if( return_value != 0) + return (int)return_value; + } + + return 0; +} diff --git a/Assignment 2/memcmp.h b/Assignment 2/memcmp.h new file mode 100644 index 0000000..63ca054 --- /dev/null +++ b/Assignment 2/memcmp.h @@ -0,0 +1,2 @@ +int memcmp ( void *a, void *b, size_t n); + diff --git a/Assignment 2/memcmp_test.c b/Assignment 2/memcmp_test.c new file mode 100644 index 0000000..60a97ed --- /dev/null +++ b/Assignment 2/memcmp_test.c @@ -0,0 +1,48 @@ +#include +#include +#include + +void print_array(int *array, size_t size); + +int main ( int argc , char **argv ) +{ + + // Test cases + int *test1 = malloc(3 * sizeof(int)); + int *test1_2 = malloc(3 * sizeof(int)); + + *(test1) = *(test1_2) = 1; + *(test1 + 1) = *(test1_2 + 1) = 2; + *(test1 + 2) = *(test1_2 + 2) = 3; + + int result; + + + result = memcmp(test1, test1_2, 0 ); + + printf ("Result should: 0 got %d\n", result); + + result = memcmp(test1, test1_2, 3); + + printf("Result should: 0 got %d\n", result); + + *(test1 + 2) = 5; + printf("Array 1:"); + print_array(test1, 3); + printf("Array 2:"); + print_array(test1_2, 3); + + + result = memcmp(test1, test1_2, 3); + + printf("Result should: 0 got %d\n", result); + + free (test1); + free(test1_2); +} + +void print_array(int *array, size_t size){ + for( int i =0; i < size; i++){ + printf( "%d\n", *(array+i)); + } +}