Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
к8
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 38
1

Очередь, иммитирующая работу устройства

07.12.2014, 12:23. Просмотров 937. Ответов 1
Метки нет (Все метки)

Имеется устройство с N последовательными ячейками памяти, работающими по принципу очереди. На вход устройства могут подаваться цифры и символ " * ". При получении цифры устройство размещает её в последней незанятой ячейке памяти. Если все ячейки заняты, первая ячейка освобождается и значения всех остальных смещаются на ячейку влево. Новый элемент (поданная на вход цифра) добавляется в освободившуюся последнюю ячейку. При подаче символа " * " выводится и удаляется элемент из первой ячейки памяти (остальные сдвигаются на освободившуюся ячейку). Если ячейки памяти пусты, печатается сам символ " * ". Промоделируйте работу данного устройства.
Формат входных данных
В первой строке входного файла записано число N(1 <= N <= 1000). Вторая строка представляет собой последовательность цифр и знаков " * ", поданных на вход устройству. Длина последовательности не менее одного символа и не превосходит 1000 символов.
Формат выходных данных
Выведите в выходной файл строку из символов, полученных в результате работы устройства.
Примеры:
Вход
4
*1234*45*****
Выход
*13445*
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2014, 12:23
Ответы с готовыми решениями:

Конструирование класса, моделирующего работу устройства
Добрый день! Помогите разобраться в ошибке, пожалуйста. Сделал программу, но она жалуется на...

Конструирование класса, моделирующего работу устройства
Дорогие форумчане, помогите разобраться с задачей. Необходимо: &quot;1. Разработать модель работы...

Программа иммитирующая работу источника дискретных сообщений
Проблемы с этой программой...Я только начал занимать матлабом(прошу помочь, буду очень...

Система массового обслуживания, 2 однородных устройства, общая очередь
Решаю задачу, не могу понять где ошиблась, подскажите пожалуйста. Текст задачи: Система...

Java Технические задания для устройства на работу
Добрый день! На формуме С++ есть раздел для профессионлов. И в нем есть тема, в которой...

1
Max Dark
шКодер самоучка
2033 / 1791 / 879
Регистрация: 09.10.2013
Сообщений: 3,940
Записей в блоге: 6
Завершенные тесты: 2
07.12.2014, 13:56 2
Лучший ответ Сообщение было отмечено к8 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
struct machine {
    machine(size_t sz):
        data(new char[sz]),
        size(sz), top(0) {}
    void do_step(char c) {
        switch(c) {
        case '*':
            if(!!top) {
                pop();
                fputc(data[top], stdout);
            }
            else
                fputc(c, stdout);
            break;
        default:
            if(isdigit(c)) {
                if(top == size) {
                    pop();
                }
                data[top++] = c;
            }
            break;
        }
    }
private:
    void pop() {
        char *p1, *p2, *p3;
 
        if(!top) return;
        --top;
        p1 = data;
        p2 = p1 + 1;
        p3 = p1 + top;
        while (p2 != p3) {
            *p1 = *p2;
            ++p2;
        }
    }
    char * data;
    size_t size;
    size_t  top;
};
вроде так
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2014, 13:56

Промоделировать работу устройства дисковой памяти при наличии одного канала и трех дисководов
Промоделировать работу устройства дисковой памяти при наличии одного канала и трех дисководов....

Напишите программу, реализующую работу очереди. Напишите функции для добавления/удаления элемента в очередь
Помогите пожалуйста написать программу. Готовый Queue не нужен( Нужно изобрести велосипед заново. ...

При запуске системы отключаются все USB-устройства, в т.ч. устройства ввода
При запуске видовс 8 появляется экран выбора учетки и сразу отключаются клавиатура и мышь, они...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.