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

Множества без STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти в файле максимальную длину строки и вывести в новый файл все строки, имеющую такую длину http://www.cyberforum.ru/cpp-beginners/thread653083.html
Товарищи, простите что обращаюсь. Кому не сложно, помогите (решите) хоть сколько нибудь из этих 3 заданий. Сам я чайник, много проболел и упустил материал, а в срок не выучу его, чтобы сдать зачет. Очень хочу в универе остаться, нагнать упущенное, так что кому не сложно, помогите, напишите код. 1)Дан файл, содержащий несколько строк. Найти максимальную длину строки и вывести в новый файл все...
C++ Описатель inline Описатель inline должен располагаться только в прототипе или определении функции или и там, и там? http://www.cyberforum.ru/cpp-beginners/thread653069.html
Подскажите условие C++
Не знаю какое должно быть условие, для проверки файла на пустоту if(comand=="4") { cout<<"ЧТЕНИЕ ИЗ ФАЙЛА"<<endl; ifstream f; f.open("avto.txt"); if(!f) { cout<<"Невозможно открыть файл."; }
C++ Таблицы aij где Aij = sin (i + j)
Дано натуральное число n. Определить количество положительных и отрицательных элементов таблицы aij, где i, j = 1,2, ..., n, если: Aij = sin (i + j).
C++ fputs и две переменные http://www.cyberforum.ru/cpp-beginners/thread653055.html
Всем здравствуйте. Не ругайте сильно ибо туплю по страшному. Видимо из-за полусонного состояния. Подскажите как правильно записать две переменные с помощью fputs. Пробовал fputs(i+"\t"+ArKeywords, file); но не пашет.
C++ OpenAl инициализация Помогите разобраться как Элементарно поключить OpenAl изспользую только: al.h alc.h напишите код так плиз: viod ГореИнициализация(){}; int main() { ГореИнициализация(); } Просто везде находит в инклудами #include <al.h> подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.09.2012, 16:09     Множества без STL
Это код неправильно работает ?
Код
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
#include <iostream>
using namespace std;
 
int k=0;
void addSet();
/*-------------класс Множество-----------*/
class Set
{
private:
    char element[100];
    int n;
public:
    Set()
    {
        element[0]='\0';
        n = 0;
    }
    
    Set(char s[])
    {
        strcpy(element,s);
    }
    
    void getElement()
    {
        char ch;
        do
        { 
        cout << "Введите элементы множества (Enter - выход): ";
        cin.sync();
        cin.get(ch);
        if (ch == '\n') 
        {
            cin.sync(); 
            break;
        }
        int flag = 0; // флаг дубликата
        for (int i = 0; i < n; i++) // перебор множества
        {
            if (element[i] == ch) // если найден дубликат
            {
                flag = 1;
                break;
            }
        }
        if (flag == 0) // если дубликат не найден, то добавляем элемент в множество
        {
            element[n] = ch;
            n++;
        }
        while (cin.get() != '\n');
        } while (true);
 
    }
    
    void showElements()
    {
        static int set_number=1;
        cout<<"Множество "<<set_number<<": \n";
        for (int i = 0; i < n; i++)
            cout << element[i] << endl;
        cout<<endl;
        set_number++;
    }   
    
    Set* united(Set *sets, Set *sets1)
    {
        Set *unionset = new Set;
        
        int i = 0;
        for (i = 0; i < sets -> n; i++) // если в объединении, что-то уже есть, то копируем в новое объединение
        {
            unionset -> element[i] = sets -> element[i];
            ++(unionset -> n);
        }
        for (int j = 0; j < sets1 -> n; j++, i++)
        {
                if (sets -> n == 0) // если объединение пустое, то просто добавляем в новое объединение новое множество
                {
                    unionset -> element[i] = sets1 -> element[j];
                    ++(unionset -> n);
                }
                else // если объединение не пустое
                {
                    int flag = 0; // флаг дубликата в объединении 
                    for (int p = 0; p < (unionset -> n); p++) // перебор объединения и сравнение с новым элементом
                        if (unionset -> element[p] == sets1 -> element[j]) // если найден дубликат
                        {
                            flag = 1; 
                            i--;
                            break;
                        }
                    if (flag == 0) // если дубликат не найден, то добавляем новый элемент в объединение
                    {
                        unionset -> element[i] = sets1 -> element[j];
                        ++(unionset -> n);
                    }
                }
        }
        return unionset; // возвращаем новое объединение
    }
};
 
int main()
{
    setlocale(0,"");
    addSet();
 
    system("pause");
    return 0;
}
 
/*------------Создание множеств и вывод на экран-----------*/
void addSet()
{
    Set *sets[9];
    char choice;
    
    do 
    {
        sets[k]=new Set;
        sets[k]->getElement();
        k++;
        cout<<"Желаете ли вы добавить ещё одно множество?(Y\\N)"; 
        cin >> choice;
    } while (choice =='y' || choice == 'Y');
 
    for(int i=0;i<k;i++)
    {
        sets[i]->showElements();
    }
    cout<<endl;
    cout<<"Объединение: ";   /*создал новый обьект и запомнил его номер, далее в него sets[p] нужно произвести обьединение всех существующих множеств */
    sets[k]=new Set; 
    int p=k;
    k++;
    for(int m = 0; m < k-1; m++)
        sets[p] = sets[p]->united(sets[p], sets[m]);
        
    sets[p]->showElements();
    cout<<endl;
}
Миниатюры
Множества без STL  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru