Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
05.06.2018
Размер:
36.35 Кб
Скачать

Билет №23. Структура программ на Паскале.

Любая программа на Турбо Паскале имеет одну и ту же общую структуру:

[ program < имя программы > ; ]

[ <раздел описаний > ]

begin

< раздел операторов >

end.

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

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

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

 Каждый вид описания начинается некоторым ключевым словом (характеризующим вид описываемого объекта). Например: var - для описания переменных, type - для описания типов, function - для описания функции.

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

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

Остановимся более подробно на форме описания для переменных и констант. Описание переменных программы использует следующую синтаксическую структуру:

<описание переменных одного типа > ::= var < список переменных > : < тип > ;

где: < список переменных > ::= <имя переменной > {, < имя переменной > }

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

var math,phys,phil,hist:integer;{баллы по предметам}

average:real; {средний балл}

Константы следует описывать только, если в программе используются ссылки на эти константы по их мнемоническому имени. Синтаксическая структура описания константы имеет вид:

< описание константы > ::= const < имя константы> = < значение константы > ;

Например: const g = 9.8;

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

< описание типизированной константы > ::= const < имя >:<тип> = <значение >;

Например: const name:string = ''; { name, инициированная как пустая строка }

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

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

Замечание Точка с запятой после оператора, за которым следует end, until может быть опущена.

Оператор представляет самостоятельный элемент действия. Операторы Паскаля могут быть простыми либо составными. Простые операторы – “не расщепляются” на более мелкие операторы, а составные операторы, наоборот, содержат в своем составе другие (простые или составные) операторы. Таким образом, сложные операторы (а, следовательно, и сложные действия) имеют вложенную структуру, комбинирующую в одну конструкцию более простые операторы. Для объединения операторов в сложный оператор помимо последовательного соединения используют и другие важные способы композиции (условные операторы, циклы и др.), которые мы рассмотрим ниже.

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

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

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

Задача 4.2.6(23)

program Project23;

type mas=array[1..4,1..4] of Integer;

mass=array[1..4] of integer;

var a:mas;

b:mass;

i,j:Integer;

procedure p(x:mas; e:Integer; var y:integer);

var i,max:Integer;

begin

max:=x[1,e];

y:=1;

for i:=2 to 4 do

if x[i,e]>max then begin

max:=x[i,e];

y:=i;

end;

end;

begin

for i:=1 to 4 do

for j:=1 to 4 do

read(a[i,j]);

Writeln;

for i:=1 to 4 do

begin

p(a,i,b[i]);

write(b[i],' ');

end;

Readln;

end.

Соседние файлы в папке 1 семестр сессия