Ad argvmentvm transi
Topos Uranos

Svmmarivm

Hactenvs qvodqve datvm cvrsvs in sva variabili vixit, cvm svo nomine; sed mvlta data eivsdem generis, vt temperatvrae vnivs hebdomadis, circvitv percvrri non possvnt, si qvodqve alivd nomen habet. Haec lectio primam strvctvram datorvm cvrsvs praebet, seqventiam indicatam: elementa eivsdem generis, in locis memoriae contigvis, a nihilo nvmerata. In C++ hodierno scribitvr per std::array, cvivs magnitvdo in compilatione fixa manet. Tractantvr eivs declaratio, genvs std::size_t indicvm et dvo percvrsvs, cvm indice et cvm for per intervallvm. Statvitvr regvla qvae totam partem regit: index validvs est si inter 0 et magnitvdinem minvs vnvm iacet, et in qvoqve accessv circvitvs haec validitas per invariantem ivstificatvr. Ostenditvr qvid accidat cvm non servatvr, qvod est modvs agendi indefinitvs, et [] cvm accessv examinato .at() comparatvr. Deniqve series C praebentvr, vt codex alienvs legi possit.

Proposita discendi

  1. std::array declarare, initialisare et percvrrere cvm indicibvs et cvm for per intervallvm.
  2. Per invariantem circvitvs ivstificare indicem in qvoqve accessv intra fines esse.
  3. Accessvm per [], qvem norma non examinat, ab accessv per .at(), qvi semper examinatvr, distingvere, et explicare qvando vterqve conveniat.
  4. Codicem cvm seriebvs C legere et earvm incommoda prae std::array explicare.

Seqventia indicata

Mvlta data, vnvm nomen

Vt media temperatvrarvm vnivs hebdomadis cvm iis qvae hactenvs docta svnt compvtetvr, septem variabiles reqvirerentvr, monday, tuesday et sic deinceps vsqve ad sunday, et svmma septem terminorvm. Cvm iis vnivs anni essent 365, nec vllvs circvitvs eas percvrrere posset, qvia in corpore circvitvs nomen variabilis semper idem est. Qvod deest est nomen pro vniverso et nvmervs pro qvoqve elemento, ita vt nvmervs variabilis esse possit qvam circvitvs promovet.

Seqventia indicata hoc ipsvm est: collectio nn elementorvm eivsdem generis, altervm post altervm in cellis memoriae contigvis condita, et per locvm svvm designata, qvi index vocatvr. Mathematica obiectvm novit: seqventiam finitam (a0,a1,…,an−1)(a_0, a_1, \dots, a_{n-1}), in qva aia_i elementvm loci ii designat, vel vectorem, sicvt eos cvrsvs Algebra et Geometria I. In C++ scribitvr a[i], et index qvaelibet expressio integra esse potest: 2, i, i + 1.

Cvr a nihilo

In C++, vt in plerisqve lingvis hodiernis, primvm elementvm indicem 0 habet, et vltimvm indicem n−1n - 1. Ratio non est conventio libidinosa, sed modvs qvo elementvm invenitvr: si seqventia in certa inscriptione memoriae incipit et qvodqve elementvm ss octetos occvpat, elementvm indicis ii in inscriptione initiali plvs i⋅si \cdot s iacet. Index igitvr est intervallvm ab initio: nvmervs elementorvm qvae a primo transilienda svnt. Primvm a se ipso nvllo saltv distat.

Ex hoc seqvitvr definitio qvae totam hanc partem regit: in seqventia nn elementorvm index ii validvs est si et solvm si 0≤i<n0 \leq i < n. Inaeqvalitas dextra stricta est, et fons est erroris freqventissimi in seqventiis, erroris vnivs: scribere i≤ni \leq n vbi i<ni < n scribendvm erat, vel a 1 incipere vbi a 0 incipiendvm erat. Index aeqvalis nn non vltimvm elementvm designat, sed cellam qvae seqventiam seqvitvr, qvae ad eam non pertinet.