Примеры вычислений полей—Справка | ArcGIS Desktop
- Простые вычисления
- Встроенные функции Python
- Использование блоков кода
- Примеры кода – math
- Вычисления в полях с использованием логики Python
- Вычисления в полях с использованием логики VBScript
- Примеры кода – геометрия
- Информация о единицах измерения геометрии
- Примеры кода – даты
- Примеры кода – текст
- Накопительные и последовательные вычисления
- Случайные значения
- Вычисление нулевых значений
Ввод значений с клавиатуры – не единственный способ редактирования таблиц. В некоторых случаях вам может потребоваться выполнить математические вычисления для получения значения поля отдельной записи или даже всех записей. Можно выполнять как простые, так и сложные вычисления над всеми либо только выбранными записями. Кроме того, в полях атрибутивных таблиц можно вычислить длину, периметр и прочие геометрические свойства.
Python – это рекомендованный язык скриптов для ArcGIS. Используйте Python, если вы хотите получить доступ к функциональным возможностям геообработки, включая геометрию объектов. Введение Python в качестве языка для написания скриптов в ArcGIS предоставляет немало возможностей для выполнения вычислений.
Используйте VBScript, если у вас есть опыт работы с VBA или VBScript и вам удобнее работать с языком скриптов. Сохраненные файлы .cal из предыдущих версий ArcGIS можно использовать сразу, либо после внесения минимальных изменений. Если у вас есть код VBA из предыдущих версий, использовавший ArcObjects, необходимо изменить его.
Примечание:
- Python требует структурированное расположение текста в синтаксисе. Для определения каждого логического уровня используются от двух до четырех пробелов. Приводите в соответствие начало и конец каждого блока, и будьте последовательны.
- Поля выражений вычислений Python заключаются в восклицательные знаки (!!).
- При наименовании переменных следует помнить, что Python чувствителен к регистру, поэтому имя value не равнозначно имени Value.
- VBScript не позволяет в явном виде задавать тип данных; все переменные имеют неявный тип данных Variant. Выражения наподобие Dim x as String надо удалить или упростить до Dim x.
- Введя выражение, можно щелкнуть Сохранить, если вы хотите записать его в файл. Щелкните Загрузить, чтобы найти и выбрать имеющийся файл с выражением для вычисления.
Простые вычисления
Примеры простых строчек
Строки поддерживаются несколькими строковыми функциями Python, в том числе capitalize, rstrip и replace.
Сделать заглавной первую букву текста в поле CITY_NAME.
!CITY_NAME!.capitalize()
Убрать все пробелы на концах строчек в поле CITY_NAME.
!CITY_NAME!.rstrip()
Заменить все вхождения “california” на “California” в поле STATE_NAME.
!STATE_NAME!.replace("california", "California")
Доступ к символам в текстовом поле осуществляется путем индексации и разделения в Python. Индексация возвращает символы в индексном местоположении; разделение – группу символов. В следующей таблице примите !fieldname! как строковое поле со значением “abcde”.
Пример: | Объяснение | Результат |
---|---|---|
!fieldname![0] | Первый символ. | “a” |
!fieldname![-2] | Второй символ с конца. | “d” |
!fieldname![1:4] | Второй, третий и четвертый символы. | “bcd” |
Python также поддерживает форматирование строк с использованием метода str.format().
Скомбинировать поля FieldA и FieldB через двоеточие.
"{}:{}".format(!FieldA!, !FieldB!)
Строковые функции VBScript
Строки поддерживаются несколькими строковыми функциями VBScript, в том числе Left, InStr и Chr. Ниже приведено несколько примеров VBScript для часто используемых в Калькуляторе поля строковых функций.
Функция Left: возвращает строку, содержащую указанное количество символов из левой части исходной строки.
MyStr = Left([MyField], 1)
Функция Right: возвращает строку, содержащую указанное количество символов из правой части исходной строки.
MyStr = Right([MyField], 1)
Функция Mid: возвращает строку, содержащую указанное количество символов из исходной строки.
MyString = "Mid Function Demo" 'Create text string FirstWord = Mid(MyString, 1, 3) ' Returns "Mid" LastWord = Mid(MyString, 14, 4) 'Returns "Demo" MidWords = Mid(MyString, 5) 'Returns "Function Demo"
Функция InStr: возвращает длинное целое число, указывающее местоположение первого вхождения одной строкой в пределах другой.
MyPosition = InStr([address], " ")
Функция Replace: возвращает строку, в которой указанная подстрока заменена другой подстрокой указанное количество раз.
NewString = Replace([comments], "#", "!")
Функция Chr: возвращает строку, содержащую символ, связанный с указанным кодом символа.
' Replace a carriage return character with an exclamation NewString = Replace([comments], chr(13), "!")
Оператор &: используется для конкатенации двух строк в одном выражении.
MyStr = [MyField1] & " " & [MyField2]
Простые математические примеры
Python предоставляет инструменты для обработки чисел. Python также поддерживает ряд числовых и математических функций, в том числе math, cmath, decimal, random, itertools, functools и operator.
Оператор | Объяснение | Пример: | Результат |
---|---|---|---|
x + y | x плюс y | 1,5 + 2,5 | 4.0 |
x – y | x минус y | 3,3 – 2,2 | 1. 1 |
x * y | x умножить на y | 2,0 * 2,2 | 4.4 |
x / y | x разделить на y | 4,0 / 1,25 | 3.2 |
x // y | x разделить на y (с округлением) | 4,0 / 1,25 | 3. 0 |
x % y | x по модулю y | 8 % 3 | 2 |
-x | отрицательное выражение от x | x = 5 -x | -5 |
+x | x остается без изменений | x = 5 +x | 5 |
x ** y | x возвести в степень y | 2 ** 3 | 8 |
Умножение
!Rank! * 2
Вычислить объем сферы по заданному полю с радиусами.
4 / 3 * math.pi * !Radius! ** 3
При вычислении поля с помощью выражения Python, действуют математические правила Python. Например, деление двух целочисленных значений всегда дает целочисленный результат (3 / 2 = 1). Создает десятичные выходные данные следующими способами:
Встроенные функции Python
Python имеет большое количество встроенных функций, включая max, min, round и sum.
Вычисление максимального значения для каждой записи в списке полей.
max([!field1!, !field2!, !field3!])
Вычисление суммы для каждой записи в списке полей.
sum([!field1!, !field2!, !field3!])
Использование блоков кода
С помощью выражений Python и параметра Код блокировки вы можете сделать следующее:
- Использовать в выражении любые функции Python.
- Получать доступ к функциям и объектам геообработки.
- Получать доступ к свойствам геометрии
- Получать доступ к новому оператору случайных значений.
- Переклассифицировать значения с использованием логики if-then-else.
Способ использования кода блокировки определяется параметром Тип выражения. Инструмент Вычислить поле поддерживает типы выражений PYTHON, PYTHON_9.3 и VB.
Тип выражения | Блок кода |
---|---|
PYTHON_9.3 | Поддерживает функциональные возможности Python. Блок кода определяется посредством функций Python (def). Свойства геометрии выражаются с помощью объектов геообработки, например объекты point, где применимо. |
PYTHON | Так же, как в PYTHON_9. 3, но возвращаются строки, а не объекты геометрии. |
VB | Вычисления выполняются с помощью VBScript. |
Функции Python определяются с помощью ключевого слова def, за которым идет имя функции и ее входные параметры. Можно написать функцию Python, которая будет принимать любое число входных аргументов (в т.ч. их полное отсутствие). Значения возвращаются из функции с помощью выражения return. Имя функции остаётся на ваш выбор (не используйте пробелы и не начинайте с цифр).
Примечание:
Если из функции с выражением return не возвращается явное значение, функция возвращает None.
Примечание:
Помните, что Python вводит в действие структурирование как часть синтаксиса. Для определения каждого логического уровня используются от двух до четырех пробелов. Приводите в соответствие начало и конец каждого блока, и будьте последовательны.
Примеры кода – math
Округлить значения поля до двух десятичных знаков.
Выражение: round(!area!, 2) Тип выражения: PYTHON_9.3
Используйте модуль math для конвертации метров в футы. Конвертация возводит в степень 2 и умножает на площадь.
Выражение: MetersToFeet((float(!shape.area!))) Тип выражения: PYTHON_9.3 Блок кода: import math def MetersToFeet(area): return math.pow(3.2808, 2) * area
Вычисления в полях с использованием логики Python
Классифицировать на основании значений поля.
Выражение: Reclass(!WELL_YIELD!) Тип выражения: PYTHON_9.3 Блок кода: def Reclass(WellYield): if (WellYield >= 0 and WellYield <= 10): return 1 elif (WellYield > 10 and WellYield <= 20): return 2 elif (WellYield > 20 and WellYield <= 30): return 3 elif (WellYield > 30): return 4
Вычисления в полях с использованием логики VBScript
Группа выражений выполняется по условиям, в зависимости от значения выражения.
Выражение: density Тип выражения: VB Блок кода: Dim density If [POP90_SQMI] < 100 Then density = "low" elseif [POP90_SQMI] < 300 Then density = "medium" else density = "high" end if
Примеры кода – геометрия
Примечание:
Более подробно см. ниже в разделе Информация о единицах измерения геометрии.
Вычислить площадь объекта.
Выражение: !shape.area! Тип выражения: PYTHON_9.3
Вычислить максимальную x-координату объекта.
Выражение: !shape.extent.XMax! Тип выражения: PYTHON_9.3
Вычислить количество вершин объекта.
Выражение: MySub(!shape!) Тип выражения: PYTHON_9.3 Блок кода: def MySub(feat): partnum = 0 # Count the number of points in the current multipart feature partcount = feat.partCount pntcount = 0 # Enter while loop for each part in the feature (if a singlepart # feature this will occur only once) # while partnum < partcount: part = feat.getPart(partnum) pnt = part. next() # Enter while loop for each vertex # while pnt: pntcount += 1 pnt = part.next() # If pnt is null, either the part is finished or there # is an interior ring # if not pnt: pnt = part.next() partnum += 1 return pntcount
Для точечного класса пространственных объектов сдвинуть x-координату каждой точки на 100.
Выражение: shiftXCoordinate(!SHAPE!) Тип выражения: PYTHON_9.3 Блок кода: def shiftXCoordinate(shape): shiftValue = 100 point = shape.getPart(0) point.X += shiftValue return point
Информация о единицах измерения геометрии
Свойства площади и длины в поле геометрии можно изменить с помощью типов единиц, обозначаемых знаком @.
- Ключевые слова площадных единиц измерения:
- ACRES | ARES | HECTARES | SQUARECENTIMETERS | SQUAREDECIMETERS | SQUAREINCHES | SQUAREFEET | SQUAREKILOMETERS | SQUAREMETERS | SQUAREMILES | SQUAREMILLIMETERS | SQUAREYARDS | SQUAREMAPUNITS | UNKNOWN
- Ключевые слова линейных единиц измерения:
- CENTIMETERS | DECIMALDEGREES | DECIMETERS | FEET | INCHES | KILOMETERS | METERS | MILES | MILLIMETERS | NAUTICALMILES | POINTS | UNKNOWN | YARDS
Примечание:
Если данные хранятся в географической системе координат и поддерживаются линейные единицы (например, футы), вычисления длин будут конвертированы по геодезическому алгоритму.
Внимание:
Преобразования единиц площади в географическую систему координат даёт сомнительные результаты, так как десятичные градусы в разных частях глобуса имеют разную длину.
Вычислить длину пространственного объекта в ярдах.
Выражение: !shape.length@yards! Тип выражения: PYTHON_9.3
Вычислить длину пространственного объекта в акрах.
Выражение: !shape.area@acres! Тип выражения: PYTHON_9.3
Геодезическая площадь и длина также может быть вычислена с помощью свойств geodesicArea и geodesicLength, после которых указывается символ @ и ключевое слово единиц измерения.
Вычисление геодезической длины пространственного объекта в ярдах.
Выражение: !shape.geodesicLength@yards! Тип выражения: PYTHON_9.3
Вычисление геодезической площади пространственного объекта в акрах.
Выражение: !shape.geodesicArea@acres! Тип выражения: PYTHON_9.3
Примеры кода – даты
Вычислить текущую дату.
Выражение: time. strftime("%d/%m/%Y") Тип выражения: PYTHON_9.3
Вычислить текущие дату и время.
Выражение: datetime.datetime.now() Тип выражения: PYTHON_9.3
Вычислить дату как 31 декабря 2000.
Выражение: datetime.datetime(2000, 12, 31) Тип выражения: PYTHON_9.3
Вычислить количество дней между текущей датой и значением в поле.
Выражение: (datetime.datetime.now() - arcpy.time.ParseDateTimeString(!field1!)).days Тип выражения: PYTHON_9.3
Вычислить дату, прибавив 100 дней к значению даты в поле.
Выражение: arcpy.time.ParseDateTimeString(!field1!) + datetime.timedelta(days=100) Тип выражения: PYTHON_9.3
Вычислить день недели (например, воскресенье) для значения даты в поле.
Выражение: arcpy.time.ParseDateTimeString(!field1!).strftime('%A') Тип выражения: PYTHON_9.3
Примеры кода – текст
Вернуть три самых правых символа.
Выражение: !SUB_REGION![-3:] Тип выражения: PYTHON_9.3
Заменить все вхождения заглавной буквы P на прописную p.
Выражение: !STATE_NAME!.replace("P","p") Тип выражения: PYTHON_9.3
Конкатенировать два поля, разделив их пробелом.
Выражение: !SUB_REGION! + " " + !STATE_ABBR! Тип выражения: PYTHON_9.3
Конвертация в нужный регистр
В этих примерах показаны различные способы конвертации слов таким образом, чтобы каждое слово начиналось с большой буквы, а остальные буквы были прописными.
Выражение: ' '.join([i.capitalize() for i in !STATE_NAME!.split(' ')]) Тип выражения: PYTHON_9.3
Выражение: !STATE_NAME!.title() Тип выражения: PYTHON_9.3
Регулярные выражения
Модуль re в Python содержит операции сопоставления регулярных выражений, которые используются для составления сложных правил и сопоставления и замещения строк.
Замена St или St. перед новым словом в конце строки словом Street.
Выражение: update_street(!ADDRESS!) Тип выражения: PYTHON_9.3 Блок кода: import re def update_street(street_name): return re.sub(r"""\b(St|St. )\Z""", 'Street', street_name)
Накопительные и последовательные вычисления
Вычислить последовательные идентификаторы ID или порядковые номера на основании интервала.
Выражение: autoIncrement() Тип выражения: PYTHON_9.3 Блок кода: rec=0 def autoIncrement(): global rec pStart = 1 #adjust start value, if req'd pInterval = 1 #adjust interval value, if req'd if (rec == 0): rec = pStart else: rec = rec + pInterval return rec
Вычислить накопительные значения числового поля.
Выражение: accumulate(!FieldA!) Тип выражения: PYTHON_9.3 Блок кода: total = 0 def accumulate(increment): global total if total: total += increment else: total = increment return total
Вычислить процентное приращение числового поля.
Выражение: percentIncrease(float(!FieldA!)) Тип выражения: PYTHON_9.3 Блок кода: lastValue = 0 def percentIncrease(newValue): global lastValue if lastValue: percentage = ((newValue - lastValue) / lastValue) * 100 else: percentage = 0 lastValue = newValue return percentage
Случайные значения
Использование numpy site-package для вычисления случайных значений с плавающей точкой от 0,0 до 1,0.
Выражение: getRandomValue() Тип выражения: PYTHON_9.3 Блок кода: import numpy def getRandomValue(): return numpy.random.random()
Вычисление нулевых значений
С помощью выражения Python можно вычислить пустые значения (null), используя значение None.
Примечание:
Следующее вычисление будет работать, только если поле может содержать нулевые значения.
Используйте Python None для вычисления нулевых значений.
Выражение: "None" Тип выражения: PYTHON_9.3
Онлайн калькулятор: Сложность вычисления школьных примеров
Данный калькулятор пытается оценить сложность вычисления без калькулятора (на листочке) задач с использованием арифметических операций сложения, вычитания, умножения и деления.
Калькулятор определяет количество элементарных операций в примере, дает условную сложность выраженную в миллисекундах, требуемых для вычисления примера. Сложность складывается из суммы элементарных операций, помноженных на коэффициент сложности (время в миллисекундах, требуемое для выполнение операции). Расшифровка элементарных операций дается в таблице в нижней части калькулятора.
Оценка сложности арифметических операций
Выражение
Результат вычисления
Количество элементарных операций
Сложность (время вычисления)
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
Расшифровка операций с указанием сложности.
++ сложность 200, увеличение на единицу, например, при умножении 2003000 – будет одно умножение 23 и 5 раз выполнится подсчет нулей
+ сложность 500, элементарное сложение например 5+4
– сложность 500, элементарное вычитание, например 3-2
* сложность 1000, элементарное умножение, например 2*2
/ сложность 1000, деление — операция деления сводится к последовательном выполнении операций умножения и вычитания, при этом мы прикидываем всякий раз какой множитель необходимо выбрать, чтобы произведение получилось чуть меньше или равно текущего делимого. Эта элементарная операция подсчитывается в данной колонке. Необходимые умножения и вычитания подсчитываются дополнительно.
0+ сложность 100, сложение с нулем — частный случай выделен отдельно, так как это более простая операция чем сложение.
0 сложность 100, подстановка нулей
°+ сложность 700, сложение с переносом единицы, например 16+7 — содержит две операции — элементарное сложение и перенос единицы в следующий разряд.
=0 сложность 200, сокращение — операции вычитания равных величин, например 100-100
°- сложность 600, заем единицы при вычитании, например при вычитании 11-9 будет выполнен один заем и одна операция вычитания.
** сложность 400, повторное умножение. часто случается, что при выполнении элементарных ( и не только ) операций умножения выполняются одни и те же операции. Например 2533 будет содержать два элементарных умножения и один повтор, мы просто можем переписать результат умножения 253 еще один раз.
*0 сложность 100, частный случай умножения на ноль
*1 сложность 200, частный случай умножения на единицу
°* сложность 700, перенос при умножении, например 234 — два элементарных умножения плюс один перенос (1) при умножении 34
+- сложность 300, смена знака
<> сложность 500, перестановка вычитаемых, выполняется если мы пытаемся вычесть из меньшего большее
. сложность 500, операций с плавающей точкой
Рассмотрим вычисление сложности на примере (4567+987-8354)*32/25:
Пример содержит все четыре арифметических операции.
Сначала выполняется сложение 4567+987=5554
Запись сложения в столбик
Как видим, в этом примере имеется три элементарных сложения: 7+7, 6+8, 5+9, при выполнении каждого из которых осуществляется перенос единицы в старший разряд.
Затем вычитание 5554-8354=-2800
Запись вычитания в столбик
Так как из меньшего вычитается большее число, результат получается отрицательным, перед вычитанием выполняется перестановка операндов. Первые два разряда 5,4 сокращаются, затем при вычислении 3-5 осуществляется элементарное вычитание с займом единицы, затем просто вычитание 8-1-5=2.
Третьим действием выполняем умножение -2800*32=-89600
Запись умножения в столбик
Так как первый множитель заканчивается нулями, выполняем подсчет их количества, чтобы в конце умножения приписать нули к результату. Затем умножаем 2832. При умножении на 38 и 28 выполняется перенос в след. разряд. 22 и 2*3 — просто элементарные умножения. Итого 4 элементарных умножения, 2 переноса, 2 подсчета.
Последнее действие — деление -89600/25=-3584
-89600/25=-3584На каждом шаге деления осуществляется подбор множителя таким образом, чтобы произведение его на делитель было близко к числу, составляемому первыми разрядами текущего остатка от деления. Эта операция засчитывается как элементарное деление, после чего выполняется умножение и вычитание, сложность которых рассчитывается по аналогии с предыдущими шагами.
В частности при делении первых разрядов (86) на 25 выбираем множитель = 3. Далее производится умножение 25*3-75, далее вычитание 89-75=14.
Итого при вычислении 89600/25 имеем: 4 деления и 4 вычитания, 8 произведений, 3 сокращения, два умножения с переносом, при умножении с переносом осуществляется одно сложение.
В конечном итоге в ходе вычисления всего примера произведено 52 элементарные операции — с учетом обозначенных весовых коэффициентов, общая сложность составляет 28500. Таким образом для решения данного примера понадобится примерно полминуты (28.5 секунды).
P.S. Все временные оценки и сам алгоритм вычисления сложности сделаны на основе субъективных предположений автора, комментарии и замечания приветствуются.
Арифметика вычитание деление Математика начальная школа сложение сложение столбиком сложность сложность вычислений сложность операций умножение
Порядок выполнения действий: правила, примеры.
Когда мы работаем с различными выражениями, включающими в себя цифры, буквы и переменные, нам приходится выполнять большое количество арифметических действий. Когда мы делаем преобразование или вычисляем значение, очень важно соблюдать правильную очередность этих действий. Иначе говоря, арифметические действия имеют свой особый порядок выполнения.
В этой статье мы расскажем, какие действия надо делать в первую очередь, а какие после. Для начала разберем несколько простых выражений, в которых есть только переменные или числовые значения, а также знаки деления, умножения, вычитания и сложения. Потом возьмем примеры со скобками и рассмотрим, в каком порядке следует вычислять их. В третьей части мы приведем нужный порядок преобразований и вычислений в тех примерах, которые включают в себя знаки корней, степеней и других функций.
Порядок вычисления простых выражений
Определение 1В случае выражений без скобок порядок действий определяется однозначно:
- Все действия выполняются слева направо.
- В первую очередь мы выполняем деление и умножение, во вторую – вычитание и сложение.
Смысл этих правил легко уяснить. Традиционный порядок записи слева направо определяет основную последовательность вычислений, а необходимость сначала умножить или разделить объясняется самой сутью этих операций.
Возьмем для наглядности несколько задач. Мы использовали только самые простые числовые выражения, чтобы все вычисления можно было провести в уме. Так можно быстрее запомнить нужный порядок и быстро проверить результаты.
Пример 1Условие: вычислите, сколько будет 7−3+6.
Решение
В нашем выражении скобок нет, умножение и деление также отсутствуют, поэтому выполняем все действия в указанном порядке. Сначала вычитаем три из семи, затем прибавляем к остатку шесть и в итоге получаем десять. Вот запись всего решения:
7−3+6=4+6=10
Ответ: 7−3+6=10.
Пример 2Условие: в каком порядке нужно выполнять вычисления в выражении 6:2·8:3?
Решение
Чтобы дать ответ на этот вопрос, перечитаем правило для выражений без скобок, сформулированное нами до этого. У нас здесь есть только умножение и деление, значит, мы сохраняем записанный порядок вычислений и считаем последовательно слева направо.
Ответ: сначала выполняем деление шести на два, результат умножаем на восемь и получившееся в итоге число делим на три.
Пример 3Условие: подсчитайте, сколько будет 17−5·6:3−2+4:2.
Решение
Сначала определим верный порядок действий, поскольку у нас здесь есть все основные виды арифметических операций – сложение, вычитание, умножение, деление. Первым делом нам надо разделить и умножить. Эти действия не имеют приоритета друг перед другом, поэтому выполняем их в написанном порядке слева направо. То есть 5 надо умножить на 6 и получить 30, потом 30 разделить на 3 и получить 10. После этого делим 4 на 2, это 2. Подставим найденные значения в исходное выражение:
17−5·6:3−2+4:2=17−10−2+2
Здесь уже нет ни деления, ни умножения, поэтому делаем оставшиеся вычисления по порядку и получаем ответ:
17−10−2+2=7−2+2=5+2=7
Ответ: 17−5·6:3−2+4:2=7.
Пока порядок выполнения действий не заучен твердо, можно ставить над знаками арифметических действий цифры, означающие порядок вычисления. Например, для задачи выше мы могли бы записать так:
.
Если у нас есть буквенные выражения, то с ними мы поступаем точно так же: сначала умножаем и делим, затем складываем и вычитаем.
Что такое действия первой и второй ступени
Иногда в справочниках все арифметические действия делят на действия первой и второй ступени. Сформулируем нужное определение.
К действиям первой ступени относятся вычитание и сложение, второй – умножение и деление.
Зная эти названия, мы можем записать данное ранее правило относительно порядка действий так:
Определение 2В выражении, в котором нет скобок, сначала надо выполнить действия второй ступени в направлении слева направо, затем действия первой ступени (в том же направлении).
Порядок вычислений в выражениях со скобками
Скобки сами по себе являются знаком, который сообщает нам нужный порядок выполнения действий. В таком случае нужное правило можно записать так:
Определение 3Если в выражении есть скобки, то первым делом выполняется действие в них, после чего мы умножаем и делим, а затем складываем и вычитаем по направлению слева направо.
Что касается самого выражения в скобках, его можно рассматривать в качестве составной части основного выражения. При подсчете значения выражения в скобках мы сохраняем все тот же известный нам порядок действий. Проиллюстрируем нашу мысль примером.
Пример 4Условие: вычислите, сколько будет 5+(7−2·3)·(6−4):2.
Решение
В данном выражении есть скобки, поэтому начнем с них. Первым делом вычислим, сколько будет 7−2·3. Здесь нам надо умножить 2 на 3 и вычесть результат из 7:
7−2·3=7−6=1
Считаем результат во вторых скобках. Там у нас всего одно действие: 6−4=2.
Теперь нам нужно подставить получившиеся значения в первоначальное выражение:
5+(7−2·3)·(6−4):2=5+1·2:2
Начнем с умножения и деления, потом выполним вычитание и получим:
5+1·2:2=5+2:2=5+1=6
На этом вычисления можно закончить.
Ответ: 5+(7−2·3)·(6−4):2=6.
Не пугайтесь, если в условии у нас содержится выражение, в котором одни скобки заключают в себе другие. Нам надо только применять правило выше последовательно по отношению ко всем выражениям в скобках. Возьмем такую задачу.
Пример 5Условие: вычислите, сколько будет 4+(3+1+4·(2+3)).
Решение
У нас есть скобки в скобках. Начинаем с 3+1+4·(2+3), а именно с 2+3. Это будет 5. Значение надо будет подставить в выражение и подсчитать, что 3+1+4·5. Мы помним, что сначала надо умножить, а потом сложить: 3+1+4·5=3+1+20=24. Подставив найденные значения в исходное выражение, вычислим ответ: 4+24=28.
Ответ: 4+(3+1+4·(2+3))=28.
Иначе говоря, при вычислении значения выражения, включающего скобки в скобках, мы начинаем с внутренних скобок и продвигаемся к внешним.
Допустим, нам надо найти, сколько будет (4+(4+(4−6:2))−1)−1. Начинаем с выражения во внутренних скобках. Поскольку 4−6:2=4−3=1, исходное выражение можно записать как (4+(4+1)−1)−1. Снова обращаемся к внутренним скобкам: 4+1=5. Мы пришли к выражению (4+5−1)−1. Считаем 4+5−1=8 и в итоге получаем разность 8-1, результатом которой будет 7.
Порядок вычисления в выражениях со степенями, корнями, логарифмами и иными функциями
Если у нас в условии стоит выражение со степенью, корнем, логарифмом или тригонометрической функцией (синусом, косинусом, тангенсом и котангенсом) или иными функциями, то первым делом мы вычисляем значение функции. После этого мы действуем по правилам, указанным в предыдущих пунктах. Иначе говоря, функции по степени важности приравниваются к выражению, заключенному в скобки.
Разберем пример такого вычисления.
Пример 6Условие: найдите, сколько будет (3+1)·2+62:3−7.
Решение
У нас есть выражение со степенью, значение которого надо найти в первую очередь. Считаем: 62=36. Теперь подставим результат в выражение, после чего оно примет вид (3+1)·2+36:3−7.
Дальше действуем по знакомому алгоритму: считаем, сколько у нас получится в скобках, потом в оставшемся выражении выполняем умножение и деление, а следом – сложение и вычитание.
(3+1)·2+36:3−7=4·2+36:3−7=8+12−7=13
Ответ: (3+1)·2+62:3−7=13.
В отдельной статье, посвященной вычислению значений выражений, мы приводим и другие, более сложные примеры подсчетов в случае выражений с корнями, степенью и др. Рекомендуем вам с ней ознакомиться.
Решение задач от 1 дня / от 150 р. Курсовая работа от 5 дней / от 1800 р. Реферат от 1 дня / от 700 р.
Use calculation in a sentence
calculation
Advertisement
Advertisement
Advertisement
Реклама
Advertisement
Advertisement
Advertisement
Advertisement
Реклама
Advertisement
Приведенные выше примеры использования слов были собраны из различных источников, чтобы отразить текущее и историческое употребление. Они не отражают мнения YourDictionary.com.
Статьи по теме
Разница между параметрами и статистикой в исследованиях
При интерпретации данных, представленных в исследовании, важно знать разницу между параметрами и статистикой . Оба предоставляют числовые сводки информации, но различаются тем, представляют ли результаты всю совокупность или выборку совокупности.
Бенджамин Пирс
Математик, физик и астроном Бенджамин Пирс (1809 г.-1880) был назван «отцом американской математики». Он отличился как суперинтендант Береговой службы США. Пирс был профессором Гарвардского колледжа с 1833 года до своей смерти и способствовал основанию его обсерватории.
Also Mentioned In
- roy·al·ty
- median income
Words near calculation in the Dictionary
- calculates
- calculatest
- calculateth
- Расчет
- Расчетная машина
- Расчеты
- Расчет
- Calculational
- Расчет
- калькулятор
- Кальс.
Вот 10 мощных примеров табличных вычислений Tableau. Каждый пример содержит живой пример и инструкции в виде вкладок. Вы можете скачать любую книгу для более глубокого изучения. Табличные вычисления — это преобразования, которые можно применять к значениям в визуализации. Это особый тип вычисляемого поля, которое вычисляет локальные данные в Tableau на основе того, что в данный момент находится в представлении. Поэтому измерения и меры, отфильтрованные из визуализации, не учитываются в результатах.
Основы расчета таблицы
Вычисления таблиц основаны на полях двух типов: полях адресации и полях разделения. Ключом к пониманию вычислений в таблице является знание того, как работают эти поля.
- Поля разделения определяют область действия: Они разбивают представление на несколько разделов или подвидов. Затем табличный расчет применяется к меткам в каждом разделе.
- Поля адресации определяют направление: Они определяют «направление», в котором происходит вычисление (например, при вычислении текущей суммы или вычислении разницы между значениями).
То, как мы определяем их в Tableau, зависит от желаемой степени контроля над конечным результатом.
- Быстрый расчет таблицы: Содержит все измерения на уровне детализации либо для разделения (область действия), либо для адресации (направление). Tableau автоматически идентифицирует некоторые параметры как адресацию, а другие как разделение в результате вашего выбора. Это можно изменить с помощью Compute Using, однако это зависит от структуры представления.
- Добавить табличное вычисление: Табличное вычисление также можно добавить с помощью Добавить табличное вычисление из контекстного меню меры. Это позволяет определить, какие измерения предназначены для адресации, а какие — для секционирования с использованием специальных измерений.
- Вычисление с использованием: Выбор «Вычисление с помощью» в контекстном меню «Измерение» позволяет нам вычислить таблицу вычислений на основе архитектуры таблицы или определенного поля. Имейте в виду, что изменение структуры представления также изменит ваши результаты.
- Редактировать расчет таблицы: Выберите «Редактировать расчет таблицы» в контекстном меню «Измерение», чтобы конкретно определить поля для разделения и адресации в представлении. Разделение и адресация, определенные с помощью «Особых измерений», сохранят ваши результаты независимо от архитектурных изменений в представлении.
Для получения дополнительной информации просмотрите это введение в табличные вычисления.
1. Процентное изменение по сравнению с исходной датой
С помощью табличных расчетов можно рассчитать процентное изменение произвольного значения. Предположим, вы заинтересованы в портфеле акций и хотите оценить их относительную эффективность в определенный момент времени. Для этого вам нужно установить «дату инвестирования» и нормализовать их к одному и тому же моменту времени, при этом линии показывают процентное изменение. Вы настраиваете базовую дату с помощью ползунка.
Используя параметр базовой даты и функцию WINDOW_MAX для получения цены закрытия на базовую дату, вы можете вычислить относительную доходность акций.
2. Общий базовый уровень
Возможно, вы захотите просмотреть данные из общей начальной точки, а не по абсолютной временной шкале. Например, вот кассовые сборы первых трех фильмов «История игрушек». Сравнивать их намного проще, если посмотреть на валовые поступления по неделям с даты открытия:
Функция ИНДЕКС() в Tableau позволяет легко вычислить количество недель с момента открытия. В этом случае вы разбиваете по фильму и адресуете по дням.
3. Процент от общего объема продаж с течением времени (вторичный расчет)
Обычно требуется выполнить расчет двух таблиц одновременно. Например, может быть интересно посмотреть, как выросло или уменьшилось значение сегмента для компании с течением времени. Для этого вы должны сначала вычислить текущую сумму продаж по сегментам с течением времени, а затем посмотреть на нее как на процент от всех продаж с течением времени. Это также называется вторичным расчетом в Tableau, и его можно выполнить даже без написания формулы.
На первом этапе вычисляется промежуточная сумма продаж по сегментам с течением времени. Второй проход заключается в вычислении промежуточного итога каждого сегмента в процентах от общего количества с течением времени.
4. Сохранение рейтинга (даже при сортировке)
Здесь нам нужно увидеть рейтинг товара в течение месяца и года, а затем показать, как меняется его рейтинг во времени. Для этого мы создаем диаграмму рельефа, которая показывает изменения с течением времени в виде линейной диаграммы. Слева мы видим, как копировальные аппараты и факсимильные аппараты превратились из низкоэффективных продуктов в наши третьи по величине продажи. Мы также видим, что покупка факсимильных аппаратов и копировальных аппаратов сильно волатильна.
Классическая диаграмма рельефа. Это показывает позицию продаж каждого продукта, рассчитанную с помощью простого расчета таблицы ранжирования и некоторых дополнительных настроек.
5. Общая сумма
Вам необходимо следить за количеством активных обращений в службу поддержки в колл-центре или запасами на полках. Но система не записывает скользящую сумму активных случаев, и вам нужно ее вычислить. Это равно количеству обращений в день открытия + новых обращений + повторно открытых обращений — закрытых обращений.
На первый взгляд это простой расчет. Тем не менее, дневная позиция открытия является производной от закрытия предыдущего дня, которое, в свою очередь, является производной от позиции открытия этого дня. Это создает циклическую ссылку вычислений.
Мы используем WINDOW_SUM для расчета промежуточных сумм и определения суммы закрытия каждого дня.
6. Средневзвешенное значение
Такие данные, как результаты тестов или приоритет заказа, поддаются анализу по средневзвешенному значению. Возможно, вы смотрите на средний приоритет всех заказов по типам продуктов и хотите взвесить этот приоритет по объему заказа, чтобы продукты с большим объемом получали более высокий балл приоритета. Вы можете использовать эту средневзвешенную оценку приоритета, чтобы оптимизировать свою цепочку поставок для крупносерийных высокоприоритетных продуктов. Здесь мы делаем именно это, используя данные о продажах в супермаркетах:
Здесь мы снова используем WINDOW_SUM для расчета веса для каждой категории, а затем применяем его к оценке приоритета.
7. Группировка по расчету
Если вы управляете транспортными операциями компании, вас может заинтересовать, почему стоимость доставки товаров выше средней. Вы можете вычислить среднее значение по окну и использовать его в расчетах для группировки и окрашивания значений.
8. Количество инцидентов на движущемся полигоне
В различных сценариях, таких как розничная торговля или разведка, часто используется количество событий, происходящих в окне. Например, одно подозрительное событие может быть аномалией, но если оно происходит более n раз за x дней, оно требует расследования.
Точки показывают, сколько раз возникало предупреждение или тревога — обычно ноль. Точка над нулем показывает, что оповещение срабатывало в этот день, а полоса показывает, что оповещение срабатывало более n раз за x дней. Пользователь может щелкнуть правой кнопкой мыши и отобразить данные как для точек, так и для полос.
9. Скользящее среднее за переменные периоды
Вы вычислили скользящее среднее для продаж за все месяцы с помощью функций быстрого расчета таблицы в Tableau, но теперь хотели бы расширить его, чтобы ваш конечный пользователь мог выбирать, сколько периодов они хотят усреднить. Бледно-голубая линия показывает СУММУ продаж за все месяцы, а оранжевая линия показывает скользящее среднее продаж за 15 периодов.
Комбинация параметра и настраиваемого расчета быстрой таблицы для скользящего среднего значения позволяет усреднять переменные (определяемые пользователем) периоды.
10. Отличие от среднего за период
Возможно, вам будет интересно узнать разницу между квартальными продажами и средними показателями за этот год. Здесь мы показываем отличие от среднего за этот год, общее среднее и общее количество заказов.
Подпишитесь на наш блог
Имя
Фамилия
АдресCountry/Region- Country/Region -AfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelgiumBelizeBeninBermudaBhutanBolivia, Plurinational State ofBonaire, Sint Eustatius and SabaBosnia and HerzegovinaBotswanaBouvet IslandBrazilBritish Indian Ocean TerritoryBrunei DarussalamBulgariaBurkina FasoBurundiCabo VerdeCambodiaCameroonCanadaCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongoCongo, the Democratic Republic of theCook IslandsCosta RicaCroatiaCuracaoCyprusCzechiaCôte d’IvoireDenmarkDiego ГарсияДжибутиДоминикаДоминиканская РеспубликаЭквадорЕгипетСальвадорЭкваториальная ГвинеяЭритреяЭстонияЭфиопияФолклендские (Мальвинские) островаФарерские островаФиджиФинляндияФранцияФранцузская ГвианаФранцузская ПолинезияФранцузские Южные ТерриторииГабонГамбияГрузияГанаГанаГибралтарГрецияГренландияГренадаГваделупаГуамГватемалаГвинсиГвинея ssauGuyanaHaitiHeard Island and McDonald IslandsHoly SeeHondurasHong KongHungaryIcelandIndiaIndonesiaIraqIrelandIsle of ManIsraelItalyJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKorea, Republic ofKosovo (Temp)KuwaitKyrgyzstanLao Peoples Democratic RepublicLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedonia, the former Yugoslav Republic ofMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesia, Federated States ofMoldova, Republic ofMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern Mariana IslandsNorwayOmanPakistanPalauPalestine, State ofPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarRomaniaRwandaRéunionSaint BarthélemySaint Helena, Ascension and Tristan да КуньяСент-Китс и НевисСент-ЛюсияСент-Мартен (французская часть)Сен-Пьер и МикелонСент-Винсент и т. д. he GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint Maarten (Dutch part)SlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Georgia and the South Sandwich IslandsSouth SudanSpainSri LankaSudanSurinameSvalbard and Jan MayenSwazilandSwedenSwitzerlandTaiwan, Province of ChinaTajikistanTanzania, United Republic ofThailandTimor-LesteTogoTokelauTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTurks & Caicos IslandsTuvaluUgandaUkraineUnited Arab EmiratesUnited Kingdom of Great Britain and Northern ИрландияОтдаленные малые острова СШАСоединенные Штаты АмерикиУругвайУзбекистанВануатуВенесуэла, Боливарианская РеспубликаВьетнамВиргинские острова, Британские Виргинские острова, СШАУоллис и ФутунаЗападная СахараЙеменЗамбияЗимбабвеАландские острова
Регистрируясь, вы подтверждаете свое согласие на обработку ваших персональных данных компанией Salesforce, как описано в Заявлении о конфиденциальности. Отправляя эту форму, вы подтверждаете и соглашаетесь с тем, что ваши личные данные могут передаваться, храниться и обрабатываться на серверах, расположенных за пределами Китайской Народной Республики, и что ваши личные данные будут обрабатываться компанией Salesforce в соответствии с Заявлением о конфиденциальности. Отправляя эту форму, вы подтверждаете свое согласие на хранение и обработку ваших личных данных компанией Salesforce, как описано в Заявлении о конфиденциальности. Я согласен с Заявлением о конфиденциальности и с обработкой моей личной информации. В частности, я даю согласие на передачу моей личной информации в другие страны, включая США, в целях размещения и обработки информации, как указано в Заявлении о конфиденциальности. Я понимаю, что в этих странах могут не действовать те же законы о защите данных, что и в стране, из которой я предоставляю свою личную информацию. Нажмите сюда, для получения дополнительной информации.
Да, я хочу получать этот информационный бюллетень, а также маркетинговые сообщения о продуктах, услугах и мероприятиях Salesforce. Я могу отписаться в любой момент. Salesforce ценит вашу конфиденциальность. Чтобы узнать больше, посетите наше Заявление о конфиденциальности.
Необходим расчет дозы по методу формулы – StatPearls
Тэмми Дж. Тони-Батлер; Самар Николя; Лэнс Уилкокс.
Информация об авторе
Последнее обновление: 23 июня 2022 г.
Введение
Существует 3 основных метода расчета дозировок лекарств; Анализ размеров, соотношение пропорций и формула или желаемый метод. Мы более подробно рассмотрим один из этих трех методов, метод «Желаемое вместо того, чтобы иметь» или «Формула».
Desired Over Have или Formula Метод использует формулу или уравнение для нахождения неизвестной величины (x), очень похоже на соотношение пропорций.
При расчете лекарств необходимо использовать коэффициенты преобразования, например, при преобразовании фунтов в килограммы или литров в миллилитры. Упрощенный по дизайну, этот метод позволяет клиницистам работать с различными единицами измерения, конвертируя коэффициенты, чтобы найти ответ. Эти методы полезны для проверки точности других методов расчета, таким образом действуя как двойная или тройная проверка.
Подготовка
Когда клиницисты подготовлены и знают ключевые коэффициенты пересчета, они будут меньше беспокоиться о расчетах. Это жизненно важно для точности, независимо от того, какая формула или метод используются.
Коэффициенты пересчета
1 кг = 2,2 фунта
1 Галлон = 4 кварта
1 TSP = 5 мл
1 дюйм = 2,54 См
1 L = 1000 мл.0003
1 кг = 1000 г
1 унция = 30 мл = 2 ст.
1 ст. = 16 унций
1 столовая ложка = 3 чайные ложки
60 минут = 1 час
1 CC = 1 мл
2 Пинта = 1 QT
8 ун.
1 Pt = 500 мл = 16 унций
1 унция = 30 мл
4 унции = 120 мл (Casey, 2018)
Техника
Есть 3 первичных метода для расчета Medicate. дозы, указанные выше. К ним относятся метод или формула желательного преобладания, размерный анализ, соотношение и пропорция (цитируется по Boyer, 2002) [Lindow, 2004].
Желательно, а не по формуле
Desired over Have или Formula Method — это формула или уравнение для решения неизвестной величины (x), очень похожее на пропорцию отношения. Расчеты лекарств требуют использования коэффициентов пересчета, например, при переводе фунтов в килограммы или литров в миллилитры. Упрощенный по дизайну, этот метод позволяет нам работать с различными единицами измерения, конвертируя коэффициенты, чтобы найти ответ. Это полезно для проверки точности других методов расчета, упомянутых выше, таким образом действуя как двойная или тройная проверка.
Основная формула, решение для x, помогает нам составить уравнение:
D/H x Q = x, или Желаемая доза (количество) = заказанное количество дозы/количество на руках x количество .
Например, поставщик запрашивает лоразепам 4 мг IV Push для пациента с тяжелой алкогольной абстиненцией. У врача есть флаконы по 2 мг/мл под рукой. Сколько миллилитров он должен набрать в шприц, чтобы ввести желаемую дозу?
Единицы измерения должны совпадать, например, миллилитры и миллилитры, либо необходимо преобразовать в аналогичные единицы измерения. В приведенном выше примере заказанная доза была в миллиграммах, а имеющаяся доза была в миллиграммах, обе из которых компенсируются, оставляя миллилитры (ответ требовал миллилитров), поэтому дальнейшее преобразование не требуется.
Метод размерного анализа
Заказ, размещенный поставщиком для лоразепама 4 мг IV PUSH для оценки CIWA 25 или выше, следует протоколу CAGE для последующих дозировок на основе оценки CIWA.
У врача есть флаконы по 2 мг/мл в автоматическом дозаторе.
Сколько миллилитров необходимо для получения заказанной дозы?
Желаемая доза os помещается в 1 помните, (x мл) = 4 мг/1 x 1 мл/2 мг x (4)(1)/2 x 4/2 x 2/1 = 2 мл, сохраните умножение/деление, пока не будет достигнуто желаемое количество, 2 мл в этом примере.
Обратите внимание, что дробь была настроена так, чтобы миллиграммы и миллиграммы были размещены стратегически, поэтому единицы могли компенсировать друг друга, что облегчало решение уравнения для желаемой единицы или миллилитров. Ответ имеет смысл, так что работа сделана.
Нули можно аннулировать так же, как и аналогичные единицы. Например:
1000/500 x 10/5 = 2, 2 нуля в числе 1000 и 2 нуля в числе 500 можно вычеркнуть, так как единицы в числителе и знаменателе одинаковы, оставив 10/5, дробь решить гораздо проще. , и ответ имеет смысл.
Мы рассмотрели нули, а теперь давайте посмотрим на 1.
Если число умножить на 1, то число не изменится.
Напротив, если вы умножаете число на ноль, число становится равным нулю.
Ниже перечислены примеры: 18 x 0 = 0 или 20 x 1 = 20.
Метод отношений и пропорций
Метод соотношения и пропорции существует уже много лет и является одним из старейших методов, используемых при расчете лекарств (цитируется по Boyer, 2002) [Lindow, 2004]. Дополнительные принципы — это метод решения проблем, который не имеет отношения к этим отношениям. Только умножение и деление используются для решения задачи соотношения и пропорции, а не сложения. Пример, приведенный ниже, даст лучшее объяснение, используя формат дроби или двоеточия:
Медицинский работник заказывает лоразепам 4 мг в/в Немедленно наберите 25 баллов по шкале CIWA. Имеются флаконы по 2 мг/мл. Сколько миллилитров требуется для выполнения заказанной дозы?
Можно использовать H:V::D:X, а умножение означает DV и Extremes HX в формате двоеточия.
Hx = DV, x = DV/H, 2:1::4:x, 2x = (4)(1), x = 4/2, x = 2 мл
Осложнения
A В исследовании 2016 года оценивалась роль уверенности в общей арифметике в навыках расчета лекарств. Участники исследования посещали занятия по коррекционной математике из самых разных областей образования и возрастной динамики, стремясь получить первую степень в области сестринского дела, базовую степень или курсы после регистрации (Шелтон, 2016). Исследование показало, что треть учащихся испытывают неуверенность в себе, возникшую на более раннем этапе обучения, еще в начальной школе (Шелтон, 2016). Исследование пришло к выводу, что уверенность играет роль в расчетах доз и общей производительности математических расчетов и может быть улучшена в среде, которая способствует подходу глубокого обучения (Шелтон, 2016).
Клиническое значение
Лекарственные ошибки могут быть вредными и дорогостоящими для пациентов.[1] Расчет лекарств и базовые математические навыки играют важную роль в безопасном приеме лекарств.
Согласно исследованию медсестер интенсивной терапии (ОИТ), проведенному в 2016 году, 80 % медсестер считают, что знание расчета дозировки лекарств необходимо для уменьшения ошибок при приеме лекарств во время приготовления внутривенных препаратов.[2]
Лекарства с высоким риском, такие как гепарин и инсулин, часто требуют повторной проверки дозировки более чем одним поставщиком перед введением препарата. Следуйте установленным правилам и рекомендациям по перепроверке расчетов дозы другим лицензированным поставщиком.
Опубликованное в 2018 году исследование, проведенное группой медицинских сестер-онкологов в 3 швейцарских больницах, обсуждает процесс двойной проверки и его ограничения в текущей среде здравоохранения, а также повышенную рабочую нагрузку медсестер и нехватку времени, отвлекающую среду и нехватку ресурсов. Исследование пришло к выводу, что медсестры отделения онкологии твердо верят в эффективность перепроверки лекарств, несмотря на сообщения об ограничениях этой процедуры в клинической практике.
Улучшение результатов работы команды здравоохранения
Все члены межпрофессиональной группы несут ответственность за расчет дозы. Врачи, медсестры и фармацевты должны хорошо разбираться в желаемых формулах. Этот метод имеет неоценимое значение для правильного лечения пациентов.
Контрольные вопросы
Доступ к бесплатным вопросам с несколькими вариантами ответов по этой теме.