Svmmarivm
Haec lectio septimam partem cvrsvs aperit, textvi et plicis dedicatam. Explicat ad qvid pars valeat: ad docendvm qvomodo textvs vt datvm tractetvr, cvm sva codificatione vera, et qvomodo programma plicas legat et scribat neqve introitv male formato frangatvr; qvattvor eivs lectiones et filvm qvo conivngvntvr praebet; in memoriam revocat qvae pars pro cognitis habet, praesertim characterem machinae nvmervm esse, et vectores, tabvlaria et fvnctiones partivm 5 et 6; qvaestionem qvam pars solvit formvlat, programmatis specie recti qvod data sine monitione amittit, in primo versv inexspectato consistit et nomina cvm accentibvs perperam metitvr; praemonet litteram non semper vnvm octetvm occvpare; et ostendit qvo dvcat, in parte 8 et in cvrsv Programmatio Lingva C++ II.
Proposita discendi
- Seriem argvmentorvm partis describere et explicare qvid qvaeqve lectio seqventi conferat.
- Repraesentationem charactervm per codices nvmericos in memoriam revocare (lectio 2.4) et codicem binarie et hexadecimaliter scribere.
- Exemplo praemonere litteram non semper octetvm esse, et ideo octetos nvmerare non esse litteras nvmerare.
- Agnoscere qvid in fine partis facere scire exspectetvr, idqve distingvere ab eo qvod in parte seqventi et in Programmatione Lingva C++ II discetvr.
Probatio initialis
Anteqvam pars percvrritvr, initivm ipsvm metiri expedit. Haec probatio est svi ipsivs exploratio: nvlli censvrae svbicitvr, et solvm eivs propositvm est stvdivm dirigere. Sex primae qvaestiones examinant qvae pars pro cognitis habet: codicem characteris, scriptionem nvmeri binariam et hexadecimalem, larvam bitorvm, percvrsionem vectoris qvae elementa eivs seligit, qvid accidat cvm lectvra litteras pro nvmero accipit, et definitionem tabvlarii. Qvattvor seqventes ordine lectionvm ideas praecipvas partis attingvnt: qvid reddat qvaesitio qvae nihil invenit, magnitvdinem vocabvli cvm accentv, versvm vacvvm qvi apparet cvm dvo modi legendi miscentvr, et plicam qvae aperiri non potvit. Nemo has qvattvor iam recte solvere cogitvr, et in nonnvllis earvm «nondvm scio» responsio honesta est: qvaeqve responsio, recta vel non, rem explicat et lectionem nominat qvae eam tractat. Eaedem facvltates in fine itervm metivntvr, in lectione synthesis.
Antequam vnitatem incipias, pvnctvm vnde proficisceris metire. Brevis est sui ipsivs probatio: non aestimatvr, et eivs exitvs in solo tvo navigatro servatvr.
Qvaestio 1Ex vnitatibvs prioribvsQvid scribit
std::println("{:d} {:d}", 'A', 'a');?Pvtat minvscvlas statim maivscvlas seqvi; inter vtrasqve 32 codices svnt, cvm nonnvllis signis in medio.Ignorat{:d}codicem postvlare; sine eostd::printlnlitteram scriberet.Ordinem invertit: in ASCII maivscvlae codices minores habent qvam minvscvlae.charnvmervm servat, codicem characteris, et{:d}ivbet hvnc nvmervm scribi, non litteram. In ASCII maivscvlae a 65 incipivnt et minvscvlae a 97: distantia est 32, vnvm solvm bitvm. Lectio Textvs non est ASCII hinc proficiscitvr vt explicet qvid litteris accidat qvae in ASCII non svnt.Repete: Characteres, valores Booleani, conversiones et constantes
Qvaestio 2Ex vnitatibvs prioribvsQvomodo 233 binarie et hexadecimaliter scribitvr?
Qvattvor bita infima male congregat:1001est 9, non 1.Bita retrorsvm legit, a minime significante ad maxime significans.Scriptionem hexadecimalem cvm decimali confvndit.. Qvaterni a dextra congregati, bita1110et1001svnt 14 et 9, id esteet9. Hic est codex litterae «é», et pars ostendet in plica textvs hodierna hvnc codicem non vt vnvm octetvme9servari, sed vt dvos.Qvaestio 3Ex vnitatibvs prioribvsQvantvm valet
0xB1 & 0xC0?Confvndit&cvm|: operatio «vel» per bit bita svprema accendit pro eis seligendis.Pvtat larvam nihil mvtare; sex bita infima exstingvit.Confvndit&cvm^, operatione «vel exclvsivvm».0xB1est10110001et0xC0est11000000: operatio «et» per bit sola dvo bita svprema ipsivs0xB1servat, qvae svnt10. Haec est larva qva lectio Textvs non est ASCII vtitvr vt octetos agnoscat qvi litteram continvant.Repete: Bit et bibliotheca mathematica
Qvaestio 4Ex vnitatibvs prioribvsQvid scribit
std::vector<int> v{4, 7, 10, 3}; std::vector<int> w{}; for (const int x : v) { if (x % 2 == 0) { w.push_back(x); } } std::println("{}", w);?Condicionem invertit:x % 2 == 0vera est pro paribvs.Pvtatpush_backtotvm vectorem exscribere, vel selectionem invfieri etvscribi.Pvtatpush_backin initio addere; in fine addit.Circvitvsvpercvrrit et inwsolos pares exscribit, eo ordine qvo apparent;vnon mvtatvr. Pars eodem schemate in textv vtitvr: octetos catenae percvrrere et nonnvllos retinere, vel versvs plicae percvrrere et validos retinere.Repete: Vectores
Qvaestio 5Ex vnitatibvs prioribvsPost
int n{-1}; std::cin >> n;vsorabcscribit. Qvantvm valetn, et qvid lectvris seqventibvs accidit?Pvtat lectvram irritam nvllvm vestigivm relinqvere; relinqvit in variabili et in statv flvxvs.Pvtat C++ de introitv invalido monere; programma pergit qvasi lectvra bene cessisset.Lectvram nvmeri integri cvm lectvra characteris confvndit.Lectvra spatia transilit, litteram invenit qvae nvmervm incipere non potest et deficit: norma statvit variabilem 0 accipere, litteram in flvxv manere et flvxvm in errore manere, sine vllo nvntio. Lectio Bene legere docet hanc defectionem a fine datorvm distingvere et ab ea se recipere.Repete: Introitvs, exitvs et errores
Qvaestio 6Ex vnitatibvs prioribvsQvae ex definitionibvs seqventibvs tabvlarivm cvm titvlo et anno recte declarat?
Pvnctvm et virgvlam post vncvm clavdentem obliviscitvr, primvm errorem eorvm qvi tabvlaria scribvnt; compilator evm accvrate indicat.Campos virgvlis separat, sicvt elementa indicis; qvisqve campvs declaratio est et pvncto et virgvla finitvr.Tabvlarivm, cvm campis nominatis diversorvm genervm, cvm vectore confvndit, cvivs elementa omnia eivsdem generis svnt.Qvisqve campvs vt variabilis declaratvr, cvm genere svo, nomine svo et valore initiali inter vncos cvrvos, et definitio pvncto et virgvla post vncvm clavdentem finitvr. Lectio Plicae textvs vectores tabvlariorvm hvivsmodi versibvs plicae implet.Repete: Tabvlaria
Qvaestio 7Si
seststd::string s{"casa azul"};, qvid reddits.find("x")?Haec est conventio aliarvm lingvarvm;std::size_tsigno caret, et-1in id genvs conversvm est ipsvmnpos, sed resvltatvm cvm-1comparare solvm propter hanc conversionem fvngitvr et monitvm compilatoris gignit.«Non inventvm» cvm positione 0 confvndit, qvae est occvrsvs in initio catenae.Responsio honesta est: lectio 7.1findetnpospraebet.findpositionem reddit, generisstd::size_t, et cvm nihil invenit valorem reddit qvem nvlla positio habere potest:npos, qvi cvm 64 bitis valet . Lectio Catenae charactervm docet evm semper expresse comparare.Repete: Catenae charactervm
Qvaestio 8Qvid scribit
std::println("{}", std::string{"año"}.size());in programmate inUTF-8servato, sicvt ea hvivs cvrsvs?Litteras nvmerat;sizeoctetos nvmerat qvibvs scriptae svnt.Pvtat omnem litteram dvos octetos occvpare; litterae ASCII singvlos occvpant.Responsio honesta est: lectio 7.2 id octetvm per octetvm explicat.sizeoctetos nvmerat, non litteras: in vocabvlo Hispanico «año» (annvs) «a» et «o» singvlos occvpant, et «ñ», qvae in ASCII non est, inUTF-8dvos occvpat. Lectio Textvs non est ASCII explicat cvr, et docet litteras nvmerare.Repete: Textvs non est ASCII
Qvaestio 9Programma
int age{}; std::string name{}; std::cin >> age; std::getline(std::cin, name);exseqvitvr, et vsor36scribit, clavem Enter premit,Anascribit et clavem Enter premit. Qvid innamemanet?Pvtatgetlinein versv seqventi incipere; incipit vbi>>constitit.Pvtatgetlineitervm legere qvod>>iam consvmpsit.Responsio honesta est: lectio 7.3 ab hoc vitio incipit.>>36 legit et in flvxv saltvm lineae relinqvit qvi evm seqvebatvr;std::getlinevsqve ad primvm saltvm lineae legit, qvi est ille, et reddit qvod ante erat: nihil. Lectio Bene legere id explicat et perstd::wsvitat.Repete: Bene legere
Qvaestio 10Programma
std::ifstream in{"data.txt"}; int x{-1}; in >> x;exseqvitvr, seddata.txtnon exstat in receptacvlo ex qvo programma agitvr. Qvid accidit?Pvtat plicam non exstantem aperire errorem esse qvem C++ nvntiet; programma sine monitione pergit.Aperitionem ad legendvm cvm aperitione ad scribendvm confvndit, qvae plicam revera creat.Responsio honesta est: lectio 7.4 ab hac inspectione incipit.Plicam aperire deficere potest, et defectio solvm flvxv interrogando videtvr: ideoif (!in)ante lectvram scribitvr. Lectio Plicae textvs hanc inspectionem regvlam facit et explicat a qvo receptacvlo qvaesitio pendeat.Repete: Plicae textvs
Argvmentvm oneratvr…