Лабораторна 5 завдання 1

Run Settings
LanguageC
Language Version
Run Command
/** * @file laba5_1.c * @author Нездоймишпка А.О., гр. 515б * @date 21 лютого 2023 * @brief Лабораторна робота № 5 * * Застосування вказівників. Завдання 1 */ #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "your_serial_number_transform_function.h" int main() { setlocale(LC_ALL, "ukr"); int serialNumber; printf("Введіть серійний номер акумулятора (6 цифр): "); if (scanf("%d", &serialNumber) != 1) { printf("Невірний ввід. Будь ласка, введіть 6-значний серійний номер.\n"); return 1; } int conveyor, year, month, day; int status = transformSerialNumber(serialNumber, &conveyor, &year, &month, &day); if (status == 1) { printf("Успішно розшифровано:\n"); printf("Номер конвеєру: %d\n", conveyor); printf("Рік: %d\n", year); printf("Місяць: %d\n", month); printf("День: %d\n", day); } else { printf("Не вдалося розшифрувати серійний номер.\n"); } return 0; }
/** * @file your_serial_number_transform_function.h * @author Нездоймишпка А.О., гр. 515б * @date 21 лютого 2023 * @brief Лабораторна робота № 5 * * Застосування вказівників. Завдання 1 */ #ifndef YOUR_SERIAL_NUMBER_TRANSFORM_FUNCTION_H #define YOUR_SERIAL_NUMBER_TRANSFORM_FUNCTION_H // Оголошення функції для перетворення серійного номеру int transformSerialNumber(int serialNumber, int* conveyor, int* year, int* month, int* day); #endif
/** * @file your_serial_number_transform_function.с * @author Нездоймишпка А.О., гр. 515б * @date 21 лютого 2023 * @brief Лабораторна робота № 5 * * Застосування вказівників. Завдання 1 */ #include <stdlib.h> #include "your_serial_number_transform_function.h" // Функція для перетворення серійного номеру акумулятора // Параметри: // serialNumber - вхідний параметр, серійний номер акумулятора // conveyorNumber - вказівник на номер конвеєру // year - вказівник на рік випуску акумулятору // month - вказівник на місяць випуску акумулятору // Повертає: // 1, якщо перетворення було успішним // 0, якщо перетворення було неуспішним int transformSerialNumber(int serialNumber, int* conveyor, int* year, int* month, int* day) { if (serialNumber < 100000 || serialNumber > 999999) { return 0; // серійний номер має бути шестицифровим } if (conveyor == NULL || year == NULL || month == NULL || day == NULL) { return 0; // перевірка на null для вказівників } *conveyor = serialNumber / 100000; // отримання першої цифри // Розшифровка останньої цифри року int lastDigitOfYear = (serialNumber / 10000) % 10; // Розшифровка року випуску *year = 2010 + lastDigitOfYear; // Розшифрування місяця *month = (serialNumber % 10000) / 100; // Перевірка коректності місяця if (*month < 1 || *month > 12) { return 0; } // Розшифрування дня *day = serialNumber % 100; // Перевірка коректності дня if (*day < 1 || *day > 31) { return 0; } return 1; // перетворення пройшло успішно }
Editor Settings
Theme
Key bindings
Full width
Lines