Operatorovi u C++Vrste s primjerom

⚡ Pametni sažetak

Operatorovi u C++ su simboli koji izvode operacije na operandima, od aritmetike i usporedbe do logičkih, bitnih i radnji dodjeljivanja. Ovaj resurs objašnjava svaku kategoriju operatora s primjerima programa koji se mogu izvesti, izlazom i pravilima prioriteta koja određuju redoslijed evaluacije.

  • ➕ Aritmetika Operatorovi: Izvodite matematičke operacije kao što su zbrajanje, oduzimanjetraccija, množenje, dijeljenje, modul, povećanje i smanjenje numeričkih operanda.
  • ⚖️ Relacijski Operatorovi: Usporedite dva operanda koristeći provjere jednakosti i redoslijeda, vraćajući rezultat true ili false.
  • 🔗 logičan Operatorovi: Kombinirajte ili obrnite uvjete s I, ILI i NE kako biste kontrolirali odluke programa.
  • 🔢 Bitno Operatorovi: Operaizravno na pojedinačne bitove koristeći AND, OR, XOR, NOT i operacije pomicanja za brži rad niske razine.
  • 📝 Zadatak i ostalo Operatorovi: Dodijelite vrijednosti, plus sizeof, zarez i uvjetni operator, a svaki primjer je prikazan s izlaznim primjerom.
  • 📊 OperaPrioritet tor: Pravila prioriteta određuju koji se operator u složenom izrazu prvi procjenjuje.

Operatorovi u C++

Što su Operatorovi?

Operater je simbol koji se koristi za izvođenje operacija na operandima. Operator operira na operandima, a operacije mogu biti matematičke ili logičke. Postoje različite vrste operatora u C++ za izvođenje različitih operacija.

Razmotrite sljedeću operaciju:

a = x + y;

U gornjoj izjavi, x i y su operandi dok je + operator zbrajanja. Kada je C++ kompajler naiđe na gornju naredbu, zbrojit će x i y i pohraniti rezultat u varijablu a.

Vrste Operatorovi u C++

Postoje uglavnom 6 različitih vrsta operatora u C++:

  1. Aritmetika Operaulagatelji
  2. Relacijski Operaulagatelji
  3. logičan Operaulagatelji
  4. Bitno Operaulagatelji
  5. Raspored Operaulagatelji
  6. Ostalo Operaulagatelji

Počnimo s aritmetičkim operatorima, najčešće korištenom kategorijom.

Aritmetika Operaulagatelji

To su vrste operatora koji se koriste za izvođenje matematičkih/aritmetičkih operacija. Oni uključuju:

Operahumka Description
+ operator zbrajanja Dodaje dva operanda.
– podređenitracoperator cije ispodtracts 2nd operand od 1st operand.
* operator množenja Množi 2 operanda.
/ operator dijeljenja Dijeli brojnik nazivnikom.
% operator modula Vraća ostatak nakon dijeljenja.
++ operator povećanja Povećava vrijednost cijelog broja za 1.
— operator smanjenja Smanjuje vrijednost cijelog broja za 1.

Na primjer:

#include <iostream>
using namespace std;
int main() {
	int a = 11;
	int b = 5;
	int c;

	cout << "a + b is :" << a+b << endl; //11+5

	cout << "a - b is :" << a-b << endl; //11-5

	cout << "a * b is :" << a*b << endl; //11*5

	cout << "a / b is :" << a/b << endl; //11/5

	cout << "a % b is :" << a%b << endl; //11%5

	cout << "a++ is :" << a++ << endl; //11++

	cout << "a-- is :" << a-- << endl; //12--

	return 0;
}

Izlaz:

Aritmetika Operaulagatelji

Evo snimke zaslona koda:

