,  ,

3 - C++

> > >

 
C++ , 13- http://www.cyberforum.ru/cpp-beginners/thread666733.html
vector .. ,.. * , 13- ...
C++ , ! , , , . . ... http://www.cyberforum.ru/cpp-beginners/thread666723.html
gdi+ C++
() , , .. 10, 20, 30 .. , ? Visual Studio 2008
C++ , N
, , . , ...
C++ MFC http://www.cyberforum.ru/cpp-beginners/thread666695.html
. - MFC . , ) .. mfc 2 ( ...
C++ . MSDN , , , . // QueryKey - Enumerates the subkeys of key and its associated values. // ...

-==-
 FAQ
09.10.2012, 11:52
maSt, , , - 1 2365 G H T P L M ,
maSt
765 458 329 705 120 895
G H T P L M
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
#include <string>
#include <vector>
#include <sstream>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
 
//Äóì*þ ÿñ*î ÷òî áóäåò õð**èòü ä****ÿ ñòðêóòóð*
struct fData
{
    string digits;
    string symbols;
};
//Ôó*êöèÿ âîçâð*ù*åò ñóììó öèôð èç ïîëÿ digits
double SumDigitsInfData(fData ptr, vector<double> &values);
//Ôó*êöèÿ ïðîèçâîäèò ç*ïèñü â ïîòîê ofstream òðè ïåðâ³õ ç**÷å*èÿ èç ïîëåé 
//string digits;
//string symbols;
bool Write3FirstFields(ofstream &ofs, fData ptr, vector<double> values);
 
int main()
{
    bool bFlag = true;//Ôë*ã óñïåø*îãî ÷òå*èÿ
    string line;//Ñòðîê* ñ ä***ìè èç ô*éë*
    int nPairs = 0;//×èñëî ï*ð ñòðîê
    fData * pList = NULL;//óê*ç*òåëü ** äè**ìè÷åñêèé ì*ññèâ ñòðóêòóð fData
    double maxSum =  0;//Äóì*þ òîæå ÿñ*î - ì*êñ ñóìì* ïåðâûõ 3-õ öèôð
    int iRowMaxSum= -1;//Áóäåò õð**èòü è*äåêñ ñòðêîè ñ ì*êñ ñóììîé öèôð
    int i;//Ñ÷¸ò÷èê
    vector<double> RowValues;//âåêòîð äëÿ ç**÷å*èé ñòðîêè digits
    ofstream ofs;//Óê*ç*òåëü ** ïîòîê ç*ïèñè ìû ïðîè*èöè*ëèçèðóåì åãî ïîçæå
    ifstream ifs("input.txt");
    if(!ifs.is_open())
        cout<<"Error open input.txt"<<endl;
    else
    if(!(ifs>>nPairs))
        cout<<"Incorrect file format"<<endl;
    else
    if(!(pList = new fData[nPairs]))
        cout<<"Allocation memory error"<<endl;
    else
    {
        ifs.get();
        for(i = 0; i < nPairs && !ifs.eof() && bFlag; i++)
        {
            if(!getline(ifs,pList[i].digits)) //Ïðîáóåì ñ÷èò*òü ñòðîêó öèôð
                bFlag = false;
            else
            if(!getline(ifs,pList[i].symbols))//Ïðîáóåì ñ÷èò*òü ñòðîêó ñèìâîëîâ
                bFlag = false;
            else
            {
                cout<<"\tPair # "<<i + 1<<endl;
                cout<<"Digits : "<<pList[i].digits<<endl;
                cout<<"Symbols: "<<pList[i].symbols<<endl;
            }
        }
        if(!bFlag)
            cout<<"During parsing file errors occured"<<endl;
        else
        {
            iRowMaxSum = 0;
            //È*èöè*ëèçèðóåì maxSum ñóììîé öèôð ïåðâîé ñòðîêè
            for(i = 1; i < nPairs && bFlag; i++)
            {
                if(SumDigitsInfData(pList[iRowMaxSum], RowValues) < SumDigitsInfData(pList[i],RowValues))
                    iRowMaxSum = i;
            }
            
            cout<<"Number of Pair with max sum 1-st digits : "<<iRowMaxSum + 1<<endl;
            cout<<"Digits : "<<pList[iRowMaxSum].digits<<endl;
            cout<<"Symbols: "<<pList[iRowMaxSum].symbols<<endl;
            cout<<"Sum    : "<<SumDigitsInfData(pList[iRowMaxSum], RowValues)<<endl;
            cout<<"Numbers: "<<RowValues[0]<<" + "<<RowValues[1]<<" + "<<RowValues[2]<<endl;
            ofs.open("output.txt");
            if(!ofs.is_open())
                cout<<"Error creation output.txt"<<endl;
            else
            if(!Write3FirstFields(ofs, pList[iRowMaxSum], RowValues))
                cout<<"Error during write to file"<<endl;
            else
                cout<<"Writing OK"<<endl;
        }
        delete [] pList;//×èñòê* ï*ìÿòè
    }
    ifs.close();
    ofs.close();
    return 0;
}
 
bool bComp(double left, double right)
{
    return left > right;
}
 
double SumDigitsInfData(fData ptr, vector<double> &values)
{
    stringstream ss(ptr.digits);
    values.clear();
    double value = 0;
    for(int i = 0; !ss.eof(); i++)
    {
        if(ss>>value)
            values.push_back(value);
    }
    sort(values.begin(), values.end(), bComp);
    return values[0] + values[1] + values[2];
}
 
bool Write3FirstFields(ofstream &ofs, fData ptr, vector<double> values)
{
    int i, j;
    int indexes[3]  = {0};
    bool bFlag = 3 <= values.size();
    double val = 0;
    char symbol= 0;
    stringstream ss;
    ss.str(ptr.digits);
    cout<<"\tWrite in file"<<endl;
    for(j = (i = 0); i < 3 && bFlag && !ss.eof(); j++)
    {
        if(!(ss>>val))
            bFlag = false;
        else
        if(val == values[0] || val == values[1] || val == values[2])
        {
            indexes[i] = j;
            cout<<val<<" ";
            ofs<<val<<" ";
            i++;
        }
    }
    ofs<<endl;
    cout<<endl;
    ss.clear();//Ñáðîñèëè ôë*ã EOF
    ss.seekg(0,ios::beg);//Óñò**îâèëè óê*ç*òåëü â**÷*ëî
    ss.str(ptr.symbols);
    for(j = (i = 0); i < 3 && bFlag && !ss.eof(); j++)
    {
        if(!(ss>>symbol))
            bFlag = false;
        else  
        if(indexes[i] == j)
        {
            cout<<symbol<<" ";
            ofs<<symbol<<" ";
            i = i + 1;
        }
    }
    return bFlag;
}
1
   3      
 
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
@Mail.ru