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

Примеры

1.

clear

? 'Это моя первая программа на '

?? 'FoxPro'

2.

clear

l1 = [Это моя первая программа на ]

l2 = 'FoxPro'

? l1

?? l2

3.

clear

set talk off

l1 = [Это моя первая программа на ]

l2 = 'FoxPro'

? l1 + l2

4.

clear

set talk off

l1 = [Это моя первая программа на ]

l2 = 'FoxPro'

? l1+l2

5.

? 'Вычисляем сумму '

a=3

b=7

c=a+b

?? 'a='

?? a

?? ' и '

?? 'b='

?? b

? 'Результат с= '

?? c

Ввод данных с клавиатуры. Команда input

Для ввода данных с клавиатуры в данном курсе мы будем использовать оператор input.

Синтаксис:

INPUT строка_приглашение TO переменная

Здесь строка_приглашение – текстовая константа или переменная – приглашение для ввода значения в переменную – переменная.

Наиболее просто использовать оператор input для ввода числовых значений, если же необходимо ввести текст – то этот текст должен быть ограничен кавычками, квадратными скобками или апострофами. Выполните приведенные ниже примеры сначала построчно в командном окне, а затем, для каждого упражнения создайте программные файлы и выполните их командой do … При работе в Windows можно добавить в начало каждой программы строку _screen.fontname = "MS Sans Serif" или _screen.fontname = "FixedSys" (чтобы задать рабочему окну среды разработчика шрифт с кириллическими буквами).

Примеры

1.

clear

input "Введите x=" to x

? "Вы ввели величину x=",x

2.

clear

set talk off

? "Вычисляем сумму a и b"

input "a=" to a

input "b=" to b

c = a+ b

? "Сумма a и b =", c

3.

Вычисляем косинус угла заданного в градусах:

clear

set talk off

set decimals to 5

input "введите угол в градусах" to alfa

alfa_r = alfa*atan(1.)/45

? "Косинус ",alfa," градусов =", cos(alfa_r)

Управление ходом выполнения программы. Блочные операторы.

Для управления ходом выполнения программы используют две группы операторов: операторы условных переходов (операторы ветвления) и операторы циклов.

Условные переходы позволяют выполнять различные последовательности операций в зависимости от результатов проверки условия. В Visual FoxPro существуют две команды, допускающие условный переход: IF ... ELSE ... ENDIF и DO CASE ... ENDCASE.

Если требуется осуществить проверку более чем двух условий, то выгоднее воспользоваться блоком DO CASE ... ENDCASE, который позволяет избежать использования многочисленных выражений IF, за которыми трудно уследить.

Вля процедурном программировании применяют два типа операторов цикла: безусловный цикл – FOR … ENDFOR и условный цикл DO WHILE … ENDDO. Существует еще специальный цикл для обработки таблиц – цикл SCAN …ENDSCAN.

Организация ветвления. Оператор IF … ELSE … ENDIF

Осуществляет условное выполнение группы команд исходя из значения логического выражения.

Синтаксис

 

IF lExpression

       Commands

[ELSE

       Commands]

ENDIF

 

Параметры

lExpression Задает вычисляемое логическое выражение. Если его значение ѕ "истина" (.T.), будут выполнены все команды, расположенные между IF и оператором ELSE или ENDIF (тем из двух, который стоит раньше).

      Если значение lExpression ѕ "ложь" (.F.) и задан оператор ELSE, выполняются все команды между ELSE и ENDIF.

      Если значение lExpression ѕ "ложь" (.F.) и оператор ELSE не задан, все команды между IF и ENDIF игнорируются. В этом случае выполнение программы продолжается с первой команды, следующей за оператором ENDIF.

Комментарии

Блоки IF ... ENDIF можно вкладывать друг в друга.

В строках с операторами IF, ELSE и ENDIF можно задавать комментарии. Они будут игнорироваться во время компиляции и выполнения программы.

Выполняет первую группу команд, для которых заданное условное выражение имеет значение "истина" (.T.).

Множественное ветвление. Оператор DO CASE … ENDCASE

Выполняет первую группу команд, для которых заданное условное выражение имеет значение "истина" (.T.).

Синтаксис

 

DO CASE

       CASE lExpression1

              Commands

       [CASE lExpression2

              Commands

        ...

       CASE lExpressionN

              Commands]

       [OTHERWISE

              Commands]

ENDCASE

 

Параметры

CASE lExpression1 Commands ... Когда обнаруживается первое выражение CASE, имеющее значение "истина" (.T.), выполняется группа следующих за ним команд. Выполнение продолжается до тех пор, пока не встретится следующее предложение CASE илиENDCASE. После этого управление передается первой команде, следующей за ENDCASE. Если выражение CASE имеет значение "ложь" (.F.), то следующие за ним команды, вплоть до следующего предложения CASE, игнорируются. Выполняется только одна группа команд. Это будет первая группа команд, для которых выражение CASE имеет значение "истина" (.T.). Все последующие выражения CASE игнорируются, даже если они истинны (.T.) .

OTHERWISE Commands Если все выражения CASE имеют значение "ложь" (.F.), то в зависимости от предложения OTHERWISE может выполняться альтернативный набор команд:

      Если предложение OTHERWISE задано, выполняется группа следующих за ним команд, после чего управление передается первой команде, стоящей после ENDCASE.

      Если предложение OTHERWISE опущено, выполнение продолжается с первой команды, следующей за предложением ENDCASE.

Комментарии

Команда DO CASE используется в тех случаях, когда требуется выполнить группу команд Visual FoxPro в зависимости от значения некоторого логического выражения. При выполнении DO CASE последовательно вычисляются логические выражения; их значения определяют, какой именно набор команд следует выполнить.

После команды DO CASE и предложения ENDCASE в одной строке с ними можно задавать комментарии. Эти комментарии игнорируются во время компиляции и выполнения программы.

Безусловные циклы. Оператор FOR … ENDFOR.

Выполняет группу команд заданное число раз.

Синтаксис

 

FOR MemVarName = nInitialValue TO nFinalValue [STEP nIncrement]

       Commands

       [EXIT]

       [LOOP]

ENDFOR | NEXT

 

Параметры

MemVarName Задает переменную памяти или элемент массива, выступающий в роли счетчика. Эта переменная или элемент массива могут и не существовать до выполнения цикла FOR ... ENDFOR.

nInitialValue TO nFinalValue nInitialValue ѕ начальное значение счетчика, а nFinalValue ѕ его конечное значение.

STEP nIncrement nIncrement ѕ величина приращения счетчика. Если значение nIncrement отрицательно, счетчик будет уменьшаться. Если предложение STEP опущено, счетчик будет увеличиваться на 1.

Commands Задает команды Visual FoxPro, которые нужно выполнять. Аргумент Commands может включать любое число команд.

EXIT Передает управление из цикла FOR ... ENDFOR команде, непосредственно следующей за оператором ENDFOR. Можно поставить EXIT в любом месте между FOR и ENDFOR.

LOOP Возвращает управление непосредственно предложению FOR, не выполняя операторы, расположенные между LOOP и ENDFOR. Счетчик увеличивается или уменьшается, как если бы был достигнут оператор ENDFOR. Можно поставить LOOP в любом месте между FOR и ENDFOR.