Справочник по Паскалю
Пройти тест по программированию на Pascal
ВВОД И ВЫВОД ДАННЫХ
(СТАНДАРТНЫЕ
УСТРОЙСТВА)
Процедура
(функция) |
Назначение |
Пример
вызова |
Примечания |
read(список ввода) |
ввод
данных (клавиатура) |
read(a,
b, c) |
|
Readln(список ввода) |
ввод
данных, пропуск маркера конца строки |
readln(a,
b, c) |
|
Write(список вывода) |
вывод
данных (экран) |
write(‘n =
’,n:10) write(‘n = ‘,n:p:q) |
p,
q: величины целого типа |
Writeln(список вывода) |
вывод
данных, вывод маркера конца строки |
writeln(‘?’:s+2)
writeln(‘’:spaces) |
s,
spaces: величины целого типа |
Clrscr |
очистить
весь экран (окрасить в цвет фона) |
clrscr |
модуль
crt |
Textcolor(цвет) |
выбрать
цвет символа |
textcolor(magenta) |
модуль
crt |
Textbackground(цвет) |
выбрать
цвет фона |
textbackground(0) |
модуль
crt |
Window(x1, y1, x2, y2) |
окно
(x1, y1) - (x2, y2) |
window(1, 1, 40, 10) |
модуль
crt |
Wherex |
позиция
курсора x - номер колонки |
x
:= wherex |
модуль
crt |
Wherey |
позиция
курсора y - номер строки |
y
:= wherey |
модуль
crt |
Gotoxy(x, y) |
установить
курсор в положение (x, y); |
gotoxy(40,
10) |
модуль
crt |
Определения
констант-названий цветов палитры в текстовых режимах (модуль crt)
Номер |
Цвет (имя
константы) |
Номер |
Цвет (имя
константы) |
0 |
Black |
8 |
DarkGray |
1 |
Blue |
9 |
LightBlue |
2 |
Green |
10 |
LightGreen |
3 |
Cyan |
11 |
LightCyan |
4 |
Red |
12 |
LightRed |
5 |
Magenta |
13 |
LightMagenta |
6 |
Brown |
14 |
Yellow |
7 |
LightGray |
15 |
White |
ПРОЦЕДУРЫ И
ФУНКЦИИ
ДЛЯ УПРАВЛЕНИЯ ПРОГРАММОЙ
halt(результат) |
выход
из программы, результат - код
завершения (целое число) |
exit |
выход
из процедуры или функции пользователя |
break |
выход
из цикла |
readkey |
остановка
программы до нажатия клавиши; значение
функции - код нажатой клавиши (символа); символ
клавиши на экране монитора не отображается. |
delay(время) |
остановка
программы; время - время задержки (миллисекунды (мс))
1
мс. = 1 / 1000 с. |
ФУНКЦИИ
Функция |
Назначение |
Пример
вызова |
Результат |
abs(число) |
Абсолютное значение числа |
abs(-3.5) |
+3.5 |
arctan(тангенс угла) |
Арктангенс числа |
arctan(0) |
0 |
cos(угол) |
Косинус угла (радианы) |
cos(pi) |
-1 |
exp(число) |
Экспонента |
exp(1) |
2.718281828... |
frac(число) |
Дробная часть числа |
frac(3.5) |
0.5 |
int(число) |
Целая часть числа |
int(3.5) |
3.0 |
ln(число) |
Натуральный логарифм |
ln(2.718281828) |
~1.0 |
odd(число) |
Проверка нечетности |
odd(3) |
True |
pi |
Число пи |
pi |
3.141592... |
random(число) |
«случайное» число |
random(10) |
Число в [0;10] |
sin(угол) |
Синус угла (радианы) |
sin(pi) |
0 |
sqr(число) |
Квадрат числа |
sqr(2.0) |
4.0 |
sqrt(число) |
Квадратный корень |
sqrt(25.0) |
5.0 |
Процедура |
Назначение |
Пример
вызова |
Результат |
inc(число) |
Увеличить
на 1 |
inc(n) |
n
:= n + 1 |
dec(число) |
Уменьшить
на 1 |
dec(n) |
n
:= n - 1 |
СТРУКТУРЫ ДАННЫХ
Модель организации данных строки (s[0] = длина строки, 0
<= s[0] <= 255)
s[0] |
s[1] |
s[2] |
s[3] |
s[4] |
.... |
s[n] |
var <идентификатор>
: string; {длина
строки <= 255 символов}
var <идентификатор>
: string [ максимальное количество
символов ];
ОПЕРАЦИЯ
СОЕДИНЕНИЯ СТРОК (КОНКАТЕНАЦИЯ)
строка := строка1
+ строка2 + ... + строкаn;
Модель
организации данных одномерного массива: a[1..n]
a[1] |
a[2] |
a[3] |
a[4] |
a[5] |
... |
a[n] |
Модель
организации данных двумерного массива: a[1..m, 1..n]
a[1,1] |
a[1,2] |
a[1,3] |
a[1,4] |
a[1,5] |
... |
... |
... |
... |
a[1,n] |
a[2,1] |
a[2,2] |
a[2,3] |
a[2,4] |
a[2,5] |
... |
... |
... |
... |
a[2,n] |
a[3,1] |
a[3,2] |
a[3,3] |
a[3,4] |
a[3,5] |
... |
... |
... |
... |
a[3,n] |
... |
... |
... |
... |
... |
... |
... |
... |
... |
|
a[m,1] |
a[m,2] |
a[m,3] |
a[m,4] |
a[m,5] |
... |
... |
... |
... |
a[m,n] |
type
<идентификатор> = array [1 . . m,
1 . . n ] of <тип
массива>;
Модель множества (количество элементов <=256, литеры или
целые числа 0..255)
0 |
1 |
2 |
3 |
4 |
... |
255 |
1 |
1 |
0 |
1 |
0 |
... |
0 |
type <идентификатор>
= set of <тип элементов>;
Принадлежность |
Объединение |
Разность |
Пересечение |
||||||||
X |
A |
X in A |
A |
B |
A+B |
A |
B |
A-B |
A |
B |
A*B |
0 |
[1,2] |
false |
[1] |
[1,2] |
[1,2] |
[1,2] |
[2] |
[1] |
[1,2] |
[2,3] |
[2] |
1 |
[1,2] |
true |
[2] |
[3] |
[2,3] |
[1,2] |
[3] |
[1,2] |
[1,2] |
[3,4] |
[ ] |
Модель записи
R1 |
R2 |
R3 |
... |
Rn |
type <идентификатор>
= record
<идентификатор
поля> : <тип 1>;
<идентификатор
поля>: <тип 2>
…
end;
ОПЕРАЦИИ НАД СИМВОЛАМИ И СТРОКАМИ
ОПЕРАЦИИ НАД СИМВОЛАМИ И ДРУГИМИ РЕГУЛЯРНЫМИ ТИПАМИ
Функция |
Значение |
Пример
вызова |
Результат |
chr(номер символа n) |
Символ
номер n (#n) |
chr(33) |
‘!’ |
ord(величина) |
номер
величины (код) |
ord(‘!’) |
33 |
succ(величина) |
Следующее
значение в последовательности |
succ(‘y’) |
‘z’ |
pred(величина) |
Предыдущее
значение в последовательности |
pred(‘y’) |
‘x’ |
Функция |
Назначение |
Пример
вызова |
Результат |
copy(s, p, n) |
Выделить n символов
из строки s начиная с позиции p |
copy(‘роза’,
3, 2) |
‘за’ |
concat(s1, s2, ... sn) |
Соединить строки
(литеры) в одну строку (конкатенация) |
concat(‘г’,
’роза’) |
‘гроза’ |
length(строка) |
Длина строки
[символ.] |
length(‘роза’) |
4 |
pos(s1, s2) |
номер позиции
строки s1 внутри строки s2 (если не найдена, 0) |
pos(‘за’,
’роза’) |
3 |
ОПЕРАЦИИ НАД СТРОКАМИ
ПРОЦЕДУРЫ
Процедура |
Назначение |
Пример
вызова |
Результат |
delete(s, p, n) |
Удалить n символов
из строки s с позиции p |
delete(‘роза’, 1,
2) |
‘за’ |
insert(s1, s2, p) |
Вставить строку
(литеру) s1 в строку s2 с позиции p |
insert(‘г’, ’роза’,
1) |
‘гроза’ |
Процедура
(функция) |
Назначение |
Пример
вызова |
Результат |
round(число) |
округлить число |
n := round(3.5) |
4 |
trunc(число) |
отсечь дробную
часть |
n := trunc(3.5) |
3 |
str(n: p: q, s) |
преобразовать число
n в строку s |
str(3.5:3, s) |
s = ‘3.5’ |
val(s, n, p) |
преобразовать
строку s (литеру) в число n |
val(‘+3.5’, n, p) |
n = 3.5; p = 0 p = место ошибки |
ТИПЫ ФАЙЛОВ
(ФАЙЛОВЫХ ПЕРЕМЕННЫХ)
1.
текстовый var f: text;
2. типизированный var f: file of <тип
компонента>;
3. нетипизированный var f: file;
Данные в типизированных и
нетипизированных файлах хранятся в формате
внутримашинной обработки.
Текстовый
файл на диске – это полная модель клавиатуры и экрана (input, output).
Текстовый
файл печати – lst (модуль printer).
ФУНКЦИИ
Функция |
Назначение |
Пример вызова |
Значения |
eof(file) |
условие «конец
файла» |
if eof(f) then ... |
[true; false] |
eoln(file) |
условие «конец
строки» |
if eoln(f) then ... |
[true; false] |
filepos(file) |
получить номер
позиции для обмена |
if filepos(f) > 0 then ... |
[0;n] |
filesize(file) |
получить размер
файла [количество записей] |
seek(f, filesize(f)) |
[0;n] |
ioresult |
номер ошибки
ввода-вывода ({$I-}) |
if ioresult = 0 then ... |
[0;n] |
ПРОЦЕДУРЫ
Процедура |
Назначение |
Пример
вызова |
Тип файла |
assign(file, имя) |
назначить файл для
файловой переменной |
assign(f, ’a: text’) assign(f, path) |
Все файлы |
close(file) |
закрыть файл |
close(f) |
Все файлы |
reset(file [,длина-з.]) |
открыть файл |
reset(f) |
Все файлы |
rewrite(file [,длина-з.]) |
создать файл |
rewrite(f, 1) |
Все файлы |
append(file) |
открыть для
добавления |
append(f) |
Text |
read(file, данные) |
ввод данных |
read(f, mydata) |
Все файлы |
readln(file, данные) |
ввод данных, пропуск конца
строки |
readln(f, a, b, c) |
Text |
write(file, данные) |
вывод данных |
write(f, mydata) |
Все файлы |
writeln(file, данные) |
вывод данных, вывод конца строки |
writeln(f, a:10:2) |
Text |
blockread(f, данные, n, результат) |
ввод блока из n
записей, результат = сколько
передано |
blockread(f, a,
50,p) |
File |
blockwrite(f, данные, n, результат) |
вывод блока из n
записей |
blockwrite(f,
a,50,p) |
File |
seek(file, номер позиции) |
установить номер
позиции для обмена [0;n], n = число
записей |
seek(f, 0) |
Кроме text |
Процедура
(функция) |
Назначение |
Пример
вызова |
Примечания |
D := detect |
Определить
тип графического режима (номер драйвера) |
d
:= detect |
d
= драйвер экрана (integer) |
Initgraph( d, m, 'путь bgi' ) |
Установить
графический режим экрана |
initgraph(d, m,
’d:\bp\bgi’) |
m
= режим экрана (integer) |
Cleardevice |
Очистить
экран и отменить установки цвета |
cleardevice |
|
Setcolor(цвет) |
Установить
цвет линии (рисунка) |
setcolor(magenta) |
|
Setbkcolor(цвет) |
Установить
цвет фона (очистки) |
setbkcolor(0) |
|
Putpixel(x, y, цвет) |
Точка
(x, y) |
putpixel(5,
5, red) |
|
Line(x1, y1, x2, y2) |
Линия
(x1, y1) - (x2, y2) |
line(10,
10, 20, 200) |
|
Lineto(x, y) |
Чертить
линию в (x, y) |
lineto(100,
200) |
|
moveto(x, y) |
Переместить
перо в (x, y) |
moveto(nx,
ny) |
|
Circle(x, y, радиус) |
Окружность
(x, y, r) |
circle(x,
y, 20) |
|
СТАНДАРТНЫЙ
МОДУЛЬ (GRAPH)
ОСНОВНЫЕ
ПРОЦЕДУРЫ И ФУНКЦИИ
arc(x, y, угл1, угл2, радиус) |
Дуга
окружности (x, y, r) от угла1 |
arc(10,
10, 0, pi,5) |
|
setfillstyle(s, цвет заливки) |
Установить
стиль и цвет заливки |
setfillstyle(1,
green) |
|
floodfill(x, y, цвет границы) |
Залить
область с границей (цвет) цветом
заливки |
floodfill(p,
q, 10) |
|
rectangle(x1, y1, x2, y2) |
Прямоугольник
(x1,
y1) - (x2, y2) |
rectangle(2,
2, 5, 10) |
|
bar(x1, y1, x2, y2) |
Прямоугольник
(x1,
y1) - (x2, y2) с заливкой цвета |
bar(2,
|
|
bar3d(x1, y1, x2, y2, z, n) |
3-мерный
прямоугольник (колонка) (x1,
y1) - (x2, y2) |
bar3d(2,
2, 20, 20, 10,true) |
z = глубина n = boolean
true = крыша колонки |
x := getmaxx |
максимальная
граница для x |
mx
:= getmaxx |
0..639
(vga) |
y := getmaxy |
максимальная
граница для y |
my
:= getmaxy |
0..479
(vga) |
closegraph |
Закрыть
графический режим экрана |
closegraph |
|