Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 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 |


