Преобразование полного списка номеров бракованных изделий в сокращенный
Информатика

Напишите программу на языке C++, которая преобразует полный список номеров бракованных изделий в сокращенный вид

Напишите программу на языке C++, которая преобразует полный список номеров бракованных изделий в сокращенный вид. В компании, занимающейся производством компьютерных комплектующих, каждое изделие получает последовательный номер от 1 до N. После изготовления каждое изделие проходит контроль качества, и либо продается, либо помещается в список бракованных изделий и списывается. Иногда список бракованных изделий может быть слишком длинным. В таком случае последовательные числа заменяются интервалом: указывается первый и последний номер через тире.
Верные ответы (1):
  • Igorevich
    Igorevich
    39
    Показать ответ
    Тема вопроса: Преобразование полного списка номеров бракованных изделий в сокращенный вид

    Разъяснение: Для решения данной задачи на языке C++ нам потребуется использовать цикл и условные операторы. Мы должны пройти по списку номеров бракованных изделий и обнаружить последовательные числа, которые можно заменить интервалом.

    Вот пример программы на C++, которая выполняет указанную задачу:

    cpp
    #include
    #include

    void simplifyList(std::vector& numbers) {
    int n = numbers.size();
    std::vector> intervals;

    for (int i = 0; i < n; i++) {
    int start = numbers[i];
    int end = start;

    while (i + 1 < n && numbers[i + 1] == end + 1) {
    end++;
    i++;
    }

    intervals.push_back(std::make_pair(start, end));
    }

    for (auto interval : intervals) {
    if (interval.first == interval.second) {
    std::cout << interval.first << " ";
    } else {
    std::cout << interval.first << "-" << interval.second << " ";
    }
    }
    }

    int main() {
    std::vector numbers = {1, 2, 3, 5, 6, 7, 10, 11, 12};
    simplifyList(numbers);

    return 0;
    }


    Доп. материал:
    Пусть у нас есть список номеров бракованных изделий: `{1, 2, 3, 5, 6, 7, 10, 11, 12}`.
    После применения программы, мы получим сокращенный вид списка номеров: `1-3 5-7 10-12`.

    Совет: Чтобы лучше понять программу, вы можете пошагово проследить выполнение цикла и условных операторов на бумаге или в среде разработки. Это поможет вам уловить логику и овладеть алгоритмическим мышлением.

    Закрепляющее упражнение:

    Напишите программу на C++, которая преобразует следующий список бракованных изделий: `{1, 2, 3, 4, 6, 8, 9, 10, 12, 15, 16}`. Какой будет сокращенный вид списка номеров?
Написать свой ответ: