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

Подскажите) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что должен знать начинающий программист? http://www.cyberforum.ru/cpp-beginners/thread164246.html
что нужно знать и уметь чтобы устроиться на работу программистом стажёром C++ ???
C++ Количество равных чисел На самом деле задачка простая, и спрашивать стыдно. Но дело то ли в моей недалекоглядности, то ли преподавателя. Суть такая: есть 4 числа, нужно посчитать, сколько из них одинаковые. Если все равные, вывести 1. Самым тупым способом писал так: if ((a==b)&&(b==c)&&(c==d)) p=4; else if ( ((a==b)&&(b==c)) || ((a==b)&&(b==d)) || ((a==c)&&(c==d)) || ((b==c)&&(c==d)) ) p=3; else if... http://www.cyberforum.ru/cpp-beginners/thread164237.html
C++ Цвет строки
Покажите пожалуйста код для выведения строки/текста нужного цвета (в терминале разумеется, не смотря на основной цвет)
Найти в каждом столбце матрицы G элементы, которые больше числа А и меньше числа С C++
Привет. Помогите написать программку Найти элементы в каждом столбце матрицы G размером 7х4, которые больше числа А и меньше числа С. Определить количество таких элементов. Числа А = -2 и С = 3.5 ввести с клавиатуры. Масив G должен создаваться рандомно. И главное. Программа должна иметь указатели, адреса. Нужно на C. Зарание спс.
C++ индексы и итераторы http://www.cyberforum.ru/cpp-beginners/thread164210.html
какая связь между индексами и итераторами. например, есть вектор. итератор р указывает на елемент со значением 5. как узнать индекс этого елемента.
C++ разница в местоположении функции есть ли разница где писать, в начале или в конце кода? например: #include <blabla> int a(int b, int c) { blabla } int main() { int a, b; подробнее

Показать сообщение отдельно
GLEB011
0 / 0 / 0
Регистрация: 08.09.2010
Сообщений: 3
08.09.2010, 11:15     Подскажите)
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
#include "main.h"
 
int Cycle;
 
#define MakeEven( _num ) ( _num & 0xFE )
#define Rand( _num ) (_num ? rand( ) % _num : 0)
#define EvenRand( _num ) ( Rand( _num ) & 0xFE )
#define EvenMax( _num ) ( _num & 0xFE ) 
#define EvenAverage( _num ) ( ( EvenMax( _num ) / 2 ) & 0xFE )  
#define OddRand( _num ) ( Rand( _num ) | 0x01 )
#define Randomize( ) ( srand( ( unsigned ) time( NULL ) ) )
 
inline int OddBetween( int N1, int N2 )
    {  int T;  return ( T = OddRand( N2 ) ) > N1 ? T : OddBetween( N1, N2 );  }
inline int EvenBetween(int N1, int N2)
    {  int T;  return ( T = EvenRand( N2 ) ) > N1 ? T : EvenBetween( N1, N2);  }
inline int GetDirection( int width )
    {  
    int Z = Rand( 4 );
    return ( Z == 0 ? -1 : Z == 1 ? 1 : Z == 2 ? width : -width );  }
int GetRandom( int width, int height, int *x )
    {
        int Row, Col;
        Row = EvenBetween( 0, height );
        Col = EvenBetween( 0, width );
        *x = width * Row + Col;
        if( ( *x % width ) % 2 != 0 )
            GetRandom( width, height, x );
        return Cycle--;
    }
 
 
void Labirint::GenLabirint( )
    {
        std::string StrBuffer;
        std::stringstream sstrBuff;
        
        system( "cls" );
        std::cout << "\nЗАДАНИЕ РАЗМЕРА ЛАБИРИНТА\n[цифра или 'Q' для перехода в меню]\n\n";
        
        bool IsInput = true;
        while( IsInput )
            {
                StrBuffer = "";
                std::cout << "   ВЫСОТА:\t\t";  std::cin >> StrBuffer;
                if( CheckInput( StrBuffer ) )
                    {
                        if( StrBuffer == "q" || StrBuffer == "Q" )
                            {  IsInput = false; continue;  }
                        else
                            {  sstrBuff.clear( );  sstrBuff << StrBuffer;  sstrBuff >> Height;  Height = MakeEven( Height );  }
                    }
                else continue;
                
                StrBuffer = "";
                std::cout << "   ШИРИНА:\t\t";  std::cin >> StrBuffer;
                if( CheckInput( StrBuffer ) )
                    {
                        if( StrBuffer == "q" || StrBuffer == "Q" )
                            {  IsInput = false; continue;  }
                        else
                            {  sstrBuff.clear( );  sstrBuff << StrBuffer;  sstrBuff >> Width;  Width = MakeEven( Width );  }
                    }
                else continue;
                    
                StrBuffer = "";
                std::cout << "   КОЛИЧЕСТВО СТЕН:\t";  std::cin >> StrBuffer;
                if( CheckInput( StrBuffer ) )
                    {
                        if( StrBuffer == "q" || StrBuffer == "Q" )
                            {  IsInput = false; continue;  }
                        else
                            {  sstrBuff.clear( );  sstrBuff << StrBuffer;  sstrBuff >> WallNum;    }
                    }
                else continue;
                
                if( Height == 0 || Width == 0 )
                    { std::cout << "ОШИБКА:  Неверно заданы размеры лабиринта, повторите ввод\n\n"; continue; }
                WallNum = WallNum == 0 ? 70 : WallNum;
                
                Height++;  Width++;
                ArrSize = Height * Width;
                ARRAY = new unsigned char [ ArrSize ] ( );
                
                CreateBorder( );
                CreateDoors( );
                Randomize( );       // Инициализация рандома
                
                int X = 0, Z = 0;
                Cycle += ArrSize + ArrSize / 2;
                while( GetRandom( Width, Height, &X ) > 0 )
                    {
                        if( ARRAY[ X ] == 1 ) continue;
                        Z = GetDirection( Width );
                        do  // Здесь мы строим стену
                            {               
                                if( ARRAY[ X ] == 0 ) ARRAY[ X ] = 1; 
                                X += Z; 
                                if( Rand( 100 ) > WallNum ) break;   
                            }
                        while( ARRAY[ X ] == 0 );
                    }               
                IsInput = false;
                IsGenerated = true;
            }
 
        Display( );
        std::cout << "\n";
        system( "pause" );
    }
 
 
void Labirint::CreateBorder( )
    {
        unsigned char *TempArr = ARRAY;
        for( TempArr; TempArr - ARRAY < ArrSize; TempArr++ )
            {
                if( ( TempArr - ARRAY ) < Width ||                      // Определение первой строки
                     ( TempArr - ARRAY ) % Width == 0 ||                    // Определение левой стороны
                     ( TempArr - ARRAY ) % Width == Width - 1 ||        // Определение правой стороны
                     ( TempArr - ARRAY ) > Width * ( Height - 1 ) ) // Определение нижней границы
                      *TempArr = 1;
            }
    }
 
void Labirint::CreateDoors( )
    {
        int T;
      do { T = OddBetween( 0, Width ); }  while( T == 0 || T == Width );
      ARRAY[ T ] = 0xAA;    // вход
      do { T = OddBetween( ArrSize - Width, ArrSize ); }  while( T == ArrSize || ARRAY[ T ] == 0 );
      ARRAY[ T ] = 0xFF;    // выход
    }
обьясните турику что тут сначало деляется для чего define что такое int Cycle и так далее))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru