41729

Построение графиков функций

Лабораторная работа

Информатика, кибернетика и программирование

5x2cosx Создание приложений.5x2cosx end; Функции описывающие переход от вещественных координат к экранным по оси Х function xex:rel:integer; begin xe:=roundxxmin dx10; end; по оси Y function yey:rel:integer; begin ye:=Form1. № вар F1x F2x F3x F4x 1 2 3 4 5 1 cosx 2cosx cos2x Cosx 2 2 sinx 2sinx sin2x sinx 2 3 Expx 2Expx Exp2x Expx 2 4 cosx0.5x 2cosx2x cos2x4x 3xCosx 2 5 6 3xsinx x 3 –cosx 3 x3cosx xcosx 3 7 8 9 Expx Expx 2 Expx1 Exp2x 10 Expx2x...

Русский

2013-10-24

88.96 KB

8 чел.

2

Лабораторная работа №2.      Построение графиков функций.

Цель работы 

Студент должен научиться:

  1.  создавать изображения в приложениях,   манипулировать точками этих изображений.
  2.  создавать модуль описания процедур и функций, в котором будут использоваться описанные пользователем процедуры и функции.

Требования к выполнению работы.

Программа должна

  1.  Графики четырех функций соответствующего варианта построить различными цветами в одном окне.
  2.  Каждый график построить в отдельном окне в четверть экрана.
  3.  Графики  должны быть построены с учетом масштаба (границ по оси OX).

Исходные данные:

  1.  А и В границы по оси ОХ
  2.  N – число точек на графике
  3.  Y1 и Y2 – границы по оси OY

Исходные данные задаются самостоятельно, в соответствии с  предлагаемыми функциями и вводятся с клавиатуры (необходима проверка данных при вводе).

Шаг по оси ОХ вычисляется по   формуле :   H=(A+B)/N  

Алгоритм построения графика функции  в виде точек;

  1.  Ввод значений А,В
  2.  Вычисление значений Y1,Y2
  3.  Установка цвета фона и цвета рисунка
  4.  Установка положения окна вывода (по умолчанию вся форма)
  5.  Вычисление шага по оси ОХ       H=(B-A) / N
  6.  Вывод точек графика в цикле, параметром которого будет координата  Х, которая изменяется от А до В с шагом H .

Основные понятия.

Canvas (канва, холст). Канва не является компонентом, но она входит в качестве свойства в те из них, которые должны уметь нарисовать себя и отобразить какую-либо информацию. Это область рисунка на форме и во многих других графических компонентах. Свойство  Canvas предоставляет коду Delphi  возможность изменения области рисунка во время исполнения. Особенность Канвы  в том, что она содержит методы и свойства, существенно упрощающие работу с графикой в Delphi.

Свойства класса TСanvas. 

Font : TFont;

Шрифт канвы

Pen : TPen;

Перо канвы

Brush : TBrush;

Кисть канвы

Pixels[x,y:Integer] :TColor;

Устанавливает цвет точки с координатами x,y

PenPos : TPoint;

Содержит координаты текущей точки пера канвы.

ClipRect : TRect;

Определяет область отсечения канвы. То, что при рисовании попадет за пределы этого прямоугольника, не будет изображено.

Цвета точки.

Константа

Цвет

Константа

Цвет

clAqua

Aqua

clMaroon

Maroon

clBlack

Black

clNavy

Navy blue

clBlue

Blue

clOlive

Olive green

clDkGray

Dark Gray

clPurple

Purple

clFuchsia

Fuchsia

clRed

Red

clGray

Gray

clSilver

Silver

clGreen

Green

clTeal

Teal

clLime

Lime green

clWhite

White

clLtGray

Light Gray

clYellow

Yellow

Методы класса TCanvas.

Procedure LineTo(x,y:Integer);

ProcedureMoveTo(x,y:Integer);

Координаты.  Все визуальные компоненты имеют свойства Top  и Left.  Значения, запоминаемые этими свойствами, определяют местоположение компонента на форме. Иными словами, компонент размещается в позиции (X,Y), где X – относится к свойству Left , а Y - к свойству Top. Значения X иY выражаются в пикселах. Пиксел (точка) – это наименьшая частичка поверхности рисунка, которой можно манипулировать. Прямоугольная система координат канвы для отображения отдельных точек и границ фигуры имеет следующие параметры :

  1.  Начало координат (точка [0,0]) расположена в левом верхнем углу канвы.
  2.  Координата Х отсчитывается по горизонтали слева направо.
  3.  Координата Y отсчитывается по вертикали  сверху вниз.
  4.  Размеры канвы совпадают с размерами клиентской области компонента владельца.

