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

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

           y = y0 - (ClientHeight - 90) * (data[i] - data[min])/(data[max] - data[min]) - 10;

           // малюємо квадрат (точку на графіку)

           // розміром 4 пікеля

           Canvas->Rectangle(x-2,y-2,x+2,y+2);

           // якщо не перша точка

           if (i != 0)

                Canvas->LineTo(x,y); // малюємо лінію між точками

 

           // підпис даних

           if ( ( i == 0) || (data[i] != data[i-1]))

           {

                AnsiString st;  // допоміжна змінна

                // приводимо значення точки

                // до строкового типу

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

                // виводимо підпис змістивши текст

                // на 20 пікселів по осі Y

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

                // повертаємо попередні координати

                Canvas->MoveTo(x,y);

                x += dx;  // придаємо зміщення

           }

      }

Основний алгоритм роботи циклу такий: проходимо по всім значенням масиву, будуємо квадрат (точку) на поверхні форми; якщо це не перша точка то з’єднуємо дві сусідні точки лінією; підписуємо данні використовуючи метод TextOutA об’єкту Canvas форми, дещо змістивши текст відносно точки.

Приклад роботи програми: