Текстовий редактор, Кав’ярня, Графік, Діаграма, МП-3 плеєр, Погода на С++ Builder
25

        wCol = (ClientWidth - (n - 1)*MC - 20) / n;

        // початкові координати

        x = 10;

        y = ClientHeight - 20;

Знайдемо мінімальне і максимальне значення даних:

        int min, max;     // індекси мінімального і макс. значення

        min = 0;

        max = 0;

        // знайдемо мінімальне і макс. значення в масиві

        for (int i = 1; i < n; i++)

        {

                if (data[i] < data[min]) min = i;

                if (data[i] > data[max]) max = i;

        }

Далі в циклі проходимо по масиву і будуємо відповідні колонки з допомогою методу Rectangle (прямокутник), вказавши попередньо координати і бажаний колір:

  int h; // висота колонки

        Canvas->Font->Size = 10; // розмір шрифту

        // цикл по всім значенням масиву

        for ( int i = 0; i < n; i++)

        {

                // максиальна висота відповідає

                // колонці висотою РозмірФормиПоВертикалі - 100

                h = (ClientHeight - 100) * data[i]/data[max];

                // визначаємо стиль "заливки"

                Canvas->Brush->Style = bsSolid;

                // визначаємо колір

                Canvas->Brush->Color = clBlue;

                // будуємо колонку

                Canvas->Rectangle(x, y, x + wCol, y - h);

                // підписуємо данні

                AnsiString st;

                st = FloatToStrF(data[i],ffGeneral,5,2);

                st = st + " грн.";

                Canvas->Brush->Style = bsClear; // область вывода текста - прозрачная

                Canvas->TextOutA(x, y-h-20, st);

                x = x + wCol + 5;

        }