С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
1

Составить Алгоритм работы программы (программа есть)

15.06.2011, 12:23. Показов 3733. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть следующая программа

Реализовать шаблон класса Stack, реализующий стек. Для представления элемента стека использовать шаблон класса Node. Определить функции добавления на вершину стека и чтение с вершины (как шаблонный класс).
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
    Листинг программы
 
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
 
class Exception {
public:
    Exception(char * c="Error!") {
        message=c;
    };
    char *message;
};
class MemoryException : public Exception {
public:
    MemoryException():Exception("Out of memory error!"){};
};
class Downflow : public Exception {
public:
    Downflow():Exception("Stack is empty!"){};
};
 
 
template <class T>
struct Node {               //структура узла
    T data;                 //данные
    Node *l;                //указатель на предыдущий узел
};
template <class T>
class stack
{
public:
    stack() { head=0;}      //конструктор по умолчанию
   ~stack() {};                        // деструктор
 
    Node<T> *push (T inf) { //запихнуть в стек
        Node<T> * newbie = new Node<T>;         //создаем новый узел
        if (!newbie)
        {
            throw MemoryException();
        }
 
        newbie->l=head;                         //указатель узла на предыдущий
        newbie->data=inf;                       //записываем данные
        head=newbie;                            //перемещаем вершину
        return head;
    }
    T pop () {
        if (!head)
        {
            throw Downflow();
        }
 
        Node<T> *tmp=head->l;                   
        T ret=head->data;                       //запоминаем что надо вернуть
        delete head;                            //удаляем старую вершину
        head=tmp;                               //запоминаем новую
        return ret;
    }
    Node<T> *head;                              //вершина стека
};
 
int main()
{
    stack<int> stack;
    while (1)
    {
        cout << endl << "Menu:" << endl << "1. Push" << endl << "2. Pop" << endl << "3. Exit" << endl;
        int key=0;
        cin >> key;
        switch (key)
        {
        case 1:
            cout << "Enter a int number: ";     //ввести число
            int x;
            cin >> x;
            try 
            {
                stack.push(x);                  //в стек
            }
            catch (MemoryException except) 
            {
                cout << except.message;
                return 1;
            }
 
            break;
        case 2:
            try {
                cout << "Popped " << stack.pop() << endl;   //достаем из стека
            }
            catch (Downflow except)
            {
                cout << except.message;
               // return 1;
            }
            break;
        case 3:
            return 0;
        }
    }
}

Нужна помощь в создании алгоритма работы этой программы

Добавлено через 23 часа 52 минуты
НЕУЖЕЛИ НИ КТО НЕ МОЖЕТ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2011, 12:23
Ответы с готовыми решениями:

Составить алгоритм работы программы
program ToWords; uses IntToWord in 'IntToWord.pas'; var F_in: Text; ...

Нужно сохранить результаты работы программы Qbasic - то есть сам экран работы?
Вопрос перемещён из темы графика на бейсике, запросы по реализации задаём не в закреплённые темы,...

Разработайте алгоритм и программу, реализующую этот алгоритм. Исходные данные вводите из текстового файла. Результаты работы программы также помести
Разработайте алгоритм и программу, реализующую этот алгоритм. Исходные данные вводите из...

Нужно составить алгоритм работы
Вообщем такая вот делема...нужно сделать сайт на подобие...

8
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
15.06.2011, 12:30 2
Цитата Сообщение от kniazik Посмотреть сообщение
Нужна помощь в создании алгоритма работы этой программы
какого алгоритма?
блок-схема? псевдокод?
Цитата Сообщение от kniazik Посмотреть сообщение
НЕУЖЕЛИ НИ КТО НЕ МОЖЕТ?
ну так и пишите в алгоритмы, а лучше сразу во фриланс
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
15.06.2011, 12:40  [ТС] 3
да любого алгоритма работы программы


Например:

1. подключаем библиотеки,
2. Конструктор, деконструктор

и т.д.

