Kartojimas yra proceso pakartojimas, siekiant sukurti rezultatų seką (galbūt neribotą), siekiant tikslo ar rezultato. Matematikos ar informatikos kontekste iteracija (kartu su susijusia rekursijos technika) yra standartinė algoritmų sudedamoji dalis.
Kompiuterių programavime iteracija, dar vadinama anglišku terminu loop, yra valdymo struktūra algoritme, kuris išsprendžia tam tikrą problemą, ir liepia kompiuteriui pakartotinai vykdyti nurodymų seką, paprastai iki įvykio. specifinės loginės sąlygos.
Svarbu pabrėžti, kad seka ir parinkimas sudaro vieną iš trijų pagrindinių struktūrų, skirtų algoritminiam konkrečios problemos sprendimui pagal Böhm-Jacopini teoremą. Yra kelios iteracijos formos; žinomiausi yra MENTRE, REPEAT ir PER. Galima sakyti, kad iteracija yra tvirta programavimo grandis, leidžianti automatizuoti proceso atlikimą, kurio nepakanka paprasčiausiai įvykdyti nurodymų seką.
Vadinamoji „begalinė kilpa“ yra kartojimo atvejis dėl programavimo klaidos, kuri sustabdo programos vykdymą, tuo tarpu kai kuriose programavimo technikose, ypač su mikrovaldikliais, ji naudojama sąmoningai, kad programos viduje būtų be galo kartojama.
Kuriant programinę įrangą, iteracija naudojama apibūdinti euristinį planavimo ir kūrimo procesą, kai programa kuriama mažose dalyse, vadinamose iteracijomis. Kiekvieną iteraciją peržiūri ir kritikuoja programinės įrangos komanda ir galimi galutiniai vartotojai; Įžvalgos, įgytos kritikuojant iteraciją, naudojamos nustatant kitą vystymosi žingsnį. Duomenų modeliai ar sekos diagramos, kurios dažnai naudojamos kartojant diagramas, seka tai, kas buvo išbandyta, patvirtinta ar atmesta, ir galiausiai yra tam tikras galutinio produkto planas.
Iteracinio vystymo iššūkis yra galimybė įsitikinti, kad visos iteracijos yra suderinamos. Patvirtinus kiekvieną naują iteraciją, kūrėjai gali naudoti techniką, vadinamą atgaline inžinerija, kuri yra sisteminga peržiūros ir patikrinimo procedūra, siekiant įsitikinti, kad kiekviena nauja iteracija yra suderinama su ankstesnėmis. Iteracinio kūrimo naudojimo pranašumas yra tas, kad kūrimo procese dalyvauja galutinis vartotojas. Užuot laukę, kol paraiška bus galutinis produktas, kai pokyčiai nėra lengvai įmanomi, problemos nustatomos ir sprendžiamos kiekviename kūrimo etape. Kartotinis vystymasis kartais vadinamas žiediniu arba evoliuciniu vystymusi.