Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тапсырма №4. Мұнда негізгі жұмысты graficfun процедурасы орындайды
Мұ нда негізгі жұ мысты graficfun процедурасы орындайды. Алдымен [x1, x2] аралығ ындағ ы функцияның ең ү лкен (y2)жә не ен кіші (y1) мә ндері есептеледі. Grarficfin процедурасын шығ ару OnPainr оқ иғ а ө ндеушісінің TFormI. Form Paint процедурасын шақ ыру арқ ылы орындалады. Ол ү шін FormI – l3 екпінді жасап, оқ иғ алар бетінен On Paint оқ иғ асын тышқ анмен жылдам екі рет белгілеу жеткілікті. Ал, форманың ө лшемі ө згергеннен кейін графикті сызу ү шін TFormI. FormResize процедурасы пайдаланылады. Ол оқ иғ алар бетінен OnResize оқ иғ а ө рісін тышқ анмен жылдам екі рет белгілеу арқ ылы алынады. Программа мә тіні тө мендегіней. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormPaint (Sender: TObject); procedure Form Resize (Sender: TObject); private {Private declarations} public {Public declarations} end; var Form 1: TForm1; implementation {$R *.dfm} procedure graficfun; var x1, x2: real; y1, y2: real; x, dx.y: real; 1, b: integer; w, h: integer; mx, my: real; x0y0: integer; function f (x: real): real; begin f: =2*sin(x) *exp(x/5); end; begin 1: =10; b: =Form1.ClientHeight-20; h: =Form1.ClientHeight-40; w: =Form1. ClientHeight-40; x1: =0; x2: =25; dx: =0.01; y1: =f(x1); y2: =f(x2); x: =x1; y0: =60; 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); mx: =w/abs(x2-x1); x0: =1; y: =b-abs(round(y1*my)); with form1.canvas do begin MoveTo(1, b); LineTo(1, b-h); MoveTo(x0, y0); LineTo(x0+w, y0); x: =x1; repeat y: =f(x); form1.canvas.Pixels[x0+round(x*mx), y0-round(y*my)]: =clred x: =x+dx; until(x> =x2); end; end; procedure TForm1.FormPaint(Sender: TObject); begin graficfun; end; procedure TForm1.FormResize (Sender: TObject); begin with form1 do Canvas.FillRect (Rect (0, 0, ClientWidth, ClientHeight)); End; end. Программаның орындалу нә тижесі 10.10 - суретте келтірілген. 10.10-сурет. F(x)=2sinx*ex/5функциясының графигі
|