Структура программы на языке Pascal

Раздел III. Алгоритмы, структуры данных и система программирования Паскаль

Тема: Структура программного модуля. Состав интегрированной программной среды.

Вопросы:

Структура программного модуля

Состав интегрированной программной среды.

I. Структура программного модуля.

Алфавит и некоторые основные операторы языка

В основе языка программирования Паскаль лежит определенная совокупность символов, образующих алфавит языка. Алфавит языка Турбо Паскаль включает буквы, цифры, в том числе шестнадцатеричные, специальные символы, пробелы, зарезервированные слова и стандартные директивы.

Буквы - это буквы латинского языка от a до z и от A до Z, а также знак подчёркивания _. В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения..

Цифры - арабские цифры от 0 до 9.

Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами от 0 до 9, остальные шесть – латинскими буквами A .. F или a….f.

Специальные символы, которые подразделяются на знаки арифметических операций: + - * /; операций отношения: = <> < <= > >=; операций присваивания: := и ограничители: . , : ; ( ) [ ] { } ^ # $ @ &.

Символы применяются для записи в программе констант (чисел) переменных и для указания операций.

Пробельные символы: пробел, табуляция и переход на новую строку.

Зарезервированные слова используются для описания операторов, данных и других языковых конструкций. Они придают тексту более «читабельный» вид, приближая его к тексту, написанному на естественном английском языке. Зарезервированные слова не могут использоваться в качестве идентификатора! (См. Фаронов В.В. Turbo Pascal с.27)

Стандартные директивы первоначально связаны с некоторыми стандартными объявлениями в программе. К стандартным директивам относятся:

absolute far near
assembler forward private
external interrupt virtual

Как и зарезервированные слова, стандартные директивы в окне Турбо Паскаля выделяются цветом.

Идентификаторы - это имена констант, переменных, меток, типов, объектов, процедур, модулей, функций, программ и полей в записях. При выборе имени рекомендуется придерживаться следующих правил:

- имя должно начинаться с буквы, за которой могут следовать буквы и цифры. Буквой также считается символ подчеркивания, поэтому идентификатор может начинаться этим символом, что не очень рекомендуется. Пробелы и специальные символы алфавита не могут входить в идентификатор.

Пример:

a

ALPHA

MyProgramIsBestProgram

date_27_sep_09

_beta

Примеры неправильных идентификаторов:

1Program (начинается цифрой)

Block#1 (содержит специальный символ)

My Prog (содержит пробел)

Mod (зарезервированное слово)

- длина идентификатора может быть произвольной, но значащими (уникальными в области определения) считаются первые 63 символа;

- идентификатор не должен совпадать ни с одним из зарезервированных слов;

- длинные имена или имена, состоящие из нескольких слов, рекомендуется сокращать, удаляя часть гласных.

Константы.

Константы – это величины, которые определены при написании программы и не изменяют своего значения в процессе её выполнения.

В качестве констант в Турбо Паскале могут использоваться целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств.

Целые числа - записываются со знаком или без него по обычным правилам и могут принимать значения от -2 147 483 648 до +2 147 483 647. Если целочисленная константа выходит за рамки указанного диапазона, то компилятор выдаёт сообщение об ошибке. Такие константы должны записываться с десятичной точкой, то есть определяться как вещественные числа.

Вещественные числа - записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е (Е), за которым следует знак порядка + (-) и десятичный порядок. Символ е (Е) означает десятичный порядок и имеет смысл «умножить на 10 в степени». Например:

3.14Е5 – 3.14 умножить на 10 в степени 5;

-17е-2 – минус 17 умножить на 10 в степени минус 2.

Цифры, предшествующие букве Е, образуют мантиссу числа, а за буквой Е пишется целый порядок. Мантисса и порядок могут иметь знак + или -.

Такая форма записи называется полулогарифмической.

