From 33b028022263e23784269a7c7dc5853d05272203 Mon Sep 17 00:00:00 2001 From: sofasol <143883157+sofasol@users.noreply.github.com> Date: Fri, 6 Oct 2023 00:28:14 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=BB=D0=B0=D0=B1=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab6 | Bin 0 -> 36543 bytes lab6.jdt | Bin 0 -> 107 bytes photolab.png | Bin 0 -> 39471 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lab6 create mode 100644 lab6.jdt create mode 100644 photolab.png diff --git a/lab6 b/lab6 new file mode 100644 index 0000000000000000000000000000000000000000..69a3e9ef0dd1ca7bf09d5fb2cafa17378e3ac544 GIT binary patch literal 36543 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 ZrVYo5pKXYK_8sNKk2;kb2I#^0{{c7m=RW`d literal 0 HcmV?d00001 diff --git a/lab6.jdt b/lab6.jdt new file mode 100644 index 0000000000000000000000000000000000000000..d9d1817c21eb686b001d3ff8dfb13a250e86a105 GIT binary patch literal 107 zcmZQzfCFbBOBsk^G)RIGh&gf+lg#w8Qc8eqW(5O7kT?*4q(B%1plrs<|NsA20Qnkd H7_0^WoLC6M literal 0 HcmV?d00001 diff --git a/photolab.png b/photolab.png new file mode 100644 index 0000000000000000000000000000000000000000..b7282cd8befc48ed889d634adbebf0846ebb0b12 GIT binary patch literal 39471 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 XKlN9?^> Date: Mon, 23 Sep 2024 03:07:06 +0300 Subject: [PATCH 2/3] add lab25-26 --- lab1/lab1.txt | 1 + laba25-26/Makefile | 12 ++++++ laba25-26/main.c | 9 +++++ laba25-26/sort.c | 26 ++++++++++++ laba25-26/sort.h | 7 ++++ laba25-26/stack.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++ laba25-26/stack.h | 22 +++++++++++ laba25-26/test.c | 60 ++++++++++++++++++++++++++++ laba25-26/test.h | 8 ++++ 9 files changed, 244 insertions(+) create mode 100644 lab1/lab1.txt create mode 100644 laba25-26/Makefile create mode 100644 laba25-26/main.c create mode 100644 laba25-26/sort.c create mode 100644 laba25-26/sort.h create mode 100644 laba25-26/stack.c create mode 100644 laba25-26/stack.h create mode 100644 laba25-26/test.c create mode 100644 laba25-26/test.h diff --git a/lab1/lab1.txt b/lab1/lab1.txt new file mode 100644 index 00000000..d3f883d7 --- /dev/null +++ b/lab1/lab1.txt @@ -0,0 +1 @@ +listing kbkbkb diff --git a/laba25-26/Makefile b/laba25-26/Makefile new file mode 100644 index 00000000..4a97b24b --- /dev/null +++ b/laba25-26/Makefile @@ -0,0 +1,12 @@ +lab26: main.o stack.o test.o sort.o + gcc -o lab26 main.o stack.o test.o sort.o +main.o: main.c stack.h test.h sort.h + gcc -c main.c +test.o: test.c test.h stack.h sort.h + gcc -c test.c +sort.o: sort.c sort.h stack.h + gcc -c sort.c +stack.o: stack.c stack.h + gcc -c stack.c + + diff --git a/laba25-26/main.c b/laba25-26/main.c new file mode 100644 index 00000000..fad8bdbb --- /dev/null +++ b/laba25-26/main.c @@ -0,0 +1,9 @@ +#include +#include +#include "stack.h" +#include "test.h" +#include "sort.h" + +int main() { + test(); +} \ No newline at end of file diff --git a/laba25-26/sort.c b/laba25-26/sort.c new file mode 100644 index 00000000..ebd11d82 --- /dev/null +++ b/laba25-26/sort.c @@ -0,0 +1,26 @@ +#include +#include "stack.h" +#include "sort.h" + +void Sort(Stack** stack) { + if (Size(*stack) <= 1) { + return; + } + + Stack* sortedStack = InitStack(); + Stack* tempStack = InitStack(); + + while (!IsEmpty(*stack)) { + T maxItem = ExtractMax(*stack, tempStack); + Push(sortedStack, maxItem); + + + while (!IsEmpty(tempStack)) { + Push(*stack, Pop(tempStack)); + } + } + + DelStack(stack); + *stack = sortedStack; + DelStack(&tempStack); +} diff --git a/laba25-26/sort.h b/laba25-26/sort.h new file mode 100644 index 00000000..efe5091f --- /dev/null +++ b/laba25-26/sort.h @@ -0,0 +1,7 @@ +#ifndef __SORT__ +#define __SORT__ +#include "stack.h" + +void Sort(Stack** stack); + +#endif \ No newline at end of file diff --git a/laba25-26/stack.c b/laba25-26/stack.c new file mode 100644 index 00000000..5516334a --- /dev/null +++ b/laba25-26/stack.c @@ -0,0 +1,99 @@ +#include +#include +#include "stack.h" + +#define LEN 10 + +Stack* InitStack() { + Stack* stack = (Stack*)malloc(sizeof(Stack)); + stack->array = (T*)malloc(sizeof(T) * LEN); + stack->maxLen = LEN; + stack->index = -1; + return stack; +} + +int IsEmpty(Stack* stack) { + if (stack == NULL) { + return 1; + } + if (stack->index == -1) { + return 1; + } else { + return 0; + } +} + +void Push(Stack* stack, T value) { + if (stack == NULL) { + return; + } + stack->index++; + if (stack->index >= stack->maxLen) { + stack->array = realloc(stack->array, sizeof(T) * stack->maxLen * 2); + stack->maxLen = stack->maxLen * 2; + } + (stack->array)[stack->index] = value; +} + + +int Size(Stack* stack) { + if (stack == NULL) { + return 0; + } + return stack->index + 1; +} + +void DelStack(Stack** stack) { + if (*stack == NULL) { + return; + } + free((*stack)->array); + free(*stack); + *stack = NULL; +} + + +void PrintStack(Stack* stack) { + if (stack == NULL) { + return; + } + printf("start\n"); + if (stack->index == -1) { + printf("empty\n"); + } else { + for(int i = stack->index; i != -1; i--) { + printf("%d\n", (stack->array)[i]); + } + } + printf("end\n"); +} + +T Pop(Stack* stack) { + if (IsEmpty(stack)) { + printf("Error"); + return 0; + } + stack->index--; + return (stack->array)[stack->index + 1]; +} + +T ExtractMax(Stack* sourceStack, Stack* tempStack) { + if (IsEmpty(sourceStack)) { + printf("Error"); + return 0; + } + + T maxItem = Pop(sourceStack); + + while (!IsEmpty(sourceStack)) { + T item = Pop(sourceStack); + if (item > maxItem) { + Push(tempStack, maxItem); + maxItem = item; + } else { + Push(tempStack, item); + } + } + + return maxItem; +} diff --git a/laba25-26/stack.h b/laba25-26/stack.h new file mode 100644 index 00000000..b291df3d --- /dev/null +++ b/laba25-26/stack.h @@ -0,0 +1,22 @@ +#ifndef __STACK__ +#define __STACK__ + +typedef int T; + +typedef struct Stack { + T* array; + int index; + int maxLen; +} Stack; + +Stack* InitStack(); +int IsEmpty(Stack* stack); +void Push(Stack* stack, T value); +T Pop(Stack* stack); +int Size(Stack* stack); +void DelStack(Stack** stack); +void PrintStack(Stack* stack); +T ExtractMax(Stack* sourceStack, Stack* tempStack); + + +#endif \ No newline at end of file diff --git a/laba25-26/test.c b/laba25-26/test.c new file mode 100644 index 00000000..73c65c2f --- /dev/null +++ b/laba25-26/test.c @@ -0,0 +1,60 @@ +#include +#include +#include "stack.h" +#include "sort.h" +#include "test.h" + +void test () { + char command = ' '; + int ind; + int arg; + Stack* stacks[5] = {NULL, NULL, NULL, NULL, NULL}; + printf("i - init\n"); + printf("u - push\n"); + printf("o - pop\n"); + printf("s - stop\n"); + printf("d - del stack\n"); + printf("l - line sort\n"); + while (command != 's') { + scanf("%c", &command); + switch (command) { + case 'i': { + scanf("%d", &ind); + stacks[ind] = InitStack(); + break; + } + case 'u': { + scanf("%d %d", &ind, &arg); + Push(stacks[ind], arg); + PrintStack(stacks[ind]); + break; + } + case 'o': { + scanf("%d", &ind); + printf("pop %d\n", Pop(stacks[ind])); + PrintStack(stacks[ind]); + break; + } + case 's': { + for (int i = 0; i < 5; i++) { + if (stacks[i] != NULL) DelStack(&(stacks[i])); + } + break; + } + + case 'd': { + scanf("%d", &ind); + DelStack(&(stacks[ind])); + break; + } + + case 'l': { + scanf("%d", &ind); + Sort(&(stacks[ind])); + PrintStack(stacks[ind]); + break; + } + } + } + return; +} \ No newline at end of file diff --git a/laba25-26/test.h b/laba25-26/test.h new file mode 100644 index 00000000..dba6a9da --- /dev/null +++ b/laba25-26/test.h @@ -0,0 +1,8 @@ +#ifndef __TEST__ +#define __TEST__ +#include "stack.h" +#include "sort.h" + +void test(); + +#endif \ No newline at end of file From 43902d1b74a1bcbde6af27e5f9988feb2da9e669 Mon Sep 17 00:00:00 2001 From: sofa Date: Mon, 23 Sep 2024 16:27:58 +0300 Subject: [PATCH 3/3] add kp6 --- kp6/convert_to_binary.c | 40 ++++++++++++++++++++++ kp6/main.c | 74 +++++++++++++++++++++++++++++++++++++++++ kp6/schedule.h | 14 ++++++++ 3 files changed, 128 insertions(+) create mode 100644 kp6/convert_to_binary.c create mode 100644 kp6/main.c create mode 100644 kp6/schedule.h diff --git a/kp6/convert_to_binary.c b/kp6/convert_to_binary.c new file mode 100644 index 00000000..b1ced455 --- /dev/null +++ b/kp6/convert_to_binary.c @@ -0,0 +1,40 @@ +#include +#include "schedule.h" +// gcc convert_to_binary.c +// ./a.exe output.bin data.txt +int main(int argc, char *argv[]) { + schedule t; + FILE *file_out = NULL; + FILE *file_in = NULL; + + if (argc != 3) { + printf("Usage: %s output.bin data.txt\n", argv[0]); + return 1; + } + + file_out = fopen(argv[1], "wb"); + if (file_out == NULL) { + printf("Error with %s\n", argv[1]); + return 1; + } + file_in = fopen(argv[2], "r"); + if (file_in == NULL) { + printf("Error with %s\n", argv[2]); + return 1; + } + + while (!feof(file_in)) { + fscanf(file_in, "%d %s %d %s %d %d", + &t.group_number, + t.day, + &t.lesson_number, + t.subject, + &t.room_number, + &t.week + ); + fwrite(&t, sizeof(t), 1, file_out); + } + fclose(file_out); + fclose(file_in); + return 0; +} \ No newline at end of file diff --git a/kp6/main.c b/kp6/main.c new file mode 100644 index 00000000..3eb010f3 --- /dev/null +++ b/kp6/main.c @@ -0,0 +1,74 @@ +#include +#include +#include +#include "schedule.h" + +// gcc main.c +// ./a.exe output.bin -f +// ./a.exe output.bin -p 100 +int main(int argc, char *argv[]) +{ + schedule t; + FILE *file = NULL; + + if (argc < 3) + { + printf("Usage: %s \nFlags:\n-f - show all schedule\n-p - show schedule in the particular classroom\n", argv[0]); + return 1; + } + + file = fopen(argv[1], "rb"); + + if (file == NULL) + { + printf("Error with %s\n", argv[1]); + + return 1; + } + + if (!strcmp(argv[2], "-f")) + { + printf(" ____________________________________________________________________________________________________________________\n"); + printf("| Группа | день недели | номер пары | предмет | номер аудитории | неделя (чет/нечет) |\n"); + printf("`--------------`-------------------`------------------`-----------------`-----------------------`--------------------`\n"); + + while (fread(&t, sizeof(t), 1, file) == 1) + { + printf("|%14d|%19s|%18d|%17s|%23d|%20d|\n", + t.group_number, + t.day, + t.lesson_number, + t.subject, + t.room_number, + t.week + ); + + printf("`--------------`-------------------`------------------`-----------------`-----------------------`--------------------`\n"); + } + } else if (!strcmp(argv[2], "-p")) { + int requiredRoomNumber = atoi(argv[3]); + printf(" ____________________________________________________________________________________________________________________\n"); + printf("| Группа | день недели | номер пары | предмет | номер аудитории | неделя (чет/нечет) |\n"); + printf("`--------------`-------------------`------------------`-----------------`-----------------------`--------------------`\n"); + + while (fread(&t, sizeof(t), 1, file) == 1) { + if (t.room_number == requiredRoomNumber ) { + printf("|%14d|%19s|%18d|%17s|%23d|%20d|\n", + t.group_number, + t.day, + t.lesson_number, + t.subject, + t.room_number, + t.week + ); + printf("`--------------`-------------------`------------------`-----------------`-----------------------`--------------------`\n"); + } + } + } else { + printf("Usage: %s \nFlags:\n-f - show all data base\n-p - show teams with proven research-doc\n", argv[0]); + return 0; + } + fclose(file); + + return 0; +} \ No newline at end of file diff --git a/kp6/schedule.h b/kp6/schedule.h new file mode 100644 index 00000000..4c18d995 --- /dev/null +++ b/kp6/schedule.h @@ -0,0 +1,14 @@ +#ifndef __SCHEDULE__ +#define __SCHEDULE__ +#include + + +typedef struct schedule { + char day[30]; + char subject[30]; + int group_number; + int lesson_number; + int room_number; + int week; +} schedule; +#endif \ No newline at end of file