diff --git a/ex1/Makefile b/ex1/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..a2fbb7abb48df37bed5388965ffbe0507da261b4 --- /dev/null +++ b/ex1/Makefile @@ -0,0 +1,10 @@ +L1: + gcc -c l1.c -o libmylib1.a + gcc T3.c -o t3_case1.o -L. -lmylib1 +L2: + gcc -c l2.c -o libmylib2.a + gcc T3.c -o t3_case2.o -L. -lmylib2 +L3: + gcc -o t3_case3.o T3.c l1.c +clean: + rm *.o \ No newline at end of file diff --git a/ex1/T1.c b/ex1/T1.c new file mode 100644 index 0000000000000000000000000000000000000000..71b497e4fa4de469151566d717cf36071b16d7f4 --- /dev/null +++ b/ex1/T1.c @@ -0,0 +1,43 @@ +#include<stdlib.h> +#include<stdio.h> + +int get_frequency(int *, int, int); +void display_results(int param1); + +int main(int argc, char *argv[]){ + int total_size=1000; + int search_size=1000; + int target=5; + // allocation + int * input_data = (int *) malloc(total_size * sizeof(int)); + + // initialization + for(int i=0;i<total_size;i++) + input_data[i]=1; + + // usage 1 + printf("Search for target %d\n",5); + int res=get_frequency(input_data, 10, 5); + display_results(res); // could not find target + + // usage 2 + printf("Search for target %d\n",1); + res=get_frequency(input_data, 1000, 1); + display_results(res); // target has been found 1000 + free(input_data); + + return 0; +} + +int get_frequency(int * in, int size, int target){ + // TODO implement get_get_frequency here +} +void display_results(int param1){ + switch(param1){ + case -1: + printf("could not find target\n"); + break; + default: + printf("target has been found %d\n", param1); + } +} diff --git a/ex1/T2.c b/ex1/T2.c new file mode 100644 index 0000000000000000000000000000000000000000..544697c8a82a92cf632f5c2d2f2d9e08a60f9b98 --- /dev/null +++ b/ex1/T2.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <errno.h> + +int main(int argc, char * argv[]){ + + if(argc<3){ + printf("Usage ./T2.o folder_path link_name\n"); + } + +//TODO -- implement your code here; + + return 0; +} diff --git a/ex1/T2.sh b/ex1/T2.sh new file mode 100644 index 0000000000000000000000000000000000000000..ba1d888c7f9a4c36b0c3709586ea96fea6a080c3 --- /dev/null +++ b/ex1/T2.sh @@ -0,0 +1,13 @@ +#!/bin/bash/ +#the following command returns the number of arguments +#hint $? will be 0 if there are no errors after any bash command + +args=$# +if [ $args -lt 2 ] +then + echo Usage sh T2.sh folder_path link. + exit +fi +folder_path=$1 +link=$2 +#your implementation goes here diff --git a/ex1/T3.c b/ex1/T3.c new file mode 100644 index 0000000000000000000000000000000000000000..481ca4c500e2b370bd0ab883f5d8d2f36a85b204 --- /dev/null +++ b/ex1/T3.c @@ -0,0 +1,18 @@ +#include "sort.h" +#include <stdio.h> +int main () +{ + int size=5; + int input [] ={5, 9, 1, 2, 3}; + printf("input array:"); + for(int i=0;i<size;i++){ + printf(" %d",input[i]); + } + printf("\nafter sort"); + sort(input, size); + printf("\ninput array after sort:"); + for(int i=0;i<size;i++){ + printf(" %d",input[i]); + } + printf("\n"); +} diff --git a/ex1/l1.c b/ex1/l1.c new file mode 100644 index 0000000000000000000000000000000000000000..e84f75201345232785e2b979d6d0ad28aef2101e --- /dev/null +++ b/ex1/l1.c @@ -0,0 +1,17 @@ +void swap(int *xp, int *yp) +{ + int temp = *xp; + *xp = *yp; + *yp = temp; +} + +void sort(int arr[], int size) +{ + int i, j; + for (i = 0; i < size-1; i++) + + // Last i elements are already in place + for (j = 0; j < size-i-1; j++) + if (arr[j] > arr[j+1]) + swap(&arr[j], &arr[j+1]); +} diff --git a/ex1/l2.c b/ex1/l2.c new file mode 100644 index 0000000000000000000000000000000000000000..a1f8abd8e4d388e74922640d60780fb0d0c93c47 --- /dev/null +++ b/ex1/l2.c @@ -0,0 +1,17 @@ +void swap(int *xp, int *yp) +{ + int temp = *xp; + *xp = *yp; + *yp = temp; +} + +void sort(int arr[], int size) +{ + int i, j; + for (i = 0; i < size-1; i++) + + // Last i elements are already in place + for (j = 0; j < size-i-1; j++) + if (arr[j] < arr[j+1]) + swap(&arr[j], &arr[j+1]); +} diff --git a/ex1/libmylib1.a b/ex1/libmylib1.a new file mode 100644 index 0000000000000000000000000000000000000000..796f089e64151efdb0be24117db7a48fc2c362a8 Binary files /dev/null and b/ex1/libmylib1.a differ diff --git a/ex1/os-exercise-1.pdf b/ex1/os-exercise-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6340dade87a8f8395ad515dd50e6e089789e665b Binary files /dev/null and b/ex1/os-exercise-1.pdf differ diff --git a/ex1/sort.h b/ex1/sort.h new file mode 100644 index 0000000000000000000000000000000000000000..bcb5f1489ff5a5ae29661379dd5ad530da70064b --- /dev/null +++ b/ex1/sort.h @@ -0,0 +1,5 @@ +#ifndef SORT +#define SORT +void sort(int input[], int size); +#endif +