Aritmetika Operaulagatelji

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Pozivanje funkcije main() unutar koje treba dodati logiku programa. { označava početak tijela funkcije main().
  4. Deklaracija cjelobrojne varijable a i njeno inicijaliziranje na 11.
  5. Deklaracija cjelobrojne varijable b i njeno inicijaliziranje na 5.
  6. Deklaracija cjelobrojne varijable c.
  7. Ispis vrijednosti operacije a+b uz ostali tekst na konzoli.
  8. Ispis vrijednosti operacije ab uz ostali tekst na konzoli.
  9. Ispis vrijednosti operacije a*b uz ostali tekst na konzoli.
  10. Ispis vrijednosti operacije a/b uz ostali tekst na konzoli.
  11. Ispis vrijednosti operacije a%b uz ostali tekst na konzoli.
  12. Ispis vrijednosti operacije a++ uz ostali tekst na konzoli.
  13. Ispis vrijednosti operacije a– uz ostali tekst na konzoli.
  14. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  15. Kraj tijela funkcije main().

Relacijski Operaulagatelji

Ove vrste operatora izvode usporedbe operanda. Na primjer, možda ćete morati znati koji je operand veći od drugog ili manji od drugog. Oni uključuju:

Operahumka Description
== jednako operatoru Provjerava jednakost dvaju vrijednosti operanda.
!= nije jednako operatoru Provjerava nejednakost vrijednosti dvaju operanda.
> veći od operatora Provjerava je li vrijednost lijevog operanda veća od vrijednosti desnog operanda.
< operator manje od Provjerava je li vrijednost lijevog operanda manja od vrijednosti desnog operanda.
>= veće od ili jednako operatoru Provjerava je li vrijednost lijevog operanda veća ili jednaka vrijednosti desnog operanda.
<= operator manje ili jednako Provjerava je li vrijednost lijevog operanda manja ili jednaka vrijednosti desnog operanda.

Na primjer:

#include <iostream>
using namespace std;

int main() {
	int a = 11;
	int b = 5;

	cout << "a=11, b=5" << endl;
	if (a == b) {
		cout << "a == b is true" << endl;
	}
	else {
		cout << " a == b is false" << endl;
	}

	if (a < b) {
		cout << "a < b is true" << endl;
	}
	else {
		cout << "a < b is false" << endl;
	}

	if (a > b) {
		cout << "a > b is true" << endl;
	}
	else {
		cout << "a > b is false" << endl;
	}

	return 0;
}

Izlaz:

Relacijski Operaulagatelji

Evo snimke zaslona koda:

Relacijski Operaulagatelji

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. Deklaracija cjelobrojne varijable a i njeno inicijaliziranje na 11.
  5. Deklaracija cjelobrojne varijable b i njeno inicijaliziranje na 5.
  6. Ispis nekog teksta na konzoli koji navodi vrijednosti varijabli a i b.
  7. Provjera je li a jednak b korištenjem if naredbe za donošenje odluka.
  8. Tekst koji će se ispisati na konzoli ako je operacija a==b istinita.
  9. Dio else gornje if naredbe, koji navodi što učiniti ako je a==b lažno.
  10. Tekst koji će se ispisati na konzoli ako je operacija a==b netočna.
  11. Provjera je li a manji od b korištenjem if naredbe.
  12. Tekst koji će se ispisati na konzoli ako je operacija a
  13. Dio else za kada a
  14. Tekst koji će se ispisati na konzoli ako je operacija a
  15. Provjera je li a veći od b pomoću if naredbe.
  16. Tekst koji će se ispisati na konzoli ako je operacija a>b istinita.
  17. Dio else za slučaj kada je a>b netočno.
  18. Tekst koji će se ispisati na konzoli ako je operacija a>b netočna.
  19. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  20. Kraj tijela funkcije main().

logičan Operaulagatelji

The logički operatori kombiniraju dva ili više ograničenja/uvjeta. Logički operatori također nadopunjuju procjenu izvornog uvjeta koji se razmatra. Oni uključuju:

Operahumka Description
&& logički operator I Uvjet je istinit ako su oba operanda različita od nule.
|| logički ILI operator Uvjet je istinit ako jedan od operanda nije nula.
logički operator NE! Obrće logičko stanje operanda. Ako je operand istinit, operator ! ga pretvara u neistinit.

Na primjer:

#include <iostream>
using namespace std;
int main()
{
	int a = 5, b = 2, c = 6, d = 4;
	if (a == b && c > d)
		cout << "a equals to b AND c is greater than d\n";
	else
		cout << "AND operation returned false\n";

	if (a == b || c > d)
		cout << "a equals to b OR c is greater than d\n";
	else
		cout << "Neither a is equal to b nor c is greater than d\n";

	if (!b)
		cout << "b is zero\n";
	else
		cout << "b is not zero";

	return 0;
}

Izlaz:

logičan Operaulagatelji

Evo snimke zaslona koda:

logičan Operaulagatelji

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. { označava početak tijela funkcije main().
  5. Deklariranje 4 cjelobrojne varijable a, b, c i d te dodjeljivanje istih različitim vrijednostima.
  6. Korištenje operatora && (AND) unutar if naredbe. Spaja dva uvjeta. Prvi uvjet je lažan, a drugi je istinit, pa je false&&true lažno; ishod if naredbe je lažan.
  7. Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo se neće izvršiti.
  8. Dio koji se izvršava ako je gornja if naredba lažna.
  9. Tekst za ispis na konzoli ako je naredba if lažna. Ovo će biti izvršeno.
  10. Korištenje operatora || (ILI) unutar if naredbe. Prvi uvjet je lažan, a drugi je istinit, pa je lažno||istinito istinito; ishod if naredbe je istinit.
  11. Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo će se izvršiti.
  12. Dio koji se izvršava ako je gornja if naredba lažna.
  13. Tekst za ispis na konzoli ako je naredba if lažna. Ovo se neće izvršiti.
  14. Provjerava se je li vrijednost varijable b jednaka 0.
  15. Tekst koji će se ispisati u konzoli ako je gornja if naredba istinita. Ovo se neće izvršiti.
  16. Dio koji se izvršava ako je gornja if naredba lažna.
  17. Tekst za ispis na konzoli ako je naredba if lažna. Ovo će biti izvršeno.
  18. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  19. Kraj tijela funkcije main().

Bitno Operaulagatelji

Bitni operatori izvode operacije na razini bitova nad operandima. Prvo se operandi pretvaraju na razinu bitova, a zatim se izvode operacije. Kada se aritmetičke operacije poput zbrajanja i oduzimanjatracAko se radnje obavljaju na razini bita, rezultati se mogu postići brže. Uključuju:

Operahumka Description
& (bitovno I) Uzima 2 broja (operanda), a zatim izvršava I na svakom bitu ta dva broja. Ako su oba 1, I vraća 1, inače 0.
| (bitno ILI) Uzima 2 broja (operanda), a zatim izvodi ILI na svakom bitu ta dva broja. Vraća 1 ako je jedan od bitova 1.
^ (bitni XOR) Uzima 2 broja (operanda), a zatim izvodi XOR na svakom bitu 2 broja. Vraća 1 ako su oba bita različita.
<< (pomak ulijevo) Uzima dva broja, a zatim pomiče bitove prvog operanda ulijevo. Drugi operand određuje ukupan broj mjesta za pomicanje.
>> (desni pomak) Uzima dva broja, a zatim pomiče bitove prvog operanda udesno. Drugi operand određuje broj mjesta za pomicanje.
~ (bitno NE) Uzima broj, a zatim invertira sve njegove bitove.
#include <iostream>
using namespace std;

int main() {
	unsigned int p = 60;	  // 60 = 0011 1100
	unsigned int q = 13;	  // 13 = 0000 1101
	int z = 0;

	z = p & q;
	cout << "p&q is : " << z << endl; // 12 = 0000 1100

	z = p | q;
	cout << "p|q is : " << z << endl; // 61 = 0011 1101

	z = p ^ q;
	cout << "p^q is : " << z << endl; // 49 = 0011 0001

	z = ~p;
	cout << "~p is : " << z << endl; // -61 = 1100 0011

	z = p << 2;
	cout << "p<<2 is: " << z << endl; // 240 = 1111 0000

	z = p >> 2;
	cout << "p>>2 is : " << z << endl; // 15 = 0000 1111

	return 0;
}

Izlaz:

Bitno Operaulagatelji

Evo snimke zaslona koda:

Bitno Operaulagatelji

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. Deklarisanje neoznačene cjelobrojne varijable p i dodjeljivanje joj vrijednosti 60, što je binarno 0011 1100.
  5. Deklarisanje neoznačene cjelobrojne varijable q i dodjeljivanje joj vrijednosti 13, što je binarno 0000 1101.
  6. Deklaracija cjelobrojne varijable z i njeno inicijaliziranje na 0.
  7. Izvođenje bitovne & (AND) operacije na varijablama p i q i pohranjivanje rezultata u varijablu z.
  8. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  9. Izvođenje bitova | (ILI) operacija na varijablama p i q i pohranjivanje rezultata u varijablu z.
  10. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  11. Izvođenje bitne operacije ^ (XOR) na varijablama p i q i pohranjivanje rezultata u varijablu z.
  12. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  13. Izvođenje bitovne ~ (NOT) operacije na varijabli p i pohranjivanje rezultata u varijablu z.
  14. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  15. Izvođenje operacije lijevog pomaka na varijabli p i pohranjivanje rezultata u varijablu z.
  16. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  17. Izvođenje operacije desnog pomaka na varijabli p i pohranjivanje rezultata u varijablu z.
  18. Ispis rezultata gornje operacije na konzoli uz ostali tekst.
  19. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  20. Kraj tijela funkcije main().

Raspored Operaulagatelji

Operatori dodjele dodijeliti vrijednosti varijablama. Operand/varijabla se dodaje na lijevu stranu operatora, dok se vrijednost dodaje na desnu stranu. Varijabla i vrijednost moraju pripadati istom tipu podataka, inače C++ kompajler će izbaciti grešku.

Na primjer:

x = 5;

U gornjem primjeru, x je varijabla/operand, = je operator dodjeljivanja, dok je 5 vrijednost. Evo popularnih operatora dodjeljivanja u C++:

Operahumka Description
= (jednostavni operator dodjele) Dodjeljuje vrijednost s desne strane varijabli s lijeve strane.
+= (Dodaj I operator dodjele) Dodaje vrijednost desnog operanda lijevom operandu, zatim dodjeljuje rezultat varijabli s lijeve strane.
-= (Podtracoperator dodjeljivanja t I) ispodtracts uzima vrijednost desnog operanda iz lijevog operanda, a zatim rezultat dodjeljuje varijabli s lijeve strane.
*= (Operator množenja I dodjele) Množi vrijednost lijevog operanda s desnim operandom, zatim dodjeljuje rezultat varijabli s lijeve strane.
/= (operator dijeljenja I dodjele) Dijeli vrijednost lijevog operanda desnim operandom, zatim dodjeljuje rezultat varijabli s lijeve strane.

Na primjer:

#include <iostream>
using namespace std;
int main()
{
	int x = 5;
	cout << "Initial value of x is " << x << "\n";

	x += 5;
	cout << "x += 5 gives :" << x << "\n";

	x -= 5;
	cout << "x -= 5 gives : " << x << "\n";

	x *= 5;
	cout << "x *= 5 gives :" << x << "\n";

	x /= 5;
	cout << "x /= 5 gives : " << x << "\n";

	return 0;
}

Izlaz:

Raspored Operaulagatelji

Evo snimke zaslona koda:

Raspored Operaulagatelji

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. { označava početak tijela funkcije main().
  5. Deklaracija cjelobrojne varijable x i dodjeljivanje vrijednosti 5.
  6. Ispis vrijednosti varijable x uz ostali tekst u konzoli. \n je znak za novi redak.
  7. Dodavanje 5 vrijednosti varijable x i dodjeljivanje rezultata varijabli x.
  8. Ispis vrijednosti varijable x na konzoli uz ostali tekst.
  9. ispodtracIzračunavanje 5 iz vrijednosti x i dodjeljivanje rezultata varijabli x.
  10. Ispis vrijednosti varijable x na konzoli uz ostali tekst.
  11. Množenje vrijednosti varijable x s 5 i dodjeljivanje rezultata varijabli x.
  12. Ispis vrijednosti varijable x na konzoli uz ostali tekst.
  13. Dijeljenje vrijednosti varijable x s 5 i dodjeljivanje rezultata varijabli x.
  14. Ispis vrijednosti varijable x na konzoli uz ostali tekst.
  15. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  16. Kraj tijela funkcije main().

Ostalo Operaulagatelji

Ostalo Operaulagatelji uključuju operator sizeof, zarez Operator, Kondicional Operator, i OperaPrioritet operatora. Razmotrimo ostale operatore koje podržava C++:

operator sizeof

Ovaj operator određuje veličinu varijable. Za određivanje veličine podatkovnog tipa koristite operator sizeof.

Na primjer:

#include <iostream>
using namespace std;
int main() {
	cout<<"Size of int : "<< sizeof(int) << "\n";

	cout<<"Size of char : " << sizeof(char) << "\n";

	cout<<"Size of float : " << sizeof(float) << "\n";

	cout<<"Size of double : " << sizeof(double) << "\n";

	return 0;
}

Izlaz:

operator sizeof

Evo snimke zaslona koda:

operator sizeof

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. Određivanje veličine cjelobrojnog tipa podataka pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
  5. Određivanje veličine podatkovnog tipa znak pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
  6. Određivanje veličine podatkovnog tipa float pomoću operatora sizeof i ispis uz ostali tekst na konzoli.
  7. Određivanje veličine podatkovnog tipa double pomoću operatora sizeof i ispisivanje uz ostali tekst u konzoli.
  8. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  9. Kraj tijela funkcije main().

Zarez Operahumka

The operator zarez (,) pokreće izvođenje niza operacija. Izražava prvi operand i odbacuje rezultat. Zatim procjenjuje drugi operand i vraća vrijednost i tip.

#include <iostream>
using namespace std;
int main() {
	int x, y;
	y = 100;
	x = (y++, y + 10, 99 + y);
	cout << x;
	return 0;
}

Izlaz:

Zarez Operahumka

Evo snimke zaslona koda:

Zarez Operahumka

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. Deklaracija dviju cjelobrojnih varijabli x i y.
  5. Dodjeljivanje varijabli ya vrijednosti 100.
  6. Korištenje operatora zareza. Počinje s y na 100, zatim se povećava na 101 (y++). Zatim se y dodaje 10. Konačno, y, još uvijek na 101, dodaje se 99, dajući 200. x je sada 200.
  7. Ispis vrijednosti varijable x na konzolu.
  8. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  9. Kraj tijela funkcije main().

kondicional Operahumka

Ovaj operater procjenjuje stanje i djeluje na temelju rezultata procjene.

Sintaksa:

Condition ? Expression2 : Expression3;

Parametri:

  • Uvjet je uvjet koji treba ocijeniti.
  • Izraz2 je izraz koji se izvršava ako je uvjet istinit.
  • Izraz3 je izraz koji se izvršava ako je uvjet lažan.

Na primjer:

#include <iostream>
using namespace std;
int main() {
	int a = 1, b;
	b = (a < 10) ? 2 : 5;
	cout << "value of b: " << b << endl;
	return 0;
}

Izlaz:

kondicional Operahumka

Evo snimke zaslona koda:

kondicional Operahumka

Code Objašnjenje:

  1. Uključivanje iostream datoteke zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
  2. Uključivanje std imenskog prostora kako bi se njegove klase i funkcije koristile bez pozivanja.
  3. Poziv main() funkcije unutar koje treba dodati logiku programa.
  4. Proglašavanje dva cjelobrojne varijable a i b. Varijabli a dodijeljena je vrijednost 1.
  5. Dodjeljivanje vrijednosti varijabli b. Ako je varijabla a manja od 10, b će dobiti vrijednost 2, inače će b dobiti vrijednost 5.
  6. Ispis vrijednosti varijable b na konzoli uz ostali tekst.
  7. Funkcija main() trebala bi vratiti vrijednost ako program dobro radi.
  8. Kraj tijela funkcije main().

Operatorovi Prednost

Jedna operacija može imati više od jednog operatora. U tom slučaju prednost operatora određuje onaj koji se prvi procjenjuje.

Sljedeći popis prikazuje prvenstvo operatora in C++, sa opadajućim prioritetom s lijeva na desno:

(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=

Pitanja i odgovori

Pomoćnici za kodiranje umjetne inteligencije mogu predložiti ispravan operator, objasniti prioritet i označiti pogreške poput miješanja = s ==. Ubrzavaju učenje, ali samostalno razumijevanje ponašanja operatora ostaje ključno za pisanje pouzdanog koda.

Ne. Alati umjetne inteligencije mogu formatirati i pregledavati izraze, ali prioritet izravno utječe na izlaz programa. Poznavanje prioriteta pomaže vam da čitate kod, otklanjate logičke pogreške i pišete izraze koji se ponašaju točno onako kako je predviđeno.

OperaPreopterećenje operatora Tor omogućuje vam redefiniranje načina rada operatora za korisnički definirane tipove kao što su klase. Na primjer, možete preopteretiti operator + kako biste dodali dva objekta, dajući prilagođenim tipovima intuitivno ponašanje slično ugrađenima.

Prefiks (++i) prvo povećava vrijednost, a zatim je vraća. Postfiks (i++) prvo vraća trenutnu vrijednost, a zatim je povećava. Razlika je bitna kada se povećanje koristi unutar većeg izraza.

Operator = dodjeljuje vrijednost varijabli, dok operator == uspoređuje dvije vrijednosti radi jednakosti i vraća true ili false. Korištenje znaka = unutar uvjeta greškom je česta greška.

Sažmite ovu objavu uz: