Function MaxAvail: LongInt Возвращает размер наибольшего непрерывного свободного блока кучи, соответствующий размеру наибольшей динамической переменной, которая может быть помещена в кучу.

Function MemAvail; LongInt Возвращает количество имеющихся в куче свободных байт памяти.

Функции преобразования

Процедуры Pack и UnPack, определенные в стандартном Паскале, в Турбо Паскале не реализованы.

Function Chr(X: Byte): Char Возвращает символ с заданным порядковым номером X.

Function Ord(X) : LongInt Возвращает порядковый номер, соответствующий значению X порядкового типа.

Function Round (R: Real) : LongInt Округляет значение R вещественного типа до ближайшего целого.

Function Trunc(R: Real): LpngInt Усекает значение вещественного типа до значения типа LongInt путем отбрасывания дробной части.

Арифметические функции

При компиляции в режиме использования сопроцессора или его эмуляции арифметические функции возвращают значение типа EXTENDED, в противном случае - типа REAL.

Function Abs(R; Real): Real Возвращает абсолютное значение аргумента.

Function ArcTan(R: Real): Real Возвращает арктангенс аргумента.

Function Cos(R: Real): Real Возвращает косинус аргумента.

Function Exp(R; Real): Real Возвращает экспоненту аргумента.

Function Frac(R; Real): Real Возвращает дробную часть аргумента.

Function Int(R; Real): Real Возвращает целую часть аргумента.

Function Ln(R: Real) : Real Возвращает натуральный логарифм аргумента.

Function Pi: Real Возвращает значение числа pi=3..

Function Sin(R: Real): Real Возвращает синус аргумента.

Function Sqr(R: Real): Real Возвращает аргумент в квадрате.

Function Sqrt(R; Real): Real Возвращает квадратный корень аргумента.

Процедуры порядкового типа

Procedure Dec (var X [; DX: LongInt] ) Уменьшает значение переменной X на величину DX, а если параметр DX не задан - на 1.

Procedure Inc (var X [; DX: LongInt]) Увеличивает значение переменной X на величину DX, а если параметр DX не задан - на 1.

Функции порядкового типа

Function Odd(X) : Boolean Проверяет, является ли аргумент нечетным числом.

Function Pred(X) Возвращает предшествующее значение аргумента. Тип результата совпадает с типом аргумента.

Function Succ(X) Возвращает последующее значение аргумента. Тип результата совпадает с типом аргумента.

Строковые процедуры

Procedure Delete (var S: String; Index, Count: Integer) Удаляет Count символов из строки S, начиная с позиции Index.

Procedure Insert (SubS: String; var S: String; Index: Integer) Вставляет подстроку SubS в строку 5, начиная с позиции Index.

Procedure Str(X [: width [: Decimals]]; var S: String) Преобразует численное значение X в его строковое представление S.

Procedure Val(S; String; var X; var Code: Integer) Преобразует строковое значение S в его численное представление X. Параметр Code - содержит признак ошибки преобразования (0 - нет ошибки).

Строковые функции

Function Concat(S1 [, S2,...,SN]): String Выполняет конкатенацию последовательности строк.

Function Copy(S: String; Index, Count: Integer): String Возвращает подстроку из строки S, начиная с позиции Index и длиной Count символов.

Function Length(S: String): Byte Возвращает текущую длину строки S.

Function Pos(SubS, S: String): Byte Возвращает позицию, начиная с которой в строке S располагается подстрока SubS (О - S не содержит SubS).

Функции для работы с указателями и адресами

Function Addr (X) : Pointer Возвращает адрес заданного объекта X.

Function Assigned: (var P) : Boolean Проверяет, хранит ли ли указатель Р значение, отличное от NIL, и возвращает TRUE в этом случае.

Function CSeg: Word Возвращает текущее значение регистра CS.

Function DSeg: Word Возвращает текущее значение регистра DS.

Function Ofs (X) ; Word Возвращает смещение заданного объекта.

Function Ptr(Seg, Ofs: Word): Pointer Преобразует сегмент Seg и смещение Ofs в значение типа указатель.

Function Seg (X) : Word Возвращает сегмент для заданного объекта X.

Function SPtr: Word Возвращает текущее значение регистра SP.

Function SSeg: Word Возвращает текущее значение регистра SS.

Процедуры разного назначения

Procedure Exclude (var S: set of Т; I: T) Исключает элемент T из множества S.

Procedure FillChar(var X; Count: Word; Value) Заполняет заданное количество Count последовательных байт переменной X указанным значением Value (выражение любого порядкового типа).

Procedure Include (var S: set of Т; I; T) Включает элемент T во множество S.

Procedure Move (var X, Y, Count: Word) Копирует заданное количество последовательных байт из источника X в переменную Г.

Procedure Randomize Инициализирует случайным значением (текущим системным временем) встроенный генератор псевдослучайных чисел.

Функции разного назначения

Function Hi(X; Word) : Byte Возвращает старший байт аргумента X.

Function High (X) Возвращает максимальное значение порядкового типа.

Function Lo(X: Word): Byte Возвращает младший байт аргумента X.

Function Low(X) Возвращает минимальное значение порядкового типа.

Function ParamCount: Word Возвращает число параметров, переданных программе в командной строке (строке вызова).

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

Function ParamStr(N; Byte): String Возвращает N-ый параметр командной строки.

Function Random [ (Range: Word)] Возвращает псевдослучайное число. Если параметр Range опущен, функция возвращает вещественное число в диапазоне от 0 до 1, если указан - целое число в диапазоне от 0 до Range-1.

Function SizeOf(X): Word Возвращает число байт, занимаемых аргументом.

Function Swap(X) Производит перестановку старших и младших байт двухбайтного аргумента X. Тип функции соответствует типу аргумента.

Function UpCase(C: char): Char Преобразует латинскую букву в заглавную.

Процедуры ввода/вывода

Procedure Assign (var F; Name: String) Связывает внешний файл Name с файловой переменной F.

Procedure ChDir(S: String) Устанавливает текущий каталог. 

Procedure Close (var F) Закрывает открытый файл. 

Procedure Erase (var F) Удаляет внешний файл.

Procedure GetDir(D: Byte; var S: String) Возвращает каталог по умолчанию S на заданном диске D.

Procedure MkDir(S: String) Создает подкаталог S.

Procedure Rename (var F) Переименовывает внешний файл.

Procedure Reset (var F) Открывает существующий файл для чтения или изменения.

Procedure Rewrite (var F) Создает и открывает новый файл.

Procedure RmDir(S: String) Удаляет пустой подкаталог.

Procedure Seek (var F; N: LongInt) Устанавливает текущую позицию файла на указанный элемент (не используется с текстовыми файлами).

Procedure Truncate (var F) Усекает размер файла до текущей позиции в файле (не используется с текстовыми файлами)

Функции ввода/вывода

Function EOF (var F) ; Boolean Возвращает для файла F признак конца файла.

Function FilePos (var F) : LongInt Возвращает текущую позицию в файле (не используется с текстовыми файлами)

Function FileSize(var F) : LongInt Возвращает текущий размер файла (не используется с текстовыми файлами).

Function IOResult; Integer Возвращает целое значение, являющееся состоянием последней выполненной операции ввода/вывода.

Процедуры для текстовых файлов

Procedure Append (var F: Text) Открывает существующий файл для расширения. 

Procedure Flush (var F: Text) Выталкивает буфер файла вывода.

Procedure Read ([var F: Text;] V1 [, V2,...,VN]) Считывает одно или более значений из текстового файла в одну или более переменных.

Procedure Readln Выполняет те же действия, что и Read, а потом делает пропуск до начала следующей строки файла.

Procedure SetTextBuf (var F: Text; var Buf [; Size: Word]) Назначает буфер ввода/вывода для текстового файла. Параметр Size определяет длину буфера в байтах (если Size опущен, длина буфера равна 128 байтам).

Procedure Write([var F: Text;] V1 [, V2,...,VN]) Записывает в текстовый файл одно или более значений.

Procedure WriteLn Выполняет те же действия, что и Write, а затем добавляет к файлу маркер конца строки.

Функции для текстовых файлов

Function Eoln(var F: Text): Boolean Возвращает признак конца строки.

Function SeekEof [ (var F: Text)]: Boolean Возвращает признак конца файла. Предварительно пропускает все пробелы, символы табуляции и признаки конца строк.

Function SeekEoln [ (var F: Text)]: Boolean Возвращает признак конца строки. В отличие от Eoln предварительно пропускает все пробелы и символы табуляции.

Процедуры для нетипизированных файлов

Procedure BlockRead(var F: File; var Buf; Count; Word [;var Result; Word]) Считывает в переменную Buf Count записей из файла F. Необязательный параметр Result содержит истинное количество считанных записей.

Procedure BlockWrite(var F; File; var Buf; Count: Word [;var Result: Word]) Передает Count записей из переменной Buf файла F. Необязательный параметр Result содержит истинное количество переданных записей.

Лекция 13

13.1 Модуль CRT - средства работы с экраном, клавиатурой и др.

T7TPLFIX.EXE - утилита в BIN. Экран 80х25

ClrScr - очистка текущего окна (закраска цветом фона)

GotoXY(x, y) - позиционирование курсора.

WereX, WereY - возвращают позиции курсора по вертикали и горизонтали.

Window(x1,y1,x2,y2);

Delay(M:word) - задержка в миллисекундах.

Sound(G:word) - частота в герцах.

NoSound - выключение динамика.

TextBackGround(0..7)

TextColor(0..15)

KeyPressed: boolean;

ReadKey: char;

13.2 Обзор примеров программ

Очистка буфера клавиатуры:

while KeyPressed do c:=ReadKey;

{Ex_01} - День недели по дате (ранее разобран)

{Ex_02}- Symplest scanner (ранее разобран)

program DemoCRT; {Ex_03}

uses CRT;

Const

S1=' Конец pаботы ';

S2=' Работа 1 ';

S3=' Работа 2 ';

Col=15; Fon=0;

FonInv=Col; ColInv=Fon;

var

ActivStr:integer;

c:char;

Procedure OverWrite;

begin

GotoXY(4,ActivStr);

Case ActivStr of

7 : write(S1);

8 : write(S2);

9 : write(S3);

end

end;

Procedure Wind(k:integer);

begin

OverWrite;

ActivStr:=ActivStr+k;

if ActivStr<7 then ActivStr:=9;

if ActivStr>9 then ActivStr:=7;

TextBackGround(FonInv);TextColor(ColInv);

OverWrite;

TextBackGround(Fon);TextColor(Col);

end;

begin

Activstr:=9;

while TRUE do

begin

TextBackGround(Fon); TextColor(Col);

ClrScr;

GotoXY(10,3);

Writeln('PROGRAM DEMO CRT');

GotoXY(10,5); Writeln(' основное меню');

GotoXY(4,7); WRITE(S1);

GotoXY(4,8); WRITE(S2);

GotoXY(4,9); WRITE(S3);

WIND(0);

repeat

c:=ReadKey;

if c=#0 then

begin

c:=ReadKey;

if c=#72 then WIND(-1);

if c=#80 then WIND(1);

end;

until c=#13;

case ActivStr of

0 :;

7 :begin ClrScr;writeln(S1);Delay(1000);Halt; end;

8 :begin ClrScr;writeln(S2);Delay(1000); end;

9 :begin ClrScr;writeln(S3);Delay(1000); end;

end;

ClrScr;

end;

end.

{УСТАHОВКА ЦВЕТА}

program ex_06;

uses Crt;

var Fon, Col, ColD, FonInv, ColInv, ColInvD:byte; OldC:byte;

procedure Frame(i1,j1,i2,j2:integer);

var i, j:integer;

begin

if (i1 < 1) or (i2 > 80) or (i1 >= i2) or

(j1 < 1) or (j2 > 25) or (j1 >= j2) then exit;

GotoXY(i1,j1);

write('г');for i:=i1 + 1 to i2 - 1 do

write('=');write('');

for j:=j1 + 1 to j2 - 1 do

begin GotoXY(i1,j);write('¦');

GotoXY(i2,j);write('¦')

end;

GotoXY(i1,j2);

write('L');for i:=i1 + 1 to i2 - 1 do

write('=');write('-');

GotoXY(i2 - 1,j1 + 1)

end;

procedure MySetColor(var Fon, Col, ColD, FonInv, ColInv, ColInvD:byte);

var c:char;

begin

ClrScr; Writeln('УСТАHОВКА ЦВЕТА ДЛЯ МЕHЮ И ПАHЕЛЕЙ');

Writeln('клавиша ц в е т ');

Writeln('c основной цвет ');

Writeln('v выделенный цвет ');

Writeln('f цвет фона ');

Writeln('i инверсный основной цвет ');

Writeln('j инверсный выделенный цвет');

Writeln('g инверсный цвет фона ');

begin

Writeln('Hажмите <ENTER> после установки');

Frame(2,10,41,15); Window(3,11,40,14);

repeat

TextBackGround(FonInv); ClrScr;

TextBackGround(Fon);

TextColor(Col);Write(' Основной текст ');

TextColor(ColD );

Write (' Выделенный цвет ');

TextBackGround(FonInv);

TextColor(ColInv );

Write (' Инвеpсный основной текст ');

TextColor(ColInvD);

Write('Инвеpсный выделенный текст ');

c:=ReadKey;

case c of

'f': Fon :=(Fon+1) mod 8;

'g': FonInv :=(FonInv+1) mod 8;

'c': Col :=(Col+1) mod 16;

'v': ColD :=(ColD+1) mod 16;

'i': ColInv :=(ColInv+1) mod 16;

'j': ColInvD:=(ColInvD+1) mod 16;

else;

end

until c=#13;

TextBackGround(Fon);

TextColor(Col );

end;

TextBackGround(0);

TextColor(15);

OldC:=TextAttr;

Fon:=0;Col:=15;ColD:=14;FonInv:=7;

ColInv:=0;ColInvD:=1;

MySetColor(Fon, Col, ColD, FonInv, ColInv, ColInvD);

Window(1,1,80,25);ClrScr;

writeln('Установлены цвета:');

writeln(' Fon Col ColD FonInv ColInv ColInvD');

writeln(Fon:7,Col:7,ColD:7,FonInv:7,ColInv:7,ColInvD:7);

repeat until KeyPressed;

TextAttr:=OldC

end.

***

CheckBreak: (Boolean)

Controls user termination of an application using the CRT window.

const CheckBreak: Boolean = True;

When CheckBreak is True, the user can terminate the application at any time by pressing Ctrl-Break

CheckEOF: (Boolean)

Controls the end-of-file character checking in the CRT window.

Const CheckEOF: Boolean = False;

When CheckEOF is True, an end-of-file marker is generated when the user presses Ctrl+Z while reading from a file assigned to the CRT window. When CheckEOF is False, pressing Ctrl+Z has no effect.

13.3 Процедуры и функции модуля Crt

Функции

KeyPressed - Возвращает True, если на клавиатуре была нажата клавиша, и False в противном случае.

ReadKey - Читает символ с клавиатуры.

WhereX - Возвращает Х координату текущей позиции курсора относительно текущего окна. Х - горизонтальная позиция.