При записи чисел нельзя опускать мантиссу. Так, например, для числа 107 вместо Е7 надо писать 1Е7. Порядок числа не может быть дробным, так как он указывает, на сколько разрядов необходимо переместить десятичную точку в мантиссе пи переходе от полулогарифмической к естественной форме записи.

В языке зарезервирована стандартная константа вещественного типа с именем PI, имеющая значение 3.1415926535897932385.

Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $. Диапазон шестнадцатеричных чисел – $ 0000 до $FFFF, что в десятичной системе счисления соответствует значениям от 0 до 65 535.

Логическая (или булева) константа – это либо слово False (ложь), либо слово True (истина). Будет использоваться при программировании разветвляющихся алгоритмов.

Символьная константа - это любой символ ПК, заключённый в апострофы. Например: 'z' - символ z.

Строковая константа – любая последовательность символов языка, заключенная в апострофы и не содержащая непарных апострофов: ` Это строковая константа`. Для представления апострофа используются два апострофа: ` об``ект`.

Конструктор множества – список элементов множества, обрамленный квадратными скобками. Например:

[1, 2, 2 .. 7, 12]

[ blue, red]

Типы данных

Язык Паскаль является строго типизированным языком программирования. Это означает, что для всех переменных в вашей программе должен быть определен их тип данных.

Типы данных характеризуются множеством допустимых значений переменных и набором допустимых операций для данного типа. Кроме того, тип определяет формат внутреннего представления в памяти компьютера. Турбо Паскаль характеризуется разветвленной структурой типов данных (рис. 1).

Структура программы на языке Pascal - №1 - открытая онлайн библиотека

К простым типам относятся порядковые и вещественные типы. Порядковые типы отличаются тем, что каждый из них имеет конечное количество значений. Эти значения можно определенным образом упорядочить и, следовательно, с каждым из них можно сопоставить некоторое целое число – порядковый номер.

Вещественные типы, тоже имеют конечное количество значений, которое определяется форматом внутреннего представления вещественного числа. Однако это количество настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным.

Как и в большинстве языков программирования, в Паскале все переменные, используемые в программе, описываются в ее начале в специальном разделе описания переменных после зарезервированного слова var.

Переменные могут быть:

1. Скалярные (простые) - содержит одно единственное значение

2. Структурированные - могут содержать несколько значений.

Рассмотрим некоторые простые типы данных, с которыми будем иметь дело в ближайшее время (Информатика 11 класс, с.44):

Целый:

Integer - значением переменной этого типа может быть целое число из отрезка [-32768; 32767]

Вещественный

Real - значением переменной этого типа может быть вещественное число, модуль которого принадлежит отрезку [2,9*10-39; 1,7*108]

Логический

Boolean - переменная этого типа может принимать только два значения: истина (true) или ложь (false)

Символьный

Char - значением переменной этого типа может быть любой символ, из набора ASCI I-символов.

Операция присваивания

В результате присваивания переменная получает конкретное значение.

Имя Переменной :=Выражение

Здесь " := " - оператор присваивания языка Паскаль, т.е. символ (в данном случае), который обозначает операцию присваивания

Выполнение инструкций присваивания заключается в следующем:

вычисляется результат выражения, находящегося справа от символа ":=";

вычисленное значение записывается в переменную, имя которой стоит слева от символа ":=";

С целыми величинами можно выполнять арифметические операции. Результат их выполнения всегда целый (при делении дробная часть отбрасывается). (Учебник Информатика 11 класс, с.45)

Выражение состоит из операндов и операторов. Операторы находятся между операндами. Операндами выражений могут быть числа (константы) и переменные. Операторы обозначают действия, выполняемые над операндами.

Операторы *,/, div, mod имеют более высокий приоритет, чем операторы + и -.

Операторы с более высоким приоритетом выполняются раньше операторов, приоритет которых ниже. Если приоритет операторов одинаков, то оператор, стоящий левее, выполняется раньше.

