Унарна операция: Разлика между версии
м меп |
спасено микро |
||
Ред 1: | Ред 1: | ||
'''Унарна операция''' в [[математика]]та се нарича [[математическа операция|операция]] с единствен операнд, или с други думи, [[функция]] над един аргумент. |
|||
{{микромъниче|09:04, 30 октомври 2008 (UTC)}} |
|||
'''Унарна операция''' се нарича операция, която има само един аргумент. |
|||
За означение на унарните операции се използват различни нотации: |
|||
* префиксна нотация: например [[отрицание|''-n'' или ''¬p'']] |
|||
* постфиксна нотация: например [[факториел|''n!'']], [[степен (математика)|''n<sup>2</sup>'']] |
|||
* функционална нотация: например [[синус|''sin x'' или ''sin(x)'']], [[абсолютна стойност|''mod x'' или |''x''| ]], [[натурален логаритъм|''ln x'']], [[десетичен логаритъм|''log x'']] |
|||
* други: например [[радикал (математика)|√, „втори корен“]]. |
|||
Тъй като унарните операции имат само един операнд, те се оценяват приоритетно пред останалите операции, които ги съдържат. Например при следния запис: |
|||
3 − −2 |
|||
първият минус представлява [[бинарна операция|бинарната операция]] „[[изваждане]]“, а вторият минус — унарната операция „отрицание“. Следователно, първо се оценява унарната операция. По-ясно записано, в скоби, същото изглежда така: |
|||
3 − (−2) = 3 + 2 = 5 |
|||
При радикалите няма нужда от скоби, понеже хоризонталната черта се простира над целия израз и играе роля на своеобразни скоби. |
|||
== Унарни операции в програмирането == |
|||
Във фамилията от програмни езици, базирани на [[C |C]], следните оператори са унарни: |
|||
* Инкрементиране (нарастване с единица): <code>++x</code>, <code>x++</code> |
|||
* Декрементиране (намаляване с единица): <code>−−x</code>, <code>x−−</code> |
|||
* Адрес на променливата в паметта: <code>&x</code> |
|||
* Стойност, съдържаща се на адреса, който указателят сочи: <code>*x</code> |
|||
* Положително число: <code>+x</code> |
|||
* Отрицателно число: <code>−x</code> |
|||
* Побитово отрицание (инверсия, допълване до 1): <code>~x</code> |
|||
* Логическо отрицание: <code>!x</code> |
|||
* Размер на операнда в байтове: <code>sizeof x</code>, <code>sizeof(type-name)</code> |
|||
* Преобразуване на типа данни: <code>(type-name) cast-expression</code> |
|||
В повечето програмни езици, операторите за инкрементиране и декрементиране могат да бъдат както с префиксна, така и с постфиксна форма, което има значение при работа с променливи. При префиксен запис, стойността на променливата първо се увеличава (или намалява) с единица и после се използва като аргумент на функцията, а при постфиксен запис, извиканата функция използва заварената стойност на променливата и след това тази стойност се увеличава (намалява). |
|||
Следват два примера, при които оценяването на целочислените аргументи се извършва отляво надясно. |
|||
; Пример 1 |
|||
int i = 0; |
|||
printf (" %d \n %d ", i++, i++); |
|||
Изход: |
|||
0 |
|||
1 |
|||
; Пример 2 |
|||
int i = 0; |
|||
printf (" %d \n %d ", ++i, ++i); |
|||
Изход: |
|||
1 |
|||
2 |
|||
Оператори за инкрементиране и декрементиране обикновено се използват във [[For-цикъл|For-циклите]]. |
|||
{{Превод от|en|Unary operation|248904819}} |
|||
[[Категория:Алгебра]] |
|||
[[Категория:Програмиране]] |
|||
[[ar:عملية أحادية]] |
[[ar:عملية أحادية]] |
Версия от 17:15, 4 ноември 2008
Унарна операция в математиката се нарича операция с единствен операнд, или с други думи, функция над един аргумент.
За означение на унарните операции се използват различни нотации:
- префиксна нотация: например -n или ¬p
- постфиксна нотация: например n!, n2
- функционална нотация: например sin x или sin(x), mod x или |x| , ln x, log x
- други: например √, „втори корен“.
Тъй като унарните операции имат само един операнд, те се оценяват приоритетно пред останалите операции, които ги съдържат. Например при следния запис:
3 − −2
първият минус представлява бинарната операция „изваждане“, а вторият минус — унарната операция „отрицание“. Следователно, първо се оценява унарната операция. По-ясно записано, в скоби, същото изглежда така:
3 − (−2) = 3 + 2 = 5
При радикалите няма нужда от скоби, понеже хоризонталната черта се простира над целия израз и играе роля на своеобразни скоби.
Унарни операции в програмирането
Във фамилията от програмни езици, базирани на C, следните оператори са унарни:
- Инкрементиране (нарастване с единица):
++x
,x++
- Декрементиране (намаляване с единица):
−−x
,x−−
- Адрес на променливата в паметта:
&x
- Стойност, съдържаща се на адреса, който указателят сочи:
*x
- Положително число:
+x
- Отрицателно число:
−x
- Побитово отрицание (инверсия, допълване до 1):
~x
- Логическо отрицание:
!x
- Размер на операнда в байтове:
sizeof x
,sizeof(type-name)
- Преобразуване на типа данни:
(type-name) cast-expression
В повечето програмни езици, операторите за инкрементиране и декрементиране могат да бъдат както с префиксна, така и с постфиксна форма, което има значение при работа с променливи. При префиксен запис, стойността на променливата първо се увеличава (или намалява) с единица и после се използва като аргумент на функцията, а при постфиксен запис, извиканата функция използва заварената стойност на променливата и след това тази стойност се увеличава (намалява).
Следват два примера, при които оценяването на целочислените аргументи се извършва отляво надясно.
- Пример 1
int i = 0; printf (" %d \n %d ", i++, i++);
Изход:
0 1
- Пример 2
int i = 0; printf (" %d \n %d ", ++i, ++i);
Изход:
1 2
Оператори за инкрементиране и декрементиране обикновено се използват във For-циклите.
Тази страница частично или изцяло представлява превод на страницата Unary operation в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.
ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни. |