WhereY - Возвращает Y координату текущей позиции курсора относительно текущего окна. Y - вертикальная позиция.

Процедуры

AssignCrt - Назначает текстовый файл на экран.

ClrEol - Удаляет все символы от текущей позиции курсора до конца строки без передвижения курсора.

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

Delay - Задержка на указанное число миллисекунд.

DelLine - Удаляет строку на которой находится курсор и перемещает все строки ниже этой строки на строку вверх. Нижняя строка очищается.

GotoXY - Позиционирует курсор. Х - горизонтальная позиция и Y - вертикальная позиция.

HighVideo - Устанавливает высокую интенсивность символов.

InsLine - Вставляет пустую строку в позиции курсора.

LowVideo - Устанавливает низкую интенсивность символов.

NormVideo - Устанавливает нормальную интенсивность символов.

NoSound - Выключает внутренний громкоговоритель.

Sound - Включает внутренний громкоговоритель.

TextBackground - Устанавливает цвет фона.

TextColor - Устанавливает цвет символов.

TextMode - Устанавливает текстовый режим.

Window - Определяет текстовое окно на экране.

Лекция 14

14.1 Модуль DOS - работа с файловой системой.

Модуль Dos реализует ряд очень полезных  программ операционной системы  и  обработки  файлов.  Ни  одна  из программ модуля Dos не определена стандартом Паскаля и поэтому они размещены в собственном модуле

DiskFree(d:word):longint; - свободных байт на диске d (0-тек, 1-a:, ...)

DiskSize(d:word):longint; - полный объем.

Переменная DosError:integer;

0

нет ошибки

2

файл не найден

3

путь не найден

5

доступ запрещен

6

неверный обработчик

8

нет памяти

10

неправильная среда

11

неправильный формат

18

больше нет файлов

FindFirst(path:string; attrib:byte; var s:SearchRec);

FindNext(var s:SearchRec);

type SearchRec=record

Fill:array[1..21]of byte;

Attr:byte;

Time:longint;

Size:longint;

Name:string[12]

end;

const

ReadOnly=$01;

Hidden=$02;

SysFile=$04;

VolumeId=$08;

Directory=$10;

Arhive=$20;

AnyFile=$3F;

GetAttr(var F; var Attr:byte) - Возвращает атрибут файла

SetAttr (var F; var Attr:byte) - Устанавливает атрибут файла

14.1.1 Прерывания.

Примитивы ввода-вывода и других системных операций BIOS и DOS.

Схема: регистры - прерывание - регистры.

Registers=record

case integer of

0:(AX, BX, CX, DX, BP, SI, DI, DS, ES, Flag:word);

1:(AL, AH, BL, BH, CL, CH, DL, DH:byte);

end;

Intr(nom:byte; var R:Registers);

MsDos(var R:Registers); - прерывание номер $21 DOS.

Пример: прерывание $10(BIOS) - обмен данными с дисплеем

Функц.

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

Результат

8

AH=8; BH=0 - страница дисплея;

(AL) - символ в тек поз курс;(AH) - атрибут

9

AH=9; BH=0 - страница дисплея;

(BL) - атрибут символа;

(CX) - счетчик; (AL) - символ;

Помещает в текущую позицию курсора

(СХ) штук символов (AL)

с атрибутом (BL)

10

AH=10; BH=0 - страница дисплея;

(CX) - счетчик; (AL) - символ;

Помещает в текущую позицию курсора

(СХ) штук символов (AL)

с текущим атрибутом

$11

чтение конфигурации системы

$13

обмен данными с диском

$20 - $3F

прерывания DOS.

$21

функции DOS.

$25

абсолютное чтение с диска.

$26

абсолютная запись на диск.

$27

завершение программы с сохранением ее в памяти (резидентная программа).

{Ex_07_10}

program Txt;

uses Crt, Dos;

var R:registers; i, j,k :integer;

begin

ClrScr;

