Презентация на тему: Лекция 11. Процедуры и функции ТР (Подпрограммы)

Реклама. Продолжение ниже
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Для чего нужны ПП ?
Описание ПП.
Список формальных параметров процедуры.
Локализация имён.
Список формальных параметров процедуры ( продолжение).
ПРИМЕРЫ.
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Функции ТР ( пример).
Формула Герона.
Формула Герона ( продолжение).
Как передать в подпрограмму массив?
Передача массивов в процедуру.
Передача массивов в процедуры (пример).
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Выводы.
Выводы( продолжение).
Что будет выведено на экран?
Лекция 12. Модули в ТР
Модули в ТР.
Основные правила для работы с модулями
Структура модуля
Структура модуля (продолжение)
Комплексные числа
Пример.
Стандартные модули ТР.
Модуль CRT.
Примеры
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Таблица const, задающих цвет:
Пример. Цветные символы.
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Пример. Движущийся прямоугольник
Пример. Вложенные прямоугольники.
Лекция 13. Модуль Graph.
Модуль Graph.
Что обеспечивает модуль Graph?
Порядок действий при работе с модулем GRAPH
Графические драйверы и режимы.
Процедура InitGraph
Процедуры для работы с графикой
Координаты, окна, страницы.
Линии и точки. ( продолжение)
Линии и точки.
Примеры констант модуля Graph
Примеры констант модуля Graph (продолжение)
Примеры констант модуля Graph (продолжение 2)
Фигуры (Многоугольники, окружности и т.п.)
Фигуры (Многоугольники, окружности и т.п.)
Фигуры (Многоугольники, окружности и т.п.)
Вывод текста.
Заливаем фигуру. Пример (фрагмент).
Пример
Сохранение и выдача изображений (1).
Сохранение и выдача изображений (2).
Сохранение и выдача изображений ( 3 ).
Основные положения теории цвета
Модель RGB.
Диаграмма цветов RGB
Лекция 14. Указатели. Динамическая память.
Структура программы в оперативной памяти.
Основные понятия:
Динамические переменные
Виды указателей:
Операции с указателями:
Операция разадресации
Операция @ и функция addr
Стандартные функции для работы с указателями:
Пример. Указатели.
Динамические переменные.
Пример работы с динамическими переменными
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Мусор
Освобождение динамической памяти
Лекция 15. Динамические структуры данных.
Динамические структуры данных.
ДСД
Стеки.
Добавление элемента в стек.
Очередь
Формирование очереди
Выборка из очереди
Линейные списки
Линейные списки (2)
Работа со списком. Пример.
Линейные списки. Пример Не ГОТОВ (3)
Лекция 16. Объектно-ориентированное программирование.
Основные принципы ООП
ООП. Инкапсуляция
ООП. Наследование.
ООП. Полиморфизм
Достоинства ООП
Недостатки ООП
Объект (класс)
Объект (продолжение)
Классы и объекты
Лекция 11. Процедуры и функции ТР (Подпрограммы).
Графика Delphi
Pen & Brush
1/99
Средняя оценка: 4.9/5 (всего оценок: 80)
Код скопирован в буфер обмена
Скачать (322 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Лекция 11. Процедуры и функции ТР (Подпрограммы)

Луковкин С.Б. МГТУ. 1 Лекция 11. Процедуры и функции ТР (Подпрограммы). Процедуры и функции - логически самостоятельные фрагменты программы, оформленные специальным образом и снабжённые именем. Обращение к подпрограмме (или ВЫЗОВ) происходит при упоминании имени ПП, за которым в скобках могут следовать параметры – список аргументов ПП. Результат выполнения операторов функции – некоторое вычисленное значение, которое присваивается имени функции. Процедура вызывается в отдельном операторе; функция встречается в правой части оператора присваивания как элемент выражения.

Изображение слайда
1/1
2

Слайд 2: Для чего нужны ПП ?

Луковкин С.Б. МГТУ. 2 Для чего нужны ПП ? Модульная структура программы. Разбиение задачи на несколько задач, меньших по объёму. Метод нисходящего проектирования. Примеры вызова процедур: Clrscr; Read(x,a,b); Close(fp); Delete(s, n, k) Примеры вызова функций: Y:= sin(x)+Abs(x-9) +2; z:= sqrt(cos(x)+3);

Изображение слайда
1/1
3

Слайд 3: Описание ПП

Луковкин С.Б. МГТУ. 3 Описание ПП. Процедура: Procedure ИМЯ_ПР ( список формальных параметров) ; <разделы описаний> begin <раздел операторов процедуры> end; Функция: Function ИМЯ_фун (список формальных параметров): ТИП ; <разделы описаний> begin <раздел операторов функции> end; список форм. параметров может отсутствовать

Изображение слайда
1/1
4

Слайд 4: Список формальных параметров процедуры

Луковкин С.Б. МГТУ. 4 Список формальных параметров процедуры. Основные виды параметров: Параметр – значение (имя : тип). Параметр – переменная ( var имя : тип ). Константы. Нетипизированные параметры. Для каждого параметра задаются: имя, тип и способ передачи. Пример: Procedure Prima (n : integer; Var x : real; Const b : byte) на место n можно подставлять выражение совместимого типа; При вызове Prima передаётся значение, хранящееся по адресу n.

Изображение слайда
1/1
5

Слайд 5: Локализация имён

Луковкин С.Б. МГТУ. 5 Локализация имён. Глобальными называются переменные, которые описаны в главной программе. Время жизни глобальных переменных — с начала программы и до её завершения. Располагаются в сегменте данных. В подпрограммах описываются локальные переменные. Они располагаются в сегменте стека, причем распределение памяти происходит в момент вызова подпрограммы, а ее освобождение — по завершении подпрограммы. Локальные переменные автоматически не обнуляются. Если локальное имя совпадает с глобальным, то действует локальное имя.

Изображение слайда
1/1
6

Слайд 6: Список формальных параметров процедуры ( продолжение)

Луковкин С.Б. МГТУ. 6 Список формальных параметров процедуры ( продолжение). При вызове процедуры на место параметра – переменной следует подставить фактический параметр в виде переменной того же типа, что и формальный параметр. Будет передана сама переменная (точнее, её адрес), а не её значение. Результат работы процедуры может передаваться только через параметры-переменные или через глобальные переменные. На место параметра-переменной нельзя подставлять выражения. Параметр-константа аналогичен параметру-значению, но обеспечивает более эффективный код. Нельзя изменять параметр константу в пределах процедуры.

Изображение слайда
1/1
7

Слайд 7: ПРИМЕРЫ

Луковкин С.Б. МГТУ. 7 ПРИМЕРЫ. var a, b, c, d, e : word; procedure Smile (a, b, c : word ; var d : word); var e: word; begin c := a + b; d := 2*c; e := c div 2; writeln (‘c=‘, c, ‘ d=‘, d, ‘ e=‘, e ); end; begin а :=3; b :=5; Smile (a, b, c, d); writeln (‘c=‘, c, ‘ d=‘, d, ‘ e=‘, e); end. Ответ: с= 8 d=16 e=4 c= 0 d=16 e=0 Что будет выведено на экран в результате выполнения программы

Изображение слайда
1/1
Реклама. Продолжение ниже
8

Слайд 8

Луковкин С.Б. МГТУ. 8 Пример. Prim(a, b, c); Prim(d+a, c, x); Prim(x, ’c’, d); Prim(a, b, a+1); Procedure Prim(a:real; b:char; var c:real); Заголовок процедуры имеет вид: Переменные в вызывающей программе описаны так: Var a : integer; b, c : char; d, x : real; Какие из перечисленных ниже вызовов процедуры правильные ? 1 – err 2 – right 3 – right 4 - err

Изображение слайда
1/1
9

Слайд 9: Функции ТР ( пример)

Луковкин С.Б. МГТУ. 9 Функции ТР ( пример). Заданы три числа a,b,c. Написать программу, которая проверяет, существует ли треугольник с такими сторонами, и если «да», то вычислить его площадь по формуле Герона. Вводим числа a, b, c. Если все они положительные и для любого из них выполняется неравенство треугольника : X< Y+Z, то можно вычислять площадь, иначе программа останавливается. S=sqrt(p*(p-a)*(p-b)*(p-c)); где p=(a+b+c)/2.

Изображение слайда
1/1
10

Слайд 10: Формула Герона

Луковкин С.Б. МГТУ. 10 Формула Герона. program PRG_Geron; Var a,b,c,S,p :real; Function Tst(x,y,z:real):boolean; begin if(x>0)and (y>0) and (z>0) and (x<y+z) and (y<x+z) and (z<x+y) then Tst := True else Tst := False; end; Procedure Streug(x,y,z : real; Var St : real); var p : real; begin p:=(x+y+z)/2.; St:=sqrt(p*(p-x)*(p-y)*(p-z)); end;

Изображение слайда
1/1
11

Слайд 11: Формула Герона ( продолжение)

Луковкин С.Б. МГТУ. 11 Формула Герона ( продолжение). begin write (' Введите стороны треугольника a, b, c ='); readln(a,b,c); if (Tst(a,b,c)) then begin Streug(a,b,c,S); writeln ('Площадь треугольника =', S :10:5); end else Writeln (' треугольника с такими сторонами не существует'); Readln end.

Изображение слайда
1/1
12

Слайд 12: Как передать в подпрограмму массив?

Луковкин С.Б. МГТУ. 12 Как передать в подпрограмму массив? Нельзя написать так: Procedure BD(a : array[1..10] of real) Можно так: Type amas = array [1..10] of real; …. Procedure GD(a:amas); Можно передавать ОТКРЫТЫЕ МАССИВЫ ( без указания верхней границы массива) Procedure OPN(axx : array of integer); Функция HIGH(axx) возвращает максимальный индекс массива axx; минимальный = 0. Или так: Const n=30 Type amas = array [1..n] of real; …….. Procedure GD(a:amas);

Изображение слайда
1/1
13

Слайд 13: Передача массивов в процедуру

Луковкин С.Б. МГТУ. 13 Передача массивов в процедуру. Задача: Вычислить векторное и скалярное произведение двух заданных векторов. Результат вывести на экран.

Изображение слайда
1/1
14

Слайд 14: Передача массивов в процедуры (пример)

Луковкин С.Б. МГТУ. 14 Передача массивов в процедуры (пример). program Cross_Prod; Type vect=array[1..3] of real; Var u,v,w : vect; Procedure cross_p(a,b:vect; var c:vect); begin c[1]:= a[2]*b[3]-a[3]*b[2]; c[2]:= a[3]*b[1]-a[1]*b[3]; c[3]:= a[1]*b[2]-a[2]*b[1]; end; Function dotp(a,b : vect) : real; Var i : byte; s : real; begin s:=0; for i:=1 to 3 do s:=s+a[ i ]*b[ i ]; dotp:=s; end;

Изображение слайда
1/1
Реклама. Продолжение ниже
15

Слайд 15

Луковкин С.Б. МГТУ. 15 Передача массивов в процедуры ( пример). Procedure Vvod(Const s:char; var a:vect); begin write(' Input Vector ', s,' ='); read(a[1], a[2], a[3]); end; Begin { основная программа } Vvod('U', u); Vvod('V', v); Cross_p(u,v,w); Writeln(' Cross product U x V = ', w[1]:8:3, w[2]:8:3, w[3]:8:3); Writeln('Dot product UV =', dotp(u,v) : 9 : 4); readln; end.

Изображение слайда
1/1
16

Слайд 16: Выводы

Луковкин С.Б. МГТУ. 16 Выводы. При вызове подпрограммы после ее имени в скобках указываются аргументы, то есть те конкретные величины, которые передаются в подпрограмму Список аргументов как бы накладывается на список параметров и замещает их, поэтому аргументы должны соответствовать параметрам по количеству, типу и порядку следования. Для каждого параметра обычно задается его имя, тип и способ передачи. Либо тип, либо способ передачи могут не указываться. В заголовке подпрограммы нельзя вводить описание нового типа.

Изображение слайда
1/1
17

Слайд 17: Выводы( продолжение)

Луковкин С.Б. МГТУ. 17 Выводы( продолжение). Для передачи в подпрограмму исходных данных используются параметры-значения и параметры-константы. Параметры составных типов (массивы, записи, строки) предпочтительнее передавать как константы. Результаты работы процедуры следует передавать через параметры-переменные, результат вычисления функции — через ее имя.

Изображение слайда
1/1
18

Слайд 18: Что будет выведено на экран?

Луковкин С.Б. МГТУ. 18 Что будет выведено на экран? var a : string; Procedure U(a:char; var d:char); begin a := ‘ р ’ ; d:= ‘ к ’; end; begin a:=‘ потоп ’; U(a[1], a[5]); write (a) end. var a,b,c,d : integer; Procedure W(a : integer; var c : integer; var d: integer); begin a := 5 ; c:= 7; b:= 13; end; begin a := 1 ; b:= 2; c:= 0; W(b,a,c); write (a, ‘|’, b, ‘|’, c) end. Ответ : 7 | 13 | 0

Изображение слайда
1/1
19

Слайд 19: Лекция 12. Модули в ТР

Луковкин С.Б. МГТУ. 19 Лекция 12. Модули в ТР Структура модуля; Стандартные модули; Модуль CRT ;

Изображение слайда
1/1
20

Слайд 20: Модули в ТР

Луковкин С.Б. МГТУ. 20 Модули в ТР. Модуль – автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний – Type, Const, Var, Label, Procedure и Function и, возможно, некоторые исполняемые операторы инициирующей части. Для чего нужны модули? Модуль как библиотека (может использоваться разными программами). Для разбиения сложной программы на обособленные части. Модули помогают преодолеть ограничение в один сегмент на объём кода исполняемой программы: код каждого модуля размещается в отдельном сегменте.

Изображение слайда
1/1
21

Слайд 21: Основные правила для работы с модулями

Луковкин С.Б. МГТУ. 21 Основные правила для работы с модулями Имя модуля должно совпадать с именем файла, в котором он хранится (расширение. pas) Для подключения модуля к программе его надо предварительно откомпилировать: получить файл с заданным именем и расширением.tpu и сохранить его на диске. Имена подключаемых модулей перечисляются в директиве USES : Uses Crt, Graph, … и т.д. Модули делятся на стандартные (входят в состав системы программирования) и пользовательские.

Изображение слайда
1/1
22

Слайд 22: Структура модуля

Луковкин С.Б. МГТУ. 22 Структура модуля unit имя; { заголовок модуля } interface { интерфейсная секция модуля } { описание глобальных элементов модуля (видимых извне) } implementation { секция реализации модуля } { описание локальных (внутренних) элементов модуля } begin { секция инициализации. может отсутствовать } end.

Изображение слайда
1/1
23

Слайд 23: Структура модуля (продолжение)

Луковкин С.Б. МГТУ. 23 Структура модуля (продолжение) В интерфейсной секции модуля определяют константы, типы данных, переменные, а также заголовки процедур и функций. В секции реализации описываются подпрограммы, заголовки которых приведены в интерфейсной части. Кроме того, в этой секции можно определять константы, типы данных, переменные и внутренние подпрограммы. Секция инициализации предназначена для присваивания начальных значений переменным, которые используются в модуле.

Изображение слайда
1/1
24

Слайд 24: Комплексные числа

Луковкин С.Б. МГТУ. 24 Комплексные числа

Изображение слайда
1/1
25

Слайд 25: Пример

Луковкин С.Б. МГТУ. 25 Пример. Unit A001; Interface type complex = record Re, Im : real end; Procedure AddC( x,y : complex; var z : complex); Procedure MultC(x,y : complex; var z : complex); Implementation Procedure AddC ( x,y : complex; var z : complex); begin z.re:= x.re + y.re; z.im:= x.im + y.im; end; Procedure MultC; begin z.re:= x.re*y.re – x.im*y.im; z.im:= (x.re*y.im + x.im*y.re) end; end.

Изображение слайда
1/1
26

Слайд 26: Стандартные модули ТР

Луковкин С.Б. МГТУ. 26 Стандартные модули ТР. SYSTEM – подключается автоматически. DOS – доступ к возможностям ОС (файлы, время …) CRT – для работы в текстовом режиме GRAPH – для работы в графическом режиме PRINTER – для вывода на принтер. Исп. редко. OVERLAY – для загрузки программы по частям. STRINGS - для работы со строками, заканчивающимися нуль-символом. WinDos – аналог модуля Dos

Изображение слайда
1/1
27

Слайд 27: Модуль CRT

Луковкин С.Б. МГТУ. 27 Модуль CRT. Обеспечивает эффективную работу с экраном, клавиатурой и динамиком в текстовом режиме. Основные процедуры и функции: KeyPressed : Boolean = False, если буфер клавиатуры пуст True, если БК содержит Х1 символ. 2) ReadKey : Char = возвращает символ из БК. Если БК пуст, программа будет ждать нажатия клавиши. Функциональные клавиши заносятся в БК в виде #0#n

