36585

Структура программ на Паскале

Контрольная

Информатика, кибернетика и программирование

Любая программа на Турбо Паскале имеет одну и ту же общую структуру: [ progrm имя программы ; ] [ раздел описаний ] begin раздел операторов end. Эта структура состоит из заголовка программы необязательного раздела описаний который может в особых случаях отсутствовать и раздела операторов содержащего хотя бы один оператор. Имя программы идентификатор выбираемый программистом. В разделе описаний должны быть описаны все нестандартные имена используемые далее в разделе операторов этой программы.

Русский

2013-09-22

36 KB

3 чел.

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

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

[ 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.


 

А также другие работы, которые могут Вас заинтересовать

9892. Классические методы безусловной оптимизации 101 KB
  Классические методы безусловной оптимизации Классический подход к задаче определения локальных и глобальных минимумов состоит в использовании методов математического анализа для поиска уравнений, которым должны удовлетворять эти точки, и для решения...
9893. Итерационные методы оптимизации функций одной переменной 124 KB
  Итерационные методы оптимизации функций одной переменной Методы деления интервала С помощью численных (итерационных) методов можно, например, определять минимум функции в некотором интервале , в котором, как предполагается, лежит точка минимума. При...
9894. Оптимизация функций многих переменных 127 KB
  Оптимизация функций многих переменных Разнообразные методы многомерной оптимизации различают обычно по виду информации, которая необходима им в процессе работы: - методы прямого поиска (методы нулевого порядка), которым нужны только значения целевой...
9895. Градиентные методы 87.5 KB
  Градиентные методы Градиентные методы безусловной оптимизации используют только первые производные целевой функции и являются методами линейной аппроксимации на каждом шаге, т.е. целевая функция на каждом шаге заменяется касательной гиперплоскостью ...
9896. Примеры простейших задач вариационного исчисления 214.5 KB
  Примеры простейших задач вариационного исчисления Исторически первой задачей, известной в глубокой древности и отнесенной впоследствии к задачам вариационного исчисления, явилась так называемая задача Дидо. Легенда говорит, что Дидо - царица од...
9897. Вариация функционала 278.5 KB
  Вариация функционала Вариация одно из центральных понятий при изучении нелинейных функционалов, оно играет ту же роль, что понятие дифференциала при изучении нелинейных функций. Дифференциал нелинейной функции равен главной линейно...
9898. Вторая вариация и достаточные условия экстремума 178 KB
  Вторая вариация и достаточные условия экстремума Вспоминая о глубокой аналогии между дифференциальным и вариационным исчислениями, естественно ожидать, что при переходе к достаточным условиям экстремума функционалов будет введено понятие, иг...
9899. Классификация задач оптимизации 70 KB
  Классификация задач оптимизации оптимизируемая функция (целевая функция, целевой функционал, критерий качества и т.п.), численно выражает степень достижения целей функционирования оптимизиру...
9900. Динамическая оптимизация 97 KB
  Динамическая оптимизация Статическая задача распределения ограниченных ресурсов для достижения комплекса конкурирующих целей в некоторый определенный момент времени математически формализуется в виде математической задачи выбора из заданного до...