GotoXY(20,10);

R. AH:=10; R. BH:=0;

R. CL:=255; R. CH:=0;

R. AL:=ord('A');

Intr(16,R);

readln

end.

procedure PutTxtImege(x1,y1,x2,y2:integer; var p:pointer);

var R:registers; i, j,k :integer; pr:^byte;

begin

GetMem(p,(x2-x1+1)*(y2-y1+1)*2);

k := 0;

for i:=x1 to x2 do

for j:=y1 to y2 do

begin

GotoXY(i, j);

R. AH:=8; R. BH:=0;

Intr(16,R);

pr:=ptr(seg(p^),ofs(p^) + k);

pr^:=R. AL;

pr:=ptr(seg(p^),ofs(pr^)+1);

pr^:=R. AH;

k := k + 2;

end;

end;

procedure GetTxtImege(x1,y1,x2,y2:integer;

var p:pointer);

var R:registers; i, j,k :integer; pr:^byte;

begin

k := 0;

for i:=x1 to x2 do

for j:=y1 to y2 do

begin

GotoXY(i, j);

R. AH:=9; R. BH:=0;

R. CL:=1; R. CH:=0;

pr:=ptr(seg(p^),ofs(p^) + k);

R. AL:=pr^;

pr:=ptr(seg(p^),ofs(pr^)+1);

R. BL:=pr^;

Intr(16,R);

k := k + 2;

end;

FreeMem(p,(x2-x1+1)*(y2-y1+1)*2);

end;

14.1.2 Процедуры и функции модуля Dos

Процедуры даты и времени

GetDate - Возвращает текущую дату, установленную в DOS

GetFTime - Возвращает дату и время последней записи в файл

GetTime - Возвращает текущее время, установленное в DOS

PackTime - Преобразует запись в 4 байтовое упакованное значение даты и времени типа longint, используемое процедурой SetFTime. Поля записи DateTime не проверяются на диапазон

SetData - Устанавливает текущую дату в DOS

SetFTime - Устанавливает время и дату последней записи в файл

SetTime - Устанавливает текущее время в DOS

UnpackTime - Преобразует 4-х байтовое упакованное значение даты и времени, возвращаемое GetFTime, FindFirst или FindNext в распакованную запись типа DateTime

Процедуры обслуживания прерываний

GetIntVeс - Возвращает адрес, хранящийся в указанном векторе прерывания

Intr - Выполняет указанное программное прерывание

MSDos - Выполняет функцию операционной системы

SetIntVec - Устанавливает адрес для указанного вектора прерывания

Функция статуса диска

DiskFree - Возвращает число свободных байт на указанном диске

DiskSize - Возвращает полный объем указанного диска в байтах

Процедуры обработки файлов

FindFirst - Ищет в указанном или текущем справочнике первый файл, соответствующий заданному имени файла и набору атрибутов

FindNext - Возвращает следующий файл, соответствующий имени и атрибутам, указанным в предыдущем вызове FindFrst

GetFAttr - Возвращает атрибуты файла

SetFAttr Устанавливает атрибуты файла

FSplit - Разбивает имя файла на 3 составные части (справочник, имя файла, расширение)

Функции обработки файла

FExpand - Берет имя файла и возвращает полное имя файла (устройство, справочник, имя и расширение)

FSearch - Ищет файл в списке справочников

Процедуры обработки процессов

Exec - Выполняет заданную программу с указанной командной строкой

Keep - Завершает программу и оставляет ее в памяти (реализует прерывание "завершить и оставить резидентным"- TSR)

SwapVectors - Меняет сохраненные вектора прерываний с текущими векторами

Функции обработки процессов

DosExitCode - Возвращает код завершения подпроцесса

Функции управления средой

EnvCount - Возвращает число строк, содержащихся в среде DOS

EnvStr - Возвращает указанную строку среды

GetEnv - Возвращает значение указанной переменной среды

