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

Паркет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Link error на inline функцию http://www.cyberforum.ru/cpp-beginners/thread162841.html
Почему выдает ошибку undefined reference to `OldCat::GetAge() const' на inline ф-цию при ее вызове? Убираю inline, все компилится нормально. Функция простая: inline int OldCat::GetAge() const { cout << "Calling function GetAge..." << endl; return itsAge; }
C++ Какая должна быть структура сложного (объемного) проекта? Работа программы начинается с выполнения функции main(). В самой программе куча функций и классов. Как организовать структуру достаточно сложного проекта (программы), чтобы не "утонуть" в ней? Насколько я понимаю, удобнее всего каждый осмысленный блок выделять в отдельный файл + хедеры также отдельным блоком, чтобы не мешались :) То есть получается нечто такое: main.cpp - укрупненная логика... http://www.cyberforum.ru/cpp-beginners/thread162804.html
C++ #include <list> - конфликт using namespace std с другими инклюдами
Всем привет. Появилась надобность использовать списки, однако #include <list> подключается только вместе с using namespace std. Мои инклюды #pragma once #include "network.h" #include <d3dx9.h> #include "L_text.h" #include "L_smesh.h" #include "L_camera.h" #include "L_terrain.h"
C++ WMI и Dev-C++
Мне нужно узнать объем видеопамяти на эту тему на гуглил что нужно использовать Win32_VideoConfiguration Class, но компилятор ругается на кучу ошибок даже на этом примере http://msdn.microsoft.com/en-us/library/aa390423(v=VS.85).aspx
C++ Стражи включения http://www.cyberforum.ru/cpp-beginners/thread162772.html
Что значат эти строчки, #ifndef _CIRCL_H #define _CIRCL_H #endif /* _CIRCL_H */ понял так: если не дефинирована _CIRCL_H
C++ Римская система счисления. Всем здравствуйте! Очень нужна помощь в написании программы по переводу из римской системы счисления в арабскую на языке СИ. Я в этом почти ничего не понимаю. Заранее спасибо! подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.09.2010, 09: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
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
#include <iostream>
#include <map>
#include <set>
#include <sstream>
#include <string>
//-----------------------------------------------------------------------------
typedef std::string           T_str;
typedef std::map<T_str, int>  T_count_parquet_cells;
typedef std::multiset<int>    T_rectangles_sizes;
 
const int PARQUET_BLOCK_SIZE = 5;
//-----------------------------------------------------------------------------
T_str  int_to_str(int n)
{
    std::ostringstream  sout;
    sout << n;
    return sout.str();
}
//-----------------------------------------------------------------------------
T_str  parquet_coords_to_str(int x, int y)
{    
    int i = y / PARQUET_BLOCK_SIZE;
    int j = x / PARQUET_BLOCK_SIZE;                
    int n = ((i + j) % 2 == 0 ? y : x ) % PARQUET_BLOCK_SIZE;
    return int_to_str(i) + " " + int_to_str(j) + " " + int_to_str(n);
}
//-----------------------------------------------------------------------------
struct T_point
{
    int x;
    int y;
};
//-----------------------------------------------------------------------------
void count_rectangles(T_point  left_below, T_point  right_above)
{
    T_count_parquet_cells  count_parquet_cells;
    for(int x = left_below.x; x < right_above.x; ++x)
    {
        for(int y = left_below.y; y < right_above.y; ++y)
        {
            ++count_parquet_cells[parquet_coords_to_str(x, y)];
        }
    }
    
    T_rectangles_sizes  rectangles_sizes;
    for(T_count_parquet_cells::const_iterator it = count_parquet_cells.begin(); 
        it != count_parquet_cells.end(); ++it)
    {    
        rectangles_sizes.insert(it->second);              
    }
    std::cout << std::endl
              << "В заданной области содержится прямоугольников:"
              << std::endl; 
    for(int i = 1; i <= PARQUET_BLOCK_SIZE; ++i)
    {
        std::cout << "размером 1 x "
                  << i 
                  << ": "
                  << rectangles_sizes.count(i)                  
                  << " шт."
                  << std::endl;
    }
    std::cout << std::endl;
}
//-----------------------------------------------------------------------------
int main()
{
    std::locale::global(std::locale(""));
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << "Введите координаты левой нижней точки области паркета:"
                  << std::endl;
 
        T_point  left_below;
        std::cout << "X = ";
        std::cin >> left_below.x;
        std::cout << "Y = ";
        std::cin >> left_below.y;
 
        std::cout << std::endl
                  << "Введите координаты правой верхней точки области паркета:"
                  << std::endl;
 
        T_point  right_above;
        do
        {
            std::cout << "X = ";
            std::cin >> right_above.x;        
        }while(right_above.x < left_below.x);
 
        do
        {
            std::cout << "Y = ";
            std::cin >> right_above.y;        
        }while(right_above.y < left_below.y);
        
        count_rectangles(left_below, right_above);
    }   
    return 0;
}
 
Текущее время: 14:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru