Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LAB3bak

.pdf
Скачиваний:
2
Добавлен:
12.02.2015
Размер:
697.43 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА №3.

ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ПРИ ПОМОЩИ ПРОЦЕДУР И ФУНКЦИЙ

Цель работы познакомиться с понятиями "процедура" и "функция" в языке программирования Pascal, рассмотреть их сходства и различия, закрепить практические навыки работы с системой TURBO Pascal на примере реализации алгоритмов при помощи процедур и функций

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.Процедуры

Впрактике программирования часто встречаются случаи когда по ходу выполнения программы приходится выполнять одни и те же вычисления, но при различных исходных данных. Чтобы исключить повторение одинаковых записей и сделать тем самым программу проще и понятнее, можно выделить эти повторяющиеся вычисления в самостоятельную часть программы, которая может быть использована многократно по мере необходимости. Такая автономная часть программы (подпрограмма), реализующая определенный алгоритм и допускающая обращение к ней из различных частей общей программы, называется процеду-

рой.

Описание процедуры. Процедура оформляется аналогично программе и содержит заголовок, разделы описаний и выполняемых операторов (тело процедуры). Синтаксис заголовка процедуры:

PROCEDURE N (p1:T1; р2:Т2; … var Р1:Т1;…);

где 1) PROCEDURE ("процедура") - служебное слово,

2)N - имя процедуры;

3)pi (i = l, 2, … ) - формальные параметры-значения;

4)Pi (i = l, 2, … ) - формальные параметры-переменные;

5)Ti (i = l, 2, … ) - типы формальных параметров.

Разделы описаний процедуры подобно основной программе содержит разделы label, const, type, var и, в свою очередь, раздел процедур и функций. Раздел выполняемых операторов заключается в операторные скобки begin-end, причем после end в отличие от основной программы становится символ ";". Процедуры должны быть описаны в главной программе (или подпрограмме) перед служебным словом BEGIN основной программы (или подпрограммы) из которой она будет вызываться.

Формальные параметры-значения это имена переменных указанных в заголовке, которые определяются заново и используются при каждом выполнении подпрограммы. Из вызывающей программы им передаются только копии значений переменных указанных при ее вызове. Перед выполнением любой подпрограммы создается участок стековой памяти, в нем хранятся ячейки переменных подпрограммы и в том числе, указанных в заголовке в которые переписываются значения из указанных ячеек основной программы. Возврат в вызвавшую программу освобождает эту память (т.е. переменные, определенные подпрограммой и их значения перестают существовать). Таким образом, переменные, описанные в заголовке как параметры-значения, существуют только в момент исполнения подпрограммы во временном стеке (т.е. имеют локальный временной и пространственный характер существования). Имена таких формальных параметров (имена ячеек которые будет использовать только процедура) могут быть любыми и даже совпадать с именами переменных вызывающей программы.

Формальные параметры-переменные это имена переменных указанных в заголовке по-

сле ключевого слова var. В процессе выполнении подпрограммы вместо этих переменных используются переменные вызывающей программы указанные при ее вызове (будет происходить замещение формальных переменных фактическими). В качестве фактического параметра, соответствующего формальному параметру-переменной, должна использоваться

только переменная (не выражение!).

Если процедура не использует никаких значений из вызывающей программы, то список формальных параметров (параметров-значений и параметров-переменных) со скобками от-

сутствует.

Вызов процедуры (т.е. выполнение указанных в ней операторов) осуществляется указанием ее имени N в разделе выполнения операторов программы (или подпрограммы), в которой она описана. Если при задании имени в заголовке использованы параметры, то при

вызове процедуры вместо формальных параметров подставляются (обязательно!!!)

фактические параметры, значения которых используются в процедуре:

N (р1, р2, …, Р1, Р2,…);

где 1) N - имя процедуры,

2)р1, р2, … - фактические имена переменных вызывающей программы, конкретные значения или выражения (используются вычисленные по ним значения).;

3)Р1, Р2, … - только фактические имена переменных вызывающей программы (толь-

ко значения этих ячеек изменяются подпрограммой!!!).

Между фактическими и формальными параметрами должно быть соответствие по их (а) ко-

личеству (b) порядку следования и (с) типу.

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

Примерами параметров-значений служат параметры X, Y и Z в процедуре Primer_1 со следующим заголовком:

Procedure Primer_1 (X, Y, Z: Real; var F1, F2: Real);

Здесь фактическим параметром, соответствующим X, либо Y, либо Z, может быть значение или выражение типа Real, а – F1 или F2 должны быть обязательно индификаторами переменных типа Real.

Для параметров-значений компилятор при вызове процедуры производит следующие действия (1) выделяет место в оперативной памяти для каждого формального параметра, (2) вычисляет значение фактического параметра и засылает его в ячейку, соответствующую формальному параметру, (3) выполняет тело процедуры.

При вызове процедур параметры-переменные обрабатываются так: для формального параметра используется именно та ячейка, которая содержит соответствующий фактический параметр. Таким образом, под формальные и фактические значения транслятор отводит оди-

наковые области памяти. Поэтому результат выполнения процедуры может быть передан вызывающей программе только через параметр-переменную. Так как процедура по за-

вершении ничего не возвращает в вызвавшую программу, то в выражениях и операциях присваивания ее нельзя использовать.

Выполнение вызова процедуры состоит в следующем. Некоторые формальные параметры заменяются соответствующими фактическими (параметры-переменные), а другие (па- раметры-значения) получают значения фактических. После этого создается так называемый динамический экземпляр процедуры, который и выполняется. После выполнения процедуры происходит передача управления в основную программу, т е начинает выполняться оператор, следующий за оператором вызова процедуры

2. Функции

Подпрограмма Функция (или просто Функция) это процедура, возвращающая резуль-

тат. Оформляется аналогично процедуре. Особенности функции: она имеет только один

результат выполнения, результат обозначается именем функции и возвращается (передается) в основную программу.

Определение функции. Функция состоит из заголовка, раздела описаний и раздела операторов. Синтаксис заголовка функции:

FUNCTION F (P1: Т1, …, РN: ТN): Type_ F;

где 1) FUNCTION ("функция") - служебное слово,

2)F - имя функции,

3)P1, .., PN - формальные параметры,

4)T1, ..., TN - типы формальных параметров,

5)Type_F - тип результата

Таким образом, алгоритм можно оформить в виде функции в том случае, если в качестве результата получается одно единственное значение (а). После работы функции результат присваивается имени функции (б), поэтому в блоке выполнения функции обязательно должен присутствовать хотя бы один оператор присваивания вида:

Имя_функции := Результат.

Вызов функции производится использованием ее имения (с фактическими параметрами) в любом выражении. Отметим, что имя функции можно использовать в выражениях в операциях присваивания и других операциях;

Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур.

Константы, переменные, типы, описанные в блоке PROGRAM, называют глобальными.

В TURBO Pascal 7 0 допускается передача имени функции (или процедуры) в качестве фактического параметра в другую процедуру или функцию. Такой тип данных получил название процедурного типа. Для использования данной возможности необходимо придерживаться следующих правил:

1)в секции Type описать пользовательский тип как функцию (или процедуру с соответствующими параметрами);

2)в секции Var объявить переменную с типом функции;

3)процедуры, передаваемые в качестве параметров, должны быть обязательно откомпилированы с опцией {$F+};

4)связать переменную типа функция с пользовательской процедурой или функцией;

5)передать в процедуру значение этой переменной (можно передавать и непосредственно имя процедуры или функции).

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ Пример 1. Демонстрация использования процедуры без параметров.

PROGRAM Primer_1;

(* имя головной программы *)

var a,b: Integer;

(* объявление переменных головной программы *)

PROCEDURE Stars;

 

(* заголовок процедуры Stars *)

var i: Integer;

 

(*объявление переменных процедуры*)

BEGIN

 

(* начало тела процедуры *)

For i :=1 to 40 do Write ('*' ); WriteLn

END;

 

(* конец объявления процедуры Stars *)

BEGIN

(* начало тела головной программы *)

WriteLn;

 

 

Stars;

 

(* вызов процедуры Stars *)

