Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
escape
0 / 0 / 0
Регистрация: 14.03.2009
Сообщений: 7
#1

Структура "Очередь" (задача) - C++

03.04.2009, 21:56. Просмотров 2263. Ответов 5
Метки нет (Все метки)

Помогите, пожалуйста, разобраться со структурой "Очередью".
Выбивает ошибки в двух строчках - 11 и 15.
Подозреваю, что сам код неточно построен, возможно, есть исправления вначале программы?

Задание:
Написать программу на Си, которая состоит из следующих действий:
1. Описание структуры данных, используя поименованный целочисленный тип.
2. Описание переменной целочисленного типа. (Использую простого переменную, т.к. представление - векторное).
3. Описание переменной индексированного типа из 10 элементов указанного типа и ее инициализация.
4. Инициализация N элементов описанной структуры данных, используя переменную индексированного типа, описанную в п.3, где N – целое значение из диапазона от 0 до
5. Удаление M элементов из описанной структуры данных, где M – целое значение из диапазона от 0 до 15.
Примечание: при инициализации структуры данных необходимо анализировать ее переполнение. При удалении элементов – ее отсутствие.

Код:

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
void main()
//struct Queue
{
  const int size=10;
  int info [size];
  int handle;
};
int rez, i, j;
int N=8;
int M=14;
Queue MyQueue; // Declaration syntax error 
MyQueue.handle=0;
char mas [10] = {'11','2','7','3','9','4','8','14','22','10'};
 
for (i=0,i<N,i++) // Declaration terminated incorrectiy 
 if (MyQueue.handle < size) {
  MyQueue->info [MyQueue.handle] = mas [i];
  MyQueue->handle ++;
for(i=0; i<M; i++)
   if(MyQueue.handle !=0){
    rez = MyQueue.info [0];
    for(j=0, j<MyQueue.handle; j++)
        MyQueue.info [j] = MyQueue.info [j+1];
    MyQueue.handle --;
    MyQueue.info [MyQueue.handle] = '\0';
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2009, 21:56     Структура "Очередь" (задача)
Посмотрите здесь:

класс Lqueue, структура типа "очередь" - C++
Создать класс Lqueue - структура типа &quot;очередь&quot;, что базируется на структуре связного списка. Тип значения, хранящиеся в очереди, выбрать...

Структура данных "Очередь" на базе массива - C++
Всем привет, помогите пожалуйста реализовать структуру данных ОЧЕРЕДЬ на базе массива для хранения символьных данных, заранее благодарен

Динамическая структура "Очередь", С++ - C++
Здравствуйте, форумчане. Прошу вашей помощи. Задание: Дан файл из символов. Используя очередь, за один просмотр файла напечатать...

структура данных "Очередь" - C++
Я понимаю, что везде материала полным-полно, но может ли мне кто-нибудь объяснить что такое ОЧЕРЕДЬ???? и функции добавления ...

абстрактные типы данных "СТЕК" и "ОЧЕРЕДЬ" - C++
тема:абстрактные типы данных &quot;СТЕК&quot; и &quot;ОЧЕРЕДЬ&quot; Вопросы: 1) разработать программу-клиента,использующую АТД &quot;СТЕК&quot; реализованный на...

Однонаправленный список типа "Очередь". Поменять элементы местами - C++
Всем привет. Есть такая вот задачка: Поменять местами наибольший среди отрицательных и наименьший среди положительных элементов...

Добавить целое число в очередь с помощью "operator <<" - C++
В общем, прочитал я статьи про очереди. Где делается с помощью конструктора,деструктора,массивов. Вот только, у меня одна загвоздка. В...

Добавить функцию удаления в класс "Очередь" - C++
Подскажите как реализовать функцию удаления(popQueue)? //queue.h #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; ...

Описать класс "двухсторонняя очередь" - C++
Элементы в очереди - одномерные динамические массивы. Если честно, совершенно не понимаю, как это написать, поэтому остановилась на таком...

Реализовать структуру данных "очередь" - C++
Написать программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы. Программа считывает...

"Очередь" на основе динамического массива - C++
Как можно переделать чтобы не было ошибки &quot;Предел памяти&quot;? Задача: реализация &quot;очередь&quot; на основе динамического массива. #include...

Шаблон класса "очередь с приоритетами" - C++
Здравствуйте, небходимо создать шаблон класса &quot;очередь с приоритетами&quot;. При добавлении элемента в такую очередь его номер определяется его...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.04.2009, 22:12     Структура "Очередь" (задача) #2
естевственно.... потому что так надо!
там полно ошибок!

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
void main()
{
const int size=10;
struct Queue
{
  int info[size];
  int handle;
};
 
int rez, i, j;
int N=8;
int M=14;
 
Queue MyQueue;
MyQueue.handle=0;
char info[size] = {'11','2','7','3','9','4','8','14','22','10'};
 
for (i=0; i<N; i++)
 if (MyQueue.handle < size) 
 {
  MyQueue.info[MyQueue.handle] = info [i];
  MyQueue.handle++;
 
  for(i=0; i<M; i++)
   if(MyQueue.handle !=0)
   {
        rez = MyQueue.info [0];
        for(j=0; j<MyQueue.handle; j++)
                MyQueue.info [j] = MyQueue.info [j+1];
        MyQueue.handle --;
        MyQueue.info [MyQueue.handle] = '\0';
   }
}
}
escape
0 / 0 / 0
Регистрация: 14.03.2009
Сообщений: 7
04.04.2009, 00:58  [ТС]     Структура "Очередь" (задача) #3
спасибо
и думаю, в 16 строке вместо char нужно int
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
04.04.2009, 01:52     Структура "Очередь" (задача) #4
Первое, что заметил, это
C++
1
2
3
4
5
struct Queue
{
  int info[size];
  int head;
};
Если это действительно очередь, то у неё должны быть голова и хвост, а у вас сильно похоже на стек.
Потом, необходимо сделать функцию очистки, то есть, кто-то вышел, и нужно сделать сдвиг элементов. Можно делать каждый раз как кто-то вышел, но лучше делать тогда, когда элементу, который зашёл, не хватило места, а индекс начала не равен 0.
Функция main() должна возвращать int, а то на некоторых компиляторах может не запуститься.
Вот, немного подправил код (функцию очистки не делал):
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
#include <iostream>
using namespace std;
const int size=10;
struct Queue
{
  int info [size];
  int head;
  int rear;
};
int main ()
{
    int rez, i, j;
    int N=8;
    int M=14;
 
    Queue MyQueue;
    MyQueue.head=0;
    int mas [10] = {11,2,7,3,9,4,8,14,22,10};
     
    for (i=0;i<N;i++)
        if (MyQueue.head < size) 
        {
            MyQueue.info [MyQueue.head] = mas [i];
            MyQueue.head++;
            for(i=0; i<M; i++)
                if(MyQueue.head !=0)
                {
                    rez = MyQueue.info [0];
                    for(j=0; j<MyQueue.head; j++)
                        MyQueue.info [j] = MyQueue.info [j+1];
                    MyQueue.head --;
                }
        }
    return 0;
}
Это минумим, чтобы программа работала.
escape
0 / 0 / 0
Регистрация: 14.03.2009
Сообщений: 7
04.04.2009, 13:19  [ТС]     Структура "Очередь" (задача) #5
qwert, спасибо) тут вы правы на 100%, отсутствие хвоста очередь - это возмутительно)
подскажите, пожалуйста, а что нужно сделать, чтобы получить в результате работоспособный стек?
Дело в том, что мне нужно разобраться и со стеком и с очередью.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
05.04.2009, 01:10     Структура "Очередь" (задача) #6
Со стеком проще чем с очередями. В самом простом случае выглядит так (стек на массивах):
C++
1
2
3
4
5
struct Stack
{
   int* arr = new int [nmax];
   int Top;
}
Top - индекс вершины. Нужно сделать как минимум 2 метода Push (добавить) и Pop (удалить). Дополнительно можно сделать просмотр вершины без удаления, часто очень помогает.
Yandex
Объявления
05.04.2009, 01:10     Структура "Очередь" (задача)
Ответ Создать тему
Опции темы

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