Операторы орг-ии циклов в языках программ-я. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы орг-ии циклов в языках программ-я.



Turbo Pascal

Оператор цикла repeat орг-ет вып-е цикла, сост. из любого числа операторов, с неизв. заранее числом повторений. Тело цикла вып-ся хотя бы один раз. Выход из цикла осущ-ся при истиности некот. лог.выр-я. Структура этого оператора следующая:

repeat <Инструкция1>; … <ИнструкцияN>; until <Условие>

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

Структура этого цикла имеет вид:

while <Условие> do <Инструкция>;

Оператор цикла for организ. вып-е 1 оператора (в т.ч. и составного) заранее известное число раз. Сущ-ет 2 варианта

1) for <Параметр>:=<Нач_значение> to <Кон_значение> do <Инструкция>;2) for <Параметр>:=<Нач_значение> downto <Кон_значение> do <Инструкция>;

Параметр – число целое.

Цикл действует след. образом. Перв-но вычисл-ся и запоминаются нач. и конеч. зн-е параметра цикла. Затем зн-е параметра сравнивается с кон. зн-ем. Далее, пока зн-е параметра < или = кон. зн-ю (в 1 варианте оператора) или > или = кон. зн-ию (во 2 варианте), вып-ся очер.итерация цикла, после чего знач-ие параметра увел-ся (в 1 варианте) или умен-ся (во 2) на единицу.

Visual Basic

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

Конструкция For…Next использ. счетчик цикла, её синтаксис выглядит след. образом: For Счётчик = Нач. зн-е To Кон. зн-е [Step шаг]

Операторы

Next [Счётчик]

В начале вып-я цикла зн-е Счётчик устан-ся в Нач. зн-е. При каждом проходе переменная Счётчик увел-ся на 1 или на величину шаг. Если она достигает или становиться > (< при отриц. шаге) конеч. зн-я, то цикл завершается и вып-ся след. операторы. Разность м/у нач. и кон. зн-ем, делённая на величину шага, сост-ет число проходов. Пример.

По умолчанию шаг приращения равен 1.

Конструкция Do…Loop позв-ет вып-ть блок кода, пока выполняеся нек. усл-е. В зав-сти от позиции усл-я разл-ют 2 варианта цикла Do…Loop.

Цикл, управляемый в начале

Do [{ While / Until} Условие] [Операторы] [ Exit Do ] [Операторы]

Loop

Цикл, управляемый в конце

Do [Операторы] [ Exit Do ]

[Операторы]

Loop [{ While / Until } Условие]

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

Пример: Do X = X + 1 Print "Hello" Loop While X < 9

Рассмотренные циклы Do…Loop предоставляют разработчику больш. возможности орг-ии повтор. вычислений.

Оператор безусл. перехода GOTO применять не рекомендуется.

 

 

10. Процедуры в языках программ-я.

В языке Pascal есть 2 разновидности подпрограмм - процедуры и функции. Структура любой подпрограммы аналог. структуре всей программы. Подпрограмма д.б. описана до того, как она будет исп-на в программе или др. подпрограмме. Все параметры подпрограмм можно разделить на локальные (т.е. доступные только ей самой) и глобальные (доступные как подпрограмме, так и вызывающей её программе). Обмен данными с подпрограммой осущ-ся только с помощью глобальных параметров.

Подпрограмма- процедура предназнач. для вып-я какой-то законченной посл-сти действий. Структура процедуры:

Procedure Имя (Список формальных параметров);

label

const (Описание локальных меток)

type (констант, типов и переменных)

var

procedure (Описание внутренних процедур)

function (и функций)

begin

Операторы

end;

Для вызова процедуры из осн. прогр-мы следует записать оператор, сост. из имени процедуры и списка параметров процедуры, указываемого в круглых скобках. Если, например, процедура MyProc была объявлена так:

procedure MyProc (i: Integer; s: String); <Тело_процедуры>;

то вызывать её следует так:

MyProc (5, 'SomeString');

Visual Basic

Синтаксически процедура опр-ся

[Private | Public] [Static] Sub имя процедуры (список аргум)

[Exit Sub] [операторы]

End Sub

где Private, Public, Static, Sub, Exit Sub, End Sub – ключ. слова. Sub опр-ет обяз. 1-ый оператор процедуры. End Sub – обяз. последний оператор процедуры;

Имя процедуры образ-ся в соотв-ии с общ. правилами образования имен, но не может иметь описателей типа (имя процедуры не принимает знач.);

Список аргументов имеет след. синтаксис:

[Optional] [ByVal | ByRef] [ParamArray] имя [As] тип, где Optional, ByVal, ByRef, ParamArray и As ключевые слова; имя — имя переменной, массива (в случае массива исп-ся имя () без указания границ знач. индексов, что позволяет исп-ть одну процедуру для разного числа элем. массива в каждом конкр. случае), эл-та управления или формы (в последних двух случаях тип принимает знач. Control и Form); тип м.б. Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины); As тип необх-мо применять для каждого аргумента.

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

Процедура не м.б. опред-на внутри к-либо процедуры, ф-ии.

Exit Sub вызывает прекращение вып-ия процедуры и выход из нее в вызывающую программу.

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

Private опред-ет, что процедура м.б. вызвана (доступна) только в том модуле, в кот. она объявлена (никакие др. процедуры в др. модулях не могут вызвать процедуру). Опред-е Private не имеет смысла, если процедура опр-на для какой-либо формы (в этом случае процедура недоступна из вне данной формы).

Public опред-ет, что процедура м.б. вызвана из любого модуля приложения.

Optional опред-ет, что аргумент не явл-ся обязательным.

ByVal опр-ет, аргумент передается в процедуру по знач.

ByRef: аргумент передается в процедуру по ссылке.

ParamArray отн-ся к послед. аргументу в списке аргументов и опред-ет, что конечный (заключительный) аргумент явл-ся необяз. массивом. Не может исп-ся совместно с параметрами ByVal, ByRef, Optional.

Синтаксис оператора обращения к процедуре:

имя процедуры [список значений] или

Call имя процедуры [список значений], где Call — ключ. слово;

список зн-ий — список знач. аргументов (соотв-ет списку аргументов в операторе Sub no кол-ву, порядку след-я и типу, кроме случая, когда исп-ся параметр Optional).



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 158; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.125.171 (0.008 с.)