Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Циклы for



C

Формат:

for ([<выражение 1>];[<выражение 2>];[<выражение 3>])[<инструкция>];

Эквивалентная схема

<выражение 1>;

while (<выражение 2>){

<инструкция>

<выражение 3>;

}

Замечания.

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

2. Тело цикла – одна инструкция, которая может отсутствовать.

Примеры.

Дано: {ai}, i=1...100. Найти сумму(ai>0) и сумму(ai<0).

u=v=0;

for (i=0; i<100; i++){

if (a[ i ]>0)u+=a[ i ]; if (a[ i ]<0)v+=a[ i ];

}

Найти Sxn/n!,n=1,2,..., пока |un|>5e-6.

s=0;

u=1;

for (n=1; fabs (u)>5e-6; n++){

u *= x/n;

s += u;

}

Определить число цифр натурального числа n.

for (k=0; n!=0; n/=10)k++;

Найти первый отрицательный элемент массива. Если его нет, то ответ = 0.

for (i=0; i<100 && a[ i ]>=0; i++); // Тело цикла отсутствует

if (i==100){

y=0;

} else {

y=a[ i ];

}

Замечания.

1. Как видно из примеров, почти все циклы используют для своей организации некоторую переменную, которую называют параметром или счетчиком цикла. См. переменные i, n, k, i в порядке следования примеров. Эту переменную не рекомендуется изменять в теле цикла, поскольку логика алгоритма становится запутанной.

2. После окончания цикла параметр сохраняет последнее присвоенное значение. В последнем примере i равно 100, если отрицательных элементов в массиве нет, или равно индексу первого по порядку следования в массиве отрицательного элемента.

3. Это наиболее универсальная форма инструкции цикла.

Basic

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


Формат:

for <счетчик>=<начало> to <конец> [ step <шаг>]

<инструкции>

next [<счетчик>]

Эквивалентная схема:

<счетчик>=<начало>

do while <шаг> < 0 and <счетчик> >= <конец> or _

<шаг> >=0 and <счетчик> <= <конец>

<инструкции>

<счетчик> += <шаг>

loop

Замечания.

1. <счетчик> - переменная (без индексов!) числового типа, <начало>, <конец>, <шаг> - арифметические выражения.

2. Если опция (часть инструкции) step отсутствует, то шаг равен 1.

3. Отсутствие <счетчика> в инструкции next не влияет на работу цикла, являясь, по существу, дополнительным комментарием, особенно при вложенных циклах, о которых речь пойдет ниже.

4. Значение <счетчика> после окончания цикла равно последнему присвоенному значению (как в языке C).

5. Значения < начало >, < шаг > и <конец> вычисляются 1 раз при входе в цикл. Изменение переменных, входящих в эти выражения, в инструкциях тела цикла не влияют на число повторений, поэтому так действовать не рекомендуется.

Пример. Дано: {ai}, i=1...100. Найти сумму(ai>0) и сумму(ai<0).

u=0: v=0

for i=1 to 100

if a(i)>0 then u += a[i]: if a(i)<0 then v += a(i);

next i





Дата публикования: 2014-11-02; Прочитано: 190 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...