Даны n натуральных чисел. Построить круговую диаграмму для этих значений.
Может кто написать блок схему и код на с++. Или хотя бы код. За денежное вознаграждение?
Раздел: Программирование, последний комментарий: 20.05.2014 20:39 Тема закрыта пользователем Igoresha
HPEN pen = CreatePen( PS_SOLID, 3, RGB( 0, 0, 255 ) );
SelectObject( wdc, pen );
//количество элементов для вывода
const int M = min( int( m_Data.size() ), 10 );
//ищем минимум и максимум
elem mn = m_Data.front(), mx = mn;
int p = 0;
for( it i = m_Data.begin(), e = m_Data.end(); i != e && p < M; ++p, ++i )
{
mn = min( *i, mn );
mx = max( *i, mx );
}// for( it i = m_Data.begin(), e = m_Data.end(); i != e && p < M; ++p, ++i )
//масштаб элементов
const elem D = max( 1, mx - mn );
//масштаб по х
float sx = float( rc.right - rc.left ) / M;
//масштаб по у
float sy = float( rc.bottom - rc.top );
p = 0;
for( it i = m_Data.begin(), e = m_Data.end(); i != e; ++i, ++p )
{
//координаты текущей точки
Добавлено спустя 36 секунд
int x = int( p * sx );
//масштабируем значение
float val = float( *i - mn ) / D;
//вычтем из нижней границы окна,
//т.к. начало координат в левом верхнем углу окна.
int y = rc.bottom - int( val * sy );
if( !p )
MoveToEx( wdc, x, y, 0 );
else
LineTo( wdc, x, y );
}// for( it i = m_Data.begin(), e = m_Data.end(); i != e; ++i, ++p )
DeleteObject( pen );
}
Добавлено через 26 минут
Добавлено спустя 04 минуты 21 секунду
давай вознаграждение