|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.06.2010, 00:02 | #1 |
Новичок
Джуниор
Регистрация: 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. |
20.06.2010, 10:12 | #2 |
Пользователь
Регистрация: 16.06.2010
Сообщений: 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 |