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

Функции, Домино, Как!!? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ шифратор методом магического квадрато http://www.cyberforum.ru/cpp-beginners/thread432745.html
Здравствуйте. На учебе дали задание и листинг программы она шифрует текст в файле методом магического квадрата. нужно изменить ее таким оброзом,что оно должна шифровать не текст, а любые файлы побитно. // #include "stdafx.h" #include "Matrix.h" void encode(char *magicSquareFileName, char *inputFileName, char *outputFileName); // зашифровать void decode(char *magicSquareFileName, char...
C++ Поиск, считывание и замена символов в файле [C++] И снова здраствуйте! Нужно, чтобы программа находила в файле число от 0 до 5120, а после считывала оттуда данные после точки, присваивала их определенной переменной, опять считывала данные после точки, присваивала их, потом искала следующее число, и опять... И то же самое, только вместо присваивания переменной происходила бы замена определенного элемента после точки. Отрывок из кода : { ... http://www.cyberforum.ru/cpp-beginners/thread432716.html
Как сделать разные символы разных цветов [C++] C++
Здраствуйте! Мне нужно, чтобы на экран выводились символы разных цветов. Отрывок из кода : tt: switch(color) { case 1: { a++; system("color 0C");
Кто-нибудь знает, что это за ошибка? C++
Кто-нибудь знает, что это за ошибка, когда она возникает и что делать? command line error MIDL1004: cannot execute C preprocessor cl.exe
C++ Получение матрицы http://www.cyberforum.ru/cpp-beginners/thread432680.html
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "* Дана действительная матрица A i,j=1,..,n "* Получить действительную матрицуB i,j=1,...,n, "* B равен сумме элементов данной матрицы, расположенной "* в области определения А в заштрихованной области ...
C++ вычисление по формуле Себестоимость перевозки тонны груза определяется по формуле: , где Скм – переменные расходы на 1км пробега (топливо, ТО и т.д.); Счас – постоянные расходы; l – среднее плечо перевозок; – время на одну ездку; VТ – средняя скорость, от 30 до 90 км/час; q – грузоподъёмность подвижного состава; подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
30.01.2012, 21:33
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
/////////////////////////////////////////////////////////////////////////////////////////
//Написать проект, в котором случайным образом рисуется кость домино, а затем все кости, 
//которые к ней можно присоединить.
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <complex>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef int                     T_dig;
typedef std::string             T_str;
typedef std::complex<T_dig>     T_bone_value;
/////////////////////////////////////////////////////////////////////////////////////////
class  T_dominoes_bone
{
public:
    //-----------------------------------------------------------------------------------
    static const  T_dig  MIN_DIG_VAL = 0;
    static const  T_dig  MAX_DIG_VAL = 6;
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    T_bone_value   value_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_dominoes_bone
        (
            T_dig  L,
            T_dig  R
        )
        :
        value_
            (
                std::min(L, R),
                std::max(L, R)
            )
    {}
    //-----------------------------------------------------------------------------------
    bool  operator== (const T_dominoes_bone&  dominoes_bone)    const
    {
        return  value_ == dominoes_bone.value_;
    }
    //-----------------------------------------------------------------------------------
    bool  operator+ (const T_dominoes_bone&  dominoes_bone)     const
    {
        return      value_.real() == dominoes_bone.value_.real()
                ||  value_.real() == dominoes_bone.value_.imag()
                ||  value_.imag() == dominoes_bone.value_.real()
                ||  value_.imag() == dominoes_bone.value_.imag();
    }
    //-----------------------------------------------------------------------------------
    void  print()                                               const
    {
        static const T_str  s =
            "+-----------+\n"
            "| abc | ABC |\n"
            "|  d  |  D  |\n"
            "| cba | CBA |\n"
            "+-----------+\n";
        
        static const char   SPACE_SYMB              =   ' ';
        static const char   ASTERISK_SYMB           =   '*';
 
        static const T_str  symbols_for_L_dig[]     =
            {
                "",                         //0
                "d",                        //1
                "a",                        //2
 
                    symbols_for_L_dig[1] 
                +   symbols_for_L_dig[2],   //3
 
                "ac",                       //4
 
                    symbols_for_L_dig[1] 
                +   symbols_for_L_dig[4],   //5
 
                "abc"                       //6
            };
 
        T_str   res_s(s);
 
        T_str   symbols_for_replace_with_asterisk     
            =       symbols_for_L_dig           [ value_.real() ]
                +   str_to_upper
                        (
                            symbols_for_L_dig   [ value_.imag() ]
                        );
 
        std::replace_copy_if
            (
                s.begin         (),
                s.end           (),
                res_s.begin     (),            
                T_is_symb_from  (symbols_for_replace_with_asterisk),
                ASTERISK_SYMB
            );
 
        std::replace_copy_if
            (
                res_s.begin     (),
                res_s.end       (),
                res_s.begin     (),
                isalpha,
                SPACE_SYMB
            );
 
        std::cout   << res_s
                    << std::endl;
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    static T_str  str_to_upper(const  T_str&  str)
    {
        T_str  res_str;
 
        std::transform
            (
                str.begin           (),
                str.end             (),
                std::back_inserter  (res_str),
                toupper
            );
 
        return  res_str;
    }
    //-----------------------------------------------------------------------------------
    struct  T_is_symb_from
    {
        const T_str  symbols_;
        //-------------------------------------------------------------------------------
        T_is_symb_from(const T_str&  symbols)
            :
            symbols_(symbols)
        {}
        //-------------------------------------------------------------------------------
        bool  operator() (char  c) const
        {
            return  symbols_.find(c) != T_str::npos;
        }
    };
    //-----------------------------------------------------------------------------------
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    srand(unsigned(time(0)));
    std::cout   << "Случайная кость домино:"
                << std::endl;
 
    T_dig  random_L = rand() % T_dominoes_bone::MAX_DIG_VAL + 1;
    T_dig  random_R = rand() % T_dominoes_bone::MAX_DIG_VAL + 1;
 
    T_dominoes_bone  random_d
        (
            random_L,
            random_R
        );
 
    random_d.print();
 
    std::cout   << "Кости домино, которые можно приставить к случайной:"
                << std::endl;
 
    for(
        T_dig  
        L   =   T_dominoes_bone::MIN_DIG_VAL; 
        L   <=  T_dominoes_bone::MAX_DIG_VAL; 
        ++L
       )
    {
        for(
            T_dig  
            R   =   L; 
            R   <=  T_dominoes_bone::MAX_DIG_VAL; 
            ++R
           )
        {
            T_dominoes_bone  d(L, R);
            if(d == random_d)   continue;
 
            if(d + random_d)
            {
                d.print();
            }
        }
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru