Материал: ИТУП_Лаб_работы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

121 

5. 

Операторы

и

наиболее

употребительные

функции

, 

используемые

в

формулах

расчёта

значений

столбцов

, 

определяемых

пользователем

Операторы

+

, 

–

, 

*

, 

/

, 

^ 

— 

арифметические

операторы

: 

сложение

, 

вычита

-

ние

, 

умножение

, 

деление

, 

возведение

в

степень

. 

\ 

— 

целочисленное

деление

 (

остаток

отбрасывается

). 

MOD 

— 

остаток

от

деления

. 

Например

, 

значение

выраже

-

ния

8 MOD 3

равно

 2. 

& 

— 

конкатенация

  (

объединение

) 

двух

текстовых

строк

. 

=

, 

<>

, 

<

, 

>

, 

>=

, 

<=

 — 

операторы

сравнения

  (

результат

имеет

значения

«

истина

» 

или

 «

ложь

»)

1

. 

AND

, 

OR

, 

NOT 

— 

логические

операции

 "

и

", "

или

", "

не

". 

Математические

функции

sqr

(

x

), 

log

(

x

), 

exp

(

x

) 

— 

x

, ln(

x

), 

e

x

. 

sin

(

x

), 

cos

(

x

), 

tan

(

x

), 

atn

 (

x

) — sin(

x

), cos(

x

), tg(

x

), arctg(

x

). 

abs

(

x

) — 

|

x

|. 

fix

(

x

) — 

округление

отбрасыванием

дробной

части

. 

sgn

(

x

) — 

1, 

если

x 

> 0; 0, 

если

x 

= 0; –1, 

если

x 

< 0. 

rnd

() — 

равномерно

распределённая

случайная

величина

в

интервале

 [0; 1). 

Значение

обновляется

при

ка

-

ждом

пересчёте

модели

проекта

. 

Логические

функции

isnumeric

(

x

) — 

«

истина

», 

если

аргумент

числовой

; 

иначе

 «

ложь

». 

isdate

(

x

) — 

«

истина

», 

если

аргумент

 — 

дата

; 

иначе

 «

ложь

»

2

. 

isnull

(

x

) — 

«

истина

», 

если

аргументу

не

присвоено

никакое

значение

; 

иначе

 «

ложь

». 

iif

(

x,y,z

) — 

y

, 

если

x

имеет

значение

  «

истина

»; 

в

противном

случае

 — 

z

. 

choose

(

i,x

1

,x

2

…

) — 

возвращает

значение

x

i

. 

                                           

1

Эти

операторы

могут

использоваться

для

сравнения

не

только

чисел

и

дат

, 

но

и

текстовых

строк

 (

в

лексикографическом

порядке

). 

Регистр

символов

учитывается

. 

2

В

справочной

системе

программы

 Microsoft Project 

эта

функция

отнесена

к

числу

функций

даты

и

времени

. 

background image

122 

switch

(

c

1

,x

1

,c

2

,x

2

…

) — 

аргументы

c

i

содержат

логические

условия

, 

x

i

 — 

некоторые

значения

. 

Результат

 — 

первое

слева

значение

x

i

, 

для

которого

соответствующее

c

i

принимает

значение

 «

истина

». 

Функции

даты

и

времени

К

календарным

значениям

можно

прибавлять

и

вычитать

вещественные

числа

, 

трактуемые

в

этом

случае

как

число

дней

 (

возможно

, 

дробное

) 

согласно

астрономическому

времени

. 

В

столбцах

для

представления

календарных

значений

могут

отображать

-

ся

только

даты

в

интервале

с

 1 

января

 1984 

г

. 

по

 31 

декабря

 2049 

г

.  

now

() — 

текущие

дата

и

время

по

системным

часам

ком

-

пьютера

  (

обновляются

при

каждом

пересчёте

модели

проекта

). 

date

() — 

текущая

дата

по

системным

часам

компьютера

. 

cdate

(

x

) — 

преобразование

текстового

значения

к

типу

  «

да

-

та

». 

dateserial

(

y,mn,d

), 

timeserial

(

h,m,s

) — 

формирование

календарного

значе

-

ния

из

номеров

года

y

, 

месяца

mn

и

числа

d

; 

но

-

меров

часа

h

, 

минуты

m

и

секунды

s

. 

Например

, 

чтобы

сформировать

календарное

значение

, 

со

-

ответствующее

моменту

h

часов

 15 

минут

30 

секунд

 17 

июня

y

-

го

г

., 

можно

записать

dateserial(y,6,17)

+

timeserial(h,15,30).

dateadd

(

u,n,d

) — 

дата

, 

отстоящая

от

даты

d

 (

возможно

её

задание

в

форме

текста

) 

на

n

периодов

, 

специфицирован

-

ных

аргументом

u

. 

Последняя

может

принимать

одно

из

следующих

значений

: 

"h"

, 

"d"

, 

"m"

, 

"y"

, 

что

означает

соответственно

часы

, 

дни

, 

ме

-

сяцы

и

годы

. 

Время

астрономическое

. 

Например

, 

результат

вычисления

функции

dateadd("m",1,"23.05.2006")

  — 23 

ию

-

ня

 2006 

г

. 

datediff

(

u,d

1

,d

2

) — 

число

полных

и

неполных

периодов

заданной

продолжительности

между

двумя

указанными

датами

d

1

и

d

2

  (

возможно

их

задание

в

форме

текста

по

образцу

"23.05.2006 23:59"

). 

Пе

-

риод

задаётся

аргументом

u

, 

который

может

принимать

значения

"h"

, 

"d"

, 

"w"

, 

"m"

  (

часы

, 

background image

123 

дни

, 

недели

, 

месяцы

). 

Если

d

1

 > 

d

2

, 

результат

от

-

рицательный

. 

datepart

(

u,d,f

) — 

в

зависимости

от

значения

аргумента

u

выдаёт

: 

"h"

 — 

час

, 

"d"

 — 

календарное

число

, 

"m"

 — 

номер

месяца

, 

"w"

 — 

номер

дня

недели

, 

"y"

 — 

номер

дня

в

году

, 

соответствующие

дате

d

 (

дата

может

задаваться

как

календарным

значением

, 

так

и

текстом

по

образцу

"23.05.2006 

23:59"

). 

Аргумент

f

используется

только

при

u

 = 

"w"

: 

если

он

равен

 0, 

первым

днём

недели

считается

понедельник

, 

если

 1 — 

воскресенье

. 

В

других

случаях

он

игнорируется

и

может

быть

опущен

. 

З а м е ч а н и е

.  

Результат

вычислений

функций

datediff

и

date-

part

является

числом

, 

а

не

календарным

значением

 (

датой

). 

Попытка

ото

-

бражения

числового

значения

в

календарных

столбцах

, 

определяемых

пользователем

, 

вызовет

сообщение

об

ошибке

. 

year

(

d

) — 

номер

года

, 

соответствующий

дате

d

.

month

(

d

) — 

равносильно

datepart

(

"m",d

). 

weekday

(

d,f

) — 

равносильно

datepart

(

"w",d,f

).

day

(

d

) — 

равносильно

datepart

(

"d",d

). 

hour

(

d

) — 

равносильно

datepart

(

"h",d

). 

minute

(

d

) — 

минута

, 

соответствующая

дате

d

  (

например

, 

для

даты

"17.06.2006 9:15"

результат

равен

15

).

projdateadd

(

d,n,c

) — 

дата

, 

отстоящая

от

даты

d

на

период

рабочего

времени

n

согласно

календарю

c

. 

Дата

задаётся

календарным

или

текстовым

(

например

, 

"17.06.2006 9:15"

) 

значением

. 

Кален

-

дарь

 — 

именем

. 

Период

может

задаваться

чис

-

лом

 (

обозначающим

число

минут

) 

или

текстовой

строкой

со

спецификацией

периода

: 

например

, 

"3m"

 —  3 

минуты

; 

"4h"

 —  4 

часа

; 

"5d"

 — 

5 

рабочих

дней

; 

"6w"

 —  6 

рабочих

недель

; 

"7mon"

 — 

7 

рабочих

месяцев

; 

"8ed"

 — 

8 24-

часовых

периодов

рабочего

времени

; 

"9ew"

 — 9 168-

часовых

периодов

рабочего

вре

-

мени

; 

"10emon"

 — 10 720-

часовых

периодов

рабочего

времени

. 

Продолжительность

рабочего

background image

124 

дня

, 

рабочей

недели

и

рабочего

месяца

устанав

-

ливается

параметрами

текущего

проекта

  (

Tools

→

Options…

→

Calendar

). 

Если

агрумент

c

опущен

, 

используются

календари

, 

назначенные

текущей

строке

таблицы

работ

или

ресурсов

, 

а

при

отсутствии

таковых

 — 

календарь

проекта

. 

projdatesub

(

d,n,c

) — 

функция

аналогична

projdateadd

, 

но

вычисляется

дата

, 

предшествующая

d

на

период

n

. 

projdurvalue

(

n

) — 

вычисляет

продолжительность

периода

n

, 

задан

-

ного

так

же

, 

как

в

функции

projdateadd

, — 

в

минутах

. 

projdatediff

(

d

1

,d

2

,c

) — 

количество

минут

рабочего

времени

между

дата

-

ми

d

1

и

d

2

согласно

календарю

c

. 

Если

аргумент

c

опущен

, 

используются

календари

, 

назначенные

текущей

строке

таблицы

работ

или

ресурсов

, 

а

при

отсутствии

таковых

 — 

календарь

проекта

. 

projdurconv

(

n,f

) — 

вычисляет

продолжительность

периода

n

, 

задан

-

ного

так

же

, 

как

в

функции

projdateadd

, 

в

еди

-

ницы

, 

заданные

флагом

f

. 

Флаг

должен

содер

-

жать

целое

значение

. 

Нечётные

значения

от

 3 

до

11 

обозначают

единицы

рабочего

времени

 — 

минуты

, 

часы

, 

дни

, 

недели

, 

месяцы

. 

Чётные

от

4 

до

 12 — 

соответствующие

единицы

астроно

-

мического

времени

. 

Текстовые

функции

format

(

x,f

) — 

отображение

числа

или

даты

x

по

формату

f

. 

Например

: 

♦

функция

format(cdate("15.1.04 10:30"), "hh 

ч

. mm 

мин

. d mmmm yyyy 

г

.") 

выдаст

текст

"10 

ч

. 30 

мин

. 15 

января

2006 

г

."

; 

♦

функция

format(cdate("5.1.06 10:30"), "dd mmm yy

г

. 

в

 hh:mm")

выдаст

текст

"05 

янв

 04

г

. 

в

 10:30"

; 

♦

функция

format(3.14159, "#.###") 

выдаст

текст

"3.142"

; 

♦

функция

format(0.14159, "#.###") 

выдаст

текст

".142"

; 

♦

функция

format(3.14, "000.000") 

выдаст

текст

"003.140"

. 

instr

(

n,b,s,c

) — 

номер

символа

, 

начиная

с

которого

в

строке

b

со

-

держится

строка

s

, 

или

 0. 

Аргумент

c

определяет

правила

сравнения

: 

с

учётом

регистра

 (

0

) 

или

без

учёта

 (4). 

background image

125 

len

(

s

) — 

число

символов

в

строке

s

. 

lcase

(

s

), 

ucase

(

s

), — 

перевод

текста

s

в

строчной

и

заглавный

регистры

соответственно

. 

ltrim

(

s

), 

rtrim

(

s

) — 

возвращают

исходный

текст

  (

s

), 

удалив

соответ

-

ственно

начальные

или

конечные

пробелы

 (

если

имелись

). 

space

(

n

) — 

возвращает

строку

, 

состоящую

из

n

пробелов

. 

mid

(

s,i,l

) — 

возвращает

подстроку

строки

s

, 

начинающуюся

с

i

-

го

символа

и

имеющую

длину

l

 (

если

аргумент

l

опущен

 — 

до

конца

строки

).  

Источник: https://files.student-it.ru/previewfile/7453