Изображение слайда
1/1
28

Слайд 28: Примеры

Луковкин С.Б. МГТУ. 28 Примеры Program Exmp01; Uses Crt; Var s : char; begin While Keypressed Do s:=ReadKey; end. Как очистить БК? Определить расширенный код клавиши Program Exmp0 2 ; Uses Crt; Var s : char ; begin repeat s := ReadKey; if ( s<>#0) then writeln ( ord(s)) else writeln (‘0’,ord (readKey) : 8) until s=#27 ; end.

Изображение слайда
1/1
29

Слайд 29

Луковкин С.Б. МГТУ. 29 Основные процедуры и функции CRT : 3) TextMode(mode:word) – задаёт текстовый режим В качестве Mode можно задать BW40 = 0; (чёрно-белый 40х25) Co40 = 1; ( цветной 40х25) BW80 = 2; (чёрно-белый 80х25) Co80 = 3; ( цветной 80х25) При вызове TextMode сбрасываются все ранее сделанные установки цвета окон, экран очищается. 4) TextColor(c : byte) – задаёт цвет выводимых символов 5) TextBackGround( c : byte) – цвет фона 6) ClrScr – экран заполняется цветом фона ;

Изображение слайда
1/1
30

Слайд 30: Таблица const, задающих цвет:

