Основные функции и процедуры языка программирования Паскаль
№ | Функция | Запись на языке Паскаль | Примеры |
Степенная функция | |||
1.1 | exp(a*ln(x)) | exp(2*ln(3))=9 | |
1.2 | power(x,a) | power(5,2)=25 | |
1.3 | sqr(х) | sqr(6)=36 | |
1.4 | sqrt(х) | sqrt(81)=9 | |
Показательная функция | |||
2.1 | exp(x*ln(a)) | exp(3*ln(2))=8 | |
2.2 | (e≈ 2.72) | exp(х) | exp(4)=5.45e+1 |
Тригонометрические и обратные тригонометрические функции | |||
3.1 | sin x (угол в радианах) | sin(x) | sin(60)=-3.05e-1 |
3.2 | cos x (угол в радианах) | cos(x) | cos(45)=5.25e-1 |
3.3 | tg x (угол в радианах) | sin(x)/cos(x) | sin(90)/cos(90)=-1.99 |
3.4 | arctan(х) | arctan(5)=1.37 | |
3.5 | pi/2-arctan(х) | pi/2-arctan(5)=1.97е-1 | |
Логарифмические функции | |||
4.1 | ln x(х>0) | ln(х) | ln(5)=1.61 |
4.2 | ln(x)/ln(a) | log28=ln(8)/ln(2)=3 | |
Другие математические функции | |||
5.1 | (модуль x) | abs(х) | abs(-4)=4 |
5.2 | (целая часть вещественного числаx) | int(x) | int(3.77)=3.00 |
5.3 | (дробная часть вещественного числаx) | frac(х) | frac(4.74)=0.74 |
5.4 | Округление до ближайшего целого числа | round(х) | round(-1.5)=-2; round(1.2)=1 |
Дополнительные функции | |||
6.1 | Генерация псевдослучайного числа изинтрвала от 0 до k–1 | random(k) | random(10) генерация псевдослучайногочисла изинтрвала от 0 до 9 |
6.2 | Уменьшение значения х на y (если y не указано, то на 1) | dec(x,y) | x:=x-y; dec(29)=28; dec(34,20)=14 |
6.3 | Увеличение значения х на y (если y не указано, то на 1) | inc(x,y) | x:=x+y; inc(7)=8; inc(6,5)=11 |
6.4 | Целочисленное делениех на y | x div y | (10div 3)=3 |
6.5 | Нахождения остатка от деления х на y | x mod y | (10 mod 3)=1 |
6.6 | Число ( ≈3.14) | pi | в программе запишется pi/4 |
Результатом выражения является значение определенного типа, который определяется типом операндов. Операнды в выражении должны иметь совместимые типы. Перечислим ряд совместимых типов:
1) одинаковые типы;
2) один тип является поддиапазоном другого типа;
3) типы являются отрезками одного и того же основного типа;
4) множественные типы с совместимыми базовыми типами;
5) один тип строковый, другой – pchar;
6) один тип – pointer, другой – любой тип указателя;
7) один тип – pchar, другой – символьный массив с нулевой базой вида array [0..x] ofchar (при расширении расширенного синтаксиса директивой {$X+});
8) оба типа – указатели идентичных типов (при расширении расширенного синтаксиса директивой {$X+});
9) оба типа являются процедурными типами с идентичными типами результатов, одинаковым числом параметров и соответствием между параметрами.
Структура программы
Программа на языке программирования Паскаль состоит из трех частей: заголовка программы, раздела описаний и раздела операторов:
program имя; {заголовок программы}
раздел описаний
Begin
раздел операторов
End.
1. Заголовок программы.Заголовок программы содержит ключевое слово program и имя программы. Имя программы должно удовлетворять специальным требованиям (см. раздел «Имена и ключевые слова»). Кроме того, если программу не предполагается использовать как отдельный модуль, ее имя не должно совпадать с именем файла.
2. Раздел описаний.Раздел описаний включает в себя несколько частей: описание модулей, меток, констант, типов, переменных, процедур и функций.
Раздел описания модулей, если он присутствует, следует первым. Раздел начинается с ключевого слова uses, за которым через запятую перечисляются подключаемые к программе модули. Модуль – это подключаемая к программе библиотека ресурсов (структур данных, подпрограмм и др.). В Паскале существует обширная коллекция стандартных модулей (crt – модуль для работы с экраном, graph– графический модуль и др.). Кроме того, пользователь может разрабатывать собственные модули.
Синтаксис раздела описания модулей:
uses {список модулей};
После подключения модулей в программе доступны данные, структуры данных, подпрограммы и другие элементы из подключенных модулей.
Пример. Подключение модулей. clrscr(англ., clearscreen – очистка экрана) – процедура для очистки экрана из модуля crt.
uses crt, graph, my_module;
begin
clrscr;
...
end.
Количество и порядок следования других частей раздела описаний произвольный, единственное правило, что величина должна быть описана до ее использования. Для упрощения структуры программы рекомендуется группировать все однотипные описания в один раздел.
Раздел описания меток, если он присутствует, начинается с ключевого слова label, за которым через запятую перечисляются метки, используемые в программе.
Синтаксис раздела описания меток:
label {список меток};
Любой оператор программы может быть помечен меткой, отделяющейся от него двоеточием. Метка – это либо имя, либо целое положительное число от 0 до 9999. Метки служат для перехода к определенному оператору в программе с помощью оператора безусловного перехода goto. (Использование оператора gotoпротиворечит принципам структурного программирования, поэтому рекомендуется использовать его как можно реже.)
Пример. Описание и использование меток.
labelm1;
begin
...
m1: writeln('Не обработанная ошибка');
...
gotom1;
...
end.
Если раздел описания констант присутствует, он начинается с ключевого слова const (англ., constant – постоянный), за которым через точку с запятой перечисляются константы с указанием их имен.
Синтаксис раздела описания констант:
constимя_константы=значение_константы;
Пример. Описание констант.
const n=10; max=4000; name='Pavel';
Раздел описания типов, если он присутствует, начинается с ключевого слова type (англ., type – тип). При описании нового типа данныхзадается его имя и после знака равно его определение. Типы данных, определяемые пользователем, перечисляются через точку с запятой.
Синтаксис раздела описания типов:
typeимя_типа=описание_типа;
Пример. Описание собственных типов пользователя.
type color=array[1..5] of real;
menu=(file,edit,view,help);
Раздел описания переменных, если он присутствует, начинается с ключевого слова var(англ., variable – переменный). При описании переменной задается ее имя и через двоеточие тип данных. Переменные разных типов перечисляются через точку с запятой. Переменные одного типа перечисляются через запятую.
Синтаксис раздела описания переменных:
varимя_переменной:тип_переменной;
Пример. Описаниепеременных.
var x,y:real; i,j:integer; name:word; b:byte;
flag:boolean;
Далее идет раздел описания процедур и функций. (Работа с процедурами и функциями в учебном пособии не рассматривается).
3. Раздел операторов.Раздел операторов – обязательная часть программы, которая содержит исполняемые в программе операторы. Эта часть программы начинается с ключевого слова begin и заканчивается ключевым словом end (рис. 1.2) (англ., begin – начало, end – конец). Операторы в этой части программы отделяются друг от друга символом «точка с запятой». В конце программы, после последнего end,ставится точка.
programимя_программы; | //Заголовок программы |
//Раздел описания модулей uses //список модулей; //Раздел описания меток label //список меток; //Раздел описания констант constимя_константы=значение_константы; //Раздел описания типов typeимя_типа=описание_типа; //Раздел описания переменных varимя_переменной:тип_переменной; | //Раздел описаний |
begin//начало программы оператор_1; оператор_2; … Оператор_N end.//конец программы | //Раздел операторов |
Рис. 1.2. Структура программы в языке программирования Паскаль
Оформление текста программ. В языке программирования Паскаль несколько операторов могут быть записаны в одной строке (в принципе вся программа может быть записана в одну строку). Вместе с тем существует ряд рекомендаций о том, как сделать код программы хорошо читаемыми понятным:
1) каждый раздел при описании модулей, меток, констант, типов, переменных и подпрограмм записывается с новой строки:
2) каждый тип данных записывается с новой строки;
3) после знаков препинания ставится пробел;
4) на одной строке располагается только один оператор;
5) вложенный оператор записывается на отступ левее, чем внешний оператор.
Кроме того, для улучшения «читаемости» и понимания программы можно использовать комментарии, пробелы и пустые строки.
Комментарии в программе
Комментарии служат для пояснения текста программы. Компилятор игнорирует комментарии, поэтому на их содержание нет ограничений. Существует несколько способов оформления комментариев:
1) комментарии заключаются в фигурные скобки { };
2) комментарии заключаются в скобки вида (* *);
3) комментарии следуют за двумя косыми чертами //.
Пример. Пояснение текста программы с помощью комментариев.
programprog;
varx,y:real; {раздел описания переменных}
Begin (*начало программы*)
writeln('Введите х');
read(x); //ввод данных
y:=cos(x);
writeln('y=',y);//вывод данных
end. (*конец программы*)
Контрольные вопросы
1. Что включает в себя алфавит языка программирования Паскаль. Можно ли использовать при написании программы на Паскале русские буквы?
2. Будут ли различаться записи max и MAX в программе, записанной на языке программирования Паскаль?
3. Как называются величины, которые не изменяют свое значение во время выполнения программы? В каком разделе они описываются? Что указывается при их описании?
4. Как называются величины, которые изменяют свое значение во время выполнения программы? В каком разделе они описываются? Что указывается при их описании?
5. Перечислите правила языка программирования Паскаль, по которым даются имена.
6. Можно ли в качестве имен переменных использовать ключевые слова?
7. Приведите классификацию типов данных, используемых в языке программирования Паскаль.
8. Запишите числа 0,000374 и 576000000 в экспоненциальной форме.
9. Приведите запись на языке программирования Паскаль основных арифметических операций, операций отношения и логических операций.
10. Приведите запись на языке программирования Паскаль основных элементарных математических функций (степенной, показательной, логарифмической, тригонометрических, обратных тригонометрических функций).
11. Операнды в выражении должны иметь совместимые типы. Перечислите известные Вам совместимые типы.
12. Опишите структуру программы в языке программирования Паскаль.
13. Какие из перечисленных разделов программы являются обязательными:
1) заголовок программы: program имя;
2) раздел описания модулей uses;
3) раздел описания метокlabel;
4) раздел описания констант const;
5) раздел описания типов type;
6) раздел описания переменных var;
7) раздел операторов begin . . . end?
14. С какой целью в программах используются комментарии? Какие символы в языке программирования Паскаль используются для обозначения комментариев?
Рекомендуемая литература
1. Павловская, Т.А. Паскаль. Программирование на языке высокого уровня / Т.А. Павловская. – СПб.: Питер, 2010. – 464 с.