Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Настройка формы






    Панель диалога программы с получеными результатами представлена на рис. 9.2.

    Рис. 9.2

     

    Текст программы, реализующий поставленную задачу, может иметь следующий вид:

    ...

    //---------------------------------------------------------------------------

    double a, b, h, y_min, y_max;

    int n;

    typedef double (*Tfun)(double);

    Tfun f;

    double fun0(double);

    double fun1(double);

    double fun2(double);

    //----------------------------------------------------------------------------

    void __fastcall TForm1:: FormCreate(TObject *Sender)

    {

    Edit1-> Text=" -3, 1416"; // a

    Edit2-> Text=" 3, 1416"; // b

    Edit3-> Text=" 50"; // n

    RadioGroup1-> ItemIndex = 0;

    }


    //----------------- Задать начальные значения ------------------------

    void __fastcall TForm1:: Button1Click(TObject *Sender)

    {

    double x, r;

    a=StrToFloat(Edit1-> Text);

    b=StrToFloat(Edit2-> Text);

    n=StrToInt(Edit3-> Text);

    h = (b-a)/n;

    switch(RadioGroup1-> ItemIndex) {

    case 0: f = fun0; break;

    case 1: f = fun1; break;

    case 2: f = fun2; break;

    }

    y_min = y_max = f(a);

    for (x = a+h; x< =b; x+=h) {

    r = f(x);

    if(y_min> r) y_min = r;

    if(y_max< r) y_max = r;

    }

    }

    //------------------------ Построить график в Chart ----------------------------

    void __fastcall TForm1:: Button2Click(TObject *Sender)

    {

    Chart1-> Series[0]-> Clear(); // Очистка графика

    for(double x=a; x< =b; x+=h)

    Chart1-> Series[0]-> AddXY(x, f(x));

    }

    //--------------------- Копировать в буфер ----------------------------------------

    void __fastcall TForm1:: Button3Click(TObject *Sender)

    {

    Chart1-> CopyToClipboardMetafile(True);

    }

    //--------------------- Построить график в Image ---------------------------

    void __fastcall TForm1:: Button4Click(TObject *Sender)

    {

    int xmax, ymax, xt, yt, y0, x0;

    double hx, hy, x;

    Image1-> Canvas-> Pen-> Color=clBlack; // Установка цвета пера

    // Поиск координат правого нижнего угла холста Image

    xmax = Image1-> Width; ymax = Image1-> Height;

    // Закрашивание холста Image текущей белой кистью

    Image1-> Canvas-> Rectangle(0, 0, xmax, ymax);

    // Поиск середины холста

    y0=ymax/2; x0=xmax/2;

    // Вычерчивание координатных линий

    Image1-> Canvas-> MoveTo(0, y0);

    Image1-> Canvas-> LineTo(xmax, y0);

    Image1-> Canvas-> MoveTo(x0, 0);

    Image1-> Canvas-> LineTo(x0, ymax);

    Image1-> Canvas-> Pen-> Color=clRed; // Установка цвета пера

    Image1-> Canvas-> Pen-> Width=2; // Установка ширины пера

    // Поиск шагов по х и у с масштабированием

    hx=(b-a)/xmax; hy=(y_max-y_min)/ymax;

    Image1-> Canvas-> MoveTo(ceil(x0+a/hx), ceil(y0-f(a)/hy));

    for(x=a; x< =b; x+=h)

    Image1-> Canvas-> LineTo(ceil(x0+x/hx), ceil(y0-f(x)/hy));

    }

    //------------------------------------------------------------

    double fun0(double r) {

    return sin(r);

    }

    double fun1(double r) {

    return r*r;

    }

    double fun2(double r) {

    return r*r*r;

    }

     

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.