Луковкин С.Б. МГТУ. 30 Таблица const, задающих цвет: Black 0 ( черный ) Blue 1 ( синий ) Green 2 ( зеленый ) Cyan 3 (голубой) Red 4 (красный) Magenta 5 (малиновый) Brown 6 (коричневый) LightGray 7 (светло-серый) DarkGray 8 (темно-серый) LightBlue 9 (светло-синий) LightGreen 10 (светло-зеленый) LightCyan 11 (светло-голубой) LightRed 12 (розовый) LightMagenta 13 (светло-малиновый) Yellow 14 ( желтый ) White 15 (белый) Blink 128 (мерцание) white+Blink – мерцающий белый.

Изображение слайда
1/1
31

Слайд 31: Пример. Цветные символы

Луковкин С.Б. МГТУ. 31 Пример. Цветные символы. Program E_col; Uses CRT ; Var k : byte; Const Col : array [1..15] of string[16] =(‘ синий ’, ‘ зелёный ’, ‘ бирюзовый ’, ‘ красный ’, ‘ малиновый ’,’ коричневый ’, ’ светлосерый ’, ‘ тёмносерый ’, ‘ светлосиний ’, ‘ св.зелёный ’, ‘ св.голубой ’, ‘ розовый ’, ‘ св.малиновый ’, ‘ жёлтый ’, ‘ белый ’ ) ; begin for k := 1 to 15 Do begin TextColor(k); writeln (‘ цвет номер ‘, k, ‘ = ‘, Col [k] ); end; TextColor (white+Blink); Writeln(‘ мерцание текста ’); ReadKey; End.

Изображение слайда
1/1
32

Слайд 32

Луковкин С.Б. МГТУ. 32 Основные процедуры и функции CRT : Window ( x1, y1, x2, y2 : byte) – задаёт область экрана для вывода текста. Окно заполняется цв. фона. GotoXY( x, y : byte) – перевод курсора в позицию ( x,y) WhereX, WhereY – текущие координаты курсора Звук : Sound(F: word), F – частота в Гц Delay(t : word), t - задержка выполнения программы в мс NoSound отключить звук

Изображение слайда
1/1
33

Слайд 33: Пример. Движущийся прямоугольник

Луковкин С.Б. МГТУ. 33 Пример. Движущийся прямоугольник Program MoveBar; Uses CRT; var x,y,i : byte; begin TextBackGround(2); ClrScr; x:=5; y:=10; Delay(1000); for i := 1 to 30 do begin x:=x+2; TextBackGround(9); Window(x, y, x+10, y+5); ClrScr; Delay(500); TextBackGround(2); ClrScr; Delay(500); end; end.

Изображение слайда
1/1
34

Слайд 34: Пример. Вложенные прямоугольники

Луковкин С.Б. МГТУ. 34 Пример. Вложенные прямоугольники. Program CompBar; Uses CRT; var k : byte; begin TextMode(Co80); TextBackGround(2); ClrScr; x:=5; y:=10; Delay(1000); for k := 1 to 11 do begin TextBackGround(1+Random(15)); Window(2*k, k, 80-2*k, 26-k); ClrScr; Delay(1500); end; Readln; TextBackGround(2); ClrScr; end.

Изображение слайда
1/1
35

Слайд 35: Лекция 13. Модуль Graph

Луковкин С.Б. МГТУ. 35 Лекция 13. Модуль Graph. Назначение Graph; Подключение Graph к основной программе (графические режимы, процедура InitGraph); Основные процедуры и функции для работы в графическом режиме ; Примеры программ ;

Изображение слайда
1/1
36

Слайд 36: Модуль Graph

Луковкин С.Б. МГТУ. 36 Модуль Graph. Модуль обеспечивает работу с экраном в графическом режиме. Экран представляется в виде совокупности точек, или пикселей (= pixel =picture element). Для определения положения пиксела вводится система координат : её начало – в левом верхнем углу и имеет координаты (0 ; 0). Количество точек по осям (=РАЗРЕШЕНИЕ ЭКРАНА) и доступные цвета определяются графическим режимом, который устанавливается спец. программой – графическим драйвером.

Изображение слайда
1/1
37

Слайд 37: Что обеспечивает модуль Graph?

Луковкин С.Б. МГТУ. 37 Что обеспечивает модуль Graph? Вывод линий и геометрических фигур заданным цветом и стилем; Закрашивание областей заданным цветом и шаблоном; Вывод текста выбранным шрифтом, заданного размера и направления; Задание «Окон» и отсечение по их границе; Работа с графическими страницами;

Изображение слайда
1/1
38

Слайд 38: Порядок действий при работе с модулем GRAPH

Луковкин С.Б. МГТУ. 38 Порядок действий при работе с модулем GRAPH Подключить модуль: Uses Graph ; Перевести экран в графический режим: процедура InitGraph; Установить параметры изображения; Вывести изображение; Вернуться в текстовый режим (если надо).

Изображение слайда
1/1
39

Слайд 39: Графические драйверы и режимы

Луковкин С.Б. МГТУ. 39 Графические драйверы и режимы. Драйвер обеспечивает взаимодействие программы с графическим устройством (монитором). Имеют расширение « bgi » *. BGI Графическе режимы: CGA, EGA, MCGA, режим VGA это: разрешение 640 х 480 и 16 цветов ; Имя соответствующего драйвера: EGAVGA.BGI

Изображение слайда
1/1
40

Слайд 40: Процедура InitGraph

Луковкин С.Б. МГТУ. 40 Процедура InitGraph InitGraph( var Driver, Mode : integer; Path : String); Driver – определяет тип графического драйвера; Mode – задаёт режим работы графического адаптера. Path – содержит путь к каталогу, содержащему файлы графических драйверов. Можно ( и нужно ! ) определять тип драйвера автоматически. Это делается так: Driver := detect; InitGraph(Driver, Mode, ‘d:\TP7\ALLBGI’);

Изображение слайда
1/1
41

Слайд 41: Процедуры для работы с графикой

Луковкин С.Б. МГТУ. 41 Процедуры для работы с графикой GraphResult – содержит код ошибки при выполнении графической операци; ( grOk =0 ) CloseGraph – завешает работу в гр. ржиме; RestoreCrtMode – временное восстановление текст. режима; GetGraphMode; SetGraphMode; DetectGraph; и т.д.

Изображение слайда
1/1
42

Слайд 42: Координаты, окна, страницы

Луковкин С.Б. МГТУ. 42 Координаты, окна, страницы. GetMaxX и GetMaxY – возвращают максим. координаты экрана; GetX, GetY – координаты курсора; ViewPort(x1,y1,x2,y2: integer; clipon : boolean); MoveTo(x,y : Integer) – перемещает курсор в позицию ( x,y) MoveRel( dx,dy: integer) – относительное перемещение; С learDevice – заполняет экран цветом фона; ClearViewPort – очищает графическое окно.

Изображение слайда
1/1
43

Слайд 43: Линии и точки. ( продолжение)

Луковкин С.Б. МГТУ. 43 Линии и точки. ( продолжение) SetColor(c : word) – устанавливает цвет линий и символов; SetBkColor(c: word) – цвет фона; GetColor - возвращает текущий цвет; GetMaxColor – максимальное значение кода цвета

Изображение слайда
1/1
44

Слайд 44: Линии и точки

Луковкин С.Б. МГТУ. 44 Линии и точки. PutPixel(x,y : integer; Color : word) – рисуем точку (х,у) цветом Color; GetPixel(x,y:integer) : word - возвращает цвет пиксела; Line (x1,y1,x2,y2) – рисуем линию текущ. цв. и стилем; LineTo(x,y) – линия из тек. положения в ( x,y); LineRel(dx,dy) – линия из т.п. (а,в) в точку (а+ dx, b+dy) SetLineStile(Type,Pattern,Thick); Type ( тип линии )= { SolidLn, DottedLn, CenterLn,DashedLn, UserBitLn} = {0,1,2,3,4} Pattern – задаётся только в случае UserBitLn; Thick = {NormWidth ; ThickWidth}

Изображение слайда
1/1
45

Слайд 45: Примеры констант модуля Graph

Луковкин С.Б. МГТУ. 45 Примеры констант модуля Graph Константы шрифтов Константа Значение DefaultFont 0 (растровый шрифт ) TriplexFont 1 (векторный шрифт) SmallFont 2 SanSerifFont 3 GothicFont 4 HorizDir 0 (слева направо) VertDir 1 (сверху вниз)

Изображение слайда
1/1
46

Слайд 46: Примеры констант модуля Graph (продолжение)

Луковкин С.Б. МГТУ. 46 Примеры констант модуля Graph (продолжение) Константа Значение Описание EmptyFill 0 Закрашивание области фоновым цветом SolidFill 1 Непрерывное закрашивание области LineFill 2 Закрашивание --------------------- LtSlashFill 3 Закрашивание ///// SlashFill 4 Закрашивание жирными линиями //// и т.д. 5.. 11, 12 \\\ \\\ +++ ххх прямоуг... … Константы образцов закрашивания

Изображение слайда
1/1
47

Слайд 47: Примеры констант модуля Graph (продолжение 2)

Луковкин С.Б. МГТУ. 47 Примеры констант модуля Graph (продолжение 2) Константа Значение SolidLn 0 (непрерывная) DottedLn 1 (линия из точек) CenterLn 2 (шрих-пунктир) DashedLn 3 (пунктир) NormWidth 1 (обычная толщина) ThickWidth 3 (жирная линия) Константы стиля линии

Изображение слайда
1/1
48

Слайд 48: Фигуры (Многоугольники, окружности и т.п.)

Луковкин С.Б. МГТУ. 48 Фигуры (Многоугольники, окружности и т.п.) Rectangle(x1,y1,x2,y2) – DrowPoly(N: word; var Points) – N – количество точек; Points – массив точек, каждая Type PointType = record x,y : word end; Circle(x,y: integer; R: word) – Arc(x,y,As,Ae,R) – дуга окружности: As и Ae – нач. и конечный углы в градусах, R – радиус. Ellips(x,y,As,Ae,Rx,Ry)

Изображение слайда
1/1
49

Слайд 49: Фигуры (Многоугольники, окружности и т.п.)

Луковкин С.Б. МГТУ. 49 Фигуры (Многоугольники, окружности и т.п.) Bar(x1,y1,x2,y2) – закрашивает прямоугольник текущим образцом узора и цветом. SetFill Style(Pattern,Color) – см таблицу. ….. X:=GetMaxX div 6; Y := GetMaxY div 5; For j :=1 to 2 do for k := 0 to 3 do begin Rectangle( (k+1)*x, (j+1)*y, (k+2)*x, (j+2)*y); SetFillStyle( k+j*4, j+1) ; Bar ((k+1)*x+1, (j+1)*y+1, (k+2)*x-1, (j+2)*y-1)) end; Пример (фрагмент программы)

Изображение слайда
1/1
50

Слайд 50: Фигуры (Многоугольники, окружности и т.п.)

Луковкин С.Б. МГТУ. 50 Фигуры (Многоугольники, окружности и т.п.) Bar3D (x1, y1, x2, y2, Depth: integer; Top : Boolean); FillPoly(N : Word; var Coords) - закрашивает замкнутый многоугольник; FloodFill(x,y, BorderColor) – заполняет любую замкнут. фигуру .

Изображение слайда
1/1
51

Слайд 51: Вывод текста

Луковкин С.Б. МГТУ. 51 Вывод текста. OutTextXY(x,y,String) OutText(String) SetTextStyle(Font, Direct, Size) – Font – номер шрифта; (0.. 10) Direct – код направления; (0 или 1) Size – размер шрифта; (1.. 10) размер р а з м е р

Изображение слайда
1/1
52

Слайд 52: Заливаем фигуру. Пример (фрагмент)

Луковкин С.Б. МГТУ. 52 Заливаем фигуру. Пример (фрагмент). …. x := GetmaxX div 4; y := GetMaxY div 4; Rectangle (x, y, 3*x, 3*y) ; SetViewPort (x+1,y+1, 3*x-1, 3*y-1,True); SetFillStyle ( LtSlashFill, GetMaxColor); Rectangle( 0, 0, 8, 20); FloodFill (1,1, GetMaxColor); OutTextXY(10, 25, ‘ Press Enter..’); Readkey; Repeat Randomize; SetFillStyle( Random(12), Random(GetMaxColor)); x := Random (GetMaxX div 2); Y := Random (GetMaxY div 2); c := Random (succ(GetMaxColor)); SetColor(c); Circle( x, y, Random (GetMaxY div 5)); FloodFill(x,y,c); until KeyPressed; …..

Изображение слайда
1/1
53

Слайд 53: Пример

Луковкин С.Б. МГТУ. 53 Пример Program Grafika; uses Graph; const grDriver : integer = Detect; pole = 20; var grMode : integer; maxX, maxY : integer; begin { ----------------------------- инициализация графики ----- } InitGraph(grDriver, grMode, 'd:\tp\bgi'); if GraphResult <> GrOK then begin writeln(' Ошибка инициализации графики : ', GraphErrorMsg(GraphResult)); Halt end; maxX := GetMaxX; maxY := GetMaxY; { - вывод линий ----- } Line(pole, maxY div 2, maxX - pole, maxY div 2); Line(maxX div 2, pole, maxX div 2, maxY - pole); SetColor(Cyan); { ---------------- вывод текста } SetTextStyle(GothicFont, HorizDir, 4); OuttextXY(pole, pole, 'The end'); readln; CloseGraph end. The end pole

Изображение слайда
1/1
54

Слайд 54: Сохранение и выдача изображений (1)

Луковкин С.Б. МГТУ. 54 Сохранение и выдача изображений (1). ImageSize( x1, y1, x2, y2) - возвращает размер памяти в байтах для прямоугольной области. GetImage(x1, y1, x2, y2 : integer; var Buf) – помещает в память копию прямоугольной области изображения; изображение храниться в переменной Buf. PutImage (x, y, Buf, Mode) – Выводит в заданное место экрана то, что хранилось в Buf. Mode – задаёт способ вывода. Buf (x,y) (x1,y1) (x2,y2)

Изображение слайда
1/1
55

Слайд 55: Сохранение и выдача изображений (2)

Луковкин С.Б. МГТУ. 55 Сохранение и выдача изображений (2). Режимы вывода изображения MODE: NormalPut 0 Замена изображения на копию из Buf XorPut 1 Исключающее «или» OrPut 2 Обычное «или» AndPut 3 Логическое «и» NotPut 4 Инверсия изображения: Red = 4= 0100 -> 1011 = LCyan

Изображение слайда
1/1
56

Слайд 56: Сохранение и выдача изображений ( 3 )

Луковкин С.Б. МГТУ. 56 Сохранение и выдача изображений ( 3 ). Для выделения памяти под изображение используем динамическую память: Пример (фрагмент программы): var Buf : Pointer; … Size := ImageSize(x1, y1, x2, y2) ; GetMem (Buf, Size) ; GetImage (x1, y1, x2, y2, Buf^) ; PutImage (x1,y1, Buf^, XorPut) ; { стёрли то, что было }; ….. { или PutImage(x, y, Buf^, NormalPut); в новом месте } Delay(1000);

Изображение слайда
1/1
57

Слайд 57: Основные положения теории цвета

Луковкин С.Б. МГТУ. 57 Основные положения теории цвета Световой поток падает на сетчатку глаза от отражающего или излучающего объекта. Цветовые рецепторы делятся на три группы: ( красный - зелёный - синий). Различают аддитивное и субтрактивное цветовоспроизвдение.

Изображение слайда
1/1
58

Слайд 58: Модель RGB

Луковкин С.Б. МГТУ. 58 Модель RGB. W = R+G+B W – R = G+B = Cyan W – G = R+B = Magenta W – B = R+G = Yellow Модель CMYK

Изображение слайда
1/1
59

Слайд 59: Диаграмма цветов RGB

Луковкин С.Б. МГТУ. 59 Диаграмма цветов RGB R G B W Cyan Magenta Yellow

Изображение слайда
1/1
60

Слайд 60: Лекция 14. Указатели. Динамическая память

Луковкин С.Б. МГТУ. 60 Лекция 14. Указатели. Динамическая память.

Изображение слайда
1/1
61

Слайд 61: Структура программы в оперативной памяти

Луковкин С.Б. МГТУ. 61 Структура программы в оперативной памяти. В IBM PC-совместимых компьютерах память условно разделена на сегменты. Адрес каждого байта составляется из номера сегмента и смещения. Компилятор формирует сегмент кода, в котором хранится программа в виде машинных команд, сегмент данных, в котором выделена память под глобальные переменные программы, и сегмент стека, предназначенном для размещения локальных переменных подпрограмм. Сегмент стека Сегмент данных Сегмент кода Динамическая память Адрес сегмента Смещение Физический адрес 20 бит 16 бит 16 бит 4 бита 0000 +

Изображение слайда
1/1
62

Слайд 62: Основные понятия:

Луковкин С.Б. МГТУ. 62 Основные понятия: Переменные, предназначенные для хранения адресов областей памяти, называются указателями. В указателе можно хранить адрес данных или адрес программного кода. Адрес занимает четыре байта и хранится в виде двух слов, одно из которых определяет сегмент, второе — смещение.

Изображение слайда
1/1
63

Слайд 63: Динамические переменные

Луковкин С.Б. МГТУ. 63 Динамические переменные ДП создаются в динамической памяти (в хипе, в куче) во время выполнения программы. Обращение к ДП осуществляется через указатели. С помощью ДП можно обрабатывать данные, объём которых заранее не известен.

Изображение слайда
1/1
64

Слайд 64: Виды указателей:

Луковкин С.Б. МГТУ. 64 Виды указателей:

Изображение слайда
1/1
65

Слайд 65: Операции с указателями:

Луковкин С.Б. МГТУ. 65 Операции с указателями: Для указателей определены операции : присваивания ; p1 := p2; проверки на равенство и неравенство: if p1 = p2 then … или if p <> nil then … Правила присваивания указателей Любому указателю можно присвоить стандартную константу nil, которая означает, что указатель не ссылается на какую-либо конкретную ячейку памяти : p1 := nil; Указатели стандартного типа pointer совместимы с указателями любого типа. Указателю на конкретный тип данных можно присвоить только значение указателя того же или стандартного типа.

Изображение слайда
1/1
66

Слайд 66: Операция разадресации

Луковкин С.Б. МГТУ. 66 Операция разадресации применяется для обращения к значению переменной, адрес которой хранится в указателе: var p1: ^word; … p1 ^ := 2; inc(p1^); writeln(p1^); С величинами, адрес которых хранится в указателе, можно выполнять любые действия, допустимые для значений этого типа. p1 p1^ 2

Изображение слайда
1/1
67

Слайд 67: Операция @ и функция addr

Луковкин С.Б. МГТУ. 67 Операция @ и функция addr позволяют получить адрес переменной: var w : word ; pw : ^ word ; ... pw := @w; { или pw := addr(w); } pw^ := 5; p w 2 w 5

Изображение слайда
1/1
68

Слайд 68: Стандартные функции для работы с указателями:

Луковкин С.Б. МГТУ. 68 Стандартные функции для работы с указателями: seg(x) : word — возвращает адрес сегмента для х; ofs(x) : word — возвращает смещение для х; addr(x) : pointer – содержит адрес аргумента x; cseg : word — возвращает значение регистра сегмента кода CS; dseg : word — возвращает значение регистра сегмента данных DS; ptr(seg, ofs : word) : pointer — по заданному сегменту и смещению формирует адрес типа pointer.

Изображение слайда
1/1
69

Слайд 69: Пример. Указатели

