IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Построение графика любой функции, Создание программы построения графика любой функции в Delphi 7
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Люди помогите преобразовать программу из Turbo Pascal в Delphi. PLZZZ.
Вот исходный код программы:
Код

Program BFGD;
Uses graph;
Var dg,dm:integer;
Function F(x:real):real;
begin
F:=x;
end;
procedure grafik(a,b:real);
var x,dx,max,min,koef:real;
k,xo,yo:integer;
begin
     dx:=(b-a)/639;
     x:=a;
     max:=f(a); min:=f(a);
for k:=1 to 640 do
     begin
          if f(x)>max then max:=F(x);
          if f(x)<min then min:=f(x);
          x:=x+dx;
     end;
     koef:=479/(max-min);
     x:=a;
     moveto(0,round(479-koef*(f(a)-min)));
     for k:=1 to 639 do
     begin
          x:x+dx;
          lineto(k,round(479-koef*(f(x)-min)));
    end;
    xo:=round(639*a/(a-b));
    line (xo,0,xo,479);
    yo:=round(479-479*(min/(min-max)));
    line(0,yo,639,yo);
end;
Begin
dg:=detect; initgraph(dg,dm,' ');
grafik(-2,2);
readln;
closegraph;
end.


Вот помогите его в Delphi преобразовать!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а в чем проблема-то?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Один в один твоя программа в делфи.

Кроме того, где-то была программа, которая стрит практически любой график функции (интерпретирует выражение), писал её кажется ещё в школе.

Сообщение отредактировано: hardcase -


Прикрепленные файлы
Прикрепленный файл  Graph.rar ( 5.05 килобайт ) Кол-во скачиваний: 990


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


hardcase
Спасибо тебе за прогу...
Я потом выложу другую прогу...
которую я доробатывал... из Паскаля в Делфи

Сможешь проверить?

Сообщение отредактировано: ManyaK -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Вот посмотри на это:
Код

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Здравствуйте, помогите написать прогу, мне надо на дельфи построить графики разных уравнений, квадратных, кубических, с модулем, с корнем квадратным, прямую и обратную пропорциональность , поможите? mega_chok.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Я написал программу... В делфи... Программа построения графика любой функции. График строится как в декартовой системе координат так и в полярной. Программа содержит 6 модулей, интерпретатор текстового поля, и хэлп проект + описанние всего сделанного в расчетно-пояснительной записки. Программа защищенна авторским правом. Если интересует то пиши мне в личку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 19.10.2017 21:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"