Для задания любого нужного порядка выполнения операций в выражениях можно использовать скобки. Выражение, заключенное в скобки трактуется как один операнд. Это означает, что операции, стоящие в скобках, будут выполняться в обычном порядке, но раньше, чем операции, находящиеся за скобками. При записи выражений, содержащих скобки, должна соблюдаться парность скобок, т.е. число открывающихся скобок должно быть равно числу закрывающихся скобок.

Обратите внимание, что в Паскале (как и во многих других языках программирования) ни в коем случае нельзя пропускать знак умножения, т.к. Паскаль попытается понять выражение вида 2х как имя некоторой переменной "2х", а не арифметическое выражение.

Структура программы на языке Pascal

Программа состоит из заголовка, блока и заканчивается точкой. Типичный заголовок выглядит так:

Program Primer;

Слово Programявляется первым словом программы, за ним следует имя программы. В конце обязательно ставится точка с запятой. Для программы заголовок можно опускать без каких-либо последствий для программы, а для модуля, процедур и функций наличие заголовка обязательно.

Блок состоит из следующих разделов:

· модулей (Uses);

· меток (Label);

· констант (Const);

· типов (Type);

· переменных (Var);

· процедур и функций;

· операторов.

Тело программы (раздел исполняемых операторов) содержит собственно программный код, отвечающий за реализацию алгоритма. При этом тело программы обязательно оформляется так называемыми операторными скобками - begin ... end. Между ними будут помещаться оператор ввода исходных данных Read, операторы присваивания и операторы вывода на печать результатов решения Write. Операторы отделяются друг от друга точкой с запятой. Перед End точка с запятой не ставится, однако её наличие не является ошибкой, а лишь означает присутствие между последним исполняемым оператором и служебным словом Endещё одного оператора – пустого оператора. Заканчивается программа словом End,после которого обязательно ставится точка.

Т.е. все операторы, реализующие ваш алгоритм должны помещаться между этими операторными скобками.

Разделы TYPE, CONST, VAR, LABEL могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз. Единственное ограничение идентификаторы, которые используются для определения других идентификаторов, должны описываться раньше.

В простейшей программе из всех перечисленных подразделов раздела описания обязательно присутствует только раздел описания переменных VAR.

Program Primer;

Uses CRT;

Label Home, 4;

const n=7;

type mass= array [1..3, 1..5] of real;

var х: real ;

Тело программы:

begin

(команды программы)

end.

Процедуры ввода.

Для ввода данных используют процедуры read, readln.

Процедура read считывает данные вводимые с клавиатуры, а процедура readln считывает данные и символ конца строки. Т.е., как и в случае с процедурой вывода частица ln (line) в конце означает, что после выполнений процедуры ввода курсор будет переведен на следующую строку.

Процедуры вывода.

Процедура WRITE предназначена для вывода на экран монитора сообщений и значения выражений или переменных.

Для того, чтобы вывести сообщение нужно заключить его в апострофы (‘) - в этом случае, то что заключено в апострофы при работе вашей программы появится на экране монитора без изменений.

Например:

write('Привет');

- после выполнения этой строки программы на экране появится надпись:

Привет

Если вы хотите вывести на экран результат некоторых ваших вычислений, т.е. не сообщение, а значение, хранимое в некоторой переменной, то апострофы не ставятся

Например:

Пусть в некоторой переменной Dok в результате вычислений хранится целое значение = 55, которое вы хотите вывести на экран. Тогда достаточно записать в программе следующую строку:

write(Dok);

- после выполнения этой процедуры на экране появится:

Если же, например, надо вывести некоторое вещественное значение, то можно использовать форматы вывода.

Например:

Пусть в некоторой переменной D в результате вычислений хранится значение = 12,4567, которое вы хотите вывести на экран. Тогда запишем оператор:

write(D:7:2);

Здесь использован формат вывода, где первая цифра означает общее количество знаков в выводимом числовом значении, а вторая цифра - количество знаков после запятой. В результате выполнения этой процедуры на экране появится:

