Назад | Вперед

Раздел 2. Введение в Паскаль

Как уже рассматривалось в теме 1,  алгоритм — это формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций). Под словом «формальное» подразумевается, что описание должно быть абсолютно полным и учитывать все возможные ситуации, которые могут встретиться по ходу решения. Под элементарной операцией понимается действие, которое по заранее определенным критериям (например, очевидности) не имеет смысла детализировать.
Основная идея алгоритмического (модульного, линейного) программирования — разбиение программы на последовательность модулей, каждый из которых выполняет одно или несколько действий. Единственное требование к модулю — чтобы его выполнение всегда начи­налось с первой команды и всегда заканчивалось на самой последней, то есть, чтобы нельзя было попасть на команды модуля извне и передать управление из модуля на другие команды в обход заключительной. Алгоритм на выбранном языке программирования записывается с помощью специальных команд - операторов:
   описания данных,
   вычисления значений и
   управления последовательностью выполнения программы.
Совокупность таких операторов и других элементов языка, расположенных в строго определенном порядке и записанных в обычный текстовый файл на языке программирования, будет являться исходным текстом программы, которая становится собственно программой для ЭВМ после своей трансляции.

Тема 3. Основные элементы алгоритмического языка и структура исходной программы

Основные элементы языка Паскаль
Структура исходной Паскаль программы

Основные элементы языка Паскаль

Любой естественный язык строится из элементарных составляющих — букв, образующих алфавит языка. Буквы используются для построения слов, слова складываются в предложения, а предложения... . Всякий язык программиро­вания организован примерно так же. Имеется алфавит языка, то есть набор символов, которые можно использовать в программе. Существуют зарезерви­рованные слова, имеющие вполне определенный смысл и определенное назна­чение. Их нельзя изменять: любая неточность в написании таких слов является серьезной ошибкой. В отличие от естественных языков человеческого обще­ния, в языках программирования можно вводить свои собственные слова и придавать этим словам свой собственный смысл. Небольшую программу мож­но уподобить письму или маленькому рассказу. Большой проект - это роман. Как и обычное письмо, программа может быть написана хорошим или плохим «слогом» (стилем), и чем лучше стиль, тем понятнее программа, тем меньше вероятность появления в ней ошибок.
В частности, язык Турбо Паскаль состоит приблизительно из 80 зарезервированных слов и специальных символов. Алфавит языка составляют буквы латинского алфавита, цифры, а также специальные символы, такие, например, как +, •, -. Специ­альными символами языка являются и некоторые парные символы. Как уже  отмечалось, зарезервированные слова в языке Паскаль могут применяться только по своему прямому назначению, то есть в качестве имен операторов, названий операций и т. д. (см. табл. 2.1) [9].
Таблица 2.1.
Зарезервированные слова языка Паскаль

absolute    
begin       
constructor 
do          
external    
function    
in 
label   
not   
packed  
public  
shl   
to    
uses  
with

and 
break
continue 
down to
far   
goto
inline
mod    
object 
private
record 
shr    
type   
uar   
xor    

array 
case  
destructor
else  
file   
if     
interface
near  
of   
procedure
repeat 
string
unit   
virtual

assembler
const
div
end
for
implementation
interrupt
nil
or
program
set
then
until
while

В дальнейшем мы разберем применение приведенных и данной таблице заре­зервированных слов, а сейчас лишь кратко поясним смысл некоторых из них, наиболее часто используемых в программах на Паскале. Заголовки, то есть первые операторы программ и библиотечных модулей — это program и unit. Для описания переменных, констант и составных частей программы - подпрог­рамм-процедур и подпрограмм-функций - используются зарезервированные слова var, const, procedure, function. Операторы описания типов переменных, задаваемых пользователем, — это type, array, string, record...end, file of... . Слова, используемые для программирования составных операторов, а также начинающие и оканчивающие последовательность исполняемых операторов про­граммы, - begin и end. Операторами, управляющими ходом выполнения про­граммы (они так и называются - управляющие операторы), являются if ... then ... else, for ... to ... do, repeat ... until, case ... of ...end, for ... downto ... do, while ... do. В биб­лиотечных модулях используются зарезервированные слова implementation, interface. Зарезервированные слова для обозначения арифметических и логичес­ких операций - div, mod, shl, shr, and, or, not и некоторые другие. В программах, написанных с использованием методов объектно-ориентированного программи­рования, применяются зарезервированные слова object, constructor, destructor, public и virtual.
Как уже было отмечено, кроме зарезервированных слов в программах на языке Паскаль используются как отдельные специальные символы, так и пары символов, которые имеют специальное значение. Перечень таких символов приве­ден в табл. 2.2.
Таблица 2.2.
Одиночные и двойные специальные символы языка Паскаль


