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

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

05.06.2018, 11:44. Показов 1722. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru