Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 23.02.2018
Сообщений: 26

Объясните что означает каждая строчка в коде

05.06.2018, 11:44. Показов 1778. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать класс, для хранения стека чисел – списка, организованного по принципу LIFO (последним пришёл – первым вышел). Класс должен содержать методы для помещения в стек числа, получения числа из стека, вывода на экран всех содержащихся в стеке элементов и очистки стека.
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
#include "stdafx.h"
#include <iostream>
 
const int STACK_SIZE = 100;
 
 
class stack
{
private:
    float data[STACK_SIZE];
    int length;
public:
    
    stack (int stack_len, float init_value) {
        length = stack_len;
        for (int i=0; i<stack_len; i++) {
            data[i]=init_value;
        }
        return;
    }
    
    stack (float values[], int stack_len) {
        length = stack_len;
        for (int i=0; i<stack_len; i++) {
            data[i]=values[i];
        }
        return;
    }
    
    void add (float input) {
        
        if (length<STACK_SIZE-1) {
            data[length]=input;
            length++;
        } else
        
        {
            std::cout<<"Error. Stack overfill.\n";
        }
 
    }
    //Получение числа из стека
    float get() {
        length--;
        return data[length-2];
    }
    
    void print() {
        std::cout<<"Stack of float numbers:\n";
        for (int i=0; i<length; i++) {
            std::cout<<data[i]<<"\n";
        }
        std::cout<<"End of the stack.\n";
        return;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    stack foo(5, 0);
    /
    for (int i=0; i<=5; i++) {
        foo.add(i);
    }
    
    std::cout<<"Last number is "<<foo.get()<<"\n";
    
    foo.print();
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2018, 11:44
Ответы с готовыми решениями:

Что означает каждая строчка в коде объясните
Написать функции для вычисления площади и длины окружности на плоскости, заданной координатами центра и радиусом. Написать функцию для...

Пожалуйста объясните Что означает каждая строчка
Что означает каждая строчка, объясните кому не трудно, а то ничего не понятно: 1) char *s = new char ; cout&lt;&lt;&quot;Vvedite...

Что означает каждая строчка в коде
Создать тип данных для хранения квадратной матрицы размерности 10. Перегрузить операторы «+» и «-» для выполнения соответстующих операций с...

1
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
05.06.2018, 14:02
А точно список на основе массива-то нужен?
C++
1
2
3
4
#include "stdafx.h" //предкомпилированный заголовок
#include <iostream> //потоки ввода/вывода
 
const int STACK_SIZE = 100; //максимальный размер стека
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
class stack //класс стек
{
private: //приватные члены класа
    float data[STACK_SIZE]; //массив из STACK_SIZE элементов вещественного типа
    int length = 0; //размер стека
public: //публичные члены класса
    
    stack (int stack_len, float init_value) { //конструктор с параметрами "длина стека / каким значением инициализировать"
        length = stack_len; //длина = длине входной
        for (int i=0; i<stack_len; i++) { 
            data[i]=init_value; //инициализации заданного количества элементов значением из параметра
        }
        return;
    }
    
    stack (float values[], int stack_len) { //перегруженный конструктор с параметрами "массив значений / длина массива"
        length = stack_len; //аналогично длина = входной длине
        for (int i=0; i<stack_len; i++) {
            data[i]=values[i]; //инициализация заданного количества элементов значениями из входного массива
        }
        return;
    }
    
    void add (float input) { //функция добавление значения input
        
        if (length<STACK_SIZE-1) { //если длина не превышает макс. размер стека
            data[length]=input; //инициализируем крайней элемент стека входным значением
            length++; //увеличиваем количество элементов в стеке
        } else
        
        {
            std::cout<<"Error. Stack overfill.\n"; //вывод ошибки переполнения стека
        }
 
    }
    //Получение числа из стека
    float get() {
//тут явно не хватает проверок!!!
        length--; //уменьшаем длину стека
        return data[length-2]; //возвращаем почему-то элемент предпоследний
    }
    
    void print() { //вывод думаю и так понятно что происходит
        std::cout<<"Stack of float numbers:\n";
        for (int i=0; i<length; i++) {
            std::cout<<data[i]<<"\n";
        }
        std::cout<<"End of the stack.\n";
        return; //лишнее
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    stack foo(5, 0); //инициализируем стек foo 5 элементами 0
    /
    for (int i=0; i<=5; i++) {
        foo.add(i); //добавляем элементы 0,1 ... 5
    }
    
    std::cout<<"Last number is "<<foo.get()<<"\n"; //выводим предпоследний элемент
    
    foo.print(); //выводим все элементы
    system("pause");
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Дмитрий1228 Посмотреть сообщение
организованного по принципу LIFO
Это значит, что добавляется в начало списка, из начала же и извлекается. У тебя все с конца.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2018, 14:02
Помогаю со студенческими работами здесь

Чайник C++, что означает каждая строчка
#pragma hdrstop #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include...

С++ напишите, что делает каждая строчка в этом коде?!
1. Постановка задачи. Написать перегруженные функции и основную программу, которая их вызывает: а) для вычитания целых...

С++ напишите, что делает каждая строчка в этом коде?!
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int sum (int a, int m) { int s=0; for (int i=0; i&lt;a;...

Что означает каждая строчка в коде
Нужно добавить к каждой строчке комментарий (что означает, к чему относится и за что отвечает)

Что означает каждая строчка?
image-&gt;Canvas-&gt;MoveTo(iStartX, iStartY); image-&gt;Canvas-&gt;LineTo(iX, iY); } void __fastcall TForm1::Timer1Timer(TObject...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru