Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

знака "-" график получился бы перевёрнутым;

195

5. Выводим точку с координатой (i, yx) на экран;

6. Переходим в пункт 1;

7. Конец программы.

ПРИМЕР

Программа построения графика функции

program funk1;

uses crt, graph;

var

dv,{Графический драйвер}

Mv,{Графический режим}

{Вспомогательные переменные}

x1,x2,y1,y2:integer; {с помощью этих переменных задаём квадрат на

координатной плоскоти, внутрянная часть которого должна отобразится на

экране}

x0,y0:integer; {оси абсцисс и ординат}

dx, dy:real; {коэффициенты растяжения заданной части координатной

плоскости на экран}

x, y:real; {эти переменные задают функцию}

yx:integer;

i:real;

{Тело программы}

BEGIN

dv:=detect;

InitGraph(dv, mv,'c:\bp\bgi'); {инициализация графического режима}

{Вывод результатов исследования функции}

SetBkColor(white);

Setcolor(blue);

outtextxy(80,10,'Исследование y=(x^2+1)/(x^2-1) и построение ее графика.');

Setcolor(cyan);

outtextxy(10,40,'Находим область определения функции: x<>+1, x<>-1');

outtextxy(10,45,' + -

+');

outtextxy(10,60,'Находим области значении функции: y=(x^2+1)/(x^2-1) .

.. ');

outtextxy(10,68,' -1 1 ');

outtextxy(10,80,'Находим точки пересечения с осями: OX y=0, (x^2+1)/(x^2-

1)=0,') outtextxy(10,100,' x^2+1=0, x^2=-1 - решений нет.');

outtextxy(10,120,Пересечения с осью OX нет.');

1

1

2

2

x

x

y

196

outtextxy(10,140,' : OY x=0, y=(0+1)/(0-1)=-1');

outtextxy(10,160,'Пересечение с осью OY (0;-1).');

НЕ нашли? Не то? Что вы ищете?

outtextxy(10,180,'Нахождение точек разрыва: в точках х=1; х=-1 функция не существует, т. к..');

outtextxy(10,200,'при подставлении в уравнение y=(x^2+1)/(x^2-1) x=-1,x=1

получаем ');

outtextxy(10,220,'неопределенность 0/0, следовательно х=1,х=-1 - точки

разрыва.');

outtextxy(10,240,Нахождение асимптот: вертикальные х=1 и х=-1;');

outtextxy(10,260,'горизонтальные y=1; ');

outtextxy(10,280,'наклонные асимптоты вида y=kx+b ');

outtextxy(10,300,'k=0 - вертикальная асимптота выродилась в горизонтальную;');

outtextxy(10,320,'b=1 - горизонтальная асимптота.');

outtextxy(10,340,' + + -

- ');

outtextxy(10,360,'Находим экстремумы функции: x=0; x=1; x=-

');

outtextxy(10,380,'

');

outtextxy(10,400,' f(0)=(0+1)/(0-1)');

outtextxy(10,420,' (0;-1) - точка максимума');

Setcolor(magenta);

outtextxy(10,470,'ДЛЯ ПРОДОЛЖЕНИЯ НАЖМИТЕ ЛЮБУЮ КЛАВИШУ');

{__________________________________________________________________}

{ЗАДЕРЖКА КАРТИНКИ НА ЭКРАНЕ}

readkey;

{ОЧИСТКА ЭКРАНА}

cleardevice;

Setcolor(cyan);

{ВЫВОД ГРАФИКА ЗАДАННОЙ ФУНКЦИИ}

outtextxy(150,10,'ГРАФИК ФУНКЦИИ');

outtextxy(10,470,'ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ЛЮБУЮ

КЛАВИШУ');

setcolor(9);

x1:=10; y1:=15;

x2:=-10; y2:=-15; {задаём квадрат на координатной плоскости, который

нам потребуется просмотреть}

dx:=(x1-x2)/640; {устанавливаем коэффициенты растяжения заданной части

координатой плоскости на экран}

dy:=(y1-y2)/480;

x0:= round (-x2/dx);

y0:= round (-y2/dy);

{ВЫВОД КООРДИНАТНЫХ ОСЕЙ}

line(x0,30,x0,460); {рисуем ось ординат (OY)}

197

line(50,y0,550,y0); {рисуем ось абсцисс (OX)}

outtextxy(x0+3,y0+3,'0');

outtextxy(x0+230,y0+5,'x');

outtextxy(x0+10,y0-200,'y');

setlinestyle(1,0,1);

Setcolor(7);

{ВЫВОД ВСПОМОГАТЕЛЬНЫХ ЛИНИЙ}

line(287,y0+220,287,y0-220);

line(353,y0+220,353,y0-220);

line(x0+225,255,x0-255,255);

line(x0+225,225,x0-255,225);

setcolor(Blue);

outtextxy(x0+3,y0+20,'-1');

outtextxy(x0+3,y0-15,'1');

outtextxy(x0+35,y0+3,'1');

outtextxy(x0-35,y0+3,'-1');

setcolor(7);

outtextxy(405,230,'y=1');

outtextxy(355,350,'x=1');

outtextxy(255,350,'x=-1');

{ПОСТРОЕНИЕ ГРАФИКА ФУНКЦИИ}

i:=60;

repeat {построение графика функции}

x:=x2 + i * dx; {пересчитываем координаты экранные в координаты

плоскости}

y:=(x*x+1)/(x*x-1); {задаём функцию на координатной плоскости}

yx:=-round((y2+y)/dy); {пересчитываем координату для отображения на

экране}

PutPixel (round(i),yx,9); {ставим точку с кооринатой (i, yx)}

i:=i+0.111;

until i>550;

{ЗАДЕРЖКА КАРТИНКИ НА ЭКРАНЕ}

readkey;

{ЗАКРЫТИЕ ГРАФИЧЕСКОГО РЕЖИМА}

Closegraph;

END.

3. Внимательно прочитать условие задачи.

4. Составить алгоритм решения задачи.

5. Реализовать алгоритм на языке Turbo Pascal.

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ

Исследовать функцию и построить ее график. Исследование вывести на экран,

построение графика должно происходить динамически.

Варианты заданий:

198

Форма отчета о выполнении лабораторной работы.

Отчет должен содержать:

1. Алгоритм решения задачи;

2. Программу реализации алгоритма;

3. Результат выполнения программы.

Блиц-тест.

1. Процедура InitGraph (VarDriver, Mode:Integer; Path: String):

A. завершает работу адаптера в графическом режиме и восстанавливает

текстовый режим работы экрана;

B. устанавливает нужный текстовый режим;

C. инициирует графический режим работы адаптера ;

D. очищает экран и помещает курсор в верхний левый угол;

E. устанавливает текущее окно для графического вывода.

2. Процедура SetBkColor (Color:Word) в ТР:

A. устанавливает цвет фона;

B. штрихует замкнутую область, используя текущий цвет;

C. устанавливает основной цвет, которым осуществляется рисование;

D. устанавливает стиль линии;

E. возвращает текущий цвет

3. Графические драйверы обычно располагаются на диске в виде файлов с

расширением

;

B. TRU;

C. PAS;

D. BGI;

E. TPL.

y x x

x

y x

x

x

y

y x arctgx

x

x

y

x

y

y x x

y e x

y x

x

e

y

x

x

y

x

x

y

x

x

12) sin

2

11) sin

sin

10)

9) 2

4

1

8)

1

1

7)

6) 4 3

5) sin

4) ln( 1)

3)

1

2)

1

1)

2

2

2

sin

2

2

2

2

199

4. Процедура Line (x1,y1,x2, y2:Integer) в Turbo Pascal:

A. рисует прямоугольник с координатами верхней левой вершины x1,y1 и

нижней правой x2,y2;

B. смещает текущий указатель от точки x1,y1 до точки x2,y2;

C. рисует линию от точки x1,y1 до точки x2,y2;

D. рисует полосу заданного размера, используя текущий стиль и цвет x1,y1 –

координаты левого верхнего и x2,y2 – правого нижнего углов

закрашиваемой области;

E. рисует трехмерную полосу, используя текущий стиль и цвет x1,y1 –

координаты левого верхнего и x2,y2 – правого нижнего углов передней

грани.

5. Процедура PutPixel (x, y: Integer; Color: word) в Turbo Pascal:

A. выводит заданным цветом точку по указанным координатам

B. рисует прямоугольник с координатами верхней левой вершины x1,y1 и

нижней правой x2,y2;

C. смещает текущий указатель в точку по указанным координатам;

D. рисует полосу заданного размера, используя текущий стиль и цвет x1,y1 –

координаты левого верхнего и x2,y2 – правого нижнего углов

закрашиваемой области;

E. рисует линию от точки x1,y1 до точки x2,y2;

6. Процедура Circle (x, y: Integer; R: word) в Turbo Pascal:

A. выводит заданным цветом точку по указанным координатам

B. рисует прямоугольник с координатами верхней левой вершины x1,y1 и

нижней правой x2,y2;

C. смещает текущий указатель в точку по указанным координатам;

D. вычерчивает окружность с центром в точке с координатами x, y и радиусом

R