Write (' Введите значение а

' ); ReadLn (a);

Write (' Введите значение b

' ); ReadLn (b);

Stars;

 

(* вызов процедуры Stars *)

WriteLn (' a+b=', a+b,'

a*b=',a*b,' a-b=', a-b);

Stars

(* вызов процедуры Stars *)

END.

(* конец головной программы*)

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

PROGRAM Primer_3;

(*имя головной программы*)

var x,y: Real;

(*объявление переменных головной программы*)

{--------------------------------------

}

 

PROCEDURE I_N_P_U_T (var a, b: Real);

(* заголовок процедуры I_N_P_U_T *)

BEGIN

 

(* начало тела процедуры *)

Writeln;

 

 

Write (' Введите значения двух переменных типа Real '); ReadLn (a, b)

END;

 

(* конец объявления 1-ой процедуры *)

{--------------------------------------------------

}

 

PROCEDURE S_W_A_P (var a, b: Real);

(* заголовок процедуры S_W_A_P *)

var t: Real;

 

(*объявление переменных процедуры*)

BEGIN

 

(* начало тела процедуры *)

t:=a; a:=b; b:=t

 

(* конец объявления 2-ой процедуры *)

END;

 

{------------------------------------------------

}

 

PROCEDURE O_U_T_P_U_T (a, b: Real);

(* заголовок процедуры O_U_T_P_U_T *)

BEGIN

 

(* начало тела процедуры *)

WriteLn (' Результат ' ,a:7:3,' ',b:7:3)

(* конец объявления 3-ей процедуры *)

END;

 

BEGIN

(* начало тела головной программы *)

I_N_P_U_T (x,y);

(* вызов процедуры I_N_P_U_T *)

S_W_A_P (x,y);

(* вызов процедуры S_W_A_P *)

0_U_T_P_U_T (x, y)

(* вызов процедуры 0_U_T_P_U_T *)

END.

(* конец головной программы*)

Пример 3. Замечательным достижением Франсуа Виеты является введение в математику задачи о нахождении бесконечного произведения. Вычислить:

Заметим, что при реализации алгоритма используются функции.

PROGRAM Primer_4; {$F+}

(*имя программы. Включение опции «Far»*)

type Funct = Function (X: Real):Real;

(*Задание нового процедурного типа Funct *)

var Eps: Real;

 

F: Funct;

 

{-------------------------------------------------------

}

FUNCTION Sq2 (X: Real): Real;

(* заголовок процедуры Sq2*)

BEGIN

(* начало тела процедуры *)

Sq2:=Sqrt(X)

(* конец объявления 1-ой процедуры *)

END;

{-------------------------------------------------------

}

FUNCTION Sq3 (X:Real): Real;

(* заголовок процедуры Sq3*)

BEGIN

(* начало тела процедуры *)

Sq3 :=Exp (Ln (X)/3.0)

(* конец объявления 2-ой процедуры *)

END;

{ ---------------------------------------------------

}

FUNCTION Sq4 (X:Real): Real;

(* заголовок процедуры Sq4*)

BEGIN

(* начало тела процедуры *)

Sq4 :=Exp (Ln (X)/4.0)

(* конец объявления 3-ой процедуры *)

END;

{---------------------------------------------------

}

function f_f_f (Eps: Real; F: Funct): Real; (* заголовок процедуры f_f_f *)

var A: Real;

(*объявление переменных процедуры*)

S: Real;

 

r: Real;

 

BEGIN

(* начало тела процедуры *)

A:=1.0/F(2); r:=A; S:=A;

 

While r<1-Eps do

 

begin r:=F((1+a)/2.0); A:=r; S:=S*r end;

F_F_F:=S

(* конец объявления 4-ой процедуры *)

END;

BEGIN

(* начало тела головной программы *)

Write ('Введите значение Eps '); ReadLn (Eps);

WriteLn ('Результат F_F_F (Eps, Sq2)); WriteLn (' Контроль ',2/PI);

WriteLn ('Результат F_F_F (Eps, Sq3));

WriteLn ('Результат F_F_F (Eps, Sq4));

END.

(* конец головной программы*)

Пример 4. Измерение времени вычисления значения бесконечного произведения

PROGRAM Ramanudjan; {$E+,N+}

Uses DOS, { Необходимо для обращения к процедуре GetTime }

var Eps,A, S, r: Extended;

 

 

 

HourO, MinO, SecO, secOlOO, Hour1, Min1, Sec1, Sec1100: Word;

{------------------------------------------------------------

}

 

 

FUNCTION WorkTime(HourO,MinO,SecO, secO1OO,

 

 

Hour1,Min1,Sec1, Sec1100: Word): Integer;

 

(* Функция вычисляет время, в 1/100 секунды, от начального до *)

(* конечного моментов работы программы HourO

MinO SecO

*)

(* SесО10О - начальное время Hour1

Min1 Sec1

Sec1100

*)

(* конечное время (часы минуть, секунды, 1/100 секунды)

*)

var OldTime: Real; { Начальное время в секундах }

 

NewTime: Real; { Конечное время в секундах }

 

BEGIN

OldTime :=HourO*60*60+MinO*60+SecO+Sec0100/100;

NewTime :=Hour1*60*60+Min1*60+Sec1+Sec11OO/1OO;

WorkTime :=Round ((NewTime, 0ldTime)*lOO)

END;

BEGIN

Write ('Введите значение Eps '); ReadLn (Eps); { Фиксация времени начала работы программы }

GetTime (HourO, MinO, SecO, SecO1OO); A:=1.0/Sqrt(2); r:=A; S:=A; While r<1-Eps do

begin r :=Sqrt ((1+A)/2.0); A:=r; S:=S*r end;

{ Фиксация времени окончания работы программы }

GetTime (Hour1, Мin1, Sес1, Sec11OO); WriteLn ('Результат ',S); WriteLn ('Контроль ', 2/PI); Write ('Время работы программы ' ); WriteLn ('WorkTime (HourO, MinO,SecO,SecO1OO,

Hour1, Min1, Sec1, Sес1100),' микросек')

END.

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

1.Написать программу полного исследования совокупности корней биквадратного уравнения.

2.Написать программу вычисления Р по формуле

где п - заданное натуральное число.

3.Написать программу вычисления

4.Проверить, делится ли заданное натуральное число на 19 тогда и только тогда, когда число его десятков, сложенное с удвоенным числом единиц, делится на 19.

5.Вычислить max(min(3,5),nun(2,6)).

6*. Задача Ферма. Найти квадрат, который в сумме со всеми его собственными делителями дает куб.

7*. Вычислить (результат принадлежит Сринивазу Рамануджану):

Ответ 3

8*. Вычислить (результат принадлежит Сринивазу Рамануджану):

где знаки перед корнями периодически повторяются группами по три "-","+","-"

Ответ 1+2 3 sin 20°

9*. Вычислить (результат принадлежит Сринивазу Рамануджану):

где знаки перед корнями периодически повторяются группами по три "-","+","-".

Ответ 1+4 sin 10°

10*. Вычислить (результат принадлежит Сринивазу Рамануджану)

где знаки перед корнями периодически повторяются группами по три "-","+","-".

Ответ 1+4 3 sin 20°

11*. Замечательным достижением Франсуа Виеты является введение в математику задачи о нахождении бесконечного произведения Вычислить

Разумеется, Виета не доказывает сходимости полученного бесконечного произведения, будучи интуитивно уверенным, в справедливости своего предельного утверждения. Ответ 2/π

12.По вещественному х вычислить значение функции sh(x)tg(x+l)-tg2(2+sh(x-l)).

13.Описать функцию Stepen(x,n) от вещественного х и натурального п, вычисляющую (посредством умножения) величину хn, и использовать ее для вычисления b=2.7k+(a+1)-5

14.Даны три натуральных числа. Определить их наибольший общий делитель.

15.Даны отрезки а,b,с и d Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника Определить процедуру Р1(х, у, z), печатающую площадь треугольника со сторонами x, y и z, если такой треугольник существует.

16.Пусть процедура maxmin(x, у) присваивает параметру х большее из вещественных чисел

х и у, а параметру у - меньшее. Описать данную процедуру и использовать ее для перераспределения значений вещественных переменных а, b и стак, чтобы стало, а b с.

17.Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь.

18.Описать процедуру Socr(a, b, p, q) от целых параметров (b0), которая приводит дробь

к несократимому виду .

19. Пусть процедура Socr(a, b, p, q) от целых параметров (b0) приводит дробь к несокра-

тимому виду . Описать данную процедуру и использовать ее для приведения дроби

кнесократимому виду .

20.Даны длины a, b и с сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника Длина медианы, проведенной к

стороне а, равна

.

21. Описать функцию

, где n и m - неотрицательные целые числа.

22.Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника (При определении расстояний учесть, что площадь треугольника вычисляется и через три его стороны, и через основание и высоту).

23.Три прямые на плоскости заданы уравнениями аk х + bk, у = сk, k = 1,2,3. Если эти прямые попарно пересекаются и образуют треугольник, тогда найти его площадь.

24.Найти наименьшее общее кратное четырех заданных натуральных чисел.

25.Два простых числа называются близнецами, если они отличаются друг от дру-га на 2 (таковы, например, числа 41 и 43) Напечатать все пары "близнецов" из отрезка [n,2n], где п - заданное целое число, большее двух. Воспользоваться функцией распознавания простых чисел.

26.Два натуральных числа называются 'дружественными", если каждое из них равно сумме всех делителей другого, за исключением его самого (таковы, например, числа 220 и 284) Напечатать все пары "дружественных" чисел, не превосходящих заданного натурального числа

27.Задача Ферма. Найти куб, который в сумме со всеми его собственными делителями дает

квадрат.

Ответ 343

28.Дано четное число п>2. Проверить для этого числа гипотезу Гольдбаха. Эта гипотеза (по сегодняшний день не опровергнутая и полностью не доказанная) заключается в том, что каждое четное и, большее двух, представляется в виде суммы двух простых чисел. Воспользоваться функцией распознавания простых чисел.

29.Дано натуральное число n. Выяснить, является ли оно полным квадратом. Определить функцию, позволяющую распознавать полные квадраты.

30.Даны натуральное число п. Выяснить, является ли оно степенью пятерки. Определить функцию, позволяющую распознавать степени пятерки.

31.Дано натуральное число п. Выяснить, является ли оно простым. Определить функцию, позволяющую распознавать простые числа.

32.Даны три натуральных числа. Определить их наибольший общий делитель.

33.Числа Фибоначчи u012, определяются следующим образом u0=1, u1=2, un=un-1+un+1 (п=2,3,....). Написать программу вычисления к, для данного неотрицательного целого и, включающую использование нерекурсивной функции.

3. СТАНДАРТНЫЕ БИБЛИОТЕКИ ПОДПРОГРАММ В ТУРБО ПАСКАЛЕ

Расширение возможностей ВводаВывода. Модуль CRT

Модуль CRT содержит подпрограммы дополнительного управления текстовым выводом на экран дисплея (цвет, окно на экране, позиционирование курсора внутри окна и т.д.), звуковым генератором и чтения с клавиатуры (чтения символов без отображения на экране). Модуль подключается в начале раздела описания основной программы оператором:

Uses CRT;

Врежиме текстового вывода координаты экрана следующие: верхний левый угол <1,1>, нижний правый <WindMax>, причем горизонтальная координата возрастает слева направо, а вертикальная - сверху вниз. Если на экране активизировано окно, то все координаты определяются относительно границ окна, за исключением процедуры Window (здесь координаты всегда задаются относительно границ экрана).

Для чтения с клавиатуры используются две функции: KeyPressed и ReadKey. Функция KeyPressed определяет факт нажатия на любую клавишу и не приостанавливает дальнейшее исполнение программы. Функция ReadKey читает расширенный код нажатой клавиши и ожидает действий пользователя.

Управление звуковым генератором строится по схеме Sound - Delay - NoSound. Первая процедура включает генератор и генерирует звук нужного тона. Вторая - приостанавливает работу программы на заданное число миллисекунд реального времени. Третья - отключает звуковой генератор.

Вмодуле определены константы, переменные и подпрограммы (функции и процедуры) значение, которых заново определять нельзя.

CRT - режимы: КОНСТАНТЫ

 

 

 

 

имя

 

значение

 

Режим

 

 

 

 

 

 

 

константы

 

константы

 

отображения

 

 

 

 

 

 

 

CRT

 

 

 

 

(строки х столбцы)

 

 

 

 

 

 

BW40

 

0

 

 

40x25, ч-б.

 

 

 

 

 

 

 

CO40

 

1

 

 

40x25, ц.

 

 

 

 

 

 

 

BW80

 

2

 

 

80x25, ч-б.

 

 

 

 

 

 

 

CO80

 

3

 

 

80x25, ц.

 

 

 

 

 

 

 

Mono

 

7

 

 

80x25, монохром.

 

 

 

 

 

 

Font8x8

 

256

 

 

EGA (80x43) или

 

 

 

 

 

 

 

 

 

 

 

 

 

VGA (80x50)

 

 

 

 

 

 

 

 

 

Константы цвета символов:

 

Константы цвета фона и символов:

 

 

Black

0

 

черный

 

 

DarkGray

 

8

темно-серый

 

Blue

1

 

голубой

 

 

LightBlue

 

9

светло-голубой

 

Green

2

 

зеленый

 

 

LightGreen

 

10

светло-зеленый

 

Cyan

3

 

бирюзовый

 

 

LightCyan

 

11

светло-бирюзовый

 

Red

4

 

красный

 

 

LightRed

 

12

светло-красный

 

Magenta

5

 

малиновый

 

 

LightMagenta

 

13

светло-малиновый

 

Brown

6

 

коричневый

 

 

Yellow

 

14

желтый

 

LightGray

7

 

светло-серый

 

White

 

15

белый

 

 

 

 

 

 

 

 

 

Blink

 

128

бит мерцания

 

 

ПЕРЕМЕННЫЕ

CheckBreak: Boolean;

Реакция на Ctrl-Break

CheckEOF: Boolean;

Реакция на Ctrl-Z - end of file

DirectVideo: Boolean;

Разрешение/запрещение прямой работы с видеопамятью

CheckSnow: Boolean;

Реакция на "снег" монитора

LastMode: Word;

Хранение последнего текстового режима

TextAttr: Byte;

Текущий текстовый атрибут

WindMin: Word;

Координаты <X,Y> верхнего левого угла текущего окна

WindMax: Word;

Координаты <X,Y> нижнего правого угла текущего окна

ПРОЦЕДУРЫ И ФУНКЦИИ

function KeyPressed: Boolean;

возвращает значение True, если на клавиатуре была нажата любая клавиша.

function ReadKey: Char;

читает символ с клавиатуры без эхо повтора и приостанавливает исполнение програм-

мы до нажатия на любую клавишу, кроме Shift, Ctrl, Alt, CapsLock, NumLock.

procedure TextMode(Mode: Integer);

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

procedure Window(X1,Y1,X2,Y2: Byte);

открывает текстовое окно на экране с абсолютными координатами <X1,Y2>, <X2,Y2>.

procedure GotoXY(X,Y: Byte);

перемещает курсор в нужное место <X,Y> активного окна.

function WhereX: Byte;

возвращает горизонтальную координату X текущего положения курсора в активном окне.

function WhereY: Byte;

то же для вертикальной координаты Y.

procedure ClrScr;

очищает окно и помещает курсор в левый верхний угол <1,1>.

procedure ClrEol;

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

курсора.

procedure InsLine;

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

procedure DelLine;

удаляет строку, на которой находится курсор, и перемещает все строки, расположен-

ные ниже нее, на строку вверх.

procedure TextColor(Color: Byte);

устанавливает цвет символов.

procedure TextBackground(Color: Byte);

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

procedure LowVideo, procedure HighVideo и procedure NormVideo;

устанавливает низкую, высокую и нормальную яркость символов.

procedure Delay(MS: Word);

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

procedure Sound(Hz: Word) и procedure NoSound;

включает звуковой генератор с указанной звуковой частотой Hz и выключает звуковой генератор.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]