Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

.

.

.

Оператор

нет

Условие

Продолжение да программы после

Рис. 4.2.4. Структурная схема работы оператора цикла.

Рассмотрим конкретный пример:

Составить программу (с помощью данного оператора) для вычисления предыдущего примера:

S

1

1

1

...

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n2

12

22

n

2

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

1

1 10

4

 

 

 

 

 

 

 

 

 

 

 

с заданной точностью

 

 

n2

;

 

 

 

Вариант программы следующий.

Program_sum; Var

S, eps: real; n: integer;

Begin

read (eps); S:=0; n:=1;

Repeat

S:=S+1/sqr (n); n:=n+1;

Until 1/sqr (n) <=eps;

Write (´S=´, S, ´n=´, n);

End.

4.2.4. ПРОЦЕДУРЫ И ФУНКЦИИ

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

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

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

Для более эффективного программирования (минимум строк) подобные повторения необходимо оформить в виде подпрограмм (процедур).

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

При этом из головной программы осуществляется многократное обращение (ссылка) к данной подпрограмме.

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

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

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

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

ПРОЦЕДУРЫ

Процедурой в TURBO PASCAL называют особым образом оформленный фрагмент программы, имеющей собственное имя. Упоминание особым образом этого имени в тексте основной программы приводит к «активизации» процедуры, называют ее вызовом. Сразу после обращения к процедуре (ее вызову), начинают выполняться операторы, входящие в нее, после выполнения последнего из них управление автоматически возвращается обратно в основную программу и выполняются операторы, стоящие непосредственно после оператора вызова процедуры.

Для наглядности это можно проиллюстрировать следующим рисунком:

ОСНОВНАЯ (ГОЛОВНАЯ) ПРОГРАММА

ВЫЗОВ ПРОЦЕДУРЫ

ПРОЦЕДУРА

ПРОДОЛЖЕНИЕ ПРОГРАММ

.

.

.

END

Рис. 4.2.5. Схема взаимосвязи головной программы и

процедуры.

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

Источник: https://studfile.net/preview/16565609/