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

Правильно ли я написал? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Расскажите пожалуйста про флаги http://www.cyberforum.ru/cpp-beginners/thread341362.html
Доброго времени суток. Помогите пожалуйста разобраться с фалагми. Вот код: #include <iostream> #define ID_F 1001 #define ID_D 1002 #define ID_E 1003 using namespace std; int main() { int n = ID_F; if(n&ID_F)
C++ как можно ипользовать многомерный массив? Изучил массивы и стало интересно,как можно использовать многомерные массивы, в книги не написано про их использование а только упомянуто их существование. http://www.cyberforum.ru/cpp-beginners/thread341343.html
C++ Использование указателя на объект шаблонного класса в шаблонном классе.
Всем привет! Мне нужно реализовать граф. Начал с вершин и ребер, причем и ребра и вершины - шаблонные классы, для того чтобы и ребро и вершина могли содержать разные данные. В ребре указатели на 2 вершины. Класс вершины: template <class T> class Vertex { private: char* name; T data;
Точка выхода в вижуал С++ 2010 C++
В сях я нуб полнейший%-), но быстро усовершенствуюсь, и решил освоить этот язык. Вроде для начала все раздуплил. Создал ЦЛР проэкт и давай накидывать туды всякой всячины (ну типа интерфейс замутил знатный:)), жамкаю на кнопку запуска отладки...все нормально...все нормально....и туд БАБАХХХХ!!!:black_eye.: ошибка что какой-то файл спп не найден и в логе запись 1>LINK : fatal error LNK1561: точка...
C++ Unsigned integer 24 bit http://www.cyberforum.ru/cpp-beginners/thread341301.html
Как можно объявить беззнаковый integer размером в 24 бита? Если я объявлю его как битовое поле в структуре, например так: struct rgb { unsigned r:24; unsigned g:24; unsigned b:24; };
C++ Массив функций Есть функция: bool sota(a& d1, a& d2) {return 1;} Я вызываю её вот так: sort(mas->begin(), mas->end(), sota); Мне нужно сделать массив из 10 функций sota, с разными значениями return. К примеру: sota(a& d1, a& d2) {return 7;} sota(a& d1, a& d2) {return 4;} sota(a& d1, a& d2) {return 20;} подробнее

Показать сообщение отдельно
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
15.10.2011, 00:34  [ТС]     Правильно ли я написал?
Подскажите пожалуйста, как изменить этот код:

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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
int main()
{
        setlocale (LC_ALL,"Rus");
        while (1)
        {
        double neobhR;
        static double dop;                       //вспомагательная переменная
        double dopusk;
 
        cout << "Введите необходимый номинал:\n";
        cin >> neobhR;
 
        /*double tablRes[58] = {2.67, 9.09, 16, 17.6, 33.2, 39.2, 45.3, 47, 49.3,
                             49.9, 51.1, 100, 150, 200, 203, 220, 221, 240, 243,
                                         249, 270, 271, 274, 291, 300, 301, 332, 340, 360, 
                                         361, 374, 379, 422, 430, 442, 453, 470, 475, 499,
                                         620, 657, 681, 787, 931, 1000, 1130, 1150, 1200,
                                         1330, 1500, 1540, 1690, 1740, 1760, 1870, 1910,
                                         1960, 2000};*/
    double tablRes[58];
 
        ifstream fs("tablResUVR.txt");
        if (!fs.is_open() )
        {
                cerr << "could not open file" << endl;
                return 0;
        }
 
        for (int i = 0; i<52; i++)
         fs >> tablRes[i];
        fs.close();
 
        for (int i=0; i<58; i++)
        {
                dopusk = fabs(neobhR-tablRes[i]);
                dop = dopusk;
                if (dopusk <= 2)
                {
                        cout << "\nНа складе имеется необходимый номинал: " << tablRes[i] << "\n\n";
                        static double dop = dopusk;
                }
                if (dop <= 2)
                        break;
        }
 
        if(dop > 2)
        {
                cout << "Необходимый номинал можно получить\n"
                              << "соединив последовательно:\n\n";
                for (int a=0; a<58; a++)
                {
                        for (int b=0; b<58; b++)
                        {
                                double poslRes = tablRes[a]+tablRes[b];
                                double dopusk2 = fabs(neobhR-poslRes);
                                if (dopusk2 <= 3)
                                        if (tablRes[a] <= tablRes[b])
                                            cout << "   " << tablRes[a] << "  и  " << tablRes[b] << "\n\n\n";
                        }
                }
        }
        cout << "Нажмите любую клавишу для повтора, или ESC для выхода\n";
 
        if( _getch() == 0x1B ) // 0x1B - сканкод ESC
                    break; // выход из цикла
        }
    //system ("PAUSE");
    return 0;
чтобы можно было меняя количество чисел с плавающей точкой в текстовом файле, не нужно было менять код и перекомпилировать программу. Пробовал так, но пока знаний не хватает и выдает ошибку

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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cmath>
#include <vector>
 
using namespace std;
const int sizeTablRes = 10000;
 
//void raschetNominalov (const double spisok[], int col, double nRes);
void raschetNominalov (vector<double>tablRes, int col, double nRes);
 
int main()
{
    setlocale (LC_ALL, "Rus");
 
    while (1)
    {
        double neobhR;
        //static double dop;                            // вспомагательная переменная
        //double dopusk;
        //double tablRes[sizeTablRes];
        vector <double> tablRes;
 
        ifstream fs ("tablResUVR.txt");
        if (!fs.is_open())
        {
            cerr << "Не найден файл с перечнем номиналов!" << endl;
            system ("PAUSE");
            return 0;
        }
 
        for (int i = 0; i < sizeTablRes; i++)
            //fs >> tablRes[i];
            tablRes.push_back(fs);
        fs.close();
 
        int sizeSpisok = tablRes.size();
        cout << "Размер списка = " << sizeSpisok << endl;
 
        cout << "Введите необходимый номинал:\n";
        cin >> neobhR;
 
        raschetNominalov (tablRes, sizeTablRes, neobhR);
 
        cout << "Нажмите любую клавишу для повтора, или ESC для выхода\n";
        if( _getch() == 0x1B ) // 0x1B - сканкод ESC
            break; // выход из цикла
    }
    return 0;
}
 
void raschetNominalov (vector<double>tablRes, int col, double nRes)
{
    double dopusk;
    static double dop;
 
    for (int i = 0; i < col; i++)
    {
        dopusk = fabs(nRes - tablRes[i]);
        dop = dopusk;
        if (dopusk <= 3)
        {
            cout << "\nНа складе имеется необходимый номинал: " << tablRes[i] << "\n\n";
            static double dop = dopusk;
        }
        if (dop <= 3)
            break;
    }
 
    if (dop > 3)
    {
        cout << "Необходимый номинал можно получить\n"
               << "соединив последовательно: \n\n";
        for (int a = 0; a < col; a++)
        {
            for (int b = 0; b < col; b++)
            {
                double poslRes = tablRes[a] + tablRes[b];
                double dopusk2 = fabs (nRes - poslRes);
                if  (dopusk2 <= 3)
                    if (tablRes[a] <= tablRes[b])
                        cout << "    " << tablRes[a] << "  и  " << tablRes[b] << "\n\n" << endl;
            }
        }
    }
}
 
Текущее время: 19:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru