Операторы цикла с известным количеством повторений. Пример использования

Оператор цикла FOR…NEXT

Оператор цикла FOR…NEXT удобен в тех случаях, когда заранее известно сколько раз нужно выполнить данное действие.

Формат оператора:

FOR перем._счетчик=нач. ТО кон.[STEP шаг]

[блок операторов]

[EXIT FOR]

NEXT [перем._счетчик]

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

Назначение элементов формата.

FOR – начинает процедуру цикла.

переменная_счетчик – числовая переменная, значение которой автоматически изменяется в процессе работы и отслеживается циклом. Внутри цикла можно менять значение счетчика.

Начальное_значение – первое значение счетчика цикла. Оно может быть задано числом, переменной, математическим выражением. Значение может быть целым или дробным, положительным или отрицательным.

ТО – служебное слово, которое отделяет начальное значение от конечного.

Конечное_значение – последнее значение счетчика. Оно задается числом, переменной, математическим выражением. Значение может быть целым или дробным, положительным или отрицательным. Следует обратить внимание на то, что перед ним не ставится знак равенства. Если конечное значение равно начальному, то цикл выполнит только одну итерацию. Внутри цикла изменить величину конечного значения нельзя.

STEP – служебное слово, которое отделяет значение шага.

Значение_шага – величина, которая прибавляется к счетчику цикла после каждой итерации. Она может быть задана числом, переменной или математическим выражением. Если значение шага равно нулю, то цикл работает бесконечно долго (до принудительного прерывания программы) на начальном значении счетчика. Слово STEP и значение после него можно не указывать, в этом случае программа будет считать шаг равным +1. Положительное значение шага используется тогда, когда начальное значение счетчика меньше конечного. Если начальное значение больше конечного, то следует применять отрицательный шаг.

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

NEXT – возвращает управление в строку FOR… Название счетчика за этой командой указывать не обязательно. Если программный блок содержит несколько вложенных циклов, то за NEXT можно ставить несколько счетчиков через запятую. Программа определяет блок операторов цикла как все команды, расположенные между FOR и NEXT.

Операторы цикла с неизвестным количеством повторений. Пример использования.

Оператор WHILE…WEND

Оператор WHILE…WEND применяют тогда, когда неизвестно сколько раз должен отработать цикл, поэтому программа выполняет действие, пока не будет выполнено определенное условие.

Формат WHILE...WEND имеет вид:

WHILE условие

[блок операторов]

WEND

Работа оператора:

Цикл выполняет блок операторов, пока выполняется условие.

Элементы формата:

WHILE – начинает процедуру цикла.

Условие – условие выхода из цикла. Цикл работает, пока условие выполняется. Если условие не выполняется, управление перейдет к первому оператору за WEND по тексту программы.

Блок операторов – операторы, которые выполняются в процедуре цикла. К блоку операторов относятся все команды, расположенные между WHILE и WEND.

В операторе WHILE...WEND следует принудительно установить шаг счетчика.

Операторы цикла с пред и пост условием. Различие. Пример использования.

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

while <условие> do

begin  

<тело цикла>

end;

На языке Си:

while(<условие>)

{<тело цикла>}

Оператор цикла WHILE с предпроверкой условия

Общий вид:

WHILE условие DO тело цикла

где - WHILE, DO - зарезервированные слова (пока, выполнять)

условие - выражение логического типа

тело цикла - операторы яз. Паскаль

Выполнение оператора:

Если выражение “условие” имеет значение ИСТИНА, то выполняется “тело цикла”, следующее за словом DO. В качестве “оператора” может использоваться простой или сложный оператор.

Если выражение “условие” имеет значение ЛОЖЬ, то оператор WHILE прекращает свою работу, т.е. не выполняется ни одного раза.

Цикл с постусловием -цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until; в Си — do…while.

 На языке Pascal цикл с постусловием имеет следующий вид::

repeat

<тело цикла>

until <условие выхода>

На языке Си:

do

{<тело цикла>}

while(<условие продолжения цикла>)

Оператор цикла REPEAT с постпроверкой условия

Общий вид:

REPEAT тело цикла UNTIL условие

где - REPEAT, UNTIL - зарезервированные слова (повторять, до)

“тело цикла” - последовательность операторов

“условие” - выражение логического типа

Выполнение оператора:

Операторы “тело цикла” выполняется хотя бы один раз, после чего проверяется выражение “условие”. Если его значение ЛОЖЬ, то операторы “тело цикла ” повторяются, в противном случае оператор REPEAT завершает свою работу.

В трактовке условия цикла с постусловием в разных языках есть различия. В Паскале и языках, произошедших от него, условие такого цикла трактуется как условие выхода (цикл завершается, когда условие истинно, в русской терминологии такие циклы называют ещё «цикл до»), а в Си и его потомках — как условие продолжения (цикл завершается, когда условие ложно, такие циклы иногда называют «цикл пока»).

Сложные типы данных.

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

Сложные типы данных во первых позволяют создавать собственные типы данных со сложной иерархической структурой.

Студент – ФИО, адрес, дата рождения. Дата рождения – день, месяц, год

TYPE <имя>

<базовый тип>

- - - - - - - - -

END TYPE

 TYPE BD

Day as integer

Month

Year

END TYPE

TYPE Stud

FIO as string

BD as BD

END TYPE

DIM student as stud

Student BDay/Day = 12

FIO = “ “

Сложный (составной) тип — тип данных, объекты (переменные или постоянные) которого имеют внутреннюю структуру, доступную программисту.

В разных языках программирования набор базовых сложных типов может несколько отличаться (чаще по названию и деталям реализации). Есть, однако, объективные критерии — однотипность элементов и способ доступа, позволяющие выделить главные представители сложных типов (названия приводятся на примере Pascal, в котором Н.Вирт наиболее чётко сформулировал эти идеи).

массив (array) — элементы только однотипные, доступ произвольный;

запись (record) — элементы возможно разных типов, доступ произвольный;

файл (file) — элементы однотипные, доступ последовательный (примечание: не путать с дисковым файлом!).

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

Очень важной идеей, также родившейся на границе 60-70-х годов XX века, является возможность произвольного конструирования нужных структур из небольшого набора предопределённых типов. Чем адекватнее программист смоделировал обрабатываемые данные в рамках такого "конструктора", тем безошибочнее и долговечнее будет разработанная программа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: