From 234c9e35b66c5ef32083197d4642576fbdcf4882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dami=C3=A1n=20Korpesio?= Date: Tue, 28 Dec 2021 16:21:01 +0100 Subject: [PATCH] prvy --- OS/server | Bin 0 -> 17368 bytes OS/server.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ a2/program | Bin 0 -> 17104 bytes a4/program | Bin 0 -> 17344 bytes a4/program.c | 38 ++++++++++++++++-------------- cv8/program | Bin 0 -> 17320 bytes sk1a/Makefile | 14 +++++++++++ sk1a/main.c | 39 +++++++++++++++++++++++++++++++ sk1a/main.o | Bin 0 -> 7496 bytes sk1a/maze.c | 8 +++++++ sk1a/maze.h | 22 ++++++++++++++++++ sk1a/maze.o | Bin 0 -> 5736 bytes sk1a/program | Bin 0 -> 21336 bytes 13 files changed, 167 insertions(+), 17 deletions(-) create mode 100644 OS/server create mode 100644 OS/server.c create mode 100644 a2/program create mode 100644 a4/program create mode 100644 cv8/program create mode 100644 sk1a/Makefile create mode 100644 sk1a/main.c create mode 100644 sk1a/main.o create mode 100644 sk1a/maze.c create mode 100644 sk1a/maze.h create mode 100644 sk1a/maze.o create mode 100644 sk1a/program diff --git a/OS/server b/OS/server new file mode 100644 index 0000000000000000000000000000000000000000..2d7a7c10c2acaab2448e004de34191015ecb9738 GIT binary patch literal 17368 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 SeqsBM=wLg-e4l}j75@U1;t +#include +#include +#include +#include +#include + +#define LINESIZE 128 + +void error(char *msg){ + perror(msg); + exit(1); +} + +int main (int argc, char *argv[]){ + int sockfd; + int newsockfd; + int portno; + int clilen; + int n; + char buffer[LINESIZE]; + struct sockaddr_in serv_addr; + struct sockaddr_in cli_addr; + if (argc < 2){ + fprintf(stderr, "ERROR, no port provided\n"); + exit(1); + } + + sockfd = socket(PF_INET, SOCK_STREAM, 0); + if (sockfd < 0){ + error("ERROR opening socket"); + } + + bzero((char *)&serv_addr, sizeof(serv_addr)); + portno = atoi(argv[1]); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = INADDR_ANY; + serv_addr.sin_port = htons(portno); + printf("Server is waiting for the message, please wait...\n"); + + if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof (serv_addr)) < 0){ + error("ERROR on binding"); + } + + listen(sockfd, 5); + clilen = sizeof(cli_addr); + + newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen); + if (newsockfd < 0){ + error("ERROR on accept"); + } + bzero(buffer, LINESIZE); + n = read(newsockfd, buffer, LINESIZE); + if (n < 0){ + error("ERROR reading from socket"); + } + printf("The message is: %s", buffer); + fprintf(stderr, "The mesaage contains %d bytes.\n", n); + + close(sockfd); + + return 0; +} \ No newline at end of file diff --git a/a2/program b/a2/program new file mode 100644 index 0000000000000000000000000000000000000000..dcebd64aa8acd8cdd2f076a1e13931b2b371bf17 GIT binary patch literal 17104 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 #define LINESIZE 100 struct heap { - int* array; int size; + int* line; int capacity; }; @@ -21,7 +21,7 @@ int pravy_syn(int i){ struct heap* create_heap(int capacity){ struct heap* h = calloc(1,sizeof(struct heap)); - h->array = calloc(capacity,sizeof(int)); + h->line = calloc(capacity,sizeof(int)); h->capacity =capacity; h->size = 0; return h; @@ -37,7 +37,7 @@ void check_heap_property(struct heap* h){ break; } - if(h->array[i] > h->array[pravy] || h->array[i] > h->array[lavy]){ + if(h->line[i] > h->line[pravy] || h->line[i] > h->line[lavy]){ printf("%s\n","Niejekopa."); exit(0); } @@ -46,15 +46,15 @@ void check_heap_property(struct heap* h){ } void delete_heap(struct heap* h){ - free(h->array); + free(h->line); free(h); } -void swap(int arr[],int a, int b){ - int temp = arr[a]; - arr[a] = arr[b]; - arr[b] = temp; -} +//void vymen(int arr[],int a, int b){ +// int pom = arr[a]; +// arr[a] = arr[b]; +// arr[b] = pom; +//} void add(struct heap* h,int value){ @@ -64,7 +64,7 @@ void add(struct heap* h,int value){ } h->size += 1; - h->array[i] = value; + h->line[i] = value; } @@ -79,7 +79,7 @@ void print(struct heap* h,int count_spaces,int index){ for(int i =0;iarray[index]); + printf("%d\n",h->line[index]); print(h,count_spaces+1,lavy_syn(index)); print(h,count_spaces+1,pravy_syn(index)); @@ -91,24 +91,28 @@ void sort(struct heap *h){ int i = h->size-1; int p = parent(i); - while(h->array[i] < h->array[p]) { - swap(h->array,i, p); + while(h->line[i] < h->line[p]) { + int arr[] = h->line; + int pom = arr[i]; + arr[i] = arr[p]; + arr[p] = pom; + //vymen(h->line,i, p); i = parent(i); } } int main(){ - int i =0; - int temp_array[LINESIZE] = {0}; + int i = 0; + int temp_line[LINESIZE] = {0}; - while(scanf("%d",&temp_array[i]) == 1) { + while(scanf("%d",&temp_line[i])== 1) { i++; } struct heap* h = create_heap(i); for(int j =0;jA$jbV7worAT_EK5qhi~S7zjf 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 literal 0 HcmV?d00001 diff --git a/sk1a/Makefile b/sk1a/Makefile new file mode 100644 index 0000000..ae923d1 --- /dev/null +++ b/sk1a/Makefile @@ -0,0 +1,14 @@ +all: program + +maze.o: maze.c + gcc -c -g -Wall maze.c -o maze.o + +main.o: main.c + gcc -c -g -Wall main.c -o main.o + +program: maze.o main.o + gcc -g -Wall maze.o main.o -o program + +clean: + rm program + rm *.o diff --git a/sk1a/main.c b/sk1a/main.c new file mode 100644 index 0000000..091005a --- /dev/null +++ b/sk1a/main.c @@ -0,0 +1,39 @@ +#define SZ 5 +#include +#include +#include "maze.h" + +void print_solution(char* matrix,int sz){ + for (int i = 0; i < sz * sz; i++){ + printf("%c ",matrix[i]); + if (i % sz == (sz-1)){ + printf("\n"); + } + } +} + +int main(){ + char tmaze[SZ+1][SZ+1]={ + "*x ", + " x ", + " x ", + " x ", + " ", + }; + char maze[SZ*SZ]; + memset(maze,' ',SZ*SZ); + for (int i= 0; i < SZ; i++){ + for (int j= 0; j < SZ; j++){ + if (tmaze[i][j] == 'x'){ + maze[i*SZ+j] = 'x'; + } + } + } + int r = solve_maze(maze,SZ); + if (!r){ + printf("Nenasiel som riesenie\n"); + } + print_solution(maze,SZ); + + return 0; +} diff --git a/sk1a/main.o b/sk1a/main.o new file mode 100644 index 0000000000000000000000000000000000000000..330aa67504c606bc6d38de8caf5e55bc294461ec GIT binary patch literal 7496 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 literal 0 HcmV?d00001 diff --git a/sk1a/maze.c b/sk1a/maze.c new file mode 100644 index 0000000..5f09bc8 --- /dev/null +++ b/sk1a/maze.c @@ -0,0 +1,8 @@ +#include +#include +#include "maze.h" +#include + +int solve_maze(char* maze,int size){ + return 0; +} diff --git a/sk1a/maze.h b/sk1a/maze.h new file mode 100644 index 0000000..2e34662 --- /dev/null +++ b/sk1a/maze.h @@ -0,0 +1,22 @@ +#ifndef _MAZEH +#define _MAZEH + +/** + * Funkcia by mala zobrať vstupnú mriežku a + * vyznačiť na nej cestu z ľavého horného rohu do pravého dolného rohu. + * Mriežka je uložená do jednorozmerného poľa, pričom najprv ide prvý riadok, + * za ním druhý a tak ďalej. + * + * Na mriežke sa nachádzajú znaky: + * ' ' - voľné miesto + * 'x' - stena. Stena nesmie byť prepísaná. + * '*' - poloha potkana. Na začiatku je na 0,0. + * + * @param maze Štvorcová mriežka rozmeru size x size. + * @param size Rozmer mriežky + * @return 1 ak existuje riešenie, 0 inak. + */ +int solve_maze(char* maze,int size); + + +#endif diff --git a/sk1a/maze.o b/sk1a/maze.o new file mode 100644 index 0000000000000000000000000000000000000000..e73ecc2c73b7bd01d98639571b124a957b9f3a53 GIT binary patch literal 5736 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 literal 0 HcmV?d00001