Вход



    НОВОЕ В БИБЛИОТЕКЕ
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Составление дифференциал...
● Составление дифференциал...
● Производные высших поряд...
● Производные высших поряд...
● Дифференцирование тригон...
● Дифференцирование алгебр...
● Дифференцирование алгебр...

    НОВЫЕ ФАЙЛЫ
● Sm графики функций (beta...
● Graf_builder
● Учимся считать
● Мобильный справочник по ...
● Уникальный калькулятор
● Программа для построения...
● «Новости ПриМата» для An...
● Schedule Builder Light 2...
● График
● Sm Калькулятор


    ЛУЧШИЕ ПУБЛИКАЦИИ
● Бухаете? Тогда я иду к в...
● Считаем сумму ряда
● Новый вирус - три десятк...
● Получить кнопку ТИЦ и Pa...
● Программирование под And...
● Матричный калькулятор (3...
● Пара интересных задач
● Небольшая забава для про...
● Немного юмора для матема...
● Продержись восемнадцать ...

    ЛУЧШИЕ МАТЕРИАЛЫ
● Высшая математика. Лекци...
● Высшая математика. Лекци...
● Умножение матриц (Паскал...
● Высшая Математика. Лекци...
● Высшая математика. Лекци...
● Высшая Математика. Лекци...
● Темы курсовых работ (укр...
● Пример использования мно...
● Теория графов плюс бонус...
● Сортировка Хоара (быстра...

    10 ЛУЧШИХ ФАЙЛОВ
● Эконометрика
● Таблица производных
● Шпаргалка по высшей мате...
● Математические формулы
● Гмурман. Теория вероятно...
● Таблица интегралов
● Таблицы неопределенных и...
● Программирование на язык...
● Программирование на Си (...
● Программирование на язык...


     
 
Карта программистов

Конструктор информеров
боль в промежности Чехол книжка черный для samsung s5230 цена купить телефон. пила дисковая ручная



На сайте всего: 3
Посетителей: 3
Пользователей: 0

Создать сайт бесплатно
 БИБЛИОТЕКА УЧЕБНЫХ МАТЕРИАЛОВ 

ГЛАВНАЯ » БИБЛИОТЕКА » ПРОГРАММИРОВАНИЕ » ПРИМЕРЫ ПРОГРАММ [ ДОБАВИТЬ ]

Построение графика функции (Delphi)

unit grfunc;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
 procedure FormPaint(Sender: TObject);
 procedure FormResize(Sender: TObject);
 private
{ Private declarations }
 public
{ Public declarations }
end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

Function f(x:real):real; // Функция, график которой надо построить
begin
 f:=2*Sin(x)*exp(x/5);
end;

procedure GrOfFunc; // строит график функции
var
 x1,x2:real; // границы изменения аргумента функции
 y1,y2:real; // границы изменения значения функции
 x:real; // аргумент функции
 y:real; // значение функции в точке x
 dx:real; // приращение аргумента
 l,b:integer; // левый нижний угол области вывода графика
 w,h:integer; // ширина и высота области вывода графика
 mx,my:real; // масштаб по осям X и Y
 x0,y0:integer; // точка - начало координат

begin
// область вывода графика
 l:=10; // X - координата левого верхнего угла
 b:=Form1.ClientHeight-20; // Y - координата левого верхнего угла
 h:=Form1.ClientHeight-40; // высота
 w:=Form1.Width-40; // ширина

 x1:=0; // нижняя граница диапазона аргумента
 x2:=25; // верхняя граница диапазона аргумента
 dx:=0.01; // шаг аргумента

// найдем максимальное и минимальное значения
// функции на отрезке [x1,x2]
 y1:=f(x1); // минимум
 y2:=f(x1); // максимум
 x:=x1;
 repeat
  y := f(x);
  if y < y1 then y1:=y;
  if y > y2 then y2:=y;
  x:=x+dx;
 until (x>=x2);

 // вычислим масштаб
 my:=h/abs(y2-y1); // масштаб по оси Y
 mx:=w/abs(x2-x1); // масштаб по оси X

 // оси
 x0:=l;
 y0:=b-Abs(Round(y1*my));

 with form1.Canvas do
 begin
  // оси
 MoveTo(l,b);LineTo(l,b-h);
 MoveTo(x0,y0);LineTo(x0+w,y0);
 TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3));
 TextOut(l+5,b,FloatToStrF(y1,ffGeneral,6,3));
 // построение графика
 x:=x1;
 repeat
  y:=f(x);
  Pixels[x0+Round(x*mx),y0-Round(y*my)]:=clRed;
  x:=x+dx;
 until (x>=x2);
end;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
 GrOfFunc;
end;

// изменился размер окна программы
procedure TForm1.FormResize(Sender: TObject);
begin
 // очистить форму
 form1.Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
 // построить график
 GrOfFunc;
end;

end.






Просмотров [ 19123 ]  ●  27.02.08  ●   Рейтинг  [ 78% ]


Комментариев: [ 24 ]1 2 »

0  
ыыыы  ● 07.11.11
кто знает как скачать этот пример построения графиков функций в delphi ??


-1  
admin  ● 07.11.11
левой кнопкой мышки копируешь..


0  
ыыыы  ● 07.11.11
не копируется


0  
ыыыы  ● 07.11.11
и может не левой а правой


0  
Критик  ● 26.05.11
Код корявый на самом деле и взят из книжек Культина и ещё некоторых авторов,где те же самые косяки.Очевидно,что код не проработан нормально,так как функцию беруют от одной и той же точки,что нелепо это называть минимумом и максимумом функции.Кроме того,ещё и обнаруживается ошибка в присваемых значениях иксу.


0  
Иван  ● 20.02.11
Кривой код


+1  
admin  ● 20.02.11
ну так подправь, если что не нравится


0  
Зубодробил  ● 27.09.10
Програмка жесть


0  
ХЗ  ● 17.12.09
Тут лазает вообще кто? мне надо сделать тоже самое только чтобы переменые у Икса я сам вводил ну через Тлабел или типа того.
Кто говорил что пустой экран выводит? просто береш процедуру что после функции идет и чуешь её в процедуру которая происходит при нажатии кнопки и всё оки доки =)


0  
Ruzvelt  ● 09.12.09
хорошая програмка


0  
Ruslan  ● 15.11.09
ха-ах-ах-ха-а... это ж задача с моей лабы :D :D :D :D :D :D


0  
serg  ● 19.10.09
Господа, вопрос из танка: а чего это оно у меня в delphi 6 выдает пустую форму, и как лечить?


0  
Воткин  ● 02.10.09
А еще если x1 поставить <0 то нихрена не работает


0  
Воткин  ● 01.10.09
Все бы хорошо, только вот переменные вместо a,b,c,y1 и тд лучше бы называли осмысленно, вроде ymax и тд


1-10 11-20


  Ваше Имя  



   





Украинская Баннерная Сеть