|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
||||||
Разработать класс «Очередь»21.03.2013, 19:51. Показов 2190. Ответов 10
Метки нет (Все метки)
Помогите, пожалуйста с задачей. Разработать класс «Очередь» на основе массива с полной системой функций. Используя очередь как временную структуру, решить прикладную задачу. В строке текста выполнить удаление из текста данных, которые заключены в скобки. Не знаю как решить. Надо сделать на форме.
0
|
||||||
| 21.03.2013, 19:51 | |
|
Ответы с готовыми решениями:
10
Разработать класс PriorityQueue - очередь с приоритетами Разработать класс "Очередь" Класс: Разработать абстрактный класс класс Point для задания координаты... |
|
Комп_Оратор)
|
||||||
| 23.03.2013, 18:15 | ||||||
|
Михаил94, то что я предлагаю, нужно доработать. Классы можно реализовать и на cli::array, пример такого символьного массива, - в форме. Такой сам удалится. Можно дописать конструктор с аргументом String^ , добавить обработку исключений и пр. Сам код просто заготовка.
1
|
||||||
|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
|
| 23.03.2013, 18:40 [ТС] | |
|
Спасибо за помощь
Добавлено через 20 минут #pragma once using namespace System; #include <math.h> ref class My_Stack { static array <int> ^A = gcnew array <int> (10); // 1. Ограниченный размер - Resize для А int top; public: My_Stack(void) { top=0; } bool Is_Empty() { return top==0; } bool Is_Full() { return top==9; // 2. Размер-должен быть переменной. } // Положить на стек. void Pop(int a) // 3. Должны быть логическими { // возвращать свидетельство операции. if (!Is_Full()) A[top++]=a; else return ; // Логики нет. } // Извлечь из стека. int Push(void) // Вернуть значение через параметры. { if (!Is_Empty()) return A[--top]; else return -1; // Логики нет - такое, которого нет в данных стека. } }; // Типа все, с погрешностями. ref class My_Queue { array <String^> ^A ; // 1. Ограниченный размер - Resize для А public: int head, tail; int n; public: My_Queue(void) { head = 0; tail = 0; n = 200; A = gcnew array <String^> (n); } My_Queue(int N) { head = 0; tail = 0; n = N; A = gcnew array <String^> (n); } bool Is_Empty() { return head == tail; } bool Is_Full() { return head == new_ind(tail); //return abs(tail-head)==1; // в начале head<tail, в кольце head>tail } // Поставить в конец void Pop(String^ a) // 3. Должны быть логическими { // возвращать свидетельство операции. if (!Is_Full()) A[tail++]=a; else return ; // Логики нет. } String^ Push(void) // Вернуть значение через параметры. { if (!Is_Empty()) return A[head++]; //else //return -1; // Логики нет - такое, которого нет в данных стека. } int new_ind(int old) // head { int y; if (old < n-2) { y = old+1; return y; } else return 0; } String ^ operator [] (int a) { return this->A[a]; } property int T { int get() { return tail; } void set(int X) { tail = X; } }; }; ref class My_Set { static array <int> ^A = gcnew array <int> (10); int count; public: My_Set(void) { count=0; } bool Is_Empty() { return count==0; } bool Is_Full() { return count==9; // 2. Размер-должен быть переменной. } bool Add(int a) { if (!Is_Full()) { A[count++]=a; return true; } else return false; } // Перегрузить операцию +, добавление во множество. My_Set ^ operator+(int a) { this->A[count++]=a; return this; } }; Скажите в чём моя ошибка?
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
|
| 23.03.2013, 18:46 [ТС] | |
|
return head == new_ind(tail); на эту строчку
0
|
|
|
Комп_Оратор)
|
|||||||
| 23.03.2013, 19:05 | |||||||
if( head) //тра-ля-ля ps кстати: head == new_ind(tail);//вообще неправильно, нужно сначала выделить... не бойтесь писать больше строк.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
|
| 23.03.2013, 19:18 [ТС] | |
|
Это какой язык?
0
|
|
|
Комп_Оратор)
|
|||
| 23.03.2013, 20:35 | |||
![]() Как говорят у нас в Одессе: - "А какой Вам надо?" Исходя из этого: вывод может быть о том, что С++/clr -> WFA, а что Вы имеете ввиду?
0
|
|||
|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
|
| 23.03.2013, 21:07 [ТС] | |
|
С++, просто у нас не используются catch, try
0
|
|
|
Комп_Оратор)
|
|||||||
| 23.03.2013, 22:16 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 75
|
|
| 28.03.2013, 18:05 [ТС] | |
|
Скажите что неправильного в индексации строки происходит.
int y=0, a, i = 0; String ^ str, ^S; S = gcnew String (""); str = gcnew String(textBox1->Text); if(str[i] != '(' && y == 0) { Q->Pop(str[i].ToString()); this->dataGridView2->Rows->Add(str[i].ToString()); i++; } else if(str[i] == '(' && y == 0 ) { y = 1; i++; } else if(str[i] != '(' && y == 1) i++; for(int k=0; k < Q->T; k++) S = S + Q[i]; // } Надо чтобы был процесс сканирования массива Добавлено через 5 минут Скажите что неправильного в индексации строки происходит. int y=0, a, i = 0; String ^ str, ^S; S = gcnew String (""); str = gcnew String(textBox1->Text); if(str[i] != '(' && y == 0) { Q->Pop(str[i].ToString()); this->dataGridView2->Rows->Add(str[i].ToString()); i++; } else if(str[i] == '(' && y == 0 ) { y = 1; i++; } else if(str[i] != '(' && y == 1) i++; for(int k=0; k < Q->T; k++) S = S + Q[i]; // } Процесс пошел, но без сканирования массива. Как исправить?
0
|
|
| 28.03.2013, 18:05 | |
|
Помогаю со студенческими работами здесь
11
Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом Разработать тип данных очередь
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|