From 87d951d852512ea6afd86ea834b102ed862ad31e Mon Sep 17 00:00:00 2001 From: Marat Izmailov Date: Mon, 7 Oct 2024 11:48:41 +0000 Subject: [PATCH] Update cv1/program.c --- cv1/program.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/cv1/program.c b/cv1/program.c index 1277b80..88be2fe 100644 --- a/cv1/program.c +++ b/cv1/program.c @@ -6,21 +6,21 @@ #define LINESIZE 100 #define MAX_PIZZAS 100 -// Structure to store pizza menu item +// Структура для хранения элемента меню пиццы struct pizza { float price; char name[LINESIZE]; }; -// Function to convert a character to its Hacker Script form +// Функция для преобразования символа в его Хакер Скриптовая форма char hacker_script(char c) { char numbers[] = "0123456789"; char letters[] = "oizeasbtbq"; - // Convert to lowercase first + // Сначала преобразуйте в нижний регистр c = tolower(c); - // Check for special characters + // Проверка на специальные символы for (int i = 0; i < 10; i++) { if (c == numbers[i]) { return letters[i]; @@ -29,54 +29,54 @@ char hacker_script(char c) { return c; } -// Function to normalize a string by applying hacker script rules +// Функция для нормализации строки с применением правил хакерского скрипта void normalize_string(char *str) { for (int i = 0; str[i]; i++) { str[i] = hacker_script(str[i]); } } -// Function to read one pizza item from input +// Функция для чтения одного элемента пиццы из ввода int read_pizza(struct pizza *item) { char line1[LINESIZE], line2[LINESIZE]; - // Read name + // Чтение имени if (fgets(line1, LINESIZE, stdin) == NULL) { - return 0; // Failed to read + return 0; // Не удалось прочитать } - // Remove newline character + // Удалить символ новой строки line1[strcspn(line1, "\n")] = '\0'; - // Read price + // Чтение цены if (fgets(line2, LINESIZE, stdin) == NULL) { - return 0; // Failed to read + return 0; // Ошибка чтения } float value = strtof(line2, NULL); if (value == 0.0F) { - return 0; // Invalid price + return 0; // Неверная цена } - // Copy the read values + // Копируем прочитанные значения strcpy(item->name, line1); item->price = value; return 1; } -// Function to search if a normalized needle exists in a normalized heap +// Функция для поиска, существует ли нормализованная игла в нормализованной куче int search_string(const char *heap, const char *needle) { char norm_heap[LINESIZE], norm_needle[LINESIZE]; - // Make copies to normalize + // Сделать копии для нормализации strcpy(norm_heap, heap); strcpy(norm_needle, needle); - // Normalize both strings + // Нормализуйте обе строки normalize_string(norm_heap); normalize_string(norm_needle); - // Use strstr to find the normalized needle in the heap + // Используйте strstr, чтобы найти нормализованную иглу в куче return strstr(norm_heap, norm_needle) != NULL; } @@ -85,21 +85,21 @@ int main() { char search[LINESIZE]; int count = 0; - // Read search string + // Чтение строки поиска printf("Zadaj hladanu surovinu:\n"); fgets(search, LINESIZE, stdin); - search[strcspn(search, "\n")] = '\0'; // Remove newline character + search[strcspn(search, "\n")] = '\0'; // Удалить символ новой строки - // Read menu + // Чтение меню printf("Zadaj jedalny listok:\n"); while (read_pizza(&menu[count])) { count++; if (count >= MAX_PIZZAS) { - break; // Limit reached + break; // Достигнут лимит } } - // Display valid dishes containing the searched ingredient + // Отобразить подходящие блюда, содержащие искомый ингредиент int found = 0; for (int i = 0; i < count; i++) { if (search_string(menu[i].name, search)) { @@ -109,7 +109,7 @@ int main() { } } - // Display total items read + // Отобразить общее количество элементов прочитано printf("Nacitanych %d poloziek.\n", count); return 0;