Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx
Скачиваний:
11
Добавлен:
06.08.2019
Размер:
163.01 Кб
Скачать

Комментарии

Переменная памяти или элемент массива используются в качестве счетчика, который задает количество выполнений для команд Visual FoxPro, входящих в тело цикла FOR ... ENDFOR.

Команды Visual FoxPro, идущие после FOR, выполняются одна за другой, пока не встретится оператор ENDFOR или NEXT. После этого к счетчику MemVarName прибавляется значение nIncrement. Если предложение STEP опущено, счетчик увеличивается на 1. После этого он сравнивается с величиной nFinalValue. Если значение счетчика меньше или равно nFinalValue, то команды, следующие за предложением FOR, выполняются вновь. Если значение счетчика больше, чемnFinalValue, осуществляется выход из цикла FOR ... ENDFOR и выполнение программы продолжается с первой команды, следующей за ENDFOR или NEXT.

Замечание

Значения аргументов nInitialValue, nFinalValue и nIncrement считываются только в самом начале. Однако изменение значения счетчика MemVarName внутри цикла влияет на число выполнений цикла.

Если значение приращения nIncrement отрицательно и начальное значение nInitialValue больше конечного значения nFinalValue, счетчик при каждом прохождении цикла будет уменьшаться.

Условные Циклы. Оператор DO WHILE … ENDDO.

Выполняет группу команд, входящих в условный цикл.

Синтаксис

 

DO WHILE lExpression

       Commands

       [LOOP]

       [EXIT]

ENDDO

 

Параметры

lExpression Задает логическое выражение, значение которого определяет, будут ли выполняться команды, размещенные между DO WHILE и ENDDO. Пока значение lExpression остается "истиной" (.T.), команды этой группы будут выполняться.

Commands Задает группу команд Visual FoxPro, которые следует выполнять, пока значением выражения lExpression остается "истина" (.T.).

LOOP Возвращает управление непосредственно оператору DO WHILE. LOOP можно размещать в любом месте между DO WHILE и ENDDO.

EXIT Передает управление из цикла DO WHILE первой команде, стоящей после ENDDO. EXIT можно размещать в любом месте между DO WHILE и ENDDO.

ENDDO Обозначает конец оператора DO.

Комментарии

Группа команд, расположенных между DO WHILE и ENDDO, выполняется, пока значением логического выражения lExpression остается "истина" (.T.). Каждый оператор DO WHILE должен иметь соответствующий ему оператор ENDDO.

После операторов DO WHILE и ENDDO в той же строке можно вставлять комментарии. Во время компиляции и выполнения программы комментарии игнорируются.

Примеры:

1.    Напишем фрагмент программы, выводящий на экран таблицу значений функции f(x)=x^2+4 для x в интервале от –5 до 5.

 

x=-5

do while x<=5

f=x^2+4

? x, f

x=x+0.2

enddo

 

  1. Вычислим сумму числового ряда состоящего из нечетных чисел от 1 до N – 1+3+5+7+…+N для N=50

 

N = 50

S=0

I=1

Do while I<= N

S=S+I

I=I+2

Enddo

? S

 

  1. Вычислим сумму ряда , при x=1.1 с точностью 0.001

S0=1

S1=0

N=1

Eps=0.001

x=1.1

Do while abs(s1-s0)>eps

S0=s1

S1=s1+1/x^n

?n,abs(s0-s1),s1

N=n+1

Enddo

? "s=",s1

 

Здесь переменные S1 и S0 служат для хранения текущей величины суммы и величины суммы с предыдущего шага. Текущее значение погрешности определяется выражением abs(s1-s0). Цикл повторяется до тех пор, пока текущая погрешность не станет меньше либо равной точности eps.