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.  Все страницы отчета должны быть пронумерованы, в правом верхнем углу страницы. Титульный лист не нумеруется.


 

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

29408. Взрывозащищенное электрооборудование 43.5 KB
  Взрывозащищенное электрооборудование различается по уровню взрывозащиты группам и температурным классам. Установлены следующие уровни взрывозащиты электрооборудования: 1. Вид взрывозащиты определяется установленным набором средств взрывозащиты. Для взрывозащищенного электрооборудования установлены следующие виды взрывозащиты: Взрывонепроницаемая оболочка [d].
29409. Дизель-электрический привод буровых установок 28 KB
  В последние годы существует тенденция расширения номенклатуры и объемов производства буровых установок с дизельэлектрическим приводом. Переход к автономному энергоснабжению позволяет решить проблему энергоснабжения удаленных от базы буровых установок проблему слабых сетей решить проблему повышения установленной мощности главных и вспомогательных приводов на буровых установках и др. Перечисленные недостатки системы ГД затрудняют ее использование в морских буровых установках.
29410. МАШИНЫ ПОСТОЯННОГО ТОКА 56.5 KB
  Она состоит из неподвижного статора и вращающегося якоря в машинах переменного тока вращающаяся часть ротор. Коммутация это процесс переключения секций обмотки якоря из одной параллельной ветви в другую и связанные с этим явления. Концы секций припаивают к пластинам коллектора что образует замкнутую обмотку якоря. Коллектор набран из медных пластин клинообразной формы изолированных друг от друга и корпуса и образующих в сборе цилиндр который крепится на валу якоря.
29411. Характеристика электрооборудования во взрывоопасных зонах в нефтяной и газовой промышленности (НГП) 35 KB
  Взрывоопасной зоной называют помещение или ограниченное пространство в помещении или наружной установке в которых имеются или могут образовываться взрывоопасные смеси. Взрывоопасные смеси горючих газов с воздухом или смеси легковоспламеняющихся жидкостей с воздухам согласно правилам устройства электроустановок ПУЭ классифицируются по категориям I II IIA IIB IIC и группам T1T6. Например ко II категории взрывоопасной смеси относятся промышленные газы и пары к I категории рудничный газ. Безопасный экспериментальный...
29412. Климатические условия эксплуатации и условия размещения электрооборудования 26.5 KB
  Электрооборудование предназначенное для эксплуатации на суше и реках в районах с умеренным климатом имеет обозначение У; с холодным климатом ХЛ; сухим и влажным тропическим Т; для всех макроклиматических районов на суше О. Электрооборудование предназначенное для установки в районах с умеренно холодным морским климатом имеет обозначение М; с тропическим морским ТМ. В зависимости от условий размещения предусматривается различное исполнение электрооборудования которому также присваивается определенное обозначение....
29414. Бюджетный дефицит и государственный долг: основные определения, показатели и проблемы количественной оценки. Государственный долг и дефицит платежного баланса. Влияние государственного долга на накопление частного капитала 50 KB
  Бюджетный дефицит и государственный долг: основные определения показатели и проблемы количественной оценки. Государственный долг и дефицит платежного баланса. Превышение расходов государства над его доходами образует бюджетный дефицит БД. Подавляющее большинство стран сводит свой бюджет с дефицитом.
29415. Ключевые макроэкономические проблемы российской экономики 67 KB
  Можно сделать вывод: главная причина ошибочности социальноэкономической политики использование экономики России стандартных макроэкономических рецептов разработанных для стран с типом экономики зеркально противоположным российскому. Поэтому напрашивается первый рецепт долгосрочной политики сделать диверсификацию экономики главной целью политики государства. Макроэкономические проблемы российской экономики АЛЕКСЕЙ КУДРИН министр финансов РФ выбрал более менее доступное там много Снижение конкурентоспособности К началу 2007 г.
29416. Теоретические подходы к моделированию инфляционных процессов. Типы и виды инфляции. Темп инфляции и его колебания. Возможности инфляционного финансирования дефицита гос. бюджета 1.32 MB
  Темп инфляции и его колебания Инфляция inflation от итальянского слова inflatio что означает вздутие представляет собой устойчивую тенденцию роста общего уровня цен. В этом определении важны следующие слова: 1 устойчивая что означает что инфляция это длительный процесс устойчивая тенденция и поэтому ее следует отличать от скачка цен; 2 общего уровня цен. Это значит что инфляция не означает роста всех цен в экономике. Цены на отдельные товары могут вести себя поразному: повышаться понижаться оставаться без...