М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
princess82
princess82
12.01.2023 07:15 •  Информатика

C++. написать программу, которая должна выполнять следующие операции: создавать стек. операцию дополнения стека. операцию просмотра стека. операцию удаления элементов стека.

👇
Ответ:
Stillyxa
Stillyxa
12.01.2023
#include <iostream>
using namespace std;

template <typename T>
class Stack
{
private:
T *p;
int top, length;

public:
Stack(int = 0); // стандартный размер стека - 0
~Stack();
void push(T); // дополнение элементом
T pop(); // удаление и возврат элемента
void display(); // отображение стека
};

template <typename T>
Stack<T>::Stack(int size)
{
top = -1;
length = size;
if (size == 0) {
p = 0;
} else {
p = new T[length];
}
}

template <typename T>
Stack<T>::~Stack()
{
if (p != 0) {
delete [] p;
}
}

template <typename T>
void Stack<T>::push(T elem)
{
if (p == 0) {
cout << "Стек нулевого размера" << endl;
cout << "Введите размер стека: ";
cin >> length;
p = new T[length];
}
if ( top == (length - 1) ) {
cout << "\nНе могу дополнить стек элементом " << elem << ", стек полон" << endl;
return;
} else {
top++;
p[top] = elem;
}
}

template <typename T>
T Stack<T>::pop()
{
if ( (p == 0) || (top == -1) ) {
cout << "Стек пуст, не могу убрать элемент.";
return -1;
}
T ret = p[top];
top--;
return ret;
}

template <typename T>
void Stack<T>::display()
{
for (int i = 0; i <= top; i++) {
cout << p[i] << " ";
}
cout << endl;
}

int main()
{
/* создайте стек так:
Stack <int> stack1;
Stack <char> stack2;
где в угловых кавычках - тип, с которым работает стек.
как пользоваться - смотрите заголовок класса.
*/
return 0;
}
4,7(41 оценок)
Открыть все ответы
Ответ:
Lilya146
Lilya146
12.01.2023

#include <iostream>

#include <stdlib.h>

using namespace std;

int main(){

setlocale(0,".1251");

int c,b=0;string num;char A,B,C,D,E,F;

cin>>num;

c=num.size();

if(c<=6){

for(int i=0;i<=c;i++){

if(num[i]==0){}

else if(num[i]=='1'){b++;}

else if(num[i]=='2'){b++;}

else if(num[i]=='3'){b++;}

else if(num[i]=='4'){b++;}

else if(num[i]=='5'){b++;}

else if(num[i]=='6'){b++;}

else if(num[i]=='7'){b++;}

else if(num[i]=='8'){b++;}

else if(num[i]=='9'){b++;}

else if(num[i]=='A'){b++;}

else if(num[i]=='B'){b++;}

else if(num[i]=='C'){b++;}

else if(num[i]=='D'){b++;}

else if(num[i]=='E'){b++;}

else if(num[i]=='F'){b++;}

else{cout<<"Число не является шестнадцатеричным\n";break;}}

if(c==b){cout<<"Число шестнадцатеричное\n";}

}

else{cout<<"Число элементов больше шести";}

system("pause");

return 0;

}

4,6(1 оценок)
Ответ:
valeryaka
valeryaka
12.01.2023
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString;
  if s<>s.MatchValue('[01]+') then Write('не ');
  Writeln('двоичное число')
end.

Пример
010101111011
двоичное число

begin
  var s:=ReadlnString;
  if s<>s.MatchValue('[\+-]?\d+.\d+') then Write('не ');
  Writeln('дробное число')
end.

Пример
12.54
дробное число

begin
  var s:=ReadlnString;
  s.Matches('\s([\+-]?\d{2})\s').Select(t->Trim(t.Value)).Println;
end.

Пример
123.3 15 -11.7 +21 23.2 51 9 182
15 +21 51
4,6(97 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