Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7-С++-05 апреля-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.45 Mб
Скачать

Оператор цикла со спецификацией, заданной скалярным выражением

Эта форма оператора цикла, как правило, используется при программи- ровании циклов, для которых изменяется значение параметра цикла с не- регулярным приращением. *

Оператор цикла со спецификацией, заданной скалярным выражением, имеет вид:

'Заголовок цикла

VI

Спецификация цикла [метка:] DO и параметр цикла ■ СКВ

$1

гТело цикла

Оператор цикла

BHD [метка J 5 J

Здесь параметр цикла получает значение выражения СКВ, затем выпол­няются операторы, образующие тело цикла, после чего управление переда­ется оператору - преемнику оператора цикла.

Таким образом, операторы тела цикла выпо/чяются только один раз. Поэтому оператор цикла рассмотренной конструкции не представляет прак­тического интереса. Заменим также, что эта форма оператора цикла сов­падает с частным случаем оператора цикла со спецификацией тина арифме­тической прогрессии, когда в ней опущены конструкции ВУ* СКВ/ и T0U СКВ, .

Каг уже отмечалось, список спецификаций оператора цикла может со­стоять из последовательности спецификаций, разделенных между собой за­пятыми. Тогда, используя в э-ой последовательности спецификаций ска­лярные выражения гопько что рассмотренного оператора цикла со специ­фикацией, заданной скалярным выражением, оператор цикла преобразует­ся в другую конструкцию, где список спецификаций цикла задается пере­счислением значений параметра цикла. Синтаксическая структура данного варианта оператора цикла записывается следующим образом: Заголовок цикла

[метка:]ЬОи параметр цикла •= СКВ,, СКВ^, СШ3, .... СКВК;'

Л;

£ ; у Тело цикла

^писок спецификаций цикла

Оператор цикла

J

END Сметка}

Рассматриваемый оператор цикла предусматривает выполнение следующих действий: переменной - параметру цикла последовательно присваиваются значения СКВ,, СКВ^ СКВК и для каждого из этих значений выполня- ется группа операторов & , & , .... !>п « После перебора всех значе- ний параметра цик г оператор цикла считается выполненным, и управле- ние передается оператору, следующему за данным оператором цикла.

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

Пример 7.31

Дана последовательность значений переменной х: -1ч,16; С,375; - 1,005; 21.33; 16,7. Необходимо вычислить и напечатать значе­ние функции

у « 2 • sin. х - х- cos lx + ё~ х, Spar.',;;ит программы, реализующей циклические вычисления с помощью оператора DO может быть рздиеан в виде:

Л5Л ■ - 14.16. 0.375, - 1.005, 21.33, 16.7;

У * 2*SIN(X)-X -X* Ш\>*х) + £ХР(- Ч*Х)\

PlfTuSKIPu DATA, (X, У),

END;

Рассмотрим еще оллн пример.

Пример 7.32.

Требуется вычислить и напечатать значение функции (5.2) при х * - 2,75; - 1,05; - С,15; 1,65; 3,25; 5. Состава таблицу идентификаторов (сн. табл. 5.1).

Таблица 5.1

Идентификаторы примера 5.19

В исходном выражении ! а ! х ! у ! £ц ! Т~\ В программе наШ\ ! А • X ! У~ ~\~ l~0~E~ i ~ abI

Программа решения п; им ера 5.19 может иметь вид: РЯ1М519: РПОСч OPTIONS (MAIN);

dCL (A.X)uDЈCvfIXEDu(3J) Yu DECi, FLOAT i 6ETu LISTu(A); DOu X - - 2,75, -1.05, - 0.15, 1.65, 3.25, 5; У- L0E(ABS(A*A -X*X)); PITT'„ DATA и (ШР,Х, У)1, END}

END и РЛ1М519;