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

Операторы цикла, целочисленные типы данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу, которая считывает текст из файла http://www.cyberforum.ru/cpp-beginners/thread106932.html
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз встретилось в тексте.
C++ Наследование оператора '=' Ситуация такая: пишу класс 3-мерного вектора, предварительно создав шаблон n-мерного вектора (ибо далее таким же макаром нужно соорудить и 2- и 4- мерные со своими плюшками): template <int DimensionsNum> class VectorXD { ... } class Vector3D : public VectorXD<3> http://www.cyberforum.ru/cpp-beginners/thread106539.html
Копия процесса C++
Чего надо написать под студией, чтоб полученная прога при запуске копии, что этот экземпляр непервый, но не закрывалась, а читала в массив HWNDы главных окон всех ранее запущенных экземпляров и посылала туда мессагу для добавления в такие же массивы HWNDа её собственного главного окна?
C++ Прототипы
class A { ... public: type operator = (...); // Какой здесь type? A или A &? type operator + (...); // Какой здесь type? A или A &? type operator - (...); // Какой здесь type? A или A &? type operator * (...); // Какой здесь type? A или A &? type operator / (...); // Какой здесь type? A или A &? type operator += (...); // Какой здесь type? void, A или A &?
C++ Бинарные файловые потоки http://www.cyberforum.ru/cpp-beginners/thread106377.html
Существует ли стандартный вариант? Как обозван тип такого потока для записи? Для чтения? Чтоб бинарники писать операторами типа so<<d; (so - поток, d - данное любого типа), а читать si>>d; (si - поток).
C++ Состояние файлового потока .... fostream log; .... class A { public: A (); }; A::A() { подробнее

Показать сообщение отдельно
Зоти Сергей
 Аватар для Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
22.03.2010, 14:41     Операторы цикла, целочисленные типы данных
ну... как - то так, короче.
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#include <iostream.h>
#include <conio.h>
#define ESC 27
#define ENTER 13
#define BACKSPACE 8
#define UPPER_RANGE 32765
#define LOWER_RANGE -32765
#include <vector.h>
//---------------------------------------------------------------------------
struct CDigitList
{
        CDigitList * Next;
        int Digit;
        int Num;
};
CDigitList * DigitList;
vector <char> CharacterVector;
//---------------------------------------------------------------------------
CDigitList * GetDigitFromList(int Index)
{
        CDigitList * TempDigit = DigitList;
        while(TempDigit)
        {
                if(TempDigit->Num==Index)
                {
                        return TempDigit;
                }
                TempDigit=TempDigit->Next;
 
        }
        return NULL;
}
//---------------------------------------------------------------------------
void AddDigitToList(int NewDigit)
{
        int Num=0;
        CDigitList * NewEllement = new CDigitList;
        CDigitList * TempDigit = DigitList;
        if(DigitList)
        {
                Num=DigitList->Num;
                while(TempDigit->Next)
                {
                        TempDigit=TempDigit->Next;
                        Num=TempDigit->Num;
                }
                TempDigit->Next=NewEllement;
                TempDigit=NewEllement;
        }
        else
        {
                Num=0;
                DigitList=TempDigit=NewEllement;
        }
        if(TempDigit)
        {
                TempDigit->Next=NULL;
                TempDigit->Num=Num+1;
                TempDigit->Digit=NewDigit;
        }
}
//---------------------------------------------------------------------------
bool Check(int RecDigit)
{
        int Summ=0;
        for(int i=1;i<RecDigit;i++)
        if(!(RecDigit%i))
        {
                Summ+=i;
        }
        return Summ==RecDigit;
}
//---------------------------------------------------------------------------
bool InputNumber(int&EnteredDigit)
{
        char PressedButton;
 
        do
        {
                PressedButton=getch();
                clrscr();
                if(PressedButton==BACKSPACE)
                {
                        CharacterVector.erase(&CharacterVector[CharacterVector.size()-1]);
                }
                else
                {
                        if(PressedButton!=ESC)
                        {
                                CharacterVector.push_back(PressedButton);
 
                        }
                }
                for(int i=0;i<(int)CharacterVector.size();i++)
                        printf("%c",CharacterVector[i]);
                if(PressedButton==ENTER)
                {
                        EnteredDigit = atoi(&CharacterVector[0]);
                        break;
                }
 
        }while(PressedButton!=ESC);
        CharacterVector.clear();
        return PressedButton!=ESC;
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        int EnteredDigit=0;
        CharacterVector.clear();
        int PerfectSumm=0;
        int MaxValue=LOWER_RANGE;
        int MinValue=UPPER_RANGE;
        bool IsEnter;
        int NumberofDigits=0;
        int NumberOfPerfectDigits=0;
        int NumberOfNotPerfectDigits=0;
        while(true)
        {
                IsEnter=InputNumber(EnteredDigit);
                if(IsEnter)
                {
                        if(EnteredDigit>UPPER_RANGE||EnteredDigit<LOWER_RANGE)
                        {
                                printf("OUT OF RANGE!!!\n");
                                continue;
                        }
                        printf("New Digit Added: %d",EnteredDigit);
                        AddDigitToList(EnteredDigit);
                        NumberofDigits++;
                }
                else
                        break;
        }
        clrscr();
        for(int i=1;i<=NumberofDigits;i++)
        {
                int CurrentValue=GetDigitFromList(i)->Digit;
                if(Check(CurrentValue))
                {
                        if(CurrentValue>MaxValue)
                                MaxValue=CurrentValue;
                        if(CurrentValue<MinValue)
                                MinValue=CurrentValue;
                        PerfectSumm+=CurrentValue;
 
                        NumberOfPerfectDigits++;
                }
                else
                {
                        PerfectSumm-=CurrentValue;
                        NumberOfNotPerfectDigits++;
                }
        }
        if(NumberOfPerfectDigits)
        {
                printf("Amount of Perfect digits: %d\n",NumberOfPerfectDigits);
                printf("SUMM of Perfect digits: %d\n",PerfectSumm);
                printf("MAX Perfect digit: %d\n",MaxValue);
                printf("MIN Perfect digit: %d\n",MinValue);
        }
        printf("Amount of Not-Perfect digits: %d\n",NumberOfNotPerfectDigits);
        getch();
 
        if(NumberofDigits)
        {
                for(int i=NumberofDigits;i>0;i--)
                        delete GetDigitFromList(i)->Next;
                delete GetDigitFromList(1);
        }
        return 0;
}
//---------------------------------------------------------------------------
 
Текущее время: 15:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru