/*
* @file lab5_1.cpp
* @author Гавалян Д.Є, гр. 515i
* @date 07 травня 2025
* @brief Лабораторна робота № 5, варiант 19
*
* Застосування вказiвникiв.Завдання 1
*/
#include <stdio.h>
#include "module.h"
#include <locale.h>
int main() {
setlocale(LC_ALL, "");
int serial, diagonal, year, series, tuner_type;
printf("Введіть 6-значний серійний номер: ");
scanf("%d", &serial);
if (parse_tv_serial(serial, &diagonal, &year, &series, &tuner_type)) {
printf("Діагональ: %d дюймів\n", diagonal);
printf("Рік випуску: %d\n", year);
printf("Серія: %d\n", series);
printf("Тип тюнера: %d\n", tuner_type);
}
else {
printf("Помилка: номер має містити рівно 6 цифр!\n");
}
return 0;
}
#include "module.h"
int parse_tv_serial(int serial_number, int* diagonal, int* year, int* series, int* tuner_type) {
// Перевірка на 6-значність
if (serial_number < 100000 || serial_number > 999999) {
return 0;
}
*diagonal = serial_number / 10000; // Перші 2 цифри
*year = 2000 + (serial_number / 1000) % 10; // 3-тя цифра + 2000
*series = (serial_number / 10) % 100; // 4-та та 5-та цифри
*tuner_type = serial_number % 10; // 6-та цифра
return 1;
}
/**
* @brief Розбирає серійний номер телевізора на складові.
* @param serial_number Серійний номер (6 цифр).
* @param diagonal Вказівник для збереження діагоналі екрану (перші 2 цифри).
* @param year Вказівник для збереження року випуску (3-тя цифра + 2000).
* @param series Вказівник для збереження серії (4-та та 5-та цифри).
* @param tuner_type Вказівник для збереження типу тюнера (6-та цифра).
* @return 1 - успішно, 0 - помилка (номер не містить 6 цифр).
*/
int parse_tv_serial(int serial_number, int* diagonal, int* year, int* series, int* tuner_type);