Форум программистов, компьютерный форум CyberForum.ru

Комментарии к программе (деревья) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запись динамического массива в файл http://www.cyberforum.ru/cpp-beginners/thread716210.html
Здравствуйте! Нам задали написать программу с классами, первый класс содержит методы открытия файла на чтение и запись и закрытие файла, второй - массив и методы работы с ним: создание массива, запись в файл, считывание из файла, сортировку. Ко второму классу есть дружественная функция вывода массива на экран. В main выводится меню с выбором этих функций. Я сделал массив динамический, и...
C++ Найти количесво нечетных делителей натурального числа помогите составить программу на с++ для этой задачи: Найти количесво нечетных делителей натурального числа, больших К (К вводится с клавиатуры). http://www.cyberforum.ru/cpp-beginners/thread716207.html
Проблемма при компиляции функции (Linker error) C++
При компиляции функции линковщик выдает- undefined reference to `startdate(int, int)' ld returned 1 exit status Сама функция #include <cstdlib> #include <iostream> #include <conio.h> #include <stdio.h> void startdate (int &strok,int &stolb)
C++ Создать класс "Студент"
должно получиться так: Введите ФИО - Обязательные предметы Русский - "вводить оценку c клавиатуры" Математика - "вводить оценку с клавиатуры" Предметы по выбору вводить 1 предмет - вводить оценку за первый предмет с клавиатуры вводить 2 предмет - вводить оценку за второй предмет с клавиатуры вводить 3 предмет - вводить оценку за третий предмет с клавиатуры
C++ Вывести количество элементов массива, которые строго больше обоих своих соседей (исправить) http://www.cyberforum.ru/cpp-beginners/thread716145.html
Сначала задано число N — количество элементов в массиве (1N100). Далее через пробел записаны N чисел — элементы массива. Формат выходных данных Необходимо вывести количество элементов массива, которые строго больше обоих своих соседей. int mass,n,i,k=0; cin>>n; for(i=0;i<n;i++) cin>>mass; for(i=2;i<=n-1;i++)
C++ Задача по строкам (в несколько пунктов) Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: а) определить количество слов длиной 3 символа; б) найти слова, у которых количество гласных равно количеству согласных и их порядковые номера; в) вывести слова в порядке убывания их длин (от самого длинного - к самому короткому). Строку инициализировать в коде программы: подробнее

Показать сообщение отдельно
olenya21
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 13
02.12.2012, 14:10     Комментарии к программе (деревья)
кому не сложно..

..помогите..напишите через // что обозначают строчки...из этой программы..
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <Windows.h>
#include <string>
#include <iomanip>
 
class Translator
{
private:
    struct Node
    {
        Node(std::string const& rus, std::string const& eng) :
            pl(0), pr(0), rus_(rus), eng_(eng){}
        Node* Insert(std::string const& rus, std::string const& eng)
        {
            Node* pret = 0;
            if(rus < rus_)
            {
                if(!pl)
                {
                    pl = new Node(rus, eng);
                    pret = pl;
                }
                else
                {
                    pret = pl->Insert(rus, eng);
                }
            }
            else if(rus > rus_)
            {
                if(!pr)
                {
                    pr = new Node(rus, eng);
                    pret = pr;
                }
                else
                {
                    pret = pr->Insert(rus, eng);
                }
            }
            return pret;
        }
        std::string GetEng(std::string const& rus) const
        {
            std::string sret;
            if(rus == rus_)
                sret = eng_;
            else if(rus < rus_)
            {
                if(pl)
                    sret = pl->GetEng(rus);
            }
            else
            {
                if(pr)
                    sret = pr->GetEng(rus);
            }
            return sret;
        }
        void Print() const
        {
            if(pl)
                pl->Print();
            std::cout << std::setw(14) << std::left << rus_ << eng_ << std::endl;
            if(pr)
                pr->Print();
 
        }
        void Cleanup()
        {
            if(pl)
            {
                pl->Cleanup();
                pl = 0;
            }
            if(pr)
            {
                pr->Cleanup();
                pr = 0;
            }
            delete this;
        }
        std::string rus_, eng_;
        Node* pl, *pr;
    };
public:
    Translator() : p_(0){}
    Node* Insert(std::string const& s1, std::string const& s2)
    {
        Node* pret = 0;
        if((s1[0] > 0 && s2[0] < 0) || (s1[0] < 0 && s2[0] > 0))
        {
            std::string const& rus(s1[0] < 0 ? s1 : s2);
            std::string const& eng(s1[0] > 0 ? s1 : s2);
            if(!p_)
            {
                p_ = new Node(rus, eng);
                pret = p_;
            }
            else
            {
                pret = p_->Insert(rus, eng);
            }
        }
        return pret;
    }
    std::string GetEng(std::string const& rus) const
    {
        std::string sret;
        if(p_)
        {
            sret = p_->GetEng(rus);
        }
        return sret;
    }
    void Print() const
    {
        if(p_)
            p_->Print();
    }
    void Cleanup()
    {
        if(p_)
        {
            p_->Cleanup();
            p_ = 0;
        }
    }
private:
    Node* p_;
    Translator(Translator const&);
    Translator& operator=(Translator);
};
 
int main()
{
    SetConsoleOutputCP(1251);
    Translator d;
    d.Insert("красный", "red");
    d.Insert("black", "чёрный");
    d.Insert("зелёный", "green");
    d.Insert("white", "белый");
    std::cout << d.GetEng("красный") << std::endl;
    std::cout << d.GetEng("серый") << std::endl;
    d.Print();
    d.Cleanup();
    std::cin.get();
    return 0;
}
 Комментарий модератора 
Ну, перестаньте Вы уж плодить темы. Из одной сделали около 5. Все можно спрашивать в одной теме.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru