Из каких разделов состоит программа написанная на языке программирования turbo pascal
Любая программа, написанная на языке Pascal состоит из заголовка программы и некоторого блока. Блок содержит раздел описаний, в котором определяются все локальные по отношению к данной программе объекты, и раздел операторов. Он задает действия, которые необходимо выполнять, над этими объектами.
Заголовок программы
В заголовке программе дается некоторое имя. Обычно стараются выбирать имя, отражающее основную функцию, выполняемую программой. Заголовок всегда начинается со служебного слова program , после которого через пробел пишется имя программы. Оно может состоять из символов английского алфавита, цифр и знака подчеркивания. Имя программы всегда должно начинаться с буквы.
В имени программы нельзя использовать какие-либо предописанные имена (зарезервированные слова). Они используются в программе только в том значении, которое зафиксировано для них разработчиками языка Pascal. Ниже приведен список таких слов.
and | end | nil | set |
array | file | not | then |
begin | for | of | to |
case | function | or | type |
const | goto | packed | until |
div | if | procedure | var |
do | in | program | while |
downto | label | record | with |
else | mod | repeat |
Заголовок носит чисто информативный характер и никак не влияет на программу. Программу можно написать и не используя его. После имени программы в ранних редакциях языка указывались круглые скобки и в них давались имена входных и выходных файлов задачи. В последних версиях языка Pascal имена входных и выходных файлов в заголовке программы отсутствуют.
Пример правильного написания заголовка:
Пример неправильного написания заголовка:
Label - раздел описания меток
Любой оператор программы можно маркировать, поставив перед ним через двоеточие метку, тем самым появляется возможность ссылаться на эту метку при помощи оператора перехода goto . Однако такая метка, прежде чем она будет использована, должна быть описана в разделе описания меток. Этот раздел начинается со слова Label .
Имя метки может включать в себя буквы английского алфавита, цифры и знак подчеркивания. При этом, в отличии от имени программы метка может начинаться с цифры, да и вообще состоять только из цифр, но это число должно представлять собой целое число без знака, лежащее в диапазоне от 0 до 9999.
Пример правильного написания меток:
Раз уж разговор зашел про метки, то нужно сказать, что использование меток и оператора перехода goto не желательно при написании программы на Pascal. Применять его стоит только в необычных, исключительных ситуациях, когда приходится нарушать естественную структуру алгоритма. Частое появление в программе на Pascal оператора перехода свидетельствует о том, что программист еще не научился думать на Pascal.
Этот раздел необязателен, если у вас в программе не используются метки.
Const - раздел определения констант
Константы - это величины, которые не меняют своих значений в процессе выполнения программы. Допустим, в вашей программе часто приходится оперировать с числом 3,14 (число Пи). Чтобы каждый раз не вводить это число, мы определяем константу с именем Pi и в вычисления уже подставляем ее.
Использование имен констант делает программу более "читаемой" и способствует улучшению ее документируемости. Кроме того, это позволяет программисту сгруппировать в начале программы величины, зависящие от машины или характерные для данного примера: здесь они более заметны и их легче изменить. Тем самым улучшается переносимость программ и их модульность.
Начинается данный раздел со служебного слова Const . Далее идут описания констант, каждое из которых начинается с имени константы, затем идет символ = (равенство), после чего пишется константа или выражение, составленное из констант. Завершается каждое описание точкой с запятой.
Константа может иметь только предопределенный (стандартный) тип данных. Тип присваивается константе по внешнему виду значения и в соответствии с этим типом отводится память для хранения значения константы.
В качестве расширения стандартного Паскаля разрешено использовать выражения, составленные из ранее определенных констант и некоторых стандартных функций: Abs, Chr, Hi, Length, Lo, Odd, Ord, Pred, Prt, Round, SizeOf, Succ, Swap, Trunc . Константные выражения вычисляются компилятором без выполнения программы на этапе ее создания. Пример: Этот раздел также необязателен, если у вас в программе не используются константы.
Type - раздел описания типов
Помимо стандартных типов данных в Pascal (Real, Integer, Boolean, Char) пользователь может задать новые типы. Структура раздела описания типов имеет вид:
Имя типа представляет собой идентификатор, который может употребляться в других типах, описанных вслед за данным типом. Вообще, новые типы можно определять и в разделе переменных Var, поэтому можно обойтись без этого раздела. Приведу несколько примеров описания типов:
Var - раздел описания переменных
Этот раздел является обязательным. Переменные отличаются от констант тем, что им можно присваивать новые значения при исполнении программы. Любая переменная, которая будет использована в программе должна быть описана. Что включает в себя описание переменной? Это значит, что переменной должен быть присвоен какой-либо тип данных, который характеризует множество значений, которые может принимать объект; множество операций, которые могут применяться к объекту; размер памяти, занимаемый объектом.
Начинается этот раздел с предописанного слова var . Следом идут описания переменных, каждое из которых начинается со списка имен переменных, разделяемых запятыми, затем идет символ : (двоеточие), затем указывается тип этих переменных. Завершается каждое описание точкой с запятой.
Структура раздела имеет вид:
Тип переменных представляет собой имя (идентификатор), описанный в разделе TYPE при явном описании типа, или собственно описание типа в случае его неявного задания. Примеры описания переменных:
Function, Procedure - раздел описаний процедур и функций
В разделе Function и Procedure описываются пользовательские процедуры и функции, если таковые имеются. Если их нет, то этот раздел не обязателен в программе.
Процедура представляет собою подпрограмму и активируется (начинает выполняться) через оператор процедуры. Функция - это тоже подпрограмма, но она выдает некоторое значение - результат и поэтому используется, как компонента выражения.
Структура раздела имеет вид:
Структура процедур и функций та же самая, что и у основной программы. Отличие описаний состоит в том, что идентификаторы констант, переменных, процедур и функций, описанных в соответствующих разделах описаний пользовательских процедур и функций, распространяются только на блоки, где они описаны и на блоки внутренние по отношению к ним. На внешние блоки, в том числе на тело основной программы, они не распространяются.
Знакомство со структурой программы на языке Турбо Паскаль начнем с простого примера – вычисление площади прямоугольника. Запись алгоритма решения этой задачи с помощью словесного способа и блок-схем рассматривалась в предыдущем разделе.
Составим программу вычисления площади прямоугольника. Обозначим буквами a,b,с длины сторон прямоугольника, буквой s площадь прямоугольника. Таким образом, мы имеем три переменные, имена которых a, b. s.
Значение переменных a,b будем вводить с клавиатуры. Результат вычисления выведем на экран монитора.
ЗАДАЧА. Составить программу вычисления площади прямоугольника.
Результаты работы программы:
Введите длину 1-й стороны: 12
Введите длину 2-й стороны: 24
Площадь равна: 288
Примечание: данные, введенные пользователем, выделены полужирным шрифтом.
Программа вычисления площади прямоугольника начинается с зарезервированного слова Program , которое не может использоваться ни в каких иных целях, кроме как для объявления имени программы. Кроме того, слово Program означает начало программы. Далее записывается имя программы. В нашем случае a1 . Первая строка заканчивается особым разделителем – точкой с запятой. Этот разделитель отмечает конец оператора или описания.
После заголовка программы следует текст, заключенный в скобки типа(* *). Это комментарий.
После комментария следует описание данных. Слово Var зарезервировано для объявления, т.е. для описания переменных, используемых в программе. В нашем примере объявлены три переменные a,b,s как переменные целого типа, на это указывает зарезервированное слово integer . Имена переменных записаны через запятую, а перед словом integer стоит двоеточие. Эта строка также заканчивается точкой с запятой.
Все вышеперечисленные строки не связаны с какими-либо действиями при работе программы. Они сообщают компилятору сведения о самой программе и используемых объектах. Эта часть программы называется разделом описаний.
Далее между зарезервированными словами begin и end располагается другая часть программы – раздел операторов. В нашем примере это стандартные процедуры: Write() , Writeln() , Readln() , а также оператор S:=a*b;
Процедура Write() – написать (вывести) – осуществляет вывод на экран монитора объекта, заключенного в скобки. В данном случае объектом является текстовая строка «Введите длину 1-й стороны: » . Процедура Writeln() (сокращение Write Line) в отличие от Write() после вывода переводит курсор на новую строку экрана монитора.
Readln() – читать строку – стандартная процедура ввода значения переменной, заключенной в скобки. При выполнении этой процедуры необходимо будет ввести с клавиатуры численное значение переменной a.
Процедура – это некоторая последовательность операторов, к которой можно обратиться по имени. Процедуры Write() , Writeln() , Readln() являются стандартными процедурами. Стандартные процедуры заранее запрограммированы и встроены в транслятор языка, поэтому они не нуждаются в описании. Они доступны в любой программе, в которой содержатся к ним обращения.
Два последующих оператора нашей программы аналогичны ранее рассмотренным.
Строка S:=a*b; содержит оператор присваивания «:=» , который является одним из основных операторов языка программирования. В его левой части указывается имя переменной, правая часть представляет собой выражение. Выполняется оператор так: вычисляется численное значение выражения в правой части и результат записывается в переменную слева.
Оператор Writeln(‘Площадь равна: ’, s); выводит на экран монитора два объекта: текстовую строку «Площадь равна: » и значение переменной s .
Завершает всю программу зарезервированное слово end с точкой. Точка оповещает компилятор о конце текста программы. Далее, после end с точкой, можно размещать какой угодно текст – он не будет обрабатываться компилятором.
Первая версия языка программирования Паскаль была разработана на кафедре информатики Стэнфордского университета швейцарским ученым Никласом Виртом в 1968 году. Предложенный им язык назван в честь французского ученого Блеза Паскаля, который изобрел первую в мире вычислительную машину. Язык Паскаль создавался как средство для обучения студентов программированию.
В 1979 году был утвержден международный стандарт языка Паскаль. Дальнейшее развитие языка Паскаль связано с американской корпорацией Borland International. На основе стандартного языка Паскаль была разработана система программирования Турбо Паскаль. С этого момента язык Турбо Паскаль становится одним из наиболее важных и широко используемых языков программирования. Сегодня Турбо Паскаль не только профессиональная система программирования, но и классический язык обучения студентов основам программирования.
Основные понятия и элементы языка
Состав языка
В тексте на любом языке можно выделить четыре основных элемента: символы, слова, словосочетания, предложения. Аналогичные элементы содержит и алгоритмический язык Паскаль, только слова называются – лексемами, словосочетания – выражениями, а предложения – операторами. Лексемы образуются из символов, выражения – из лексем, а операторы – из символов, лексем и выражений.
- алфавит языка – это элементарные знаки, используемые для составления любых текстов;
- лексема (слово) – это минимальная единица языка, имеющая самостоятельный смысл;
- выражение задает правило вычисления некоторого значения;
- оператор задает законченное описание некоторого действия.
Алфавит языка
Алфавит языка Турбо Паскаль включает:
- прописные и строчные буквы латинского языка, а также знак подчеркивания;
- арабские цифры от 0 до 9;
- специальные символы, выполняющие определенные функции при построении выражений и операторов:
а также символы, которые записываются как единое целое:
Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255. Символы с кодами от 0 до 127 образуют основную таблицу ASCII. Их состав и порядок определены международным стандартом. Символы с кодами от 128 до 255 образуют расширенную таблицу кодов ASCII. В ней находятся символы национального языка (для России – русского языка), символы псевдографики, а также некоторые другие символы, которые не входят в алфавит языка.
Из символов алфавита формируются лексемы языка:
- идентификаторы;
- зарезервированные слова;
- знаки операций;
- константы;
- разделители.
Идентификаторы
В Турбо Паскале применяется очень гибкая и наглядная система обозначения объектов программы (переменных, констант и т.д.), которая опирается на понятие идентификатора.
Идентификатор – это имя объекта в программе. Например, идентификатор переменной – это имя, данное переменной автором программы. Так, в записи a+b*x буквы a,b,x – идентификаторы, выбранные для обозначения некоторых переменных в программе.
Различают два типа идентификаторов: стандартные и задаваемые пользователем. Стандартные идентификаторы определены в языке для обозначения стандартных программ, функций и т.д. В качестве примера стандартной программы можно привести программу ввода данных, которая имеет имя Read и программу вывода данных, имеющую имя Write.
Идентификаторы, определяемые пользователем, должны удовлетворять следующим правилам написания:
- идентификатор всегда начинается с буквы или знака подчеркивания, затем могут следовать буквы и цифры;
- пробелы и специальные символы не допустимы в составе идентификатора;
- не допускается использование стандартных идентификаторов и зарезервированных слов;
- идентификаторы могут иметь произвольную длину, но значащими являются только первые 63 символа;
- прописные и строчные буквы не различаются;
- в идентификаторе недопустимо использовать кириллицу;
- каждый идентификатор в программе должен быть уникальным.
Нужно обратить особое внимание на то, что идентификатор в программе имеет тот и только тот смысл, который дан ему автором программы. Для улучшения читаемости программы следует объектам давать осмысленные имена. Неудачные имена часто являются источником проблем.
Примеры идентификаторов:
x, i, z, znak, x1, y1, flag, dy, _dat и т.д.
Примеры неправильных идентификаторов:
Зарезервированные слова
Зарезервированные слова имеют специальное значение для компилятора. Зарезервированные слова можно использовать только в том смысле, в котором они определены. В качестве пользовательских идентификаторов зарезервированные слова использоваться не могут. Смысл и правила использования зарезервированных слов будет поясняться по мере необходимости.
В заголовке указывается имя программы и список параметров. Общий вид:
здесь n – имя программы; input – файл ввода; output – файл вывода; x, y – внешние файлы, используемые в программе.
Заголовка может и не быть или он может быть без параметров.
Блок программы состоит из шести разделов, следующих в строго определенном порядке:
- раздел меток (label)
- раздел констант (const)
- раздел типов (type)
- раздел переменных (var)
- раздел процедур и функций
- раздел действий (операторов).
Раздел действий должен присутствовать всегда, остальные разделы могут отсутствовать.
Каждый из первых четырех разделов начинается с соответствующего ключевого слова (label, const, type, var), которое записывается один раз в начале раздела и отделяется от последующей информации только пробелом, либо концом строки, либо комментарием.
Раздел меток (label)
Любой выполняемый оператор может быть снабжен меткой – целой положительной константой, содержащей не более 4-х цифр. Все метки, встречающиеся в программе, должны быть описаны в разделе label.
здесь l1, l2, l3 – метки.
Пример. label 5, 10, 100;
Метка отделяется от оператора двоеточием.
Пример. Пусть выражение a := b имеет метку 20. Тогда этот оператор выглядит так:
Раздел констант (const)
здесь a1 – имя константы, c1 – значение константы.
Пример. const pi = 3.14; c = 2.7531;
Раздел типов (type)
Если в программе вводится тип, отличный от стандартного, то этот тип описывается в разделе type:
где t1 и t2 – идентификаторы вводимых типов.
Затем тип используется при объявлении переменных.
Пример использования нестандартных типов:
Раздел описания типов имеет большое значение в программе на языке Pascal. Если в программе не использовать типы, то можно столкнуться с несовместимостью типов переменных, даже если они описаны одинаково.
Раздел переменных (var)
Пусть в программе встречаются переменные v11, v12,…; все они должны быть описаны следующим образом:
здесь v11, v12,… - имена переменных; type1 – тип переменных v11, v12,…; type2 – тип переменных v21, v22,….
Пример. var k, i, j: integer; a, b: real;
Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу. Названия разделов (const, type, var…) указываются только один раз.
Таким образом, в разделе var вводится имя каждой переменной и указывается, к какому типу эта переменная принадлежит. Тип переменной можно задать двумя способами: указать имя типа (например, real, color и т.д.), либо описать сам тип, например: array[1..16] of char
Раздел процедур и функций
Здесь присутствуют заголовки и тела пользовательских процедур и функций.
Раздел действий (операторов)
Эта часть программы начинается с ключевого слова begin и заканчивается словом end, после которого должна стоять точка. Раздел действий есть выполняемая часть программы, состоящая из операторов.
Структура программы на языке Паскаль
Паскаль — язык структурного программирования. Это означает, что для написания программы, необходимо предварительно составить алгоритм ее решения для компьютера. Синтаксисом предусмотрена определенная структура программы на языке Паскаль:
раздел меток ( label ) раздел констант ( const ) раздел типов ( type ) раздел переменных ( var )
(раздел может быть пропущен, если в программе не предусмотрено использование процедур или функций)
begin операторы; end.
Заголовок со служебным словом program в программе можно опускать.
Структура программы на языке Паскаль
Переменная – это величина, имеющая имя, тип и значение. Значение переменной может быть изменено во время работы программы.
В разделе описаний наиболее важная часть начинается после служебного слова var (сокращ. от англ. variable — переменная), именно здесь указываются типы переменных в Паскале, которые будут описаны дальше.
Раздел меток, типов и описание констант происходит, естественно, только при их наличии в программе.
Раздел операторов — основная часть программы, которая всегда начинается со служебного слова begin в Паскале (begin — в переводе с англ. начало). Соответственно заканчивается этот раздел служебным словом end (с англ. конец).
Рассмотрим примеры из раздела описаний:
Раздел меток ( label ):
Раздел констант ( const ):
const a1 = 55; a2 = 3.14; …
Раздел типов ( type ):
type t1 = вид_типа; t2 = вид_типа;
Раздел переменных ( var ):
var v11, v12,…: type1; v21, v22,…: type2; …
Таким образом, порядок составления программ на Pascal должен соответствовать указанной структуре программы.
Рекомендуемые компиляторы Паскаля
Первые компиляторы были разработаны в 1992 г. фирмой Borland International: выпущены два пакета программирования — Borland Pascal 7.0 и Turbo Pascal 7.0.
Наиболее популярным транслятором до недавнего времени, используемым во всех школах и вузах, являлся компилятор Turbo Pascal или по-русски Турбо Паскаль, который имел англоязычный интерфейс и стандартное окно которого выглядело примерно так:
На современных компьютерах некоторые модули Turbo Pascal 7.0 (например, модуль CRT) работают некорректно. Служебное слово uses подключает к программе тот или иной модуль. Uses crt в Паскале — модуль, позволяющий выводить цветные символы на цветном экране при использовании текстового режима.
Для очистки окна в компиляторе Турбо Паскаль используется функция ClrScr . Интегрированная среда Турбо Паскаль постепенно вымещается более современными компиляторами.
Сегодня всё большую популярность набирает русскоязычный компилятор PascalABC и его новая версия PascalABC net, скачать которую можно на официальном сайте. Среда разработки Паскаль abc или, как часто ее называют, Паскаль абс (и даже так: авс и абц), выгодно отличается замечательным справочным материалом, синтаксической подсветкой и, как уже было сказано, русским языком. Кроме того, это целая платформа (framework), позволяющая работать в визуальном редакторе с элементами управления.
Модуль crt в pascal abc не подключается, и в целом работа с модулями значительно упрощена по сравнению с Turbo pascal.
Таким образом, среда программирования Pascal abc выгодно отличается от всех своих предшественников.
Читайте также: