Основныепонятия языка программирования Турбо Паскаль
План
1. Некоторыесведения о системе программирования Турбо Паскаль.
2. Структурапрограммы на Паскале.
3. Элементыязыка Турбо Паскаль.
4. Арифметическиеоперации и выражения.
5. Стандартныефункции.
6. Операторприсваивания.
1. Некоторые сведения о системепрограммирования Турбо Паскаль
Язык Паскаль был разработан в 1971году Никласом Виртом первоначально для целей обучения программированию. Внастоящее время он получил широкое распространение по ряду объективных причин.
Во-первых, по своей идеологии Паскальнаиболее близок к современной методике и технологии программирования. Вчастности, он достаточно полно отражает идеи структурного программирования, чтодовольно хорошо видно даже из основных управляющих структур языка.
Во-вторых, Паскаль хорошоприспособлен для применения технологии разработки программ сверху-вниз(пошаговой детализации).
В-третьих, Паскаль содержит большоеразнообразие различных структур данных, что обеспечивает простоту алгоритмов, аследовательно снижение трудоемкости при разработке программ.
Система программирования Turbo Pascalпредназначена для выполнения этапов решения задачи на алгоритмическом языкеПаскаль и включает в себя три главные компоненты: 1) редактор текстов; 2) компилятор;3) исполнительную систему.
С помощью встроенного в системутекстового редактора можно формировать в памяти любые тексты, не толькопрограммы на Паскале. В частности, это могут быть исходные данные решаемойзадачи в текстовой форме. Текст программы, созданный редактором, можносохранить на диске в виде файла с именем следующего формата .раs, где pas — это стандартное расширение имени файла, созданногосистемным редактором. Имя файла задается пользователем.
Компиляция — это процесс переводапрограммы на язык машинных команд. Компилятор переводит программу с языка Паскаль на языкмашинных команд. При этом проверяется соответствие программы правилам языкапрограммирования (синтаксический и семантический контроль). При обнаруженииошибки компьютер выдает сообщение о ней пользователю и прекращает работу. В результате компиляции Turbo Pascal создает исполняемый файлс тем же именем, что и файл, содержащий программу, но с расширением ехе.Впоследствии этот файл может быть выполнен, как любой другой исполняемый файл.
Выполнение программы остается подконтролем исполнительной системы. Она, в частности, помогает обнаружить ошибкув программе, если при исполнении произошел сбой. Пользователю сообщаетсяпричина сбоя и указывается место, где он случился в Паскаль-программе, происходитавтоматический возврат в режим редактирования.
Turbo Pascal позволяет редактировать,компилировать, компоновать и выполнять Паскаль-программы. При этом пользователюпредоставляется высокая скорость компиляции, удобство работы с компьютером имощная библиотека процедур и функций.2. Структура программы на Паскале
Программа на Паскале в общем случаесостоит из нескольких файлов. Один из них содержит главную программу, аостальные – модули. Главная программа состоит из заголовка, блока и заканчиваетсяточкой — признаком конца программы. В свою очередь, блок содержит разделыописаний и раздел операторов. В общем случае «скелет» программы можнопредставить следующим образом:
{ Спецификация программы }
program (заголовокпрограммы);
uses (раздел объявления модулей);
label (разделобъявления меток);
const (разделобъявления констант);
type (разделобъявления типов);
var (разделобъявления переменных);
procedure (function) (раздел объявления подпрограмм: процедурили функций);
begin
(разделоператоров, обязательная часть);
end.
Все указанные разделы отделяются другот друга точкой с запятой.
Раздел операторов должен обязательноприсутствовать в любой программе и является основным. Предшествующие разделыносят характер описаний и не обязательно содержаться в программе.
Заголовок программы состоит иззарезервированного слова program и имени программы (со спискомпараметров, заключенных в круглые скобки). Завершается заголовок точкой сзапятой.
В Turbo Pascal имеются особенности вструктуре программы. Так, заголовок программы необязателен и игнорируетсякомпилятором. Порядок размещения разделов произвольный, можно создаватьнесколько одинаковых разделов. Единственное правило, которое необходимовыдерживать, — в любом месте программы можно использовать лишь элементы (метки,типы, константы, переменные, подпрограммы и т. д.), которые были определеныранее по тексту программы или являются предопределенными элементами языка.Исключением из этого правила может быть лишь определение типа-указателя черезнеопределенный до этого тип. Однако этот тип в дальнейшем должен бытьобязательно определен.
Операторы в разделе операторов отделяютсядруг от друга точкой с запятой. Перед end точка с запятой не ставится, однако ее наличие неявляется ошибкой, а лишь означает присутствие между последним исполняемымоператором и служебным словом end еще одного оператора — пустогооператора. Заканчивается программа словом end, после которогообязательно ставится точка.
В начале программы необходимо располагатьее спецификацию – комментарий в фигурных скобках, содержащий назначениепрограммы, данные о программисте, дату создания программы.
Язык программирования Паскаль являетсяязыком структурного программирования. В нем есть все необходимые управляющиеконструкции для структурного построения программы. Наглядность такомупостроению придает структуризация внешнего вида текста программы. Основнойиспользуемый для этого прием — сдвиги строк, которые должны подчинятьсяследующим правилам:
— конструкции одного уровня вложенностизаписываются на одном вертикальном уровне (начинаются с одной позиции встроке);
— вложенная конструкция записываетсясмещенной по строке на несколько позиций вправо относительно внешней для нееконструкции.3. Элементы языка Турбо Паскаль
Алфавит языка состоит из множества символов,включающих:
– Латинские буквы:от A до Z (прописные) и от а до z. (строчные);
– Знакподчеркивания _;
– Цифры: 0, 1, 2,3, 4, 5, 6, 7, 8, 9;
– Специальныесимволы: + — * / (знаки арифметических операций), = =(операции отношения),: = (операции присваивания), [ ]., ( ):; { } ^ @ $ # ‘(ограничители). К спецсимволам относятся служебные слова, смысл которыхопределен однозначно (begin,end, for, div ит.д.).
– Пробел — символпробела (ASCI1-32) и все управляющие символы кода ASCII (от 0 до 31).
Идентификаторы. Идентификатором называетсясимволическое имя определенного программного объекта. Такими объектами являютсяимена констант, переменных, типов данных, процедур и функций, программ. Идентификатор— это любая последовательность букв и цифр, начинающаяся с буквы. В ТурбоПаскале к буквам приравнивается также знак подчеркивания. Строчные и прописныебуквы в идентификаторах и служебных словах не различаются. Например: max, MAX,MaX и mAx — одно и то же имя. Длина идентификатора может быть произвольной, нозначащими являются только первые 63 символа.
Комментарии. Конструкции, заключенные в фигурныескобки {} или в скобки вида (* *) являются комментариями, могут заниматьнесколько строк и игнорируются компилятором.
Строка, начинающаяся с символов {$или (*$, является директивой компилятора. За этими символами следуетмнемоника команды компилятора. Буквы русского алфавита употребляются только вкомментариях, в литерных и текстовых константах.4. Арифметические операции и выражения
Знаки операций предназначены дляобозначения тех или иных арифметических, логических или других действий. Онибывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.)и буквенные операции (например, 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 Остаток от деления
Арифметическое выражение задаетпорядок выполнения действий над числовыми величинами. Арифметические выражениясодержат арифметические операции, функции, операнды, круглые скобки. Однаконстанта или одна переменная — простейшая форма арифметического выражения.
Порядок выполнения операций варифметическом выражении подчиняется трем правилам:
1. Правилу скобок.Оно гласит, что первыми выполняются операции в скобках. Если имеется несколькопар вложенных скобок, вычисления начинаются с самых внутренних скобок.
2. Правилу учетаприоритета операций: вначале вычисляются значения функций, затем выполняютсяоперации умножения и деления и в последнюю очередь — операции сложения и вычитания.
3. Правилуследования: операции одинакового старшинства (приоритета) выполняются слеванаправо в порядке их следования.
Пример. Цифрами сверху указан порядоквыполнения операций:
/>
Выражение имеет целый тип, если врезультате его вычисления получается величина целого типа. Выражение имеетвещественный тип, если результатом его вычисления является вещественнаявеличина.
5. Стандартные функции
В качестве операндов в выражении,кроме констант и переменных, можно использовать стандартные функции. Аргументыфункций обязательно заключаются в круглые скобки. Приоритет выполнения функциивыше, чем приоритет выполнения арифметических операций. Рассмотрим стандартныефункции Турбо Паскаля (в таблице буква 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)
При возведении в небольшую целуюстепень вместо операции возведения в степень рекомендуется использоватьоперацию умножения, поскольку возведение в степень выполняется на несколькопорядков дольше умножения и не позволяет обрабатывать отрицательные аргументы.6. Оператор присваивания
Значение переменной может быть заданоили изменено с помощью оператора присваивания, который имеет вид:
:=;
где — это имя переменной или функции;
:= — знак операции присваивания.
Оператор присваивания позволяетзаменить текущее значение переменной, стоящей слева от знака присваивания,новым значением, задаваемым выражением, стоящим справа.
С правой стороны располагаетсявыражение, которое после вычисления дает некоторое значение. С левой стороныуказывается имя переменной, которой это значение присваивается. Данноеобстоятельство позволяет использовать с левой и правой стороны знакаприсваивания имя одной и той же переменной. Пусть, например, имеются следующиеоператоры:
Var
х, а: real;
… .
х:=2.5;
а:=1.25;
х:=х+а;
После выполнения этих операторов переменнаях будет иметь значение 3.75, так как первоначально произойдет вычислениевыражения х + а в виде сложения двух констант: 2.5+ 1.25 = 3.75, а затем этозначение присваивается переменной х (предыдущее значение х, равное 2.5,заменится новым — 3.75).
Следует обратить внимание наследующее правило: типы переменной и выражения должны быть одинаковыми.Исключение составляет случай, когда выражение имеет целый тип, а переменная —вещественный.