Дополнительные процедуры

GetCBreak - Возвращает состояние проверки Ctrl-Break в DOS

SetCBreak - Устанавливает состояние проверки Ctrl-Break в DOS

GetVerify - Возвращает состояние флага верификации в DOS

SetVerify - Устанавливает состояние флага верификации в DOS

Дополнительные функции

DosVersion - Возвращает номер версии DOS

Лекция 15

15.1 Модуль Graph.

На примере программы построения графика заданной функции

program Graphic;

uses Graph, Crt;

var Xmax, Ymax, Xmin, Ymin, hx, hy, x,y, xx1,xx2,yy1,yy2 : real;

Gd, Gm, xx, yy, mx, my, i,Color, x1,x2,y1,y2 : integer;

s : string[40];

function F(x : real) : real;

begin

F:=sin(10*x*x) {Функция, график которой строим}

end;

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

{ Начальные установки =======================================}

Color:=15;

writeln('Введите реальные координаты графика Xmax, Xmin, Ymax, Ymin');

readln(Xmax, Xmin, Ymax, Ymin);

writeln('Введите относительные координаты экрана x1,x2,y1,y2');

readln(xx1,xx2,yy1,yy2);

{ Установка графического режима =============================}

Gd:=Detect;

InitGraph(Gd, Gm,'d:\bp\BGI\');

i:=GraphResult;

if i<>grOk then

begin

writeln('Ошибка', i:3,'Нажмите любую клавишу');

repeat until KeyPressed; Exit

end;

{ Масштабирование ==========================================}

mx:=GetMaxX; my:=GetMaxY;

x1:=round(xx1*mx); x2:=round(xx2*mx); {Относительные координаты}

y1:=round(yy1*my); y2:=round(yy2*my); {выржаются в пикселах}

hx:=(x2-x1)/(Xmax-Xmin);

hy:=(y2-y1)/(Ymax-Ymin);

{ Рисуем оси координат =======================================}

xx:=x1-round(Xmin*hx);

if (xx>x1)and(xx<x2) then Line(xx, y1,xx, y2);

yy:=y1-round(Ymin*hy);

if (yy>y1)and(yy<y2) then Line(x1,yy, x2,yy);

{Подпись}

OutTextXY(x1,y2+round(0.1*my),'Pic.1. My picture');

{ Устанавливаем шкалы на оси и рисуем сетку ===================}

for i:=1 to 11 do

begin

xx:=x1+(i-1)*(x2-x1) div 10;

x:=Xmin+(Xmax-Xmin)/10*(i-1);

Str(x:5:2,s);

if odd(i) then OutTextXY(xx-20,y2+round(0.05*my),s);

Line(xx, y1,xx, y2);

yy:=y1+(i-1)*(y2-y1) div 10;

y:=Ymax-(Ymax-Ymin)/10*(i-1);

Str(y:5:2,s);

Line(x1,yy, x2,yy);

OutTextXY(x1-round(0.1*mx),yy-5,s);

end;

{ Рисуем график =============================================}

for i:=x1 to x2 do

begin

x:=Xmin+(i-x1-1)/hx;

y:=F(x);

yy:=y1+Round((Ymax-y)*hy);

PutPixel(i, yy, Color)

end;

{ Задержка ========================================}

repeat until KeyPressed;

CloseGraph

end.

Задание.

Заменить PutPixel на LineTo

Посмотреть, какие еще процедуры и функции имеются в модуле Graph

Задача «Часики» (CRT, Graph)

15.1.1 Общие сведения:

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

·  Можно организовать работу с нескольими страницами (экранами)

·  Можно выделить графическое окно. Очистить, рисовать.

·  Текущий цвет фона, текущий цвет рисования, текущий шрифт и размер текста.

·  Текущий указатель (аналог курсора)

·  Средства рисования фигур, точки

·  Средства выдачи текстового материала

·  Средства определения текущих установок

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5