Cимволы

Значение

:=

 Присваивание переменной (слева) значения выражения (справа)

;

 Разделитель операторов в программе

(  )

Скобки для арифметических и логических выражений

:

Разделитель в описаниях переменных и формате операторов вывода

..

Многоточие для списков

+  -  *  /

Бинарные операции (не только арифметические!)

=

Логическое равенство, элемент описания констант и типов

<>

 Логическое неравенство

< >

Отношения «меньше чем» и «больше чем»

<=

Отношения «меньше или равно» и «больше или равно»

.

Конец программы или модуля, а также десятичная точка в константах вещественного типа

Ограничители константы строкового типа

{}  (*  *)

Пары скобок для комментариев

,

Разделитель элементов списка

[  ]

Скобки для ссылки на элемент массива или указания диапазона значений индекса

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


Наверх

Структура исходной Паскаль программы

Итак, мы будем считать, что программа представляет собой последовательность операторов и других элементов языка, построенную в соответствии с определенными правилами и предназначенную для решения определенной задачи.
В зависимости от применяемой системы программирования порядок оформления ее модулей и формирования из них программы в целом трактуется несколько по-разному, хотя и здесь могут быть отмечены общие правила.
Так, например, в Бейсике специального оператора обозначающего начала программы нет, а в ее конце обязательно ставится оператор END. В системах на языке Си признаками в качестве ограничителей любого блока операторов используются круглые скобки: {…}, а главный блок, с которого начинается выполнение программы, имеет имя main.
В Паскале первым в программе идет зарезервированное слово program. За ним, после одного или нескольких пробелов, следуют идентификатор — имя программы. Идентификаторы могут содержать любое количество символов, но Турбо Паскаль распознает только первые 63 из них, что, разумеется, намного превосходит реальные потребности. Идентификатор - имя программы должен начинаться буквой или символом подчеркивания. 3aтем могут идти буквы, цифры и символы подчеркивания. Взятая в целом, фраза program s_kate; является заголовком программы с именем s_kate. Каждое описание должно завершаться точкой с запятой. Таким образом, первая строка любой программы имеет вид

    program  name;
В Турбо Паскале оператор программы может быть опущен. Имя программы никогда в ней фактически не используется, и оно совершенно не связано с именем внешнего файла, содержащего текст программы.
После заголовка программы обычно идут описания переменных, констант, ме­ток, подпрограмм и других объектов, используемых в программе. Эта часть программы называется разделом описаний (рис. 1.1).
img01
Рис. 2.1. Структура программы на языке Паскаль

Раздел описаний может включать в себя подразделы подключаемых библиотек (модулей), описания меток, описания констант, описания типов, описания переменных, а также – подразделы описания процедур и функций.
Подраздел описания  модулей  определяется служебным словом USES и содержит имена подключаемых модулей (библиотек)  как входящих в  состав системы TURBO PASCAL, так и написанных пользователем. Этот подраздел должен быть первым среди подразделов описаний. Имена модулей отделяются друг от друга запятыми:
    uses CRT, Graph;
Любой оператор  в программе может быть помечен меткой.  В качестве метки используются произвольные целые без знака,  содержащие не более четырех цифр, либо имена. Метка ставится перед оператором и отделяется от него двоеточием.  Все метки,  используемые в программе,  должны быть перечислены в разделе описания меток, например:
    label 3, 471, 29, Quit;
Описание констант  позволяет использовать имена как синонимы констант, их необходимо определить в разделе описаний констант:
    const K=  1024;   MAX= 16384;
В разделе описания переменных необходимо определить тип всех переменных, используемых в программе:
       var P,Q,R: Integer;
       A,B:    Char;
       F1,F2: Boolean;
  
Описание типов,  прцедур и функций будет рассмотрено ниже. Отдельные разделы описаний могут отсутствовать,  но следует помнить,  что в ПАСКАЛЬ - программе   должны  быть обязательно описаны все компоненты программы.
Каждая программа должна иметь часть, которая выполняет какие-либо действия и называется разделом операторов (иногда – телом программы).
Раздел операторов  представляет собой составной оператор,  который содержит между служебными словами
    begin ... end
определенную последовательность  операторов, отделенных друг от друга символом ( ; ).
Таким образом, минимально допустимой выполняемой частью программы является составной оператор
      begin
      SI;  S2;   …  Sn;
      end
  
где SI, … Sn - операторы, а зарезервированные слова begin и end играют роль скобок, но только для операторов, а не для математических выражений. Они гак и называются операторными скобками. Каждому begin и программе должен соответствовать end. Обратное, вообще говоря, неверно, так как end может закан­чивать разделы, начинающиеся зарезервированными славами case и record. За телом программы должна следовать точка - признак того, что здесь находится конечная точка останова программы.
Приведем еще два примера. Операторы в программе могут размещаться как на отдельных строках, так и по несколько в строке. Операторы разделяются точ­кой с запятой. В первом из приведенных ниже примеров между каждыми двумя последовательными разделителями находится пустой оператор. Обра­тите внимание на то, что допускаются дополнительные пары begin...end и до­полнительные точки с запятой:
  1)program   DE;
    begin
      . . .
      . . .
    end.  
  2)program   FG;
    begin
     begin
       ;
     end; 
     ;
    end.
  
Необходимо сделать замечание по поводу формата записи текста программы, так как это вопрос не только эстетический, но и вопрос эффективности труда программиста. При наборе текста программы ее операторы следует располагать таким образом, чтобы понятной была логика работы программы. Для этого используются пробелы между операторами или элементами операторов, а также отступы. Каждый программист имеет свой стиль использования пробелов и отступов. Пробелы и отступы помогают читателю программы определить уровень подчи­ненности каждой строки. Компьютерные программы содержат большое количество информации в концентрированном виде, и хорошее форматирование может оказаться очень полезным. Надо иметь в виду, что вряд ли вновь написанная программа сразу будет работать правильно. На отладку программы может уйти больше половины времени ее разработки. Должное внимание к хорошему фор­матированию, тщательному выбору имен переменных и других объектов про­граммы, разумное документирование программ может значительно увеличить производительность труда. Не следует разметать в одной строке более одного-двух операторов. При записи программы на Паскале допускаются пустые строки, которые можно использовать для выделения логически связанных групп опера­торов.
Важной частью исходного текста программы являются комментарии. Комментарий представляет собой текст, который находится между фигурными скобками или между парами символов, состоящими из круглой скобки и звездочки (см. табл. 1.2). Текст комментария не обрабатывается компилятором и не вклю­чается в исполняемый файл. Комментарии позволяют включить подробное опи­сание программы и пояснения к ней прямо и исходный текст. Грамотное и уместное применение комментариев упрощает понимание программы, облегчает жизнь ее автору и программистам, работающим с. уже готовым текстом. У фигурных скобок есть и нестандартное применение — во время отладки часто возникает необходимость временно убрать из программы какие-то операторы, сохранив, тем не менее, их запись. Простейший способ — заключить соответствующий фрагмент программы в фигурные скобки.
Текст программы заканчивается символом точка.
Кроме описаний  и  операторов  ПАСКАЛЬ - программа может содержать комментарии, которые  представляют собой произвольную  последовательность символов,  расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.<
Текст ПАСКАЛЬ - программы может содержать ключи компиляции,  которые позволяют управлять режимом компиляции.  Синтаксически ключи компиляции записываются как комментарии. Ключ компиляции содержит символ $ и букву-ключ с последующим знаком + (включить режим)  или - (выключить режим). Например:
{$E+} - эмулировать математический сопроцессор;
{$F+} - формировать дальний тип вызова процедур и функций;
{$N+} - использовать математический сопроцессор;
{$R+} - проверять выход за границы диапазонов.
Некоторые ключи компиляции могут содержать параметр, например:
{$I имя файла} - включить в текст компилируемой программы  названный файл.
Пример записи простой программы:
  Program TRIANG; 
  var A, B, C, S, P: Real; 
  begin 
    Read(A,B,C);
    WriteLn(A,B,C); 
    P:=(A+B+C)/2; 
    S:=Sqrt(P*(P-A)*(P-B)*(P-C)); 
    WriteLn('S=',S:8:3) 
  end. 
  


Наверх

Назад | Вперед