![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Prutvel |
![]()
Сообщение
#1
|
Школьник ![]() Группа: Продвинутые Сообщений: 34 Регистрация: 7.3.2010 Город: Тюмень Вы: студент ![]() |
Помогите построить график на любом языке программирования - на паскале или делфи и т.д. - хоть где-нибудь, или блок-схемку накидайте, плиззз...
Надо просто по отрезкам построить вот эту функцию: Эскизы прикрепленных изображений ![]() |
tig81 |
![]()
Сообщение
#2
|
Академик ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 15 617 Регистрация: 15.12.2007 Город: Украина, Запорожье Учебное заведение: ЗНУ Вы: преподаватель ![]() |
Правила форума
Ваши наработки где? |
Prutvel |
![]()
Сообщение
#3
|
Школьник ![]() Группа: Продвинутые Сообщений: 34 Регистрация: 7.3.2010 Город: Тюмень Вы: студент ![]() |
Мои наработки:
unit Unit1; interfaceace uses Classes,SysUtils,LResources,Forms,Graphics,Dialogs,Extctrls,Stdctrls; function I(t:real):real; procedure Graphica (a,b:real); type TForm1=class(TForm); Button1: TButton; Image1: TImage; procedure ButtonClick(Sender:TObject); procedure FormCreate(Sender:TObject); private public end; const Im=0.57,tau=0.062; L=0.1; f1=5.37; f2=8.06; var Form1: TForm1; t0,y0,tk,yk,a,b:real; t,y:array[0..1000] of real; u,v:array [0..1000] of integer; N:integer; implementation functiion I(t:real):real; begin T1:=1/f1; T2:=1/f2; T:=T1+T2; if mod(t,T)<tau then Result:=Im; if (mod(t,T)>=tau) and (mod(t,T)<T1) then Result:=-Im; if (mod(t,T)>=T1) and (mod(t,T)<(T1+tau)) then Result:=Im; if (mod(t,T)>=(T1+tau) and (mod(t,T)<T) then Result:=-Im; end; procedure Graphica(a,b:real); const kt=5;ky=5; var dt,dy,c,d,g,h,max,min:real; i,tempt,tempy:integer; s:string; begin h:=(b-a)/(N-1); t[0]:=a;y[0]:=I(t[0]); for i:=1 to N do begin t[i]:=t[i-1]+h; y[i]:=I(t[i]); end; max:=y[0]; min:=y[0]; for i:=1 to N do begin if y[i]>max then max:=y[i]; if y[i]<min then min:=y[i]; end; c:=(Form1.Image1.ClientWidth-t0-tk)/(b-a); d:=t0-c*t[0]; g:=(Form1.Image1.ClientHeight-y0-yk)/(min-max); h:=yk-g*max; for i:=1 to N do begin u[i]:=trunc(c*x[i]+d); v[i]:=trunc(g*y[i]+h); end; Form1.Image1.Canvas.Color:=clGray; Form1.Image1.Canvas.Pen.Mode:=pmNot; Form1.Image1.Canvas.MoveTo(u[0],v[0]); Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clGreen; for i:=1 to N do Form1.Image1.Canvas.LineTo(u[i],v[i]); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack Form1.Image1.Canvas.MoveTo(trunc(t0),trunc(h)); if (trunc(h)>yk) and (trunc(h)<trunc(Form1.Image.ClientHeight-y0)) then Form1.Image1.Canvas.LineTo(trunc(Form1.Image1.ClientWidth-tk),trunc(h)); Form1.Image1.Canvas.MoveTo(trunc(d),trunc(yk)); if (trunc(d)>0) and (trunc (trunc(d),trunc(Form1.Im ag1.ClientHeight-y0)); dt:=(Form1.Im age1.ClientWidth-t0-tk)/KT3; for i:=0 to KT3 do begin if (i=0) or (i=KT3) then Form1.Image1.‘anvas.Pen.Style:=psSolid else Ferm1.Image1.Canvas.Pen.Style:=psDash; Form1.Image1.Canvas.MoveTo(trunc(t0+i*dt),trunc(yk)); Form1.Image1.Canvas.LineTo(trunc(t0+i*dt),trunc(Form1.Image1.ClientHeight-y0)); end; dy:=(Form1.Image1.ClientHeight-y0-yk)/KY; for i:=0 to KY do begin if (i=0) or (i=KY) then Form1.Image1.‘anvas.Pen.Style:=psSolid else Form1.Image1.‘anvas.Pen.Style:=psDash; Form1.Image1.‘anvas.MoveTo(trunc(t0),trunc(yk+i*dy)); Form1.Image1.‘anvas.LineTo(trunc(Form1.Image1.ClientWidth-tk),trunc(yk+i*dy));end; Form1.Image1.‘anvas.Pen.Style:=psSolid; dt:=(b-a)/KT3; tempy:=trunc(Form1.Image1.ClientHeight-y0+1); for i:=0 to KT3 do begin str(a+i*dt:5:2,s); tmpt:=trunc(t0+i*(Form1.Image1.ClientWidtg-t0-tk)/KT3-1; Form1.Image1.‘anvas.TextOut(trunc(d)-5,tempy,'0'); dy:=(max-min)/KY; tempt:=5; for i:=1 to KY do begin str(ma x-i*dy:5:2,s); tempy:=trunc(yk-5+i*( Form1.Image1.ClientHeight-y0-yk)/KY); Form1.Image1.‘anvas.TextOut(tempt,tempy,s);end; if (trunc(h)>yk) and trunc(h)<Form1.Image1.ClientHeight-1) then Form1.Image1.‘anvas.TextOut(tempt+1,trunc(h)-5,'0'); tempt:=trunc(t0+i*( Form1.Image1.ClientWidth-t0-tk)/2); Form1.Image1.‘anvas.TextOut(temp1,'График');end; procedure TForm1.FormCreate(Sender:TObject); var s:string; kod:integer; begin N:=300,t0:=40;y0:=40;tk:=40; yk:=40; s:=InputBox('введите левую границу',-1); val(s,a,kod=0; until kod=0 repeat s:=InputBox('Введите правую границу','1') val(s,b,kod) until kod=0; end; procedure TForm1.ButtonClick(Sender:YObject); begin Graphica(a,(IMG:style_emoticons/default/cool.gif); end; Initialization; end. но ничего не выходит, понятно? И вообще ваш форум - фикция какая-то. Вот в частности вы - постоянно задаете ненужные вопросы, а по делу никогда ничего не говорите. |
tig81 |
![]()
Сообщение
#4
|
Академик ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 15 617 Регистрация: 15.12.2007 Город: Украина, Запорожье Учебное заведение: ЗНУ Вы: преподаватель ![]() |
но ничего не выходит, понятно? не, мы тормоза. Цитата И вообще ваш форум - фикция какая-то. Так чего тогда сюда пишите? Цитата Вот в частности вы - постоянно задаете ненужные вопросы, а по делу никогда ничего не говорите. Ну а что поделаешь, какой форум, такие и преподаватели. А так сказали, кто первый наберет 10 тыс. сообщений, тот получит приз. А как их еще набрать? Правила форума Цитата - Запрещается обсуждение в топике действий администратора или модератора. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 19:34 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru