prvy
This commit is contained in:
parent
b884843e8e
commit
234c9e35b6
63
OS/server.c
Normal file
63
OS/server.c
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#include <netinet/in.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
BIN
a2/program
Normal file
BIN
a2/program
Normal file
Binary file not shown.
BIN
a4/program
Normal file
BIN
a4/program
Normal file
Binary file not shown.
36
a4/program.c
36
a4/program.c
@ -2,8 +2,8 @@
|
|||||||
#include<stdlib.h>
|
#include<stdlib.h>
|
||||||
#define LINESIZE 100
|
#define LINESIZE 100
|
||||||
struct heap {
|
struct heap {
|
||||||
int* array;
|
|
||||||
int size;
|
int size;
|
||||||
|
int* line;
|
||||||
int capacity;
|
int capacity;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ int pravy_syn(int i){
|
|||||||
|
|
||||||
struct heap* create_heap(int capacity){
|
struct heap* create_heap(int capacity){
|
||||||
struct heap* h = calloc(1,sizeof(struct heap));
|
struct heap* h = calloc(1,sizeof(struct heap));
|
||||||
h->array = calloc(capacity,sizeof(int));
|
h->line = calloc(capacity,sizeof(int));
|
||||||
h->capacity =capacity;
|
h->capacity =capacity;
|
||||||
h->size = 0;
|
h->size = 0;
|
||||||
return h;
|
return h;
|
||||||
@ -37,7 +37,7 @@ void check_heap_property(struct heap* h){
|
|||||||
break;
|
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.");
|
printf("%s\n","Niejekopa.");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@ -46,15 +46,15 @@ void check_heap_property(struct heap* h){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void delete_heap(struct heap* h){
|
void delete_heap(struct heap* h){
|
||||||
free(h->array);
|
free(h->line);
|
||||||
free(h);
|
free(h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(int arr[],int a, int b){
|
//void vymen(int arr[],int a, int b){
|
||||||
int temp = arr[a];
|
// int pom = arr[a];
|
||||||
arr[a] = arr[b];
|
// arr[a] = arr[b];
|
||||||
arr[b] = temp;
|
// arr[b] = pom;
|
||||||
}
|
//}
|
||||||
|
|
||||||
void add(struct heap* h,int value){
|
void add(struct heap* h,int value){
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ void add(struct heap* h,int value){
|
|||||||
}
|
}
|
||||||
|
|
||||||
h->size += 1;
|
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;i<count_spaces;i++){
|
for(int i =0;i<count_spaces;i++){
|
||||||
printf(" ");
|
printf(" ");
|
||||||
}
|
}
|
||||||
printf("%d\n",h->array[index]);
|
printf("%d\n",h->line[index]);
|
||||||
print(h,count_spaces+1,lavy_syn(index));
|
print(h,count_spaces+1,lavy_syn(index));
|
||||||
print(h,count_spaces+1,pravy_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 i = h->size-1;
|
||||||
int p = parent(i);
|
int p = parent(i);
|
||||||
|
|
||||||
while(h->array[i] < h->array[p]) {
|
while(h->line[i] < h->line[p]) {
|
||||||
swap(h->array,i, p);
|
int arr[] = h->line;
|
||||||
|
int pom = arr[i];
|
||||||
|
arr[i] = arr[p];
|
||||||
|
arr[p] = pom;
|
||||||
|
//vymen(h->line,i, p);
|
||||||
i = parent(i);
|
i = parent(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int temp_array[LINESIZE] = {0};
|
int temp_line[LINESIZE] = {0};
|
||||||
|
|
||||||
while(scanf("%d",&temp_array[i]) == 1) {
|
while(scanf("%d",&temp_line[i])== 1) {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct heap* h = create_heap(i);
|
struct heap* h = create_heap(i);
|
||||||
|
|
||||||
for(int j =0;j<i;j++){
|
for(int j =0;j<i;j++){
|
||||||
add(h,temp_array[j]);
|
add(h,temp_line[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
check_heap_property(h);
|
check_heap_property(h);
|
||||||
|
BIN
cv8/program
Normal file
BIN
cv8/program
Normal file
Binary file not shown.
14
sk1a/Makefile
Normal file
14
sk1a/Makefile
Normal file
@ -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
|
39
sk1a/main.c
Normal file
39
sk1a/main.c
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#define SZ 5
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#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;
|
||||||
|
}
|
BIN
sk1a/main.o
Normal file
BIN
sk1a/main.o
Normal file
Binary file not shown.
8
sk1a/maze.c
Normal file
8
sk1a/maze.c
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "maze.h"
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
int solve_maze(char* maze,int size){
|
||||||
|
return 0;
|
||||||
|
}
|
22
sk1a/maze.h
Normal file
22
sk1a/maze.h
Normal file
@ -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
|
BIN
sk1a/maze.o
Normal file
BIN
sk1a/maze.o
Normal file
Binary file not shown.
BIN
sk1a/program
Normal file
BIN
sk1a/program
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user