12,45

Т.е. последние две цифры не пропечатаются, так как в формате мы указали только две цифры после запятой. Чтобы пропечатать число полностью надо видоизменить оператор:

write(D:7:4);

Тогда после выполнения этой процедуры на экране появится:

12,4567

Значение переменных перечисляемого типа нельзя вывести с помощью процедуры write.

Рассмотрим еще один пример. Пусть в переменной kol хранится количество книг в некоторой библиотеке. Например =10675. Выведем это значение на экран, но с пояснением для пользователя вашей программы. Т.е. на экране должно появится:

Всего книг - 10675

Этого можно добиться следующей последовательностью операторов:

Write('Всего книг - ');

Write(kol);

А можно записать все в одном, разделив параметры в скобках запятой:

Write('Всего книг - ', kol);

Результат будет один и тот же.

Процедура Writeln {write line} выводит информацию строкой. После того как была выведена информация, записанная в скобках после имени процедуры, курсор переместиться на другую строку.

II. Состав интегрированной программной среды.

Инструментальную программную оболочку, предоставляющую пользователю разнообразные сервисные средства, не относящиеся непосредственно к языку программирования Турбо Паскаль, но служащие для организации процесса разработки, отладки и испытания программ, принято называть средой Турбо паскаль или Турбо-средой. Для работы в среде Турбо Паскаль необходимы следующие основные файлы:

turbo.exe – интегрированная инструментальная среда Турбо – собственно система;

turbo.tlp – резидентная системная библиотека – библиотека транслятора;

turbo.hlp – библиотека справочной службы – «помощь»;

turbo.tp – файл конфигурации среды;

turbo.pck – список рабочих файлов, обрабатываемых средой.

Последние два файла формируются и изменяются в процессе работы с системой.

Верхняя строка содержит меню возможных режимов работы Турбо Паскаля, нижняя - краткую справку о назначении основных функциональных клавиш. Вся остальная часть экрана (рабочая область) принадлежит окну редактора, очерченному двойной рамкой и предназначенному для ввода и коррекции текста программ.

В верхней части рамки рабочей области окна редактора находится имя редактируемого файла.

Для выбора одного из пунктов в главном меню, необходимо перейти в режим работы с главным меню. Признаком того, что система находится в данном режиме, является выделение другим цветом какого-либо пункта меню. Переход в режим меню осуществляется нажатием клавиши F10. Повторное нажатие клавиши F10 приводит к переходу в режим редактирования. Дальнейшие нажатия вызывают поочередную смену режимов.

Выбор пункта главного меню приводит к появлению под его именем так называемого выпадающего меню.

Меню File предназначено для выбора режима работа с файлами:

открытия новой активной рабочей области (New);

открытия файла с заданным именем и записи его содержимого в новую активную рабочую область (Open);

сохранения содержимого активной рабочей области в файле с текущим именем (Save) или с задаваемым именем (Save as);

сохранения всех рабочих областей (Save all);

смены текущего каталога (Change dir);

вывода на печать содержимого текущей активной области (Print);

установки режима печати (Printer setup);

выхода в операционную среду MS DOS без выгрузки системы TurboPascal (DOS Shell);

завершения работы в интегрированной среде системы TurboPascal (Exit).

Меню Edit предназначено для выбора режима создания и редактирования текстов программ.

В меню Search собраны режимы, выполняющие поиск объектов программы по заданным параметрам.

Меню Run предназначено для выбора режима выполнения программы.

Меню Compile позволяет задать способ компиляции и компоновки составных частей программы.

В меню Debug выполняется настройка отладчика, установка контрольных точек и выбор переменных, значения которых выводятся в окно наблюдения.

Меню Tools позволяет обращаться к ассемблеру, отладчику и профилировщику.

В меню Options производится установка режимов работы компонентов системы TurboPascal.

