From a4956f1e6f01c150ca02e2fdb65a533c03b37085 Mon Sep 17 00:00:00 2001 From: Marat Izmailov Date: Thu, 24 Oct 2024 12:44:58 +0000 Subject: [PATCH] Update a1/program.c --- a1/program.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/a1/program.c b/a1/program.c index a0b23d4..49b85e5 100644 --- a/a1/program.c +++ b/a1/program.c @@ -4,7 +4,7 @@ #define MAX_LENGTH 100 -// Funkcia na kontrolu, či sú dva znaky pár skob +// Функция для проверки, являются ли два символа парой скобок int isMatching(char opening, char closing) { return (opening == '{' && closing == '}') || (opening == '[' && closing == ']') || @@ -15,41 +15,41 @@ int isMatching(char opening, char closing) { int main() { char input[MAX_LENGTH + 1]; char stack[MAX_LENGTH]; - int top = -1; // Index pre vrchol zásobníka - int position = 0; // Pozícia aktuálneho znaku - int foundBracket = 0; // Flag to check if any bracket is found + int top = -1; // Индекс для вершины стека + int position = 0; // Позиция текущего символа + int foundBracket = 0; // Флаг для проверки, найдена ли какая-либо скобка - // Čítanie reťazca + // Чтение строки fgets(input, sizeof(input), stdin); - // Odstránenie znaku nového riadku, ak je prítomný + // Удаление символа новой строки, если он присутствует input[strcspn(input, "\n")] = 0; - // Kontrola dĺžky reťazca + // Проверка длины строки if (strlen(input) > MAX_LENGTH) { printf("Chyba: dĺžka reťazca presahuje 100 znakov.\n"); return 1; } - // Prechod cez každý znak reťazca + // Проход по каждому символу строки for (int i = 0; i < strlen(input); i++) { char current = input[i]; position++; - // Kontrola, či je aktuálny znak zátvorka + // Проверка, является ли текущий символ открывающей скобкой if (current == '{' || current == '[' || current == '(' || current == '<') { - stack[++top] = current; // Zvýšiť top a vložiť zátvorku do zásobníka - foundBracket = 1; // Našli sme zátvorku + stack[++top] = current; // Увеличиваем top и помещаем скобку в стек + foundBracket = 1; // Мы нашли скобку } - // Ak je aktuálny znak zatváracia zátvorka + // Если текущий символ является закрывающей скобкой else if (current == '}' || current == ']' || current == ')' || current == '>') { - // Ak je zásobník prázdny, je to chyba + // Если стек пустой, это ошибка if (top == -1) { printf("Neočekávaný znak %c na %d, očakávaná otváracia zátvorka.\n", current, position); return 1; } - // Ak zátvorky nesúhlasia, je to chyba + // Если скобки не совпадают, это ошибка if (!isMatching(stack[top--], current)) { printf("Prekrývajúca sa zátvorka %c na %d, očakávaná %c.\n", current, position, (current == '}') ? '{' : (current == ']') ? '[' : @@ -59,20 +59,20 @@ int main() { } } - // Ak zostali otvorené zátvorky v zásobníku, je to chyba + // Если остались открытые скобки в стеке, это ошибка if (top != -1) { printf("Neočekávaný koniec vstupu, očakávaná zatváracia zátvorka pre %c.\n", stack[top]); return 1; } - // Ak sa nenašli žiadne zátvorky, ale nie je chyba, vypíš správu + // Если не найдены скобки, выводим сообщение if (!foundBracket) { - printf("Načítané: %s\n", input); - printf("Všetky zátvorky sú v poriadku, žiadne zátvorky neboli nájdené.\n"); + printf("Read: %s\n", input); + printf("All brackets OK\n"); // Изменено здесь } else { - // Očakávané správne výstup - printf("Načítané: %s\n", input); - printf("Všetky zátvorky sú v poriadku.\n"); + // Ожидаемый корректный вывод + printf("Read: %s\n", input); + printf("All brackets OK\n"); } return 0;