В теме алгоритмы - написал, там рекомендовали написать сюда
0
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
15.06.2011, 15:26 4
Вот тебе простенький стек.
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
template<class  T>
class  xStack  {
   struct  node {  // внутрення структура для организации узлов в списке
    node*   next;
    T           data;
    node(void) : next(NULL) {}
   };
private:
   node*   lst;
public:
    xStack(void) {
    lst   = NULL;
    }
    ~xStack(void) {
             this->clear();
    }
public:
// метод добавляет данные в стек по принципу стека - LIFO(last in, first out) - последним пришёл 
// первым вышел
void  push(T hData) {
    node*  ptr = new node();
    ptr->next   = lst;
    ptr->data  = hData;
    lst = ptr;
}
 
// выталкивает элемент из стека безвозвратно с освобождением динамической памяти
void   pop(void) {
     node*  ptr = lst;
     lst            = lst->next;
     if(ptr) {
            delete ptr;
     ptr = NULL;
     }
}
 
// возвращает  элемент  из верхушки стека
T&  top(void) {
        return  lst->data;
}
    
// функция освобождает память удаляя все элементы из стека
void clear(void) {
   while(lst != NULL) {
             node* ptr = lst;
      lst = lst->next;
     if(ptr) 
           delete ptr;
     ptr = NULL;
   }
   lst = NULL;
}
 
bool empty(void) const {
    return  ! lst;
}
 
// метод возвращает число элементов в стеке
int  get_size(void) const {
         int len = 0;
         for(const node*  ptr = lst; ptr != NULL;  ptr = ptr->next, len++);
     return len;
}
 
// метод для  нахождения элемента  в стеке, если  элемент найдётся то метод вернёт - true
 bool  find(T  hData) const {
       for(const node*  ptr = lst;  ptr != NULL;  ptr = ptr->next) {
    if(! memcmp(&ptr->data, &hData, sizeof(T)))
        return  true;
       }
       return  false;
}
};
 
 
 
 void  main(){
 
xStack<long>  st;   // LIFO
st.push( 100000L );
st.push( 20007L );
st.push( 5000000L );
st.push( 333333L );
st.push( -4000000L );
    
printf("top stack element = %d\n", st.top());
    
st.top() =  7777777L;
 
if(st.find( 5000000L ))
      puts("YES VALUE STACK");
 
while( ! st.empty() ) {
    printf("\t num = %d\n", st.top() );
    st.pop();
}
    
//  st.clear();
}
1
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
15.06.2011, 19:48  [ТС] 5
Спасибо, но стек я и сам написать могу, а составить алгоритм работы программы по написанной программе, ни как не получается.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
15.06.2011, 19:51 6
Цитата Сообщение от kniazik Посмотреть сообщение
Спасибо, но стек я и сам написать могу, а составить алгоритм работы программы по написанной программе, ни как не получается.
да ну, как же так? получаеться, что пишите и не знаете что пишите
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
15.06.2011, 20:13  [ТС] 7
Я просто не знаю как это правильно написать(для сдачи преподавателю). Получилось вот что -

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Алгоритм программы по шагам:
1.  Открытие библиотек iostream, fstream, подключение класса пользовательских ошибок myExceptions.cpp.
• Библиотека iostream – для доступа к функциям ввода-вывода на экран.
• Библиотека fstream – для доступа к функциям ввода-вывода в файл.
2.  Для стека реализуется шаблон класса Stack:
• Конструктор без параметров;
• Конструктор с параметрами;
• Деструктор;
3.  Описание шаблон класса Node:
• Создание нового узла;
• Перевод указателя узла на предыдущий;
• Сохранение данных; перемещение вершины;
4.   Описание функции main:
• Ввод данных в стек;
• Анализ данных в стеке.

Но что то здесь не так
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
15.06.2011, 20:17 8
Цитата Сообщение от kniazik Посмотреть сообщение
Но что то здесь не так
угу, алгоритма сдесь не хватает, то что вы выложили - это описание программы
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 25
15.06.2011, 20:34  [ТС] 9
вот вот - ну помогите же, кто нибудь....
0
15.06.2011, 20:34
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2011, 20:34
Помогаю со студенческими работами здесь

Составить алгоритм работы цикла for
read(Df,razmMatr); for i:=1 to RazmMatr do for j:=1 to RazmMatr do begin ...

Написать алгоритм работы программы
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;ctime&gt; using namespace std; int main() {...

TurboProlog Алгоритм работы программы
Помогите разобрать программу по коду, как она работает, алгоритм ПОСТАНОВКА ЗАДАЧИ. ...

Алгоритм работы программы на SCL
Извините заранее, если разместил тему в несоответствующем разделе. Сама программа написана на...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru