Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!