Pređi na sadržaj

Inkrement

S Vikipedije, slobodne enciklopedije

Inkrement je fiksno ili promenljivo povećanje neke vrednosti. Na primer, plata se može fiksno povećavati na godišnjem nivou, ili se može promenljivo povećavati (procentualno u odnosu na trenutnu vrednost). Smanjenje neke vrednosti se naziva dekrement.

Inkrement se takođe može odnositi i na postepenu promenu, a ne samo na trenutnu promenu.

Upotreba u nauci i tehnici[uredi | uredi izvor]

Inkrementalne promene su postepena poboljšanja nasuprot revolucionarnim promenama. Na primer, pronalazak unutrašnje gume je bio samo inkrementalna promena u konstrukciji točka, dok je pronalazak motora sa unutrašnjim sagorevanjem bila revolucionarna promena u odnosu na vozila koja su pokretale životinje.

Upotreba u programskim jezicima[uredi | uredi izvor]

Inkrementiranje je u stalnoj upotrebi u programiranju, kao na primer u petljama koje iteriraju kroz neki skup.

Na primer, u Javaskript jeziku, koji je preuzeo sličnu sintaksu od jezika poput C-a, C++-a ili Jave, unarni operator za inkrement je:

x++

Operator za dekrement je:

x--

Kao dodatak ovome, operator za inkrement se može pisati i kao x++ i kao ++x, ali sa različitim značenjima. Na primer:

 var y = ++x

je poznat kao preinkrement, skraćeno za:

 x = x+1
 var y = x

dok je,

var y = x++

poznat kao postinkrement, skraćeno za:

 var y = x
 x = x+1

--x (predekrement) takođe ima različito značenje od x-- (postdekrement), a oba prate istu logiku značenja kao i kod operatora za inkrementiranje.

Neki jezici, kao C i C++ ne specificiraju kada se inkrementiranje dešava, da li pre ili posle upotrebe, pre ili posle cele naredbe, ili pak negde između. Zbog ovoga, upotreba operatora za inkrementiranje (ili dekrementiranje) nad istom promenljivom u istoj naredbi rezultuje u nepredvidljivom ponašanju. Isti izvorni kod tada može dati različite rezultate kada se kompajlira različitim kompajlerima, ili na različitim arhitekturama, ili čak na istom kompajleru sa različitim optimizacionim podešavanjima. Na primer,

int x = 0
x = x++

može dovesti do toga da x ima različite vrednosti, 0 ili 1, zavisno od kompajlera. Slično tome,

int x = 0
int y = x++ + x++

može dovesti do toga da y može dobiti vrednosti 0 ili 1 ili čak i 2.

U C++-u ugnežđeni operator za inkrementiranje je dozvoljen, ali samo za preinkrementiranje i nije primenljiv na operator dekrementiranja.

         Нпр.: int x = 0;
             ++(++x); је дозвољено али (x++)++, --(--x) или (x--)-- није могуће.