Порядок выполнения работы.

Задание

Построить график функции F:=0.5*x+2*cos(x)

Создание приложений.

1. Создать основную форму.

Form1.

Caption

Построение графиков

На   форму положить компонент  MainMenu1   (панель компонентов  Standart). Сформировать следующее меню: опция- Границы, опция –Один график, опция –Четыре графика.

MainMenu1

Имя

Свойство

Значение

N1

Caption

&Граница

N2

Caption

&Один график

N3

Caption

&Четыре графика

2. Создание второй формы.

Нажать кнопку  NewForm  на панели инструментов Быстрые кнопки.

Form2.

Caption

Границы

Height

130

Width

270

Расположить на форме компоненты, как показано на рис.1

Label1 

Caption - Границы построения графика по оси Х (радианы).

Label2   Edit1 

Caption - Левая

Label3    Edit2

Caption - Правая

На закладке Win32 найти компонент UpDown  и положить его справа от компонента Edit1.  

UpDown1

Associate

Edit1

Increment

1

Max

В зависимости от функции

Min

Position

0

Исходное показание счетчика

На закладке Win32 найти компонент UpDown  и положить его справа от компонента Edit2.  

UpDown2

Associate

Edit2

Increment

1

Max

В зависимости от функции

Min

Position

0

Button1    Button2

Caption - Ok    Caption – Отмена

Создание кода программы.

Для решения данной задачи следует описать исходные переменные.

В модуле  Unit1  в  разделе описания переменных описать следующие переменные.

Const 

 Xn=10;        //Координата  начала  оси X на форме

   Yn=10;         //Координата  начала  оси Y на форме

var

 Form1 : TForm1;

        x,y : real;      //координаты пиксела

 Xmin,

   Xmax,

   Ymin,

      Ymax  : real;    //Правая и левые границы оси X

      Dx,Dy : real;     //Шаги по оси X и Y

Function F(x:real):real; //Функция описывается в разделе описания  Interface  потому, что //эта функция используется, как в модуле Unit1,  где она описана, //так и в модуле Unitt2

Обработчики событий.

Form1.

1. Описание заданной  функции.

Function F(x:real):real;  //   F(X)  - Заданная функция.

begin

F:=0.5*x+2*cos(x)

end;

  1.  Функции описывающие переход от вещественных координат к экранным

- по оси Х

function xe(x:real):integer;

begin

xe:=round((x-xmin)/dx)+10;

end;

- по оси Y

function ye(y:real):integer;

begin

 ye:=(Form1.Height-10)-round((y-ymin)/dy)

end;

3.   Дважды щелкнуть мышью по меню Границы  и ввести следующий код.

procedure TForm1.N1Click(Sender: TObject);

begin

Form2.Show;

end;

4. Дважды щелкнуть мышью по меню Один график   и ввести следующий код

procedure TForm1.N2Click(Sender: TObject);

begin

//Рисование осей.

//Установим красный цвет пера

Canvas.Pen.Color:= ClRed;   

//нарисуем ось OY

//Устанавливаем перо в точку X=0, Y=Ymax

Canvas.lineTo(xe(0),ye(ymin));

//Рисуем линию из точки X=0,Y=Ymax до точки X=0, //Y=Ymin 

//нарисуем ось OX

Canvas.MoveTo(Xe(Xmin),ye(0));

// Устанавливаем перо в точку X=Xmin, Y=0

Canvas.lineTo(xe(Xmax),ye(0));  

//Рисуем линию из точки X= Xmin,Y=0 до точки X=Xmax, //Y=0

//Вывод значения левой границы оси 0X 

Canvas.TextOut(xe(xmin),ye(0),Form2.Edit1.Text);

//Вывод значения правой границы оси 0X 

Canvas.TextOut(xe(xmax),ye(0),Form2.Edit2.Text);

//Рисование графика

//Устанавливаем значение Х равное значению левой границы

x:=xmin;

//Устанавливаем перо в точку X=Xmin, Y=F(Xmin)

Canvas.MoveTo(xe(x),Ye(F(x)));

while x<xmax do

begin

//Определяем координату Y для текущего X

y:=f(x);

//Рисуем линию из предыдущей точки до текущей

Canvas.LineTo(Xe(x),Ye(y));

//Изменяем значение X  на величину шага изменения функции по оси X

x:=x+dx;

end;

end;

Form2.

Обработчик события кнопки Button1 расположенной на форме Form2.

procedure TForm2.Button1Click(Sender: TObject);

begin

//Границы функции по оси Х

Xmin:=StrToInt(edit1.text);   //Левая граница графика по оси X

Xmax:=StrToInt(Edit3.Text);  //Правая граница графика по оси X

//шаг изменения функции по оси Х

dx:= (Xmax-Xmin)/nx;

X:=Xmin;

//Определения максимального и минимального значения исходной функции (границы функции по //оси Y).

Ymin:=1000; Ymax:=-1000;

repeat

y:=F(X);

if y>Ymax then yMax:=y;  

if Y<YMin then YMin:=y;

X:=X+dx;

until X>=Xmax;

//шаг изменения функции по оси Y

dy:=(Ymax-Ymin)/ny;

Form2.Close;

end;

Варианты  заданий для самостоятельной работы.

№ вар

F1(x)

F2(x)

F3(x)

F4(x)

1

2

3

4

5

1

cos(x)

2cos(x)

cos(2x)

Cos(x/2)

2

sin(x)

2sin(x)

sin(2x)

sin(x/2)

3

Exp(x)

2Exp(x)

Exp(2x)

Exp(x/2)

4

cos(x)+0.5x

2cos(x)+2x

cos(2x)-4x

3x-Cos(x/2)

5

6

3*x+sin(x)

x/3 –cos(x/3)

x+3*cos(x)

x-(cos(x))/3

7

8

9

Exp(x)

Exp(x/2)

Exp(x-1)

Exp(2x)

10

Exp(x)+2x

x2+2Exp(x)

Exp(2x)-0.5x

Exp(x/2)+7

11

cos(x)

cos(x/2)

Cos(2x)

12

sin(x)

sin(x/2)

13

ln(x)+3

3x-2ln(x)

0.5x+

3x*

14

15

-

-+2

-

16

17

18

sin(x)/2

2cos(x)+3x

3*sin(2x)

3*Cos(2x)

19

cos(x)

2sin(x)

cos(2x)

Sin(x/2)

20

sin(x)

2cos(x)

sin(2x)

Cos(2x)

21

lg(x)

lg(2x)

lg(x/2)

(lg(x))/2

22

|x|

1/|X|

23

2sin(x)

3sin(x)

sin(3x)

Sin(2x)

24

lg(x)

ln(x)

ln(x/2)

lg(x/2)

25

(Cos(x))/2

Sin(x)+2

Cos(x)+3

(Sin(x))/3

26

cos(x)

cos(x/2)

cos(x/3)

Cos(x/4)

27

sin(x)

sin(2x)

sin(3x)

Sin(4x)

29

cos(x)

2cos(x)

cos(x/2)

30

2sin(x)

cos(2x)

Cos(2x)

31

ln(x/2)

lg(x/2)

ln(x)

lg(2x)

32

ln(x)

ln(2x)

ln(3x)

ln(4x)

33

ln(x)

ln(2x)

34

|x|

1/|2X|

1/|3X|

1/|4X|

35

ln(x)

2ln(x)

36

37

cos(x)

2cos(x)

cos(x/2)

38

cos(2x)

Cos(x/2)

Cos(x+5)

5+cos(x)

39

sin(2x)

sin(x/2)

Sin(x+4)

Sin(x)+4

40

lg(2x)

lg(x)+2

lg(x-2)

(lg(x))/2

41

ln(3x)

ln(2+x)

ln(x/2)

(ln(x))/2

42

ln(x)

ln(2x)

ln(x/2)

ln(x)/2

43

|3-|x-2||

|3-x| -2

3-(x-2)

3-|x|-2


Требования к составлению отчета  по лабораторным работам  курса «Информатика».

В состав отчета должны входить следующие разделы:

  1.  Титульный лист.
  2.  Содержание.
  3.  Для каждого задания в отчете должна содержаться следующая информация:
  4.  постановка задачи;
  5.  спецификация  входных и выходных глобальных параметров программы;
  6.  описание каждой процедуры и функции  в  содержательном и математическом аспектах
  7.  спецификация процедур и функций с указанием имен процедур и функций и списка параметров;
  8.  блок схемы модулей (процедур и функций)
  9.  текст программы, снабженный комментариями и отпечатанный на принтере:
    1.  в начале каждой процедуры или функции, с описанием того, для чего предназначена процедура и описанием параметров
    2.  в начале программы, с указанием автора, группы, задания;
    3.  в основных (ключевых) участках программы, с указанием на семантику выполняемых действий.
  10.  дата последних изменений (в модуле о программе).
  11.  Все страницы отчета должны быть пронумерованы, в правом верхнем углу страницы. Титульный лист не нумеруется.


 

А также другие работы, которые могут Вас заинтересовать

17376. Грошово-кредитна система 83.5 KB
  1. Грошова маса та її структуру. Валютна система. 2. Кредит: сутність функції принципи форми. 3. Банки: їх діяльність і операції. Банківська система України. 4.Грошовокредитна політика держави. 1. Грошова маса та її структуру. Валютна система. Грошова система –це є фо...
17377. Фінансово-бюджетна політика держави 86 KB
  5. Фінанси: сутність та функції. Фінансова система та її структура. 6 . Податки: функції та види. Природа податку на додану вартість. Ставка оподаткування та крива Лаффера. 7. Держбюджет і джерела його наповнення. Бюджетний дефіцит. Державний борг: зовнішній внутрішній. Д
17378. ОСНОВНІ ПОНЯТТЯ ПОДАТКОВОЇ ТЕРМІНОЛОГІЇ 64.5 KB
  ОСНОВНІ ПОНЯТТЯ ПОДАТКОВОЇ ТЕРМІНОЛОГІЇ В основі вивчення податкової системи і механізмів оподатковування повинне лежати повне і точне розуміння податкової термінології і понять що розкривають суть оподатковування. Розглянемо основні елементи що характеризую
17379. Грошова маса 166 KB
  Грошова маса Г.м. обсяг випущених в обіг паперових грошових знаків банківських та казначейських білетів металевих монет і депозитних грошей грошових засобів на поточних рахунках в банках. У статистиці розвинутих країн існує декілька понять гро
17380. МІЖНАРОДНА ЕКОНОМІКА 75.5 KB
  МІЖНАРОДНА ЕКОНОМІКА Міжнародна економіка іnternational есоnomics це частина теорії ринкової економіки яка вивчає закономірності взаємодії господарюючих суб'єктів різної державної приналежності в області міжнародного обміну товарами руху капіталів факторів виробництва ...
17381. Інтернаціоналізація виробництва 201.5 KB
  1. Інтернаціоналізація виробництва. Міжнародний поділ праці і кооперація праці. 2.Міжнародна торгівля товарами і послугами. Торгівельні бар’єри. СОТ і ГАТТ. 3.Міжнародна міграція капіталу і робочої сили. Злиття та поглинення економічних суб’єктів ринку. 4.Іноземніміжн...
17382. Міжнародна трудова міграція та процес міжнародної інвестиційної взаємодії 78.5 KB
  Міжнародна трудова міграція та процес міжнародної інвестиційної взаємодії Міжнародна трудова міграція: суть та причини виникнення. Явище міжнародної міграції населення досить давнє і залишило помітний слід у розвитку людства. Більша частина населення деяких...
17383. Економічна інтеграція 63.5 KB
  Економічна інтеграція Міжнародна економічна інтеграція це вищий рівень розвитку міжнародних економічних відносин коли інтернаціоналізація господарського життя проявляється у переплетінні національних господарств двох або кількох країн та проведенні ними узгодж
17384. ИСТОРИЯ СОЦИОЛОГИИ КАК ОБЛАСТЬ ЗНАНИЯ 92.5 KB
  Лекция первая ИСТОРИЯ СОЦИОЛОГИИ КАК ОБЛАСТЬ ЗНАНИЯ Содержание 1. О границах социологии и ее истории 2. Онтологические критерии социологического знания 3. Эпистемологические критерии 4. Этические критерии 5. Институциональноорганизационные критерии 6.