Задачник-практикум по основам программирования. Учебное пособие по курсу «Информатика»
.pdf
|
Окончание табл. |
|
|
Èìÿ |
Назначение |
|
|
trunc |
Целая часть вещественного аргумента |
|
|
|
Дополнительные функции |
|
|
Èìÿ |
Назначение |
|
|
frac |
Дробная часть аргумента |
int |
Целая часть аргумента |
pi |
Число π |
random |
Получение случайного числа |
|
Процедуры ввода / вывода |
|
|
Èìÿ |
Назначение |
|
|
read |
Ввод данных |
|
|
readln |
Ввод данных и пропуск информации до начала |
|
следующей строки ввода |
write |
Вывод данных |
writeln |
Вывод данных и переход на новую строку вывода |
|
Дополнительные процедуры |
|
|
Èìÿ |
Назначение |
|
|
dec |
Уменьшение значения переменной |
|
|
inc |
Увеличение значения переменной |
|
|
randomize |
Инициализация генератора случайных чисел |
|
|
Функция abs
function abs(X: < вещественный или целый тип >): < вещественный или целый тип >;
Возвращает абсолютное значение аргумента. Тип результата совпадает с типом аргумента.
Функция arctan
function arctan (X: real): real;
Вычисляет значение арктангенса аргумента в радианах. Результат (значение угла в радианах) находится в пределах от –π/2 до π/2.
171
Функция chr
function chr(X: < целый тип >): char;
X – код символа.
Возвращает символ c кодом X.
Если значение X больше 255, то возникает ошибочная ситуация.
Функция cos
function cos (X: real): real;
X – угол в радианах.
Вычисляет значение косинуса аргумента.
Функция exp
function exp (X: real): real;
Вычисляет экспоненту – значение показательной функции с основанием e.
Функция frac
function frac (X: real): real;
Выделяет дробную часть аргумента.
Функция inc
function inc (X: real): real;
Выделяет целую часть аргумента без преобразования типа.
Функция ln
function ln (X: real): real;
Вычисляет значение натурального логарифма аргумента.
Функция odd
function odd (X: < целый тип >): boolean;
X – целое число, проверяемое на нечетность.
Возвращает значение TRUE (ИСТИНА), если X – нечетное число, и значение FALSE (ЛОЖЬ), если четное.
Функция ord
function ord(X: < порядковый тип >): < целый тип >;
Возвращает порядковый номер аргумента X в множестве, определяе- мом порядковым типом. Диапазон значений функции изменяется от 0 до
32767.
172
Функция pi
function pi: real;
Возвращает значение числа π = 3.14159265358979...
Функция pred
function pred (X: < порядковый тип >): < порядковый тип >;
Возвращает предыдущее значение (элемент, предшествующий X в списке значений типа).
Если предыдущего значения нет, возникает ошибочная ситуация.
Функция random
function random [(range: < целый тип >)]:
< целый или вещественный тип >;
Генерирует случайное (псевдослучайное) целое число X в пределах
0 ≤ X < range.
Если параметр range отсутствует, то возвращается вещественное случайное число X в пределах 0.0 ≤ X < 1.0.
Перед обращением к функции random ее следует инициализировать, используя процедуру randomize. Для получения «более случайного» чис- ла следует периодически менять базу генерации, обращаясь к процедуре randomize.
Функция round
function round (X: real): < целый тип >;
Округляет вещественное значение до целого.
Функция sin
function sin (X: real): real;
X – угол в радианах.
Вычисляет значение синуса аргумента.
Функция sqr
function sqr(X: < вещественный или целый тип >): < вещественный или целый тип >;
Вычисляет значение квадрата аргумента. Тип результата совпадает с типом аргумента.
173
Функция sqrt
function sqrt (X: real): real;
Вычисляет значение квадратного корня аргумента.
Функция succ
function succ (X: < порядковый тип >): < порядковый тип >;
Возвращает следующее значение (элемент, следующий за X в списке значений типа).
Если следующего значения нет, возникает ошибочная ситуация.
Функция trunc
function trunc (X: real): < целый тип >;
Выделяет целую часть вещественного числа путем отбрасывания дробной части.
Процедура dec
procedure dec (var X[; dx: < целый тип >]);
X – переменная порядкового типа.
Уменьшает значение переменной X на величину dx.
Если параметр dx не задан, то переменная X принимает свое пред- шествующее значение.
Если переменная X не может принимать вычисленное значение, то возникает ошибочная ситуация.
Процедура inc
procedure inc (var X[; dx: < целый тип >]);
X – переменная порядкового типа.
Увеличивает значение переменной X на величину dx.
Если параметр dx не задан, то переменная X принимает свое следу- ющее значение.
Если переменная X не может принимать вычисленное значение, то возникает ошибочная ситуация.
Процедура randomize
procedure randomize;
Инициализирует встроенный генератор случайных чисел текущим системным временем.
174
Значения случайных чисел можно получить с помощью функции random.
Процедура read
read (V1[, V2,..., Vn])
V1, V2,..., Vn – параметры ввода.
Ввод данных (данные вводятся с клавиатуры) в одну или несколько переменных.
Параметрами ввода должны быть переменные символьного, целого или вещественного типа.
Если значение вводится в числовую переменную, то предшествующие числу пробелы и маркеры строк пропускаются.
Возможна ошибочная ситуация (ошибка ввода) в случае неправильного задания вводимого числа.
Процедура readln
readln ([V1, V2,..., Vn])
V1, V2,..., Vn – параметры ввода.
Процедура, как и read, используется для ввода (чтения значений), а по- том осуществляет пропуск информации до начала следующей строки ввода.
Процедура write
write (P1[, P2,..., Pn])
P1, P2,..., Pn – параметры вывода. Выводит на экран одно или несколько значений.
Параметрами вывода могут быть константы, переменные и выраже-
ния.
Для каждого типа данных существует стандартный формат вывода, зависящий от компилятора. Чтобы изменить стандартный формат необхо- димо использовать форматированный вывод.
Форматы вывода:
Для любых типов: write(P: m), где m – ширина поля вывода. Если результат не помещается в указанные позиции, то формат иг-
норируется. Вещественные числа в этом формате выводятся в экспонен- циальной форме.
Для вещественного типа: write(P: m: n), где m – ширина поля вывода, n – количество цифр в дробной части.
175
Параметр m задает минимальное число символов, необходимых для вывода значения выражения e, представляющего число, символ, булевское значение или строку. Если для представления требуется менее m символов, то добавляются пробелы и выводимая информация выравнивается по пра- вому краю поля. Если параметр m опущен, то подразумевается некоторое зависящее от реализации значение.
Процедура writeln
writeln ([P1, P2,..., Pn]);
Выполняет те же действия, что и процедура write, и осуществляет переход на новую строку вывода.
ПРИЛОЖЕНИЕ Б
Работа с графикой в системе PascalABC
Стандартный модуль GraphABC системы PascalABC содержит типы, константы, переменные, процедуры и функции, позволяющие создавать изображения в специальном в графическом окне [18].
Графическое окно состоит из отдельных «точек» – пикселей. Каждый пиксель имеет две координаты: X и Y. Ось OX направлена слева направо, начиная с 0, а ось OY – сверху вниз, также начиная с 0; т. е. левый верхний пиксель имеет координаты (0,0). Пиксели можно закрасить в различные цвета.
В приложении приведены основные данные о возможностях модуля GraphABC: управление цветом, рисование простейших графических объ- ектов, вывод текста, управление графическим окном. Более подробную информацию можно получить в справке по PascalABC или в [1].
Описания подпрограмм модуля даны в алфавитном порядке: сначала процедуры, потом функции.
Управление цветом
Стандартные цвета задаются константами, приведенными в алфавит-
ном порядке в таблице Б.1. |
|
||
Б.1. |
Стандартные цвета модуля GraphABC |
||
|
|
|
|
Èìÿ |
|
Öâåò |
Интенсивность |
|
|
|
|
clAqua |
|
Бирюзовый |
0, 255, 255 |
clBlack |
|
Черный |
0, 0, 0 |
clBlue |
|
Синий |
0, 0, 255 |
clBrown |
|
Коричневый |
128, 64, 0 |
clCream |
|
Кремовый |
255, 251, 240 |
clDarkGray |
|
Темно-серый |
64, 64, 64 |
clFuchsia |
|
Сиреневый |
255, 0, 255 |
177
|
|
Окончание табл. |
|
|
|
Èìÿ |
Öâåò |
Интенсивность |
|
|
|
clGray |
Серый |
128, 128, 128 |
clGreen |
Зеленый |
0, 128, 0 |
clLtGray |
Светло-серый |
192, 192, 192 |
clLime |
Ярко-зеленый |
0, 255, 0 |
clMaroon |
Темно-красный |
128, 0, 0 |
clMoneyGreen |
Цвет зеленых денег |
192, 220, 192 |
clNavy |
Темно-синий |
0, 0, 128 |
clOlive |
Оливковый |
128, 128, 0 |
clPurple |
Фиолетовый |
128, 0, 128 |
clRed |
Красный |
255, 0, 0 |
clSkyBlue |
Голубой |
166, 202, 240 |
clTeal |
Сине-зеленый |
0, 128, 128 |
clWhite |
Белый |
255, 255, 255 |
clYellow |
Желтый |
255, 255, 0 |
|
Функции для работы с цветом |
|
|
|
|
Èìÿ |
|
Назначение |
|
|
|
RGB |
|
Код цвета |
GetRed |
|
Выделение красной составляющей цвета |
GetGreen |
|
Выделение зеленой составляющей цвета |
GetBlue |
|
Выделение синей составляющей цвета |
GetPixel |
|
Текущий цвет пикселя |
Функция clRandom
function clRandom: integer;
Возвращает случайный цвет.
Функция GetBlue
function GetBlue(color: integer): integer;
Выделяет синюю составляющую из цвета color ( целое в диапазоне от 0 до 255 ).
178
Функция GetGreen
function GetGreen(color: integer): integer;
Выделяет зеленую составляющую из цвета color (целое в диапазоне от 0 до 255);
Функция GetRed
function GetRed(color: integer): integer;
Выделяет красную составляющую из цвета color (целое в диапазоне от 0 до 255);
Функция GetPixel
function GetPixel(x,y: integer): integer;
Возвращает текущее значение цвета пикселя с координатами (x,y).
Функция RGB
function RGB(r,g,b: integer): integer;
Возвращает код цвета, содержащий красную (Red), зеленую (Green) и синюю (Blue) составляющие с интенсивностями r, g и b соответственно (r, g и b – целые в диапазоне от 0 до 255, причем 0 соответствует мини- мальной интенсивности, 255 – максимальной).
Количество возможных цветов равно 2563 =16777216.
Простейшие графические объекты
Простейшие графические объекты называются графическими прими-
тивами.
Процедуры рисования графических примитивов
Èìÿ |
Назначение |
|
|
SetPixel |
Закраска пикселя цветом |
Line |
Рисование линии |
Rectangle |
Рисование прямоугольника |
Circle |
Рисование окружности |
Ellipse |
Рисование эллипса |
179
Процедура Circle
procedure Circle(x,y,r: integer);
Рисует окружность с центром в точке (x,y) и радиусом r.
Процедура Ellipse
procedure Ellipse(x1,y1,x2,y2: integer);
Рисует эллипс, заданный своим описанным прямоугольником с коор- динатами противоположных вершин (x1,y1) и (x2,y2).
Процедура Line
procedure Line(x1,y1,x2,y2: integer);
Рисует отрезок с началом в точке (x1,y1) и концом в точке
(x2,y2).
Процедура Rectangle
procedure Rectangle(x1,y1,x2,y2: integer);
Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
Процедура SetPixel
procedure SetPixel(x,y,color: integer);
Закрашивает один пиксель с координатами (x,y) цветом color.
Рисование графических объектов
Рисование графических объектов осуществляется пером и кистью. Линии, ограничивающие объекты, рисуются пером.
|
Действия с пером |
|
|
Èìÿ |
Назначение |
|
|
PenX |
Текущая координата X пера |
PenY |
Текущая координата Y пера |
SetPenColor |
Установка цвета пера |
PenColor |
Текущий цвет пера |
MoveTo |
Перемещение пера |
LineTo |
Рисование отрезка от текущего положения пера |
180
