Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 00:02   #1
BOOFER
Новичок
Джуниор
 
Регистрация: 18.06.2010
Сообщений: 2
Печаль Нахождение минимума и максимума графика в Delphi

Никак не полусеться сделать программу... необходимо найти минимум и максимум графика функции и отметить их красными эллипсами! за помощ готов заплатить! заранее спасибо!
вот заготовка программы:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Tpoint_r = record
x,y:real;
end;

Tmas_Tpoint_r = array of Tpoint_r;
Tmas_Tpoint = array of Tpoint;
Tfunc = function (z:real):real;

var
Form1: TForm1;

a:Tmas_Tpoint_r;
b,c: Tmas_Tpoint_r;

an:Tmas_Tpoint;
bn,cn:Tmas_Tpoint;
min_gr,max_gr: array [1..1000] of integer;



implementation

{$R *.dfm}
function f1(x:real):real;
begin
Result:=x*sin(x);
end;

function f2(x:real):real;
begin
Result:=x*sin(x);
end;

procedure Tab(xn,xh:real; N:integer; t:Tfunc;
Var max,min:real; Var g:Tmas_Tpoint_r);
Var h,x: real; i,v1,v2,imax:integer;
begin
h:=(xh-xn)/n;
Setlength(g,n);

//min:=g[0].y;
max:=g[0].y;
For i:=0 to n-1 do
begin
g[i].x:= xn + i*h;
g[i].y := t(g[i].x);
//if g[i].y<min then min:=g[i].y;
if g[i].y>max then max:=g[imax].y;
end;

end;


procedure grafik1(g:Tmas_Tpoint_r; Var z: Tmas_Tpoint);
Var xn,xh,kyh,kxh, max1,min1,max,min,mhx,mhy: real;
kxn,kyn,i,n,imax,imin:integer;
begin
kxn:=0; kyn:=0;
n:=length(g);
xn:=g[0].x;
xh:=g[n-1].x;
kxh:=form1.Image1.width ;
kyh:=form1.Image1.Height;

max1:=g[0].y; min1:=g[0].y;
For i:=0 to n-1 do
begin
if g[i].y > max1 then
max1:= g[i].y;
if g[i].y < min1 then
min1:= g[i].y;

end;


mhx:=(kxh - kxn)/abs(xh-xn);
mhy:= (kyh - kyn)/ abs(max1-min1);
Setlength(z,n); //Setlength(s,n);
For i:=0 to n-1 do
begin
z[i].x := round((g[i].X - xn)* mhx) + kxn;
z[i].y := round ((max1 - g[i].y)* mhy) + kyn;
//s[i].x := round((k[i].X - xn)* mhx) + kxn;
//s[i].y := round ((max - k[i].y)* mhy) + kyn;
end;
Form1.Image1.Canvas.Polyline(z);
Form1.Image1.Canvas.Polyline(z);
//Form1.Image1.Canvas.Polyline(s);



for i:=1 to Length(max_gr) do begin
Form1.Image1.Canvas.brush.Color:=cl red;
Form1.Image1.Canvas.pen.Color:= clblue;
Form1.Image1.Canvas.Ellipse(z[max_gr[i]].X-12,z[max_gr[i]].Y-12, z[max_gr[i]].X+12,z[max_gr[i]].Y+12);
Form1.Image1.Canvas.MoveTo(z[max_gr[i]].X-12,z[max_gr[i]].Y-12);
Form1.Image1.Canvas.Lineto(z[max_gr[i]].X+12,z[max_gr[i]].Y+12);
Form1.Image1.Canvas.MoveTo(z[max_gr[i]].X+12,z[max_gr[i]].Y-12);
Form1.Image1.Canvas.Lineto(z[max_gr[i]].X-12,z[max_gr[i]].Y+12);

Form1.Image1.Canvas.Ellipse(z[min_gr[i]].X-12,z[min_gr[i]].Y-12, z[min_gr[i]].X+12,z[min_gr[i]].Y+12);
Form1.Image1.Canvas.MoveTo(z[min_gr[i]].X-12,z[min_gr[i]].Y-12);
Form1.Image1.Canvas.Lineto(z[min_gr[i]].X+12,z[min_gr[i]].Y+12);
Form1.Image1.Canvas.MoveTo(z[min_gr[i]].X+12,z[min_gr[i]].Y-12);
Form1.Image1.Canvas.Lineto(z[min_gr[i]].X-12,z[min_gr[i]].Y+12);
end;
end;



procedure TForm1.Button2Click(Sender: TObject);
var max,min :real;
begin
Tab(-9,9, 50,f1,max,min,c);
//Tab (-9,9,150,f2,b);
grafik1(c,cn);

end;

end.
BOOFER вне форума Ответить с цитированием
Старый 20.06.2010, 10:12   #2
Девочка-Скандал
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 42
По умолчанию

Если устраивает - стучите!
Вложения
Тип файла: rar Project1.rar (154.5 Кб, 36 просмотров)
Девочка-Скандал вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск минимума и максимума в двумерных массивах qbasic Bentli Помощь студентам 3 19.06.2010 20:00
Поиск минимума/максимума в массиве gwarthy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 28.01.2010 22:27
КАК мне поменять 2 минимума и 2 максимума Wi1D Помощь студентам 1 09.12.2008 23:58
выделение жирным шрифтом минимума и максимума из диапазона Bazzer Microsoft Office Excel 11 28.06.2008 18:50
Нахождение минимума и максимума в трехмерном массиве 1234 Помощь студентам 11 26.05.2008 16:23