Masyvas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Jump to navigation Jump to search
Dviejų matmenų (dviejų indeksų) masyvas matricai ar lentelei saugoti. Šiame pavyzdyje indeksai prasideda nuo 1.

Masyvasduomenų struktūra, kurią sudaro daugelis vienodo tipo reikšmių (pamokų skaičius kiekvieną savaitės dieną, vektorius, matrica ir pan).[1] Tai viena pagrindinių struktūrų, būdinga beveik visoms paplitusioms programavimo kalboms. Giminingas matematinis terminas yra tenzorius.[2]

Masyvo komponentas, su kuriuo norima dirbti, nurodomas ne vardu, o kito, diskrečiojo duomenų tipo reikšme (indeksu). Indekso reikšmės gana dažnai (bet nebūtinai) esti neneigiami sveikieji skaičiai. Pavyzdžiui, daugelyje programavimo kalbų galima rašyti A[1] + A[2] – masyvo A pirmojo bei antrojo elementų suma. Indeksų gali būti daugiau nei vienas (pavyzdžiui, matricai reikalingi du: stulpelis ir eilutė).

Masyvo elementus galima naudoti kaip ir paprastus kintamuosius ir rašyti kairėje prieskyros sakinio pusėje. Jie gali būti ir funkcijų parametrai. Priskiriant vienam masyvui kitą (A := B), nukopijuojamos visos šiame esančios reikšmės. Masyvo elementai ne visada yra tik skaičiai: galimos įvairios duomenų struktūros, tarp jų ir kiti masyvai.

Kadangi masyvo elementai indeksuojami diskrečiojo duomenų tipo reikšmėmis, tai tų elementų gali būti labai daug, ir vis viena jiems perrinkti pakanka vos keleto programos kodo eilučių. Klasikine samprata, visi masyvo elementai turi būti to paties tipo, nes nėra prasmės ciklu perrinkti reikšmių, kurioms neegzistuoja koks nors bendras, kiekvienai reikšmei galimas veiksmas. Tačiau kai kuriose programavimo kalbose įmanomas polimorfizmas, kurį naudojant galima sukurti masyvą, kurio elementai yra skirtingų (bet kažkuria prasme suderinamų) tipų.

Šaltiniai[redaguoti | redaguoti vikitekstą]

  1. Gintautas Grigas. Programavimas Paskaliu. Elektroninė knyga. Darbas atliktas Atviros Lietuvos Fondui parėmus. originalas (nepasiekiamas). Archyvuota kopija 2009-08-14 iš Wayback Machine projekto.
  2. https://www.tensorflow.org/guide/tensor