E. рисует линию от точки x, y длиной R

Контрольные вопросы.

1. Какой вид имеет система координат в графическом режиме?

2. Какие процедуры и функции применяются для сохранения и

последующей выдачи изображений.

3. Назовите информационные процедуры модуля GRAPH, какую

информацию можно получить с их помощью.

4. Какая функция позволяет выполнять обработку ошибок графического

режима?

5. Какие процедуры используются для вывода текста в графическом

режиме?

Глоссарий.

Графика языка Паскаль – это перечень графических процедур и функций. Все

аргументы всех графических процедур и функций могут быть только целого

типа.

Драйвер – это специальная программа, осуществляющая управление теми или

иными техническими средствами ПК. Графические драйверы располагаются в

отдельном подкаталоге bgi в виде файлов с расширением. bgi.

200

Инициализация графического режима – это переход из текстового в

графический режим работы адаптера (экрана).

Чередование засвечиваний и гашений изображения используют для имитации

движения этого изображения на экране. Перед очередным засвечиванием

объект необходимо переместить в направлении его движения. Движение

изображения на экране называют анимацией. Для имитации движения объекта

на экране нужно выполнить такой циклический алгоритм:

1. Нарисовать объект в нужной точке, сделать паузу.

2. Удалить объект, закрасив его цветом фона.

3. Изменить координаты объекта.

4. Возвратиться к пункту 1.

Литература.

1. «Turbo Pascal 7.0», М., Издательство «Нолидж», 1997

2. «Программирование на языке Турбо-Паскаль», Учебное

пособие, Алматы, АГУ,2000

3. TURBO PASCAL, СПб, Питер, 2000

4. . «Turbo Pascal 7.0», М., Финансы и статистика, 1998

5. Программирование на языке Паскаль./Под редакцией УСКОВОЙ О. Ф. –

СПб, Питер, 2002

201

?

?

Адрес1

Адрес2

Лабораторная работа №15.

РАБОТА С ДИНАМИЧЕСКИМИ СТРУКТУРАМИ.

Цель: овладение навыками алгоритмизации и программирования

динамических структур данных.

Материалы и оборудование: ПК, среда Turbo Pascal, методические указания к

лабораторным работам.

Содержание и порядок выполнения работы:

1. Повторить теоретический материал по данной теме.

При объявлении данных динамической структуры в разделе описаний

указывается не сама переменная какого-либо типа, а указатель (ссылка) на нее.

В результате указатель будет обычной переменной, а переменная на которую

он указывает – динамической.

P: ^Char; P^ :Char; var P: ^Char;

Begin

P^:= ’*’;

. . .

End.

Использование идентификатора указателя в программе означает обращение к

адресу ячейки памяти, на которую он указывает. Чтобы обратиться к

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

идентификатора поставить символ ^. Эта операция называется операцией

разыменования.

Указательная переменная P может быть в трех состояниях:

1. Содержать адрес какой-либо переменной, память под которую уже

выделена.

2. Содержать специальный пустой адрес nil.

3. Находиться в неопределенном состоянии.

В неопределенном состоянии указатель бывает в начале работы программы до

первого присваивания ему или конкретного, или пустого адреса nil, а также

после освобождения области памяти на которую он указывает.

ПРОСТЕЙШИЕ ДЕЙСТВИЯ НАД УКАЗАТЕЛЯМИ.

Действие Результат

1. Объявление

____________type a?

Plnt = ^integer;

Var a, b: Plnt; b?

2. выделение памяти a a^

new(a);

new(b); b b^

Адрес ‘ *’

202

Адрес1 1

Адрес2 2

Адреc1 1 2

Адреc2 2

Адреc2

2

Адреc2 2

Адреc2

Адреc2 2

Адреc2

nil

2

3. занесение информации a a^

a^:=1;

b^:=2; b b^

4. копирование информации a

a^ a^:=b^ a^:=b^

b b^ a<>b

5. a) копирование адреса

a:= b; a a^=b^

b a^ a=b

b^

б) dispose(a); a

a:= b;

b a^

b^

a a^

b:= nil;

b b^

Процедура New(a) выделяет область памяти соответственно тому типу,

который описан для указателя А и записывает адрес выделенной памяти в

указатель.

Процедура Dispose(A) освобождает область памяти, на которую указывает

указатель А, после чего эта область памяти становится доступной для

распределения под другие динамические переменные.

203

ОРГАНИЗАЦИЯ ВЗАИМОСВЯЗЕЙ В СВЯЗАННЫХ ДИНАМИЧЕСКИХ

ДАННЫХ.

Связанные динамические данные характеризуются высокой гибкостью

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20