Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
План
Язык Паскаль был разработан в 1971 году Никласом Виртом первоначально для целей обучения программированию. В настоящее время он получил широкое распространение по ряду объективных причин.
Во-первых, по своей идеологии Паскаль наиболее близок к современной методике и технологии программирования. В частности, он достаточно полно отражает идеи структурного программирования, что довольно хорошо видно даже из основных управляющих структур языка.
Во-вторых, Паскаль хорошо приспособлен для применения технологии разработки программ сверху-вниз (пошаговой детализации).
В-третьих, Паскаль содержит большое разнообразие различных структур данных, что обеспечивает простоту алгоритмов, а следовательно снижение трудоемкости при разработке программ.
Система программирования Turbo Pascal предназначена для выполнения этапов решения задачи на алгоритмическом языке Паскаль и включает в себя три главные компоненты: 1) редактор текстов; 2) компилятор; 3) исполнительную систему.
С помощью встроенного в систему текстового редактора можно формировать в памяти любые тексты, не только программы на Паскале. В частности, это могут быть исходные данные решаемой задачи в текстовой форме. Текст программы, созданный редактором, можно сохранить на диске в виде файла с именем следующего формата <имя файла>.раs, где pas это стандартное расширение имени файла, созданного системным редактором. Имя файла задается пользователем.
Компиляция - это процесс перевода программы на язык машинных команд. Компилятор переводит программу с языка Паскаль на язык машинных команд. При этом проверяется соответствие программы правилам языка программирования (синтаксический и семантический контроль). При обнаружении ошибки компьютер выдает сообщение о ней пользователю и прекращает работу. В результате компиляции Turbo Pascal создает исполняемый файл с тем же именем, что и файл, содержащий программу, но с расширением ехе. Впоследствии этот файл может быть выполнен, как любой другой исполняемый файл.
Выполнение программы остается под контролем исполнительной системы. Она, в частности, помогает обнаружить ошибку в программе, если при исполнении произошел сбой. Пользователю сообщается причина сбоя и указывается место, где он случился в Паскаль-программе, происходит автоматический возврат в режим редактирования.
Turbo Pascal позволяет редактировать, компилировать, компоновать и выполнять Паскаль-программы. При этом пользователю предоставляется высокая скорость компиляции, удобство работы с компьютером и мощная библиотека процедур и функций.
Программа на Паскале в общем случае состоит из нескольких файлов. Один из них содержит главную программу, а остальные модули. Главная программа состоит из заголовка, блока и заканчивается точкой признаком конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов. В общем случае «скелет» программы можно представить следующим образом:
{ Спецификация программы }
program <имя программы> (заголовок программы);
uses (раздел объявления модулей);
label (раздел объявления меток);
const (раздел объявления констант);
type (раздел объявления типов);
var (раздел объявления переменных);
procedure (function) (раздел объявления подпрограмм: процедур или функций);
begin
<операторы > (раздел операторов, обязательная часть);
end.
Все указанные разделы отделяются друг от друга точкой с запятой.
Раздел операторов должен обязательно присутствовать в любой программе и является основным. Предшествующие разделы носят характер описаний и не обязательно содержаться в программе.
Заголовок программы состоит из зарезервированного слова program и имени программы (со списком параметров, заключенных в круглые скобки). Завершается заголовок точкой с запятой.
В Turbo Pascal имеются особенности в структуре программы. Так, заголовок программы необязателен и игнорируется компилятором. Порядок размещения разделов произвольный, можно создавать несколько одинаковых разделов. Единственное правило, которое необходимо выдерживать, - в любом месте программы можно использовать лишь элементы (метки, типы, константы, переменные, подпрограммы и т. д.), которые были определены ранее по тексту программы или являются предопределенными элементами языка. Исключением из этого правила может быть лишь определение типа-указателя через неопределенный до этого тип. Однако этот тип в дальнейшем должен быть обязательно определен.
Операторы в разделе операторов отделяются друг от друга точкой с запятой. Перед end точка с запятой не ставится, однако ее наличие не является ошибкой, а лишь означает присутствие между последним исполняемым оператором и служебным словом end еще одного оператора - пустого оператора. Заканчивается программа словом end, после которого обязательно ставится точка.
В начале программы необходимо располагать ее спецификацию комментарий в фигурных скобках, содержащий назначение программы, данные о программисте, дату создания программы.
Язык программирования Паскаль является языком структурного программирования. В нем есть все необходимые управляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида текста программы. Основной используемый для этого прием сдвиги строк, которые должны подчиняться следующим правилам:
Алфавит языка состоит из множества символов, включающих:
Идентификаторы. Идентификатором называется символическое имя определенного программного объекта. Такими объектами являются имена констант, переменных, типов данных, процедур и функций, программ. Идентификатор это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx одно и то же имя. Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.
Комментарии. Конструкции, заключенные в фигурные скобки {} или в скобки вида (* *) являются комментариями, могут занимать несколько строк и игнорируются компилятором.
Строка, начинающаяся с символов {$ или (*$, является директивой компилятора. За этими символами следует мнемоника команды компилятора. Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.
Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.) и буквенные операции (например, not, mod, div и т. д.), представляющие собой зарезервированные слова. Операции над данными делятся на унарные (применимые к одному операнду) и бинарные (применимые к двум операндам). Приведем примеры бинарных арифметических операций (в таблице буква I обозначает целые типы, R вещественные типы):
|
Выражение |
Типы операндов |
Тип результата |
Операция |
+ |
А+В |
R,R I,I I,R; R,I |
R I R |
Сложение |
- |
А-В |
R,R I,I I,R; R,I |
R I R |
Вычитание |
* |
А*В |
R,R I,I I,R; R,I |
R I R |
Умножение |
/ |
А/В |
R,R I,I I,R; R,I |
R R R |
Вещественное деление |
Div |
A div B |
I, I |
I |
Целое деление |
Mod |
A mod B |
I, I |
I |
Остаток от деления |
Арифметическое выражение задает порядок выполнения действий над числовыми величинами. Арифметические выражения содержат арифметические операции, функции, операнды, круглые скобки. Одна константа или одна переменная простейшая форма арифметического выражения.
Порядок выполнения операций в арифметическом выражении подчиняется трем правилам:
Пример. Цифрами сверху указан порядок выполнения операций:
Выражение имеет целый тип, если в результате его вычисления получается величина целого типа. Выражение имеет вещественный тип, если результатом его вычисления является вещественная величина.
В качестве операндов в выражении, кроме констант и переменных, можно использовать стандартные функции. Аргументы функций обязательно заключаются в круглые скобки. Приоритет выполнения функции выше, чем приоритет выполнения арифметических операций. Рассмотрим стандартные функции Турбо Паскаля (в таблице буква I обозначает целые типы, R вещественные типы):
Обращение |
Тип аргумента |
Тип результата |
Тип действия |
pi |
- |
R |
Число π |
abs(x) |
I, R |
I, R |
Модуль (абсолютная величина) числа х |
sqr(x) |
I, R |
I, R |
Квадрат х |
sqrt(x) |
I, R |
R |
Корень квадратный из х (х≥0) |
sin(x) |
I, R |
R |
Синус х (х в радианах) |
cos(x) |
I, R |
R |
Косинус х (х в радианах) |
arctan(x) |
I, R |
R |
Арктангенс х (результат в радианах) |
exp(x) |
I, R |
R |
Экспонента е в степени х (е≈2,71828) |
ln(x) |
I, R |
R |
Натуральный логарифм х (x>0) |
trunc(x) |
R |
I |
Целая часть х |
int(x) |
I, R |
R |
Целая часть х |
round(x) |
R |
I |
Округление х до ближайшего целого |
frac(x) |
I, R |
R |
Дробная часть х |
random |
- |
I |
Случайное число [0,1) |
random(x) |
I |
R |
Случайное число [0,х) |
dec(x,[n]) |
I |
I |
Уменьшение х на n, при отсутствии n на 1 |
inc(x,[n]) |
I |
I |
Увеличение х на n, при отсутствии n на 1 |
odd(x) |
Longint |
Boolean |
true, если значение x нечетное; false, если x четное |
ord(x) |
любой порядковый |
Longint |
Порядковый номер значения х в его типе. Если х символ, то функция возвращает код символа |
pred(x) |
любой порядковый |
тот же, что для x |
Предыдущее относительно х значение в его типе |
succ(x) |
любой порядковый |
тот же, что для x |
Следующее относительно х значение в его типе |
chr(x) |
Byte |
Char |
Определяет символ с указанным кодом (х число, определяющее код символа) |
Турбо Паскале не содержит некоторые часто используемые математические функции, поэтому при их вычислении используют эквивалентные математические формулы:
Функция |
Эквивалентная математическая формула |
Запись в программе |
ax |
exp(x*ln(a)) |
|
tg(x) |
sin(x)/cos(x) |
|
arcsin(x) |
arctan(x/sqrt(1-x*x)) |
|
arccos(x) |
arctan(sqrt(1-x*x)/x) |
|
logax |
ln(x)/ln(a) |
При возведении в небольшую целую степень вместо операции возведения в степень рекомендуется использовать операцию умножения, поскольку возведение в степень выполняется на несколько порядков дольше умножения и не позволяет обрабатывать отрицательные аргументы.
Значение переменной может быть задано или изменено с помощью оператора присваивания, который имеет вид:
<имя>:=<выражение>;
где <имя> - это имя переменной или функции;
:= - знак операции присваивания.
Оператор присваивания позволяет заменить текущее значение переменной, стоящей слева от знака присваивания, новым значением, задаваемым выражением, стоящим справа.
С правой стороны располагается выражение, которое после вычисления дает некоторое значение. С левой стороны указывается имя переменной, которой это значение присваивается. Данное обстоятельство позволяет использовать с левой и правой стороны знака присваивания имя одной и той же переменной. Пусть, например, имеются следующие операторы:
Var
х, а : real;
. . . . .
х:=2.5;
а:=1.25;
х:=х+а;
После выполнения этих операторов переменная х будет иметь значение 3.75, так как первоначально произойдет вычисление выражения х + а в виде сложения двух констант: 2.5+ 1.25 = 3.75, а затем это значение присваивается переменной х (предыдущее значение х, равное 2.5, заменится новым - 3.75).
Следует обратить внимание на следующее правило: типы переменной и выражения должны быть одинаковыми. Исключение составляет случай, когда выражение имеет целый тип, а переменная вещественный.