Например, определяется, будет ли производиться проверка на наличие ошибок ввода-вывода при работе с файлами, на нахождение значений индексов массивов и переменных диапазонного типа в допустимых пределах, и так далее.

В меню Window производится установка текущей активной рабочей области и определение способа отображения содержимого рабочих областей.

В меню Help производится обращение к встроенной справочной системе.

Управление работой системы может выполняться с помощью клавиш-стрелок, клавиши Enter, с помощью мыши и с помощью комбинаций управляющих клавиш. Наиболее просто использовать мышь. Для выбора пункта меню достаточно установить маркер мыши на его имя и дважды щелкнуть левой клавишей мыши.

Для выбора пункта главного меню с помощью стрелок надо переместить выделение на имя этого пункта и нажать клавишу Enter.

Для того, чтобы откомпилировать и выполнить введенную программу, необходимо перейти в режим Run и, выбрав элемент Run, нажать Enter; или, находясь в редакторе, нажать клавишу Ctrl и, не отпуская ее, нажать клавишу F9 (Ctrl+F9).

При наличии синтаксических ошибок на экран выводится диагностическое сообщение. Курсор при этом будет находиться в строке, содержащей ошибку. Для продолжения отладки после исправления следует снова нажать Ctrl+F9.

Подсказку о работе в текущем режиме можно получить, нажав клавишу F1. Для получения информации об операторах, процедурах, функциях и остальных элементах программы надо переместить курсор к интересующему элементу и нажать клавиши Ctrl+F1. Для перелистывания выводимой информации используются клавиши PageUp и PageDown.

Выход из режима и снятие экранов с текстами происходят при нажатии клавиши Esc.

После завершения выполнения программы на экране появляется окно редактора с текстом программы. Для просмотра результатов надо нажать Alt+F5. Повторное нажатие этих клавиш приводит к переходу в окно редактора системы TurboPascal.

Текстовый редактор среды

Текстовый редактор среды Турбо Паскаля предоставляет пользователю удобные средства создания и редактирования текстов программ. Признаком того, что среда находится в состоянии редактирования, является наличие в окне редактора курсора - небольшого мигающего прямоугольника. Режим редактирования автоматически устанавливается сразу после загрузки Турбо Паскаля. Из режима редактирования можно перейти к любому другому режиму работы Турбо Паскаля с помощью функциональных клавиш. Если среда находится в состоянии выбора из меню, курсор исчезает, а в строке меню появляется цветной указатель - прямоугольник, выделяющий одно из кодовых слов.

Набор текста программы производится по тем же основным правилам, что и набор любого текста в произвольном (простом) текстовом редакторе. Т.е., например, для перевода курсора вверх-вниз или вправо-влево используются курсорные клавиши вашей клавиатуры а для перехода на следующую строчку в случае, если вы уже набрали в текущей строке все, что считаете нужным, достаточно нажать клавишу "Enter".

Текстовый редактор Паскаля поддерживает так же работу с блоками текста. Это означает, что вы можете вырезать, копировать и вставлять участки текста, что помогает избежать увеличения объема работ и повышает скорость их выполнения.

Например, чтобы скопировать блок текста надо выполнить следующую последовательность действий:

1. Выделить нужный участок текста, для чего:

- Поместить курсор на начало блока;

- При нажатой клавише Shift переместитесь на конец выделяемого блока с помощью курсорных клавиш;

2. Выделенный таким образом участок текста скопируйте, для чего можете использовать один из методов, а именно:

- Или: Войти в строку меню клавишей F10, выбрать пункт Edit (редактирование), из ниспадающего меню выбрать пункт Copy (копировать) - все это мы в дальнейшем будем записывать короче: F10, Edit\Copy;

- Или: нажать зарезервированную для копирования комбинацию клавиш (чаще всего 'Ctrl'+'Ins');

3. Переместить курсор в то место, куда вы хотите вставить скопированный текст.

4. Осуществить вставку одним из способов:

- F10, Edit\Paste

- 'Ctrl'+'Delete'