Луковкин С.Б. МГТУ. 69 Пример. Указатели. program ka; var w,a, i:integer; pw,pq:^integer; us,ut:word; begin write(‘ввод w, a='); readln(w,a); pw:=@w; pq:=addr(a); us:=seg(w); ut:=ofs(w); writeln(us); writeln(ut); writeln(' w+a =',pw^+pq^); readln; writeln(' a-w =',pq^ - pw^); readln; pw:=pq; writeln('pw^ -pq^ = ',pw^-pq^); new(pw); new(pq); pw^:=-25; pq^:=60; writeln('pw+pq=', pw^+pq^); readln; dispose(pw); dispose(pq); end.

Изображение слайда
1/1
70

Слайд 70: Динамические переменные

Луковкин С.Б. МГТУ. 70 Динамические переменные. создаются в хипе ( Heap) во время выполнения программы с помощью подпрограмм NEW или GetMem : Процедура new ( var p : тип_указателя ) Функция new ( тип_указателя ) : pointer Процедура и функция NEW применяются только для типизированных указателей. Процедура getmem ( var  P  : pointer; size : word ) –выделяет в хипе участок в size байт; адрес его начала хранится в P. Эту процедуру можно применять и для указателей типа pointer.

Изображение слайда
1/1
71

Слайд 71: Пример работы с динамическими переменными

Луковкин С.Б. МГТУ. 71 Пример работы с динамическими переменными type rec = record d : word; s : string; end; pword = ^word; var p1, p2 : pword; p3 : ^rec; Динамическая память Сегмент данных p1 p2 p3 p1 p2 p3 p1^ p2^ ... new ( p 1); p 2 := new ( pword ); new ( p 3);

Изображение слайда
1/1
72

Слайд 72

Луковкин С.Б. МГТУ. 72 p1^ := 3; p2^ := 2; p3^.d := p1^ +2 ; p3^.s := ‘ Биолог '; p1 p2 p3 3 2 5 | Биолог p1^ p2^ p1 p2 p3 4 9 5 | Биолог p1^ p2^ Динамические переменные можно использовать в операциях, допустимых для величин соответствующего типа: inc ( p 1^); p 2^ := p1^ + p3^.d; with p3^ do writeln (d, s);

Изображение слайда
1/1
73

Слайд 73: Мусор

Луковкин С.Б. МГТУ. 73 p1 p2 2 9 p1^ p2^ p1^ 4 Мусор При присваивании указателю другого значения старое значение теряется. Это приводит к появлению мусора (обозначен овалом), когда доступа к участку динамической памяти нет, а сам он помечен как занятый.

Изображение слайда
1/1
74

Слайд 74: Освобождение динамической памяти

Луковкин С.Б. МГТУ. 74 Освобождение динамической памяти Процедура Dispose(var p : pointer) освобождает участок памяти, выделенный процедурой New. Процедура Freemem(var p : pointer; size : word) освобождает участок памяти размером size, начиная с адреса p. Если память выделялась с помощью N ew, следует применять Dispose, в противном случае — Freemem. Значение указателя после вызова этих процедур становится неопределенным.

Изображение слайда
1/1
75

Слайд 75: Лекция 15. Динамические структуры данных

Луковкин С.Б. МГТУ. 75 Лекция 15. Динамические структуры данных.

Изображение слайда
1/1
76

Слайд 76: Динамические структуры данных

Луковкин С.Б. МГТУ. 76 Динамические структуры данных. Линейные списки Стеки Очереди Бинарные деревья ДСД – способ организации данных, при котором память распределяется во время работы программы по мере необходимости отдельными блоками, связь между которыми осуществляется с помощью указателей; размещение данных происходит в динамической памяти. В отличие от массивов и записей ДСД могут занимать несмежные участки памяти.

Изображение слайда
1/1
77

Слайд 77: ДСД

Луковкин С.Б. МГТУ. 77 ДСД Элемент любой ДСД состоит из двух частей: информационной; указателя; Элемент ДС описывается в виде записи. Пример: type pnode = ^node; node = record d : word; s : string; p : pnode; end; d s p

Изображение слайда
1/1
78

Слайд 78: Стеки

Луковкин С.Б. МГТУ. 78 Стеки. Принцип: LIFO = last in – first out. type pnode = ^node; node = record d : word; s : string; p : pnode; end; var top, p : pnode; Begin { Создание первого элемента стека: } new(top); top^.d := 1; top^.s := ‘ Дедка '; top^.p := nil; top 1 Дедка Динамическая память Для работы со стеком используются две статические переменные: - указатель на вершину стека ; - вспомогательный указатель:

Изображение слайда
1/1
79

Слайд 79: Добавление элемента в стек

Луковкин С.Б. МГТУ. 79 1. new(p); Добавление элемента в стек. 2. p^.d := 2; p^.s := ‘ Бабка ’; 3. p^.p := top; p top 1 Дедка p 2 Бабка top 1 дед 4. top := p ; p 10 Петя top top p 2 Бабка top with top^ do write(d,s); p:=top; top := top^.p ; dispose(p); Выборка из стека.

Изображение слайда
1/1
80

Слайд 80: Очередь

Луковкин С.Б. МГТУ. 80 Очередь Порядок действий: Начальное формирование очереди – создание первого элемента Добавление элемента в конец очереди; Выборка элемента Принцип FIFO = first in – first out. Новые элементы добавляются в один конец, а выборка - из другого конца очереди. Применяется при буферизации ввода-вывода, диспетчеризации задач в ОС… При работе с очередью используются указатели на её начало и на её конец, а также вспомогательный указатель.

Изображение слайда
1/1
81

Слайд 81: Формирование очереди

Луковкин С.Б. МГТУ. 81 Формирование очереди Type pnode=^node; node=record d:word; s:string; p:pnode; end; Var beg, fin,p : pnode; ===== создаём первый элемент очереди ====== New(beg) { выделяем динамическую память } beg^.d:=1; beg^.s:=‘ первый ’; beg^.p:=nil; fin:=beg; =========== добавляем элемент в очередь ====== New(p); P^.d:=2; p^.s:=‘ второй ’; p^.p:=nil; Fin^.p=p; { предпоследний элемент указывает на последний } Fin:=p; { указатель на конец очереди }

Изображение слайда
1/1
82

Слайд 82: Выборка из очереди

Луковкин С.Б. МГТУ. 82 Выборка из очереди Writeln(beg^.d, beg^.s); P:=beg; beg:=beg^.p dispose(p); If beg=nil then fin=nil;

Изображение слайда
1/1
83

Слайд 83: Линейные списки

Луковкин С.Б. МГТУ. 83 Линейные списки начальное формирование списка; добавление элемента в конец списка; чтение элемента с заданным ключом; в c тавка элемента в заданное место списка; удаление элемента с заданным ключом; сортировка списка по ключу. Каждый элемент ЛС связан со следующим и, возможно, предыдущим. Каждый элемент ЛС содержит ключ – это часть поля данных. Ключ идентифицирует элемент. Можно выполнять следующие операции:

Изображение слайда
1/1
84

Слайд 84: Линейные списки (2)

Луковкин С.Б. МГТУ. 84 Линейные списки (2) Стек и очередь – частный случай линейного списка. При чтении элемент ЛС не удаляется. Для работы с ЛС надо определить указатель на его начало.

Изображение слайда
1/1
85

Слайд 85: Работа со списком. Пример

Луковкин С.Б. МГТУ. 85 Работа со списком. Пример. Program List; type pe=^tpelem; tpelem=Record t:real; p:pe end; Var plm,beg: pe; x:real; ch:char; N:byte; Begin New(plm); beg:=plm; plm^.p:=plm; while plm^.p<>Nil do begin write(‘Введите t='); readLn(plm^.t); Write( ‘ Продолжить?( Y/N '); readln( ch); If (ch='y') or (ch='Y') then begin New(plm^.p); plm:= plm^.p end else plm^.p:=nil end; writeLn(‘Читаем список ='); plm:=beg; N:=1; repeat writeln(N, ':', plm^.t:8:3); plm:=plm^.p; Inc(N); until plm=Nil; end.

Изображение слайда
1/1
86

Слайд 86: Линейные списки. Пример Не ГОТОВ (3)

Луковкин С.Б. МГТУ. 86 Линейные списки. Пример Не ГОТОВ (3) Program LLL; const n=5; type pnode = ^node; node = record d : word; s : string; p : pnode; end; var beg : pnode; i, key, option : word; s1 : string; const text : array[1..n] of string = (‘ один ’, ‘ два ’, ‘ три ’, ‘ четыре ’, ‘ пять ’ ) ; procedure addL(var beg : pnode; d : word; s1 : string); var p, t : pnode; begin New(p); p^.d := d ; p^.s :=s1; p^.p := nil; If beg = nil then beg := p else begin t := beg

Изображение слайда
1/1
87

Слайд 87: Лекция 16. Объектно-ориентированное программирование

Луковкин С.Б. МГТУ. 87 Лекция 16. Объектно-ориентированное программирование.

Изображение слайда
1/1
88

Слайд 88: Основные принципы ООП

Луковкин С.Б. МГТУ. 88 Основные принципы ООП Инкапсуляция Наследование Полиморфизм

Изображение слайда
1/1
89

Слайд 89: ООП. Инкапсуляция

Луковкин С.Б. МГТУ. 89 ООП. Инкапсуляция Основная идея – связать в одно целое данные и подпрограммы для их обработки. Объект – совокупность данных, характеризующих его состояние, и процедур (алгоритмов) их обработки. Предметная область представляется в виде совокупности объектов. Данные Процедуры Данные = поля Процедуры= методы ИНКАПСУЛЯЦИЯ

Изображение слайда
1/1
90

Слайд 90: ООП. Наследование

Луковкин С.Б. МГТУ. 90 ООП. Наследование. Наследование - свойство объектов порождать потомков. Потомок наследует все поля и методы родителя. Можно дополнять существующие поля и методы. Можно модифицировать методы объекта родителя. Можно создавать иерархии объектов. Объект может иметь только одного предка и несколько потомков. Важное значение имеет возможность многократного использования кода. Для объекта можно определить наследников, корректирующих или дополняющих его поведение.

Изображение слайда
1/1
91

Слайд 91: ООП. Полиморфизм

Луковкин С.Б. МГТУ. 91 ООП. Полиморфизм ООП позволяет писать гибкие, расширяемые и читабельные программы. Во многом это обеспечивается благодаря полиморфизму, под которым понимается возможность во время выполнения программы с помощью одного и того же имени выполнять разные действия или обращаться к объектам разного типа. Чаще всего понятие полиморфизма связывают с механизмом виртуальных методов.

Изображение слайда
1/1
92

Слайд 92: Достоинства ООП

Луковкин С.Б. МГТУ. 92 Достоинства ООП использование при программировании понятий, близких к предметной области; возможность успешно управлять большими объемами исходного кода благодаря инкапсуляции, то есть скрытию деталей реализации объектов и упрощению структуры программы; возможность многократного использования кода за счет наследования; сравнительно простая возможность модификации программ; возможность создания и использования библиотек объектов.

Изображение слайда
1/1
93

Слайд 93: Недостатки ООП

Луковкин С.Б. МГТУ. 93 Недостатки ООП некоторое снижение быстродействия программы, связанное с использованием виртуальных методов; идеи ООП не просты для понимания, в особенности для практического использования; для эффективного использования существующих объектно-ориентированных систем требуется большой объем первоначальных знаний; неграмотное применение ООП может привести к значительному ухудшению характеристик разрабатываемой программы.

Изображение слайда
1/1
94

Слайд 94: Объект (класс)

Луковкин С.Б. МГТУ. 94 Объект (класс) Объект – это тип данных ; его определение находится в разделе описания типов ; Объект похож на тип RECORD, но кроме полей данных в нём можно описывать методы – подпрограммы для работы с полями объекта. Поля и методы = элементы объекта; Внутри объекта описываются только заголовки методов.

Изображение слайда
1/1
95

Слайд 95: Объект (продолжение)

Луковкин С.Б. МГТУ. 95 Объект (продолжение) Видимостью элементов можно управлять директивами private и public Количество разделов privat и public – произвольное. Всё, что расположено после private, является невидимым из внешних файлов. По умо все элементы являются public.

Изображение слайда
1/1
96

Слайд 96: Классы и объекты

Луковкин С.Б. МГТУ. 96 Классы и объекты Type Tmns=class Private x,y:real; s:string[15]; Public Constructor create; Procedure fp(u:word); Function ff(w:real):boolean; ….. End; Могут быть и другие секции … Описание методов в разделе implementation.

Изображение слайда
1/1
97

Слайд 97

Луковкин С.Б. МГТУ. 97 Var exam: Tmns; Procedure Tmns.fp(u:word); Function Tmns.ff( w:real):boolean; Begin Exam:= Tmns.create;

Изображение слайда
1/1
98

Слайд 98: Графика Delphi

Луковкин С.Б. МГТУ. 98 Графика Delphi Свойство Canvas Методы типа Canvas ( рисование точек, линий, окружностей, прямоугольников) Свойства ( цвет, толщина, стиль линий,цвет и вид заливки областей, свойства шрифта)

Изображение слайда
1/1
99

Последний слайд презентации: Лекция 11. Процедуры и функции ТР (Подпрограммы): Pen & Brush

Луковкин С.Б. МГТУ. 99 Pen & Brush Свойства Pen : Color, Width,

Изображение слайда
1/1
Реклама. Продолжение ниже