Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тапсырма №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функциясының графигі

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.