Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASKAL_sokraschyonnoe.doc
Скачиваний:
12
Добавлен:
02.04.2015
Размер:
454.14 Кб
Скачать

Var I, kP,j : integer ;

b : real ;

a : array [1..n] of real ;

begin

write (‘введите массив‘);

for i:=1 to n do read (a[i]);

writeln (' исходный массив:);

for i:=1 to n do write (a[i]:5:2);

writeln;

j:=n;

repeat kP:=0; j:=j–1;

for i:=1 to j do

if a[i] > a[i+1] then

begin

b := a[i]; a[i] := a[i+1];

a[i+1] := b; kP:=kP+1;

end

until kP = 0;

writeln(' упорядоченный массив ‘);

for i:=1 to 10 do write (a[i]:5:2)

end.

Тема 5. Подпрограммы

5.1. Вводные понятия

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

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

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

Пример 5.1. Нужно вычислить значение выражения

.

Несложно заметить, что все три части в этой формуле имеют схожее строение вида . В первом выражении вместоt надо подставить х, во втором – 1/х, а в третьем – sin(x). Значит, для экономии места можно не программировать три разных формулы, а запрограммировать только одну, и использовать её три раза, подставляя разные исходные данные.

Подпрограммы в основном используются в трёх случаях.

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

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

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

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

- имя вызываемой подпрограммы,

- исходные данные.

Эти данные передаются подпрограмме в момент её вызова, затем выполняются действия, заданные операторами подпрограммы, после чего управление передается вместе с результатами счёта в место вызова подпрограммы (рис.6.1).

Исходные данные

Результат счёта

Рис.5.1. Взаимодействие вызывающей (главной) программы и подпрограммы

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

В языке PASCAL имеется две разновидности подпрограмм - процедуры (procedure) и функции (function).

Описание подпрограмм. Так же, как описание программы в целом, описание подпрограммы состоит из заголовка, раздела описания объектов подпрограммы и раздела операторов, который заканчивается символом ’ ; ’ (рис.6.2):

Заголовок;

const < описание констант >

type < описание типов >

var < описание переменных >

begin

оператор 1; оператор 2; ... оператор n

end;

Рис.5.2. Структура описания подпрограммы

Описание подпрограмм размещают в разделе описаний вызывающей программной единицы вместе с описанием констант, типов и переменных.

Локальные и глобальные имена. Каждая программная единица, будь то главная программа или подпрограмма, оперирует с различными объектами: константами, типами, переменными, имеющими свои имена. Желание придать подпрограмме относительную независимость в использовании имён привело к разделению их на глобальные (общие) и локальные (местные).

Принципы, которые положены в основу деления имён на глобальные и локальные, можно сформулировать так.

  1. Имена объектов, описанных в разделах const, type и var главной программы, являются глобальными, т.е. доступными для использования как в ней самой, так и во всех вложенных в неё программных единицах.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]