Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269

Дан стек размера N. Изменить порядок его элементов на обратный

04.03.2017, 21:05. Показов 2818. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго вечера!
Помогите, пожалуйста, с задачей:
Дан стек размера N. Изменить порядок его элементов на обратный.
Для решения создан класс Stack
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ПЕРВЫЕ_УЧЕБНЫЕ_КЛАССЫ
{
    class Stack
    {
        byte[] mas;
        int tos;
        int dlina;
 
        bool errflag;
        public Stack(int size)
        {
            mas = new byte[size];
            tos = 0;
        }
        public void Push(byte simb)
        {
            if (tos == mas.Length)
            {
                Console.WriteLine("Стек полон!");
                return;
            }
            mas[tos] = simb;
            tos++;
        }
 
        public ushort Pop()
        {
            if (tos == 0)
            {
                Console.WriteLine("Стек пуст!");
                return (ushort)0;
            }
            tos--;
            return mas[tos];
        }
 
        public bool Full() { return tos == mas.Length; }
        public bool Empty() { return tos == 0; }
        public int Capacity() { return mas.Length; }
        public int Get_num() { return tos; }
 
        public void Show()
        {
            for (int i = mas.Length - 1; i >= 0; i--)
                Console.WriteLine(mas[i]);
            Console.WriteLine();
        }
 
        public void Show(Stack Ob)
        {
            for (int i = mas.Length - 1; i >= 0; i--)
                Console.WriteLine(mas[i]);
            Console.WriteLine();
        }
 
        public Stack(Stack Ob)
        {
            mas = new byte[Ob.Capacity()];
            for (int i = 0; i < Ob.tos; i++)
                mas[i] = Ob.mas[i];
            tos = Ob.tos;
        }
 
        public int Razmer
        {
            get
            {
                return dlina;
            }
        }
        public bool Oshibka
        {
            get
            {
                return errflag;
            }
        }
        private bool Ok(int index)
        {
            if (index >= 0 && index < Razmer) return true;
            else
                return false;
        }
        public byte this[int index]
        {
            get
            {
                if (Ok(index))
                {
                    errflag = false;//Ошибки нет!
                    return mas[index];
                }
                else
                {
                    errflag = true;//Ошибка индекса!
                    return 0;//Без.прог.кода.
                }
            }
            set
            {
                if (Ok(index))
                {
                    errflag = false;
                    mas[index] = value;
                }
                else
                    errflag = true;
            }
        }//Конец класса
 
    }
}
Не совсем понятно, как реализовать его работу и выполнения условия задачи после указания размера стека (Stack st = new Stack(10))
Изначально, в стеке все нули
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2017, 21:05
Ответы с готовыми решениями:

Изменить порядок элементов в массиве на обратный
Всем прив. не могу дописать программу которая меняет порядок элементов using System; using System.Collections.Generic; using...

Изменить порядок элементов в массиве целых чисел на обратный
Написать программу, которая будет менять порядок элементов в массиве целых чисел на обратный. В программе должен быть реализован метод типа...

Одномерный массив: изменить порядок следования элементов на обратный
Для заданного условия составить процедуру и придумать несколько наборов тестовых данных для отладки. Возможно использование как статических...

