СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Функции в FoxPro

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Функции в FoxPro»

Лекция 3. Функции в FoxPro

Лекция 3. Функции в FoxPro

25 CEILING () - возвращает ближайшее большее целое. ? CEILING (6.8), CEILING (-8.4) && 7 и -8 FLOOR () - возвращает ближайшее меньшее целое. ? FLOOR (6.3), FLOOR (-8.4) && 6 и -9 INT () - целая часть. М AX (, [, ...]) - возвращает максимальное значение. MIN (, [, ...]) -возвращает минимальное значение. MOD (, ) - целочисленный остаток от деления на . ? MOD (3, 2), MOD (5/7) && 1 и 5 ROUND (, ) - округление до заданного количества знаков после запятой. RAND ([]) - возвращает псевдослучайное число в диапазоне 0 -1. позволяет определить начальное значение аргумента. По умолчанию исходное значение аргумента 100001. " width="640"

Арифметические функции.

ABS () ? ABS (-25) - 25

CEILING () - возвращает ближайшее большее целое.

? CEILING (6.8), CEILING (-8.4) && 7 и -8

FLOOR () - возвращает ближайшее меньшее целое.

? FLOOR (6.3), FLOOR (-8.4) && 6 и -9

INT () - целая часть.

М AX (, [, ...]) - возвращает максимальное значение.

MIN (, [, ...]) -возвращает минимальное значение.

MOD (, ) - целочисленный остаток от деления на .

? MOD (3, 2), MOD (5/7) && 1 и 5

ROUND (, ) - округление до заданного количества знаков после запятой.

RAND ([]) - возвращает псевдослучайное число в диапазоне 0 -1. позволяет определить начальное значение аргумента. По умолчанию исходное значение аргумента 100001.

в числовую форму. ?VAL('-16.576') && -16.580 " width="640"

Степенные функции.

ЕХР (х) – е х LOG (х)  In x

LOG 10( x )  lg x SQRT (х)  корень

Тригонометрические функции.

SIN (х)  sin х COS (х)  cos х

TAN (х)  tg х ASIN (х)  arcsin х

ATAN (х)  arctg х PI ()  число  =3,14

DTOR () - преобразует угол, заданный в градусах, в радианы.

RTOD () - возвращает угол в градусах.

Функции преобразования типов данных.

ASC () - выдает ASCII-код первого символа выражения С.

? ASC (' B ') && 66

CHR () - преобразует значение в символьное.

? CHR (66) && В

STR (, [], []) - преобразует числовое в символьную строку .

? STR (384.248,8,2) && 384.25

VAL () - преобразует число, представленное в символьной форме в числовую форму.

?VAL('-16.576') && -16.580

,за которые кредит должен быть погашен. Иными словами: = PAYMENT (, , ) Пример 7.8 . Пусть в банке взят на два года кредит в размере 100.000 рублей из расчета 10% годовых. Чтобы с учетом процентов погасить кредит, требуется два ежегодных взноса по 56.719 рублей: ? PAYMENT (100.000,.1,2) && 56719.05 FV (, , ) Эта функция определяет растущий вклад клиента на счету банка в зави-симости от выплачиваемого банком процента, размера периодического взноса и числа вкладов (число периодов). = FV (, , FV (100.000, .4/12, 12) && 1.446.376 ? 100.000 * ((1 + .4/12) ** 12 - 1) / (.4/12) Это при ежемесячных взносах на 100.000 рублей. " width="640"

Финансовые функции.

Все функции связаны с размером кредита / вклада, процентными

ставками и платежами / выплатами.

PAYMENT (, , )

Функция вычисляет размер периодических выплат за взятый кредит, на

который установлен определенный процент. Известно также

периодов,за которые кредит должен быть погашен. Иными словами:

= PAYMENT (, , )

Пример 7.8 . Пусть в банке взят на два года кредит в размере 100.000 рублей

из расчета 10% годовых. Чтобы с учетом процентов погасить кредит,

требуется два ежегодных взноса по 56.719 рублей:

? PAYMENT (100.000,.1,2) && 56719.05

FV (, , )

Эта функция определяет растущий вклад клиента на счету банка в зави-симости

от выплачиваемого банком процента, размера периодического взноса и числа

вкладов (число периодов).

= FV (, ,

FV (100.000, .4/12, 12) && 1.446.376

? 100.000 * ((1 + .4/12) ** 12 - 1) / (.4/12)

Это при ежемесячных взносах на 100.000 рублей.

Работа с несколькими БД, связывание БД  Используется принцип рабочих областей. В каждый момент времени пользователь работает в одной из 25 рабочих областей. В каждой рабочей об­ласти может быть открыт один файл БД, до 7 индексных файлов и один фор­матный файл. Максимальное число открытых файлов при этом не может превышать 15. Для переключения рабочих областей в ходе работы используется команда: SELECT  /  Алиасами рабочей области являются латинские буквы от А до J . Доступ к данным из других рабочих областей осуществляется по её алиасу. Например, чтобы обратиться к некоторому полю файла из другой рабочей области необходимо использовать конструкцию:     Например : SELECT A  USE STUD  SELECT В   USE ICZ  A    FIOS

Работа с несколькими БД, связывание БД

Используется принцип рабочих областей. В каждый момент времени пользователь работает в одной из 25 рабочих областей. В каждой рабочей об­ласти может быть открыт один файл БД, до 7 индексных файлов и один фор­матный файл. Максимальное число открытых файлов при этом не может превышать 15.

Для переключения рабочих областей в ходе работы используется команда: SELECT /

Алиасами рабочей области являются латинские буквы от А до J . Доступ к данным из других рабочих областей осуществляется по её алиасу.

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

Например :

SELECT A

USE STUD

SELECT В

USE ICZ

A  FIOS

 Для наглядности вместо номеров областей или букв можно использовать имена БД, открытых в этих областях, или альтернативные имена этих баз. Например : SELECT В USE SOTR ALIAS S2  В дальнейшем при необходимости сделать область 'В' текущей можно написать: SELECT S 2  Если альтернативное имя не назначено, то по умолчанию им становится основное имя БД. Например: SELECT В USE  SOTR  Далее можно написать: SELECT SOTR  В команде USE можно указывать и область, в которой открывается  база:  USE KADRS IN A  Однако перехода в указанную область здесь не происходит. Для перехода необходимо указывать SELECT .  Существуют две возможности связывания двух БД. Первый способ обеспечивает объединение двух БД из разных рабочих областей в новом файле:  JOIN WITH  ТО   FOR  [ FIELDS ]

Для наглядности вместо номеров областей или букв можно использовать

имена БД, открытых в этих областях, или альтернативные имена этих баз.

Например :

SELECT В

USE SOTR ALIAS S2

В дальнейшем при необходимости сделать область 'В' текущей можно

написать:

SELECT S 2

Если альтернативное имя не назначено, то по умолчанию им становится

основное имя БД.

Например:

SELECT В

USE SOTR

Далее можно написать:

SELECT SOTR

В команде USE можно указывать и область, в которой открывается база:

USE KADRS IN A

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

необходимо указывать SELECT .

Существуют две возможности связывания двух БД. Первый способ

обеспечивает объединение двух БД из разных рабочих областей в новом файле:

JOIN WITH ТО

FOR [ FIELDS ]

 Если список полей отсутствует, берутся все поля из текущего файла и все поля из алиасного.  Записи нового файла формируются по следующему правилу: Для каждой записи текущего файла просматриваются все записи алиасного файла с проверкой условия. Если условие выполняется, то объединенная запись добавляется в новый файл.  При использовании этого способа необходимо знать о наличии места на диске. Например, слияние двух баз данных : “ SPISOKD ( Name , Cena , Kod )” (табл. 7.1) и “KOLDETAL (Kod, Kol, Data )” (табл. 7.2) в один - “Справочник деталей” производится следующим образом:

Если список полей отсутствует, берутся все поля из текущего

файла и все поля из алиасного.

Записи нового файла формируются по следующему правилу:

Для каждой записи текущего файла просматриваются все записи

алиасного файла с проверкой условия. Если условие выполняется,

то объединенная запись добавляется в новый файл.

При использовании этого способа необходимо знать о наличии

места на диске.

Например, слияние двух баз данных : “ SPISOKD ( Name , Cena ,

Kod )” (табл. 7.1) и “KOLDETAL (Kod, Kol, Data )” (табл. 7.2) в

один - “Справочник деталей” производится следующим образом:

Слияние  баз CLEAR SET DEVICE TO SCREEN SELECT В USE KOLD SELECT A USE SPISOKD INDEX ON KOD TO KODIND JOIN WITH В TO OTCHET FOR Kod =  В   Kod FIELDS Kod, Name, Cena, В   Kolich, В   Data CLOSE ALL USE OTCHET Слияние  баз : SELECT B USE KOLDETAL SELECT A USE SPISOKD JOIN WITH В  ТО  ОТНЕТ FOR Kod = B  Kod FIELDS Kod, Name, Cena, В   Kolich, В   Data

Слияние баз

CLEAR

SET DEVICE TO SCREEN

SELECT В

USE KOLD

SELECT A

USE SPISOKD

INDEX ON KOD TO KODIND

JOIN WITH В TO OTCHET FOR Kod = В  Kod

FIELDS Kod, Name, Cena, В  Kolich, В  Data

CLOSE ALL

USE OTCHET

Слияние баз :

SELECT B

USE KOLDETAL

SELECT A

USE SPISOKD

JOIN WITH В ТО ОТНЕТ FOR Kod = B  Kod

FIELDS Kod, Name, Cena, В  Kolich, В  Data

Программа : SET TALK OFF INDEX ON NAME TO INDOTCH  @ 1,1 SAY ' Список  деталей ' STORE 2 TO ST STORE REPLICATE ('_', 20) TO CHERTA 1. 2,1 SAY CHERTA DO WHILE .NOT. EOF()  ? N, Name  SKIP N = N +1  ENDDO  CLOSE ALL SET TALK ON  RETURN Программа : SET TALK OFF INDEX ON NAME TO INDOTCH  @ 1,1 SAY ' Список  деталей ' STORE 2 TO ST STORE REPLICATE ('_', 20) TO CHERTA

Программа :

SET TALK OFF

INDEX ON NAME TO INDOTCH

@ 1,1 SAY ' Список деталей '

STORE 2 TO ST

STORE REPLICATE ('_', 20) TO CHERTA

1. 2,1 SAY CHERTA

DO WHILE .NOT. EOF()

? N, Name

SKIP N = N +1

ENDDO

CLOSE ALL

SET TALK ON

RETURN

Программа :

SET TALK OFF

INDEX ON NAME TO INDOTCH

@ 1,1 SAY ' Список деталей '

STORE 2 TO ST

STORE REPLICATE ('_', 20) TO CHERTA

 Для работы этой команды необходимы следующие условия: - открытый файл в текущей рабочей области; - открытый файл в другой рабочей области; - если используется опция , то главный файл должен быть ин- дексирован по этому полю и оба файла должны иметь его в своей структуре; RECNO ( ) функция, которая определяет номер текущего кортежа в активном отношении. Суть работы команды: 1) Если указана опция , то каждая запись активного файла связывается с первой записью алиасного файла, имеющего такой же ключ. 2) Если указана опция RECNO ( ), то каждая запись активного файла связывается с записью алиасного файла, имеющего тот же номер. 3) Если используется опция , то каждая запись активного файла связывается с одной записью алиасного файла, номер которой равен значению . Связывание таблиц оператором LOCATE . Пусть  имеется 3 БД : STUDENT (NS, FIO, GRUPPA)  DISCIPL (ND, NAME_D, KAF)  YSPEV (NS, ND, ОС )

Для работы этой команды необходимы следующие условия:

- открытый файл в текущей рабочей области;

- открытый файл в другой рабочей области;

- если используется опция , то главный файл должен быть ин-

дексирован по этому полю и оба файла должны иметь его в своей структуре;

RECNO ( ) функция, которая определяет номер текущего кортежа в активном

отношении.

Суть работы команды:

1) Если указана опция , то каждая запись активного файла

связывается с первой записью алиасного файла, имеющего такой же ключ.

2) Если указана опция RECNO ( ), то каждая запись активного файла связывается

с записью алиасного файла, имеющего тот же номер.

3) Если используется опция , то каждая запись активного файла

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

.

Связывание таблиц оператором LOCATE .

Пусть имеется 3 БД : STUDENT (NS, FIO, GRUPPA)

DISCIPL (ND, NAME_D, KAF)

YSPEV (NS, ND, ОС )

Пример 7.11. Поиск студентов, получивших 5 по всем предметам: SELECT A USE STUD SELECT В USE DISCIPL SELECT С USE YSPEV LOCATE FOR ОС = 5  IF FAUND( )  ST=2  DO WHILE FOUND()  SELECT A  LOCATE FOR NS = C  NS  IF FOUND ()  @ ST, 1 SAY FIO  @ ST.20 SAY GRUPPA  ENDIF  ST = ST + 1  CONTINUE  ENDDO  WITH

Пример 7.11. Поиск студентов, получивших 5 по всем предметам:

SELECT A

USE STUD

SELECT В

USE DISCIPL

SELECT С

USE YSPEV

LOCATE FOR ОС = 5

IF FAUND( )

ST=2

DO WHILE FOUND()

SELECT A

LOCATE FOR NS = C  NS

IF FOUND ()

@ ST, 1 SAY FIO

@ ST.20 SAY GRUPPA

ENDIF

ST = ST + 1

CONTINUE

ENDDO

WITH "Нажмите ввод"

ELSE

@ 1,1 SAY "Отличников нет"

ENDIF CLOSE ALL Работа с окнами   Каждое окно - это, по существу, автономный экран системы. Одновременно может быть доступно несколько окон, что позволяет создавать «многослойный» пользовательский интерфейс. Окна можно открывать, закрывать, изменять размеры. Различают три размера окна - нормальный, минимальный, и  максимальный. На экране может быть одновременно сразу несколько окон. Переход между окнами может быть выполнен последовательно клавишами Ctrl FlO или мышью.  Каждое окно предварительно должно быть определено, а затем при необходимости активировано. Основные команды: DEFINE WINDOW - определяет окно и задает все его свойства. ACTIVATE WINDOW - активирует  окно . HIDE WINDOW - делает скрытым активное окно, при этом выдачи все равно идут в окно. SHOW WINDOW -снова делает видимым скрытое окно.. MOVE WINDOW и ZOOM WINDOW - осуществляет перемещение окна по экрану и изменяет его размер. SAVE WINDOW - сохраняет описание окна в файле.

ENDIF

CLOSE ALL

Работа с окнами

Каждое окно - это, по существу, автономный экран системы. Одновременно

может быть доступно несколько окон, что позволяет создавать «многослойный»

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

размеры. Различают три размера окна - нормальный, минимальный, и

максимальный. На экране может быть одновременно сразу несколько окон.

Переход между окнами может быть выполнен последовательно клавишами Ctrl

FlO или мышью. Каждое окно предварительно должно быть определено, а затем

при необходимости активировано. Основные команды:

DEFINE WINDOW - определяет окно и задает все его свойства.

ACTIVATE WINDOW - активирует окно .

HIDE WINDOW - делает скрытым активное окно, при этом выдачи все равно

идут в окно.

SHOW WINDOW -снова делает видимым скрытое окно..

MOVE WINDOW и ZOOM WINDOW - осуществляет перемещение окна по

экрану и изменяет его размер.

SAVE WINDOW - сохраняет описание окна в файле.

DEACTIVATE WINDOW - удаляет (деактивирует) временно ненужное окно с экрана. CLEAR / RELEASE WINDOW - удаляет ненужные окна.  Создание окна: DEFINE WINDOW  FROM , TO , [ TITLE ] [ SYSTEM / DOUBLE / PANEL / NONE / ] - эти опции определяют форму границ окна. Например : DEFINE WINDOW STUD FROM 3,4 TO 15,50 TITLE

DEACTIVATE WINDOW - удаляет (деактивирует) временно ненужное окно с

экрана.

CLEAR / RELEASE WINDOW - удаляет ненужные окна.

Создание окна:

DEFINE WINDOW FROM , TO ,

[ TITLE ]

[ SYSTEM / DOUBLE / PANEL / NONE / ] - эти опции определяют форму границ окна.

Например :

DEFINE WINDOW STUD FROM 3,4 TO 15,50 TITLE " СТУДЕНТЫ "

USE STUD

Работа в окне STUD

ACTIVATE WINDOW STUD

Работа с экраном

DEACTIVATE WINDOW STUD

Работа с экраном

RELASE WINDOW STUD


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!