From 1f90b711575c8622ac9524f1e324c8746f85d747 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 21 Sep 2025 13:41:25 +0300 Subject: [PATCH 01/17] Added hw for 3rd lesson about compilation --- src/Compilation_process/bracket_balance.c | 56 +++++++++++++++++++ .../one_string_in_another.c | 30 ++++++++++ src/Compilation_process/zeros_in_massive.c | 17 ++++++ 3 files changed, 103 insertions(+) create mode 100644 src/Compilation_process/bracket_balance.c create mode 100644 src/Compilation_process/one_string_in_another.c create mode 100644 src/Compilation_process/zeros_in_massive.c diff --git a/src/Compilation_process/bracket_balance.c b/src/Compilation_process/bracket_balance.c new file mode 100644 index 0000000..07e5f83 --- /dev/null +++ b/src/Compilation_process/bracket_balance.c @@ -0,0 +1,56 @@ +#include +#include +#include + +int main() +{ + int stek[100]; // сделаем большой стек состоящий из 100 нулей + char string[100]; // строка из 100 символов + scanf("%s", string); // ввели строку (огранчение 100 символов) + + int count = 0; // счетчик того, сколько позиций занято в стеке + char str1; // здесь будут символы из строки + char str2 = '('; + char str3 = ')'; + + int everything_ok = 1; // флаг, что все скобки пока идут правильно + + for (int i = 0; i < 100; i++) // перебор символов введенной строки + { + str1 = string[i]; + + if (str1 == str2) // Ищем окрывающие скобки + { + stek[count] = 2; // пусть 2 - это открывающая скобка + count += 1; + } + + else if (str1 == str3) // если скобка закрывающаяся + { + if (stek[count - 1] == 2) // то все ок + { + stek[count - 1] = 0; + count -= 1; + // этими действиями мы убрали закрытые скобки, будто их и не было + } else { + + everything_ok = 0; + break; + } + } + } + // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей + if (everything_ok == 1 && stek[0] == 2) { + printf("Скобочная последовательность неправильная\n"); + } + + else if (everything_ok == 1) { + printf("Скобочная последовательность правильная\n"); + } + + else { + printf("Скобочная последовательность неправильная\n"); + } + + return 0; +} diff --git a/src/Compilation_process/one_string_in_another.c b/src/Compilation_process/one_string_in_another.c new file mode 100644 index 0000000..73aa196 --- /dev/null +++ b/src/Compilation_process/one_string_in_another.c @@ -0,0 +1,30 @@ +#include +#include + +int main() +{ + char list_s[] = "hellohellhellolllhello"; + char list_s1[] = "hello"; + + size_t lenS = sizeof(list_s) / sizeof(char); + size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой + + int count = 0; // счетчик вхождений + for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s + { + int flag = 1; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла + for (int j = 0; j < lenS1; j++) { + if (list_s[i + j] != list_s1[j]) { + flag = 0; // опа, строчки отличаются + break; // собираем вещи и уходим + } + } + if (flag == 1) // все символы совпали + { + count += 1; + } + } + printf("%d\n", count); + + return 0; +} diff --git a/src/Compilation_process/zeros_in_massive.c b/src/Compilation_process/zeros_in_massive.c new file mode 100644 index 0000000..aecded7 --- /dev/null +++ b/src/Compilation_process/zeros_in_massive.c @@ -0,0 +1,17 @@ +#include + +int main() +{ + // пусть массив задан в программе + int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int count = 0; + size_t length = sizeof(list) / sizeof(int); + + for (int i = 0; i < length; i++) { + if (list[i] == 0) { + count += 1; + } + } + printf("%d", count); + return 0; +} From 733067a717afc7992054693802f49c2c8e395ed3 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Tue, 30 Sep 2025 22:15:48 +0300 Subject: [PATCH 02/17] Add three files from homework (brackets, zeros and strings) --- src/bracketBalance.c | 56 ++++++++++++++++++++++++++++++++++++++++ src/oneStringInAnother.c | 31 ++++++++++++++++++++++ src/zerosInMassive.c | 17 ++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 src/bracketBalance.c create mode 100644 src/oneStringInAnother.c create mode 100644 src/zerosInMassive.c diff --git a/src/bracketBalance.c b/src/bracketBalance.c new file mode 100644 index 0000000..7938856 --- /dev/null +++ b/src/bracketBalance.c @@ -0,0 +1,56 @@ +#include +#include +#include + +int main() +{ + int *stek = calloc(100, sizeof(int)); // сделаем большой стек состоящий из 100 нулей + char *string = calloc(100, sizeof(char)); // строка из 100 символов + scanf("%100[^\n]", string); // ввели строку (огранчение 100 символов) + + int count = 0; // счетчик того, сколько позиций занято в стеке + char str1 = ' '; // здесь будут символы из строки + char str2 = '('; + char str3 = ')'; + + bool isEverythingOk = true; // флаг, что все скобки пока идут правильно + + for (int i = 0; i < 100; i++) // перебор символов введенной строки + { + str1 = string[i]; + + if (str1 == str2) // Ищем окрывающие скобки + { + stek[count] = 2; // пусть 2 - это открывающая скобка + count += 1; + } + + else if (str1 == str3) // если скобка закрывающаяся + { + if (stek[count - 1] == 2) // то все ок + { + stek[count - 1] = 0; + count -= 1; + // этими действиями мы убрали закрытые скобки, будто их и не было + } else { + + isEverythingOk = false; + break; + } + } + } + // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей + if (isEverythingOk == true && stek[0] == 2) { + printf("Скобочная последовательность неправильная\n"); + } + + else if (isEverythingOk == true) { + printf("Скобочная последовательность правильная\n"); + } + + else { + printf("Скобочная последовательность неправильная\n"); + } + + return 0; +} diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c new file mode 100644 index 0000000..d1bac1f --- /dev/null +++ b/src/oneStringInAnother.c @@ -0,0 +1,31 @@ +#include +#include +#include + +int main() +{ + char list_s[] = "hellohellhellolllhello"; + char list_s1[] = "hello"; + + size_t lenS = sizeof(list_s) / sizeof(char); + size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой + + int count = 0; // счетчик вхождений + for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s + { + bool flag = true; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла + for (int j = 0; j < lenS1; j++) { + if (list_s[i + j] != list_s1[j]) { + flag = false; // опа, строчки отличаются + break; + } + } + if (flag == true) // все символы совпали + { + count += 1; + } + } + printf("%d\n", count); + + return 0; +} diff --git a/src/zerosInMassive.c b/src/zerosInMassive.c new file mode 100644 index 0000000..22dcc35 --- /dev/null +++ b/src/zerosInMassive.c @@ -0,0 +1,17 @@ +#include + +int main() +{ + // пусть массив задан в программе + int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int count = 0; + size_t length = sizeof(list) / sizeof(int); + + for (int i = 0; i < length; i++) { + if (list[i] == 0) { + count += 1; + } + } + printf("%d\n", count); + return 0; +} From 9729fb8458f0843f44814068d70d3309d767f6fc Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Tue, 30 Sep 2025 22:19:22 +0300 Subject: [PATCH 03/17] Delete dir with useless files in order not to be messed up --- src/Compilation_process/bracket_balance.c | 56 ------------------- .../one_string_in_another.c | 30 ---------- src/Compilation_process/zeros_in_massive.c | 17 ------ 3 files changed, 103 deletions(-) delete mode 100644 src/Compilation_process/bracket_balance.c delete mode 100644 src/Compilation_process/one_string_in_another.c delete mode 100644 src/Compilation_process/zeros_in_massive.c diff --git a/src/Compilation_process/bracket_balance.c b/src/Compilation_process/bracket_balance.c deleted file mode 100644 index 07e5f83..0000000 --- a/src/Compilation_process/bracket_balance.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include - -int main() -{ - int stek[100]; // сделаем большой стек состоящий из 100 нулей - char string[100]; // строка из 100 символов - scanf("%s", string); // ввели строку (огранчение 100 символов) - - int count = 0; // счетчик того, сколько позиций занято в стеке - char str1; // здесь будут символы из строки - char str2 = '('; - char str3 = ')'; - - int everything_ok = 1; // флаг, что все скобки пока идут правильно - - for (int i = 0; i < 100; i++) // перебор символов введенной строки - { - str1 = string[i]; - - if (str1 == str2) // Ищем окрывающие скобки - { - stek[count] = 2; // пусть 2 - это открывающая скобка - count += 1; - } - - else if (str1 == str3) // если скобка закрывающаяся - { - if (stek[count - 1] == 2) // то все ок - { - stek[count - 1] = 0; - count -= 1; - // этими действиями мы убрали закрытые скобки, будто их и не было - } else { - - everything_ok = 0; - break; - } - } - } - // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей - if (everything_ok == 1 && stek[0] == 2) { - printf("Скобочная последовательность неправильная\n"); - } - - else if (everything_ok == 1) { - printf("Скобочная последовательность правильная\n"); - } - - else { - printf("Скобочная последовательность неправильная\n"); - } - - return 0; -} diff --git a/src/Compilation_process/one_string_in_another.c b/src/Compilation_process/one_string_in_another.c deleted file mode 100644 index 73aa196..0000000 --- a/src/Compilation_process/one_string_in_another.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -int main() -{ - char list_s[] = "hellohellhellolllhello"; - char list_s1[] = "hello"; - - size_t lenS = sizeof(list_s) / sizeof(char); - size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой - - int count = 0; // счетчик вхождений - for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s - { - int flag = 1; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла - for (int j = 0; j < lenS1; j++) { - if (list_s[i + j] != list_s1[j]) { - flag = 0; // опа, строчки отличаются - break; // собираем вещи и уходим - } - } - if (flag == 1) // все символы совпали - { - count += 1; - } - } - printf("%d\n", count); - - return 0; -} diff --git a/src/Compilation_process/zeros_in_massive.c b/src/Compilation_process/zeros_in_massive.c deleted file mode 100644 index aecded7..0000000 --- a/src/Compilation_process/zeros_in_massive.c +++ /dev/null @@ -1,17 +0,0 @@ -#include - -int main() -{ - // пусть массив задан в программе - int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; - int count = 0; - size_t length = sizeof(list) / sizeof(int); - - for (int i = 0; i < length; i++) { - if (list[i] == 0) { - count += 1; - } - } - printf("%d", count); - return 0; -} From ee719f37647a3b2aebb8616d7c82bc6008a1db85 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 4 Oct 2025 17:28:31 +0300 Subject: [PATCH 04/17] Remove mistakes from files of hw --- src/bracketBalance.c | 22 +++++++++++----------- src/oneStringInAnother.c | 24 ++++++++++++------------ src/zerosInMassive.c | 16 +++++++++------- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 7938856..cc2325f 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -1,12 +1,12 @@ +#include #include #include -#include int main() { - int *stek = calloc(100, sizeof(int)); // сделаем большой стек состоящий из 100 нулей - char *string = calloc(100, sizeof(char)); // строка из 100 символов - scanf("%100[^\n]", string); // ввели строку (огранчение 100 символов) + int* stackForBrackets = calloc(100, sizeof(int)); // сделаем большой стек состоящий из 100 нулей + char* stringWithBrackets = calloc(100, sizeof(char)); // строка из 100 символов + scanf("%100[^\n]", stringWithBrackets); // ввели строку (огранчение 100 символов) int count = 0; // счетчик того, сколько позиций занято в стеке char str1 = ' '; // здесь будут символы из строки @@ -17,19 +17,19 @@ int main() for (int i = 0; i < 100; i++) // перебор символов введенной строки { - str1 = string[i]; + str1 = stringWithBrackets[i]; if (str1 == str2) // Ищем окрывающие скобки { - stek[count] = 2; // пусть 2 - это открывающая скобка - count += 1; + stackForBrackets[count] = 2; // пусть 2 - это открывающая скобка + ++count; } else if (str1 == str3) // если скобка закрывающаяся { - if (stek[count - 1] == 2) // то все ок + if (stackForBrackets[count - 1] == 2) // то все ок { - stek[count - 1] = 0; + stackForBrackets[count - 1] = 0; count -= 1; // этими действиями мы убрали закрытые скобки, будто их и не было } else { @@ -40,11 +40,11 @@ int main() } } // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей - if (isEverythingOk == true && stek[0] == 2) { + if (isEverythingOk && stackForBrackets[0] == 2) { printf("Скобочная последовательность неправильная\n"); } - else if (isEverythingOk == true) { + else if (isEverythingOk) { printf("Скобочная последовательность правильная\n"); } diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c index d1bac1f..9701ede 100644 --- a/src/oneStringInAnother.c +++ b/src/oneStringInAnother.c @@ -1,31 +1,31 @@ +#include #include #include -#include int main() { - char list_s[] = "hellohellhellolllhello"; - char list_s1[] = "hello"; + char listForBiggerString[] = "hellohellhellolllhello"; + char listForSmallerString[] = "hello"; - size_t lenS = sizeof(list_s) / sizeof(char); - size_t lenS1 = sizeof(list_s1) / sizeof(char) - 1; // так как последний символ нулевой + size_t lenForBiggerString = sizeof(listForBiggerString) / sizeof(char); + size_t lenForSmallerString = sizeof(listForSmallerString) / sizeof(char) - 1; // так как последний символ нулевой - int count = 0; // счетчик вхождений - for (int i = 0; i < lenS; i++) // i - индекс того эл-та с которого будем рассматривать строку s + int countingOfEntry = 0; // счетчик вхождений + for (int i = 0; i < lenForBiggerString; i++) // i - индекс того эл-та с которого будем рассматривать большую строку { bool flag = true; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла - for (int j = 0; j < lenS1; j++) { - if (list_s[i + j] != list_s1[j]) { + for (int j = 0; j < lenForSmallerString; j++) { + if (listForBiggerString[i + j] != listForSmallerString[j]) { flag = false; // опа, строчки отличаются break; } } - if (flag == true) // все символы совпали + if (flag) // все символы совпали { - count += 1; + ++countingOfEntry; } } - printf("%d\n", count); + printf("%d\n", countingOfEntry); return 0; } diff --git a/src/zerosInMassive.c b/src/zerosInMassive.c index 22dcc35..572b191 100644 --- a/src/zerosInMassive.c +++ b/src/zerosInMassive.c @@ -3,15 +3,17 @@ int main() { // пусть массив задан в программе - int list[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; - int count = 0; - size_t length = sizeof(list) / sizeof(int); + int listWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int countOfZeros = 0; + size_t lengthOfMassive = sizeof(listWithNumbers) / sizeof(int); - for (int i = 0; i < length; i++) { - if (list[i] == 0) { - count += 1; + for (int i = 0; i < lengthOfMassive; i++) { + if (listWithNumbers[i] == 0) { + ++countOfZeros; } } - printf("%d\n", count); + printf("%d\n", countOfZeros); return 0; } + +// выводит 5 - кол-во нулей From 0b92d9b55fce59df7e065d56d39f0809ec18e8c2 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 4 Oct 2025 17:39:10 +0300 Subject: [PATCH 05/17] Rename and remove files --- src/divisionWithoutDivision.c | 41 +++++++++++++++++++++++++ src/division_without_devision.c | 39 ----------------------- src/file_to_be.c | 0 src/{happy_tickets.c => happyTickets.c} | 9 +++--- 4 files changed, 46 insertions(+), 43 deletions(-) create mode 100644 src/divisionWithoutDivision.c delete mode 100644 src/division_without_devision.c delete mode 100644 src/file_to_be.c rename src/{happy_tickets.c => happyTickets.c} (93%) diff --git a/src/divisionWithoutDivision.c b/src/divisionWithoutDivision.c new file mode 100644 index 0000000..879c8ae --- /dev/null +++ b/src/divisionWithoutDivision.c @@ -0,0 +1,41 @@ +#include +#include +#include + +int main() +{ + int a = 0; + int b = 0; + int howManyTimesBInA = 0; + scanf("%d %d", &a, &b); + + int underZero = false; // флаг, чтобы понять какие значения введены + // 0 - положит + if ((a * b) < 0) { + underZero = true; // впоследствии учтем, что ответ должен быть < 0 + } + + a = abs(a); + b = abs(b); + int rememberA = abs(a); + + if (b == 0) { + printf("devision by zero\n"); + return 1; + } + + while (a - b > 0) { + a = a - b; + howManyTimesBInA += 1; + } + if (b * howManyTimesBInA + a == rememberA) { + if (underZero == true) { + printf("%d\n", howManyTimesBInA * (-1) - 1); + } else { + printf("%d\n", howManyTimesBInA); + } + } + + return 0; +} + diff --git a/src/division_without_devision.c b/src/division_without_devision.c deleted file mode 100644 index 61babcb..0000000 --- a/src/division_without_devision.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -int main() { - int a; - int b; - int r = 0; // сколько раз вмещается b в a - scanf("%d %d", &a, &b); - int remember_a = a; - int under_zero = 0; // флаг, чтобы понять какие значения введены - // 0 - положит - if ((a < 0 | b < 0) && !(a < 0 && b < 0)) { - under_zero = 1; // впоследствии учтем, что ответ должен быть < 0 - } - - a = abs(a); - b = abs(b); - remember_a = abs(remember_a); - - if (b == 0) { - printf("devision by zero\n"); - } - - else { - while (a - b > 0) { - a = a - b; - r += 1; - } - if (b * r + a == remember_a) { - if (under_zero == 1) { - printf("%d\n", r * (-1) - 1); - } else { - printf("%d\n", r); - } - } - } - - return 0; -} diff --git a/src/file_to_be.c b/src/file_to_be.c deleted file mode 100644 index e69de29..0000000 diff --git a/src/happy_tickets.c b/src/happyTickets.c similarity index 93% rename from src/happy_tickets.c rename to src/happyTickets.c index a997605..92c7ded 100644 --- a/src/happy_tickets.c +++ b/src/happyTickets.c @@ -1,9 +1,11 @@ #include -int main() { +int main() +{ int count = 0; int sums[28] = { 0 }; // в массив будем заносить сколькими способами можно получить суммы от 0 до 27 for (int a = 0; a <= 9; a++) { + for (int b = 0; b <= 9; b++) { for (int c = 0; c <= 9; c++) { int sum = a + b + c; @@ -12,11 +14,10 @@ int main() { } } - for (int i = 0; i <= 27; i++) { + for (int i = 0; i <= 27; i++) count += sums[i] * sums[i]; // считаем сколькими разными способами можно получить одинаковые суммы первых трех и // последних трех цифр - } + printf("%d\n", count); return 0; } - From 0ae972272c77456cd472d13a3cda95316332aafd Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Fri, 10 Oct 2025 23:42:27 +0300 Subject: [PATCH 06/17] Fix mistakes in all hw --- src/bracketBalance.c | 69 ++++++++++++++++------------------------ src/oneStringInAnother.c | 36 +++++++++++---------- src/zerosInMassive.c | 14 ++++---- 3 files changed, 55 insertions(+), 64 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index cc2325f..6246b1c 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -2,55 +2,42 @@ #include #include -int main() +bool checkBrackets(char* stringWithBrackets) { - int* stackForBrackets = calloc(100, sizeof(int)); // сделаем большой стек состоящий из 100 нулей - char* stringWithBrackets = calloc(100, sizeof(char)); // строка из 100 символов - scanf("%100[^\n]", stringWithBrackets); // ввели строку (огранчение 100 символов) - - int count = 0; // счетчик того, сколько позиций занято в стеке - char str1 = ' '; // здесь будут символы из строки - char str2 = '('; - char str3 = ')'; - - bool isEverythingOk = true; // флаг, что все скобки пока идут правильно - - for (int i = 0; i < 100; i++) // перебор символов введенной строки - { - str1 = stringWithBrackets[i]; - - if (str1 == str2) // Ищем окрывающие скобки - { - stackForBrackets[count] = 2; // пусть 2 - это открывающая скобка - ++count; + //специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 + int counter = 0; + bool bracketsExist = false; + + for (int i = 0; i < 100; i++) { + if (stringWithBrackets[i] == '(') { + counter++; + bracketsExist = true; } - - else if (str1 == str3) // если скобка закрывающаяся - { - if (stackForBrackets[count - 1] == 2) // то все ок - { - stackForBrackets[count - 1] = 0; - count -= 1; - // этими действиями мы убрали закрытые скобки, будто их и не было - } else { - - isEverythingOk = false; - break; - } + if (stringWithBrackets[i] == ')') { + counter--; + bracketsExist = true; + } + if (counter < 0) { + break; } } - // Если скобочная последовательность правильная, то стек в конце будет состоять только из нулей - if (isEverythingOk && stackForBrackets[0] == 2) { - printf("Скобочная последовательность неправильная\n"); + if (bracketsExist && counter == 0) { + return true; } + return false; +} - else if (isEverythingOk) { - printf("Скобочная последовательность правильная\n"); - } +int main() +{ + char* stringWithBrackets = calloc(100, sizeof(char)); + scanf("%100[^\n]", stringWithBrackets); + bool isCorrect = checkBrackets(stringWithBrackets); - else { + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { printf("Скобочная последовательность неправильная\n"); } - + free(stringWithBrackets); return 0; } diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c index 9701ede..e184f79 100644 --- a/src/oneStringInAnother.c +++ b/src/oneStringInAnother.c @@ -4,28 +4,32 @@ int main() { - char listForBiggerString[] = "hellohellhellolllhello"; - char listForSmallerString[] = "hello"; + char biggerString[] = "hellohellhellolllhello"; + char smallerString[] = "hello"; + size_t lenForBiggerString = sizeof(biggerString) / sizeof(char) - 1; + size_t lenForSmallerString = sizeof(smallerString) / sizeof(char) - 1; - size_t lenForBiggerString = sizeof(listForBiggerString) / sizeof(char); - size_t lenForSmallerString = sizeof(listForSmallerString) / sizeof(char) - 1; // так как последний символ нулевой - - int countingOfEntry = 0; // счетчик вхождений - for (int i = 0; i < lenForBiggerString; i++) // i - индекс того эл-та с которого будем рассматривать большую строку - { - bool flag = true; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла - for (int j = 0; j < lenForSmallerString; j++) { - if (listForBiggerString[i + j] != listForSmallerString[j]) { - flag = false; // опа, строчки отличаются + int entryCounter = 0; + // i - индекс эл-та с которого будем рассматривать большую строку + for (unsigned int i = 0; i < lenForBiggerString; i++) { + bool flag = true; + for (unsigned int j = 0; j < lenForSmallerString; j++) { + if (i + j < lenForBiggerString) { + if (biggerString[i + j] != smallerString[j]) { + flag = false; + break; + } + } else { + flag = false; break; } } - if (flag) // все символы совпали - { - ++countingOfEntry; + if (flag) { + ++entryCounter; } } - printf("%d\n", countingOfEntry); + printf("%d\n", entryCounter); return 0; } +// Должно вывести 3 diff --git a/src/zerosInMassive.c b/src/zerosInMassive.c index 572b191..eccebf2 100644 --- a/src/zerosInMassive.c +++ b/src/zerosInMassive.c @@ -3,16 +3,16 @@ int main() { // пусть массив задан в программе - int listWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; - int countOfZeros = 0; - size_t lengthOfMassive = sizeof(listWithNumbers) / sizeof(int); + int ArrayWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int zeroCounter = 0; + size_t lengthOfArray = sizeof(ArrayWithNumbers) / sizeof(int); - for (int i = 0; i < lengthOfMassive; i++) { - if (listWithNumbers[i] == 0) { - ++countOfZeros; + for (int i = 0; i < lengthOfArray; i++) { + if (ArrayWithNumbers[i] == 0) { + ++zeroCounter; } } - printf("%d\n", countOfZeros); + printf("%d\n", zeroCounter); return 0; } From cc9c73cd504a979e247e9dc67a07d6d468e448dd Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 11 Oct 2025 19:49:51 +0300 Subject: [PATCH 07/17] Fix mistakes in zeros and strings, still think about bracket balance --- src/bracketBalance.c | 4 ++-- src/oneStringInAnother.c | 47 +++++++++++++++++----------------------- src/zerosInMassive.c | 6 ++--- 3 files changed, 25 insertions(+), 32 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 6246b1c..afb418d 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -6,8 +6,8 @@ bool checkBrackets(char* stringWithBrackets) { //специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 int counter = 0; + // переменная, чтобы сказать пользователю, что нет скобок вообще или что скобочная последовательность неверная bool bracketsExist = false; - for (int i = 0; i < 100; i++) { if (stringWithBrackets[i] == '(') { counter++; @@ -36,7 +36,7 @@ int main() if (isCorrect) { printf("Скобочная последовательность правильная\n"); } else { - printf("Скобочная последовательность неправильная\n"); + printf("Скобочная последовательность неправильная или не было введено ни одной скобки\n"); } free(stringWithBrackets); return 0; diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c index e184f79..6194f4c 100644 --- a/src/oneStringInAnother.c +++ b/src/oneStringInAnother.c @@ -2,34 +2,27 @@ #include #include -int main() -{ - char biggerString[] = "hellohellhellolllhello"; - char smallerString[] = "hello"; - size_t lenForBiggerString = sizeof(biggerString) / sizeof(char) - 1; - size_t lenForSmallerString = sizeof(smallerString) / sizeof(char) - 1; - - int entryCounter = 0; - // i - индекс эл-та с которого будем рассматривать большую строку - for (unsigned int i = 0; i < lenForBiggerString; i++) { - bool flag = true; - for (unsigned int j = 0; j < lenForSmallerString; j++) { - if (i + j < lenForBiggerString) { - if (biggerString[i + j] != smallerString[j]) { - flag = false; - break; - } - } else { - flag = false; - break; - } - } - if (flag) { - ++entryCounter; - } +int main() { + char biggerString[] = "hellohellhellolllhello"; + char smallerString[] = "hello"; + size_t lenForBiggerString = sizeof(biggerString) / sizeof(char) - 1; + size_t lenForSmallerString = sizeof(smallerString) / sizeof(char) - 1; + int entryCounter = 0; + // i - индекс эл-та с которого будем рассматривать большую строку + for (unsigned i = 0; i <= lenForBiggerString - lenForSmallerString; i++) { + bool flag = true; + for (unsigned j = 0; j < lenForSmallerString; j++) { + if (biggerString[i + j] != smallerString[j]) { + flag = false; + break; + } + } + if (flag) { + ++entryCounter; } - printf("%d\n", entryCounter); + } + printf("%d\n", entryCounter); - return 0; + return 0; } // Должно вывести 3 diff --git a/src/zerosInMassive.c b/src/zerosInMassive.c index eccebf2..6a8b24b 100644 --- a/src/zerosInMassive.c +++ b/src/zerosInMassive.c @@ -3,12 +3,12 @@ int main() { // пусть массив задан в программе - int ArrayWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int arrayWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; int zeroCounter = 0; - size_t lengthOfArray = sizeof(ArrayWithNumbers) / sizeof(int); + size_t lengthOfArray = sizeof(arrayWithNumbers) / sizeof(int); for (int i = 0; i < lengthOfArray; i++) { - if (ArrayWithNumbers[i] == 0) { + if (arrayWithNumbers[i] == 0) { ++zeroCounter; } } From d2a3a7461c2d26c21ba59efae02e639318910c4e Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 12 Oct 2025 00:40:15 +0300 Subject: [PATCH 08/17] Fix bracket balance. Now you can put as many symbols as you want --- src/bracketBalance.c | 75 ++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index afb418d..23459ae 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -2,42 +2,49 @@ #include #include -bool checkBrackets(char* stringWithBrackets) -{ - //специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 - int counter = 0; - // переменная, чтобы сказать пользователю, что нет скобок вообще или что скобочная последовательность неверная - bool bracketsExist = false; - for (int i = 0; i < 100; i++) { - if (stringWithBrackets[i] == '(') { - counter++; - bracketsExist = true; - } - if (stringWithBrackets[i] == ')') { - counter--; - bracketsExist = true; - } - if (counter < 0) { - break; - } +bool checkBrackets(char *stringWithBrackets, int len) { + // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть + // правильная, counter == 0 + int counter = 0; + // переменная, чтобы сказать пользователю, что нет скобок вообще или что + // скобочная последовательность неверная + bool bracketsExist = false; + for (int i = 0; i < len; i++) { + if (stringWithBrackets[i] == '(') { + counter++; + bracketsExist = true; } - if (bracketsExist && counter == 0) { - return true; + if (stringWithBrackets[i] == ')') { + counter--; + bracketsExist = true; } - return false; + if (counter < 0) { + break; + } + } + if (bracketsExist && counter == 0) { + return true; + } + return false; } -int main() -{ - char* stringWithBrackets = calloc(100, sizeof(char)); - scanf("%100[^\n]", stringWithBrackets); - bool isCorrect = checkBrackets(stringWithBrackets); - - if (isCorrect) { - printf("Скобочная последовательность правильная\n"); - } else { - printf("Скобочная последовательность неправильная или не было введено ни одной скобки\n"); - } - free(stringWithBrackets); - return 0; +int main() { + int len = 0; + printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " + "enter\n"); + scanf("%d", &len); + char *stringWithBrackets = malloc(len * sizeof(char)); + getchar(); + for (int i = 0; i < len; i++) { + scanf("%c", &stringWithBrackets[i]); + } + bool isCorrect = checkBrackets(stringWithBrackets, len); + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { + printf("Скобочная последовательность неправильная или не было введено ни " + "одной скобки\n"); + } + free(stringWithBrackets); + return 0; } From 972ebc4d9ddf3eaba3156b1ffaf2e08edd63f3d3 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 12 Oct 2025 20:41:02 +0300 Subject: [PATCH 09/17] Fix brackets balancegit add oneStringInAnother.c ! --- src/bracketBalance.c | 22 +++++++++++++++++----- src/oneStringInAnother.c | 1 - 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 23459ae..692f2a4 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -6,8 +6,9 @@ bool checkBrackets(char *stringWithBrackets, int len) { // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть // правильная, counter == 0 int counter = 0; - // переменная, чтобы сказать пользователю, что нет скобок вообще или что - // скобочная последовательность неверная + /* переменная, чтобы сказать пользователю, что нет скобок вообще или что + скобочная последовательность неверная, иначе будет выводить, что скоб.посл. + правильная, а скобок и не было.*/ bool bracketsExist = false; for (int i = 0; i < len; i++) { if (stringWithBrackets[i] == '(') { @@ -29,16 +30,27 @@ bool checkBrackets(char *stringWithBrackets, int len) { } int main() { + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве + // символов он должен указать всё кол-во символов включая скобки и не скобки. int len = 0; printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " "enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); scanf("%d", &len); - char *stringWithBrackets = malloc(len * sizeof(char)); + // отловим этот '\n' getchar(); + char *stringWithBrackets = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во скобок + int counter = 0; for (int i = 0; i < len; i++) { - scanf("%c", &stringWithBrackets[i]); + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') { + stringWithBrackets[counter] = tmp; + ++counter; + } } - bool isCorrect = checkBrackets(stringWithBrackets, len); + bool isCorrect = checkBrackets(stringWithBrackets, counter); if (isCorrect) { printf("Скобочная последовательность правильная\n"); } else { diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c index 6194f4c..1254d15 100644 --- a/src/oneStringInAnother.c +++ b/src/oneStringInAnother.c @@ -22,7 +22,6 @@ int main() { } } printf("%d\n", entryCounter); - return 0; } // Должно вывести 3 From 4fb61a21e651e3eac49213dbd9ffc76b502b7603 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sun, 12 Oct 2025 20:41:02 +0300 Subject: [PATCH 10/17] Fix bracket balance again --- src/bracketBalance.c | 22 +++++++++++++++++----- src/oneStringInAnother.c | 1 - 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 23459ae..692f2a4 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -6,8 +6,9 @@ bool checkBrackets(char *stringWithBrackets, int len) { // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть // правильная, counter == 0 int counter = 0; - // переменная, чтобы сказать пользователю, что нет скобок вообще или что - // скобочная последовательность неверная + /* переменная, чтобы сказать пользователю, что нет скобок вообще или что + скобочная последовательность неверная, иначе будет выводить, что скоб.посл. + правильная, а скобок и не было.*/ bool bracketsExist = false; for (int i = 0; i < len; i++) { if (stringWithBrackets[i] == '(') { @@ -29,16 +30,27 @@ bool checkBrackets(char *stringWithBrackets, int len) { } int main() { + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве + // символов он должен указать всё кол-во символов включая скобки и не скобки. int len = 0; printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " "enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); scanf("%d", &len); - char *stringWithBrackets = malloc(len * sizeof(char)); + // отловим этот '\n' getchar(); + char *stringWithBrackets = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во скобок + int counter = 0; for (int i = 0; i < len; i++) { - scanf("%c", &stringWithBrackets[i]); + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') { + stringWithBrackets[counter] = tmp; + ++counter; + } } - bool isCorrect = checkBrackets(stringWithBrackets, len); + bool isCorrect = checkBrackets(stringWithBrackets, counter); if (isCorrect) { printf("Скобочная последовательность правильная\n"); } else { diff --git a/src/oneStringInAnother.c b/src/oneStringInAnother.c index 6194f4c..1254d15 100644 --- a/src/oneStringInAnother.c +++ b/src/oneStringInAnother.c @@ -22,7 +22,6 @@ int main() { } } printf("%d\n", entryCounter); - return 0; } // Должно вывести 3 From 922b6ecf6b002bf81b6c8f613e3c367d2ca802e3 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Tue, 14 Oct 2025 00:15:40 +0300 Subject: [PATCH 11/17] Finish working with bracketBalance.c --- src/bracketBalance.c | 100 +++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 692f2a4..e0fef01 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -2,61 +2,59 @@ #include #include -bool checkBrackets(char *stringWithBrackets, int len) { - // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть - // правильная, counter == 0 - int counter = 0; - /* переменная, чтобы сказать пользователю, что нет скобок вообще или что - скобочная последовательность неверная, иначе будет выводить, что скоб.посл. - правильная, а скобок и не было.*/ - bool bracketsExist = false; - for (int i = 0; i < len; i++) { - if (stringWithBrackets[i] == '(') { - counter++; - bracketsExist = true; +bool checkBrackets(char* stringWithBrackets, int len) +{ + if (len == 0) + { + return false; } - if (stringWithBrackets[i] == ')') { - counter--; - bracketsExist = true; + // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 + int counter = 0; + for (int i = 0; i < len; i++) { + if (stringWithBrackets[i] == '(') { + counter++; + } + if (stringWithBrackets[i] == ')') { + counter--; + } + if (counter < 0) { + break; + } } - if (counter < 0) { - break; + if (counter == 0) { + return true; } - } - if (bracketsExist && counter == 0) { - return true; - } - return false; + return false; } -int main() { - // подразумеватся, что пользователь может ввести не только скобки и в кол-ве - // символов он должен указать всё кол-во символов включая скобки и не скобки. - int len = 0; - printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " - "enter\n"); - printf("На следующей строке введите скобочную последовательность\n"); - scanf("%d", &len); - // отловим этот '\n' - getchar(); - char *stringWithBrackets = malloc(len * sizeof(char)); - // счетчик чтобы считать кол-во скобок - int counter = 0; - for (int i = 0; i < len; i++) { - char tmp = ' '; - scanf("%c", &tmp); - if (tmp == ')' || tmp == '(') { - stringWithBrackets[counter] = tmp; - ++counter; +int main() +{ + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве символов он должен указать + // всё кол-во символов включая скобки и не скобки. + int len = 0; + printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); + scanf("%d", &len); + //отловим этот '\n' + getchar(); + char* stringWithBrackets = malloc(len * sizeof(char)); + //счетчик чтобы считать кол-во скобок + int counter = 0; + for (int i = 0; i < len; i++) { + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') + { + stringWithBrackets[counter] = tmp; + ++counter; + } } - } - bool isCorrect = checkBrackets(stringWithBrackets, counter); - if (isCorrect) { - printf("Скобочная последовательность правильная\n"); - } else { - printf("Скобочная последовательность неправильная или не было введено ни " - "одной скобки\n"); - } - free(stringWithBrackets); - return 0; + bool isCorrect = checkBrackets(stringWithBrackets, counter); + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { + printf("Скобочная последовательность неправильная или не было введено ни одной скобки\n"); + } + free(stringWithBrackets); + return 0; } From 13568eadc9b8607b923668e9b6474656742d9d79 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Tue, 14 Oct 2025 00:18:03 +0300 Subject: [PATCH 12/17] Use clang-format for bracketBalance.c --- src/bracketBalance.c | 97 ++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/src/bracketBalance.c b/src/bracketBalance.c index e0fef01..1ecf015 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -2,59 +2,58 @@ #include #include -bool checkBrackets(char* stringWithBrackets, int len) -{ - if (len == 0) - { - return false; +bool checkBrackets(char *stringWithBrackets, int len) { + if (len == 0) { + return false; + } + // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть + // правильная, counter == 0 + int counter = 0; + for (int i = 0; i < len; i++) { + if (stringWithBrackets[i] == '(') { + counter++; } - // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 - int counter = 0; - for (int i = 0; i < len; i++) { - if (stringWithBrackets[i] == '(') { - counter++; - } - if (stringWithBrackets[i] == ')') { - counter--; - } - if (counter < 0) { - break; - } + if (stringWithBrackets[i] == ')') { + counter--; } - if (counter == 0) { - return true; + if (counter < 0) { + break; } - return false; + } + if (counter == 0) { + return true; + } + return false; } -int main() -{ - // подразумеватся, что пользователь может ввести не только скобки и в кол-ве символов он должен указать - // всё кол-во символов включая скобки и не скобки. - int len = 0; - printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав enter\n"); - printf("На следующей строке введите скобочную последовательность\n"); - scanf("%d", &len); - //отловим этот '\n' - getchar(); - char* stringWithBrackets = malloc(len * sizeof(char)); - //счетчик чтобы считать кол-во скобок - int counter = 0; - for (int i = 0; i < len; i++) { - char tmp = ' '; - scanf("%c", &tmp); - if (tmp == ')' || tmp == '(') - { - stringWithBrackets[counter] = tmp; - ++counter; - } - } - bool isCorrect = checkBrackets(stringWithBrackets, counter); - if (isCorrect) { - printf("Скобочная последовательность правильная\n"); - } else { - printf("Скобочная последовательность неправильная или не было введено ни одной скобки\n"); +int main() { + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве + // символов он должен указать всё кол-во символов включая скобки и не скобки. + int len = 0; + printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " + "enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); + scanf("%d", &len); + // отловим этот '\n' + getchar(); + char *stringWithBrackets = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во скобок + int counter = 0; + for (int i = 0; i < len; i++) { + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') { + stringWithBrackets[counter] = tmp; + ++counter; } - free(stringWithBrackets); - return 0; + } + bool isCorrect = checkBrackets(stringWithBrackets, counter); + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { + printf("Скобочная последовательность неправильная или не было введено ни " + "одной скобки\n"); + } + free(stringWithBrackets); + return 0; } From fafb9696ee9ffe0e447230107fb59705d5d63d83 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 22 Nov 2025 21:38:19 +0300 Subject: [PATCH 13/17] add clang-format config --- .clang-format | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..e69de29 From b6f3179c8abc7a63731663ba785f6e7240778d4c Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 22 Nov 2025 21:39:40 +0300 Subject: [PATCH 14/17] add clang-format config just need to commit it one more time --- .clang-format | 245 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) diff --git a/.clang-format b/.clang-format index e69de29..e2cbc59 100644 --- a/.clang-format +++ b/.clang-format @@ -0,0 +1,245 @@ +--- +Language: Cpp +# BasedOnStyle: WebKit +AccessModifierOffset: -4 +AlignAfterOpenBracket: DontAlign +AlignArrayOfStructures: None +AlignConsecutiveAssignments: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: true +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveShortCaseStatements: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCaseColons: false +AlignEscapedNewlines: Right +AlignOperands: DontAlign +AlignTrailingComments: + Kind: Never + OverEmptyLines: 0 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowBreakBeforeNoexceptSpecifier: Never +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: false +AllowShortCompoundRequirementOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: MultiLine +AttributeMacros: + - __capability +BinPackArguments: true +BinPackParameters: true +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterExternBlock: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakAdjacentStringLiterals: true +BreakAfterAttributes: Leave +BreakAfterJavaFieldAnnotations: false +BreakArrays: true +BreakBeforeBinaryOperators: All +BreakBeforeConceptDeclarations: Always +BreakBeforeBraces: WebKit +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +BreakInheritanceList: BeforeColon +BreakStringLiterals: true +ColumnLimit: 0 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 1 + SortPriority: 0 + CaseSensitive: false +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: false +IndentExternBlock: AfterExternBlock +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 4 +IndentWrappedFunctionNames: false +InsertBraces: false +InsertNewlineAtEOF: false +InsertTrailingCommas: None +IntegerLiteralSeparator: + Binary: 0 + BinaryMinDigits: 0 + Decimal: 0 + DecimalMinDigits: 0 + Hex: 0 + HexMinDigits: 0 +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +KeepEmptyLinesAtEOF: false +LambdaBodyIndentation: Signature +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: Inner +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 4 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PackConstructorInitializers: BinPack +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakScopeResolution: 500 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Left +PPIndentWidth: -1 +QualifierAlignment: Leave +ReferenceAlignment: Pointer +ReflowComments: true +RemoveBracesLLVM: false +RemoveParentheses: Leave +RemoveSemicolon: false +RequiresClausePosition: OwnLine +RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Leave +ShortNamespaceLines: 1 +SkipMacroDefinitionBody: false +SortIncludes: CaseSensitive +SortJavaStaticImport: Before +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeJsonColon: false +SpaceBeforeParens: ControlStatements +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: true + AfterFunctionDefinitionName: false + AfterFunctionDeclarationName: false + AfterIfMacros: true + AfterOverloadedOperator: false + AfterPlacementOperator: true + AfterRequiresInClause: false + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: true +SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInContainerLiterals: true +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParens: Never +SpacesInParensOptions: + InCStyleCasts: false + InConditionalStatements: false + InEmptyParentheses: false + Other: false +SpacesInSquareBrackets: false +Standard: Latest +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TabWidth: 8 +UseTab: Never +VerilogBreakBetweenInstancePorts: true +WhitespaceSensitiveMacros: + - BOOST_PP_STRINGIZE + - CF_SWIFT_NAME + - NS_SWIFT_NAME + - PP_STRINGIZE + - STRINGIZE +... \ No newline at end of file From c03d67a8c637d195728c9a293df175bbf73b89c6 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 22 Nov 2025 21:46:43 +0300 Subject: [PATCH 15/17] formatted files --- .clang-format | 1 - src/CompilationProcess/bracketBalance.c | 61 +++++++++++++ src/CompilationProcess/oneStringInAnother.c | 28 ++++++ src/CompilationProcess/zerosInMassive.c | 19 ++++ src/bracketBalance.c | 98 +++++++++++---------- 5 files changed, 158 insertions(+), 49 deletions(-) create mode 100644 src/CompilationProcess/bracketBalance.c create mode 100644 src/CompilationProcess/oneStringInAnother.c create mode 100644 src/CompilationProcess/zerosInMassive.c diff --git a/.clang-format b/.clang-format index e2cbc59..3754daf 100644 --- a/.clang-format +++ b/.clang-format @@ -242,4 +242,3 @@ WhitespaceSensitiveMacros: - NS_SWIFT_NAME - PP_STRINGIZE - STRINGIZE -... \ No newline at end of file diff --git a/src/CompilationProcess/bracketBalance.c b/src/CompilationProcess/bracketBalance.c new file mode 100644 index 0000000..bf06707 --- /dev/null +++ b/src/CompilationProcess/bracketBalance.c @@ -0,0 +1,61 @@ +#include +#include +#include + +bool checkBrackets(char* stringWithBrackets, int len) +{ + if (len == 0) { + return false; + } + // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть + // правильная, counter == 0 + int counter = 0; + for (int i = 0; i < len; i++) { + if (stringWithBrackets[i] == '(') { + counter++; + } + if (stringWithBrackets[i] == ')') { + counter--; + } + if (counter < 0) { + break; + } + } + if (counter == 0) { + return true; + } + return false; +} + +int main() +{ + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве + // символов он должен указать всё кол-во символов включая скобки и не скобки. + int len = 0; + printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " + "enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); + scanf("%d", &len); + // отловим этот '\n' + getchar(); + char* stringWithBrackets = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во скобок + int counter = 0; + for (int i = 0; i < len; i++) { + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') { + stringWithBrackets[counter] = tmp; + ++counter; + } + } + bool isCorrect = checkBrackets(stringWithBrackets, counter); + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { + printf("Скобочная последовательность неправильная или не было введено ни " + "одной скобки\n"); + } + free(stringWithBrackets); + return 0; +} diff --git a/src/CompilationProcess/oneStringInAnother.c b/src/CompilationProcess/oneStringInAnother.c new file mode 100644 index 0000000..3773e47 --- /dev/null +++ b/src/CompilationProcess/oneStringInAnother.c @@ -0,0 +1,28 @@ +#include +#include +#include + +int main() +{ + char biggerString[] = "hellohellhellolllhello"; + char smallerString[] = "hello"; + size_t lenForBiggerString = sizeof(biggerString) / sizeof(char) - 1; + size_t lenForSmallerString = sizeof(smallerString) / sizeof(char) - 1; + int entryCounter = 0; + // i - индекс эл-та с которого будем рассматривать большую строку + for (unsigned i = 0; i <= lenForBiggerString - lenForSmallerString; i++) { + bool flag = true; + for (unsigned j = 0; j < lenForSmallerString; j++) { + if (biggerString[i + j] != smallerString[j]) { + flag = false; + break; + } + } + if (flag) { + ++entryCounter; + } + } + printf("%d\n", entryCounter); + return 0; +} +// Должно вывести 3 diff --git a/src/CompilationProcess/zerosInMassive.c b/src/CompilationProcess/zerosInMassive.c new file mode 100644 index 0000000..6a8b24b --- /dev/null +++ b/src/CompilationProcess/zerosInMassive.c @@ -0,0 +1,19 @@ +#include + +int main() +{ + // пусть массив задан в программе + int arrayWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; + int zeroCounter = 0; + size_t lengthOfArray = sizeof(arrayWithNumbers) / sizeof(int); + + for (int i = 0; i < lengthOfArray; i++) { + if (arrayWithNumbers[i] == 0) { + ++zeroCounter; + } + } + printf("%d\n", zeroCounter); + return 0; +} + +// выводит 5 - кол-во нулей diff --git a/src/bracketBalance.c b/src/bracketBalance.c index 1ecf015..bf06707 100644 --- a/src/bracketBalance.c +++ b/src/bracketBalance.c @@ -2,58 +2,60 @@ #include #include -bool checkBrackets(char *stringWithBrackets, int len) { - if (len == 0) { - return false; - } - // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть - // правильная, counter == 0 - int counter = 0; - for (int i = 0; i < len; i++) { - if (stringWithBrackets[i] == '(') { - counter++; +bool checkBrackets(char* stringWithBrackets, int len) +{ + if (len == 0) { + return false; } - if (stringWithBrackets[i] == ')') { - counter--; + // специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть + // правильная, counter == 0 + int counter = 0; + for (int i = 0; i < len; i++) { + if (stringWithBrackets[i] == '(') { + counter++; + } + if (stringWithBrackets[i] == ')') { + counter--; + } + if (counter < 0) { + break; + } } - if (counter < 0) { - break; + if (counter == 0) { + return true; } - } - if (counter == 0) { - return true; - } - return false; + return false; } -int main() { - // подразумеватся, что пользователь может ввести не только скобки и в кол-ве - // символов он должен указать всё кол-во символов включая скобки и не скобки. - int len = 0; - printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " - "enter\n"); - printf("На следующей строке введите скобочную последовательность\n"); - scanf("%d", &len); - // отловим этот '\n' - getchar(); - char *stringWithBrackets = malloc(len * sizeof(char)); - // счетчик чтобы считать кол-во скобок - int counter = 0; - for (int i = 0; i < len; i++) { - char tmp = ' '; - scanf("%c", &tmp); - if (tmp == ')' || tmp == '(') { - stringWithBrackets[counter] = tmp; - ++counter; +int main() +{ + // подразумеватся, что пользователь может ввести не только скобки и в кол-ве + // символов он должен указать всё кол-во символов включая скобки и не скобки. + int len = 0; + printf("Введите, сколько символов Вы хотите ввести, закончите ввод, нажав " + "enter\n"); + printf("На следующей строке введите скобочную последовательность\n"); + scanf("%d", &len); + // отловим этот '\n' + getchar(); + char* stringWithBrackets = malloc(len * sizeof(char)); + // счетчик чтобы считать кол-во скобок + int counter = 0; + for (int i = 0; i < len; i++) { + char tmp = ' '; + scanf("%c", &tmp); + if (tmp == ')' || tmp == '(') { + stringWithBrackets[counter] = tmp; + ++counter; + } + } + bool isCorrect = checkBrackets(stringWithBrackets, counter); + if (isCorrect) { + printf("Скобочная последовательность правильная\n"); + } else { + printf("Скобочная последовательность неправильная или не было введено ни " + "одной скобки\n"); } - } - bool isCorrect = checkBrackets(stringWithBrackets, counter); - if (isCorrect) { - printf("Скобочная последовательность правильная\n"); - } else { - printf("Скобочная последовательность неправильная или не было введено ни " - "одной скобки\n"); - } - free(stringWithBrackets); - return 0; + free(stringWithBrackets); + return 0; } From e17da744b212872bfd57dfd630116c15eaf85151 Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 22 Nov 2025 21:59:34 +0300 Subject: [PATCH 16/17] Add cmake --- CMakeLists.txt | 0 src/CompilationProcess/CMakeLists.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 src/CompilationProcess/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/CompilationProcess/CMakeLists.txt b/src/CompilationProcess/CMakeLists.txt new file mode 100644 index 0000000..e69de29 From b85c2f827c1668fa721c4b5884481e5af18d6e8c Mon Sep 17 00:00:00 2001 From: Yana Kalsina Date: Sat, 22 Nov 2025 22:07:35 +0300 Subject: [PATCH 17/17] Add Cmake --- CMakeLists.txt | 7 +++++++ src/CompilationProcess/CMakeLists.txt | 3 +++ 2 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e69de29..f401109 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.25) + +project(C_Homework C) + +add_subdirectory(src/CompilationProcess) + +add_compile_options(-Wall -Wextra -Wpedantic) \ No newline at end of file diff --git a/src/CompilationProcess/CMakeLists.txt b/src/CompilationProcess/CMakeLists.txt index e69de29..9344107 100644 --- a/src/CompilationProcess/CMakeLists.txt +++ b/src/CompilationProcess/CMakeLists.txt @@ -0,0 +1,3 @@ +add_executable(braketBalance bracketBalance.c) +add_executable(oneStringInAnother oneStringInAnother.c) +add_executable(zerosInMassive zerosInMassive.c) \ No newline at end of file