3
14 / 14 / 2
Регистрация: 26.04.2015
Сообщений: 60
05.03.2017, 18:39
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Продемонстрировать применение класса Stack.
using System;
// Класс для хранения символов в стеке.
class Stack {
// Эти члены класса являются закрытыми.
char[] stck; // массив, содержащий стек
int tos; // индекс вершины стека
// Построить пустой класс Stack для реализации стека заданного размера.
public Stack (int size) {
stck = new char[size]; // распределить память для стека
tos = 0;
}
// Поместить символы в стек.
public void Push(char ch) {
if(tos==stck.Length) {
Console.WriteLine(" - Стек заполнен.");
return;
}
stck[tos] = ch;
tos++;
}
// Извлечь символ из стека.
public char Pop() {
if(tos==0) {
Console.WriteLine(" - Стек пуст.");
return (char) 0;
}
tos--;
return stck[tos];
}
// Возвратить значение true, если стек заполнен.
public bool IsFull() {
return tos==stck.Length;
}
// Возвратить значение true, если стек пуст.
public bool IsEmpty() {
return tos==0;
}
// Возвратить общую емкость стека.
public int Capacity() {
return stck.Length;
}
// Возвратить количество объектов, находящихся в данный момент в стеке.
public int GetNum() {
return tos;
}
}
class StackDemo {
static void Main() {
Stack stk1 = new Stack(10);
Stack stk2 = new Stack(10);
Stack stk3 = new Stack(10);
char ch;
int i;
// Поместить ряд символов в стек stk1.
Console.WriteLine("Поместить символы А-J в стек stk1.");
for(i=0; !stk1.IsFull(); i++)
stk1.Push((char) ('A' + i));
if(stk1.IsFull()) Console.WriteLine("Стек stk1 заполнен.");
// Вывести содержимое стека stk1.
Console.Write("Содержимое стека stk1: ");
while( !stk1.IsEmpty() ) {
ch = stk1.Pop();
Console.Write(ch);
}
Console.WriteLine();
if(stk1.IsEmpty()) Console.WriteLine("Стек stk1 пуст.\n");
// Поместить дополнительные символы в стек stk1.
Console.WriteLine("Вновь поместить символы A-J в стек stk1.");
for(i=0; !stk1.IsFull(); i++)
stk1.Push((char) ('A' + i));
// А теперь извлечь элементы из стека stk1 и поместить их в стек stk2.
// В итоге элементы сохраняются в стеке stk2 в обратном порядке.
Console.WriteLine("А теперь извлечь символы из стека stk1\n" +
"и поместить их в стек stk2.");
while( !stk1.IsEmpty() ) {
ch = stk1.Pop();
stk2.Push(ch);
}
Console.Write("Содержимое стека stk2: ");
while( !stk2.IsEmpty() ) {
ch = stk2.Pop();
Console.Write(ch);
}
Console.WriteLine("\n");
// Поместить 5 символов в стек.
Console.WriteLine("Поместить 5 символов в стек stk3.");
for(i=0; i < 5; i++)
stk3.Push((char) ('A' + i));
Console.WriteLine("Емкость стека stk3: " + stk3.Capacity());
Console.WriteLine("Количество объектов в стеке stk3: " +
stk3.GetNum());
}
}


При выполнении этой программы получается следующий результат.
Поместить символы А-J в стек stk1.
Стек stk1 заполнен.
Содержимое стека stk1: JIHGFEDCBA
Стек stk1 пуст.
Вновь поместить символы А-J в стек stk1.
А теперь извлечь символы из стека stk1
и поместить их в стек stk2.
Содержимое стека stk2: ABCDEFGHIJ
Поместить 5 символов в стек stk3.
Емкость стека stk3: 10
Количество объектов в стеке stk3: 5


Герберт Шилдт - C# 4.0
1
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269
12.03.2017, 13:16  [ТС]
Getsok, А можно ли вводить элементы с клавиатуры, а потом их же в обратном порядке выводить ?
0
 Аватар для TuM0xA
212 / 210 / 137
Регистрация: 21.12.2015
Сообщений: 545
12.03.2017, 13:21
Namatrasnik,
C#
1
2
for(i=0; !stk1.IsFull(); i++)
stk1.Push(int.Parse(Console.ReadLine()));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2017, 13:21
Помогаю со студенческими работами здесь

Перевести программу из Pascal в C#: изменить порядок следования цифр числа на обратный
. Описать функцию InvertDigits(K), меняющую порядок следования цифр целого положительного числа K на обратный. С помощью этой функции...

Дан массив А размера N. Найти минимальный элемент из его элементов с четными номерами: А2, А4, А6,
Дан массив А размера N. Найти минимальный элемент из его элементов с четными номерами: А2, А4, А6, ... Написать код на си шарп

Дан массив A размера n. Найти минимальный элемент из его элементов с четными индексами
Дан массив a размера n. Найти минимальный элемент из его элементов с четными индексами. C#

Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов
Помогите пж using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace...

Обратный порядок элементов массива
Я знаю как сделать обратный порядок элементов, которые идут по порядку: int n = 6; int arr = new int;//012345 ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Дальние перспективы сервера - слоя сети.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru