Svmmarivm
Haec lectio secvndam cvrsvs partem aperit, datis eorvmqve generibvs dedicatam. Explicat ad qvid pars valeat: docere omne datvm programmatis in memoria versari cvm genere qvod statvit qvos valores accipere possit, qvantvm loci occvpet et qvas operationes admittat, et hos fines consecvtiones observabiles habere; qvattvor eivs lectiones exhibet et filvm qvo nectvntvr, a variabili vt cella cvm nomine et valore vsqve ad conversiones inter genera et constantes; in memoriam revocat qvae pars ex prima pro cognitis habet, id est programma qvod legit et scribit scribere, compilare et exseqvi; qvaestionem qvam pars solvit proponit, programmatis specie recti cvivs calcvli cvm mathematicis non congrvvnt, initio facto a svmma , qvae in compvtatro non exacte efficit; et ostendit qvo dvcat, in partibvs seqventibvs et in cvrsv Programmatio Lingva C++ II.
Proposita discendi
- Seriem argvmentorvm partis describere et explicare qvid qvaeqve lectio seqventi afferat.
- Necessaria partis 1 in memoriam revocare (cvrsvm compilandi et exseqvendi, exitvm formatvm, lectvram per
std::cinet lectvram nvntiorvm compilatoris) et ea, si opvs est, repetere. - Exemplo explicare cvr nvmervs programmatis non sit nvmervs mathematicvs, et praevidere cvr in compvtatro non exacte sit .
- Agnoscere qvid in fine partis facere scire exspectetvr, idqve distingvere ab eo qvod in partibvs seqventibvs 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. Qvattvor primae qvaestiones examinant qvae pars ex prima pro cognitis habet: processvm gradatim perseqvi, nvmervm dvobvs decimalibvs scribere, rotvndare, nvntivm erroris legere. Sex seqventes ordine lectionvm ideas praecipvas partis attingvnt. Nemo eas iam recte solvere cogitvr, et in vna 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 prioribvsProcessvs dicit: «1. valorem 17 accipit. 2. valorem accipit. 3. valorem accipit». Qvantvm valet in fine?
Pvtat qvemqve gradvm a valore initiali proficisci; secvndvs a valore proficiscitvr qvem primvs reliqvit.«Valorem accipit» vt aeqvalitatem mathematicam legit; est ivssvm qvo valor alio permvtatvr.Variabilem cvm constante confvndit: valor variabilis mvtatvr qvotiens ei alivs assignatvr.Qvisqve gradvs a valore proficiscitvr qvem eo momento habet, non ab initiali. Processvm manv perseqvi, cvm valore cvivsqve variabilis post qvemqve gradvm, est tabvla vestigii partis 1, et lectio 2.1 eam in instrvmentvm convertit ad de statv programmatis ratiocinandvm.Repete: A problemate ad algorithmvm
Qvaestio 2Ex vnitatibvs prioribvsQvid scribit sententia
std::println("{:.2f}", 2.0 / 3);?Pvtat specificationem formae trvncare; ad decimale proximvm rotvndat.Specificationem formae neglegit: haec est scriptvra sine.2f.Pvtat divisionem integram esse; cvm2.0, qvod decimalia habet, divisio realis est.Specificatio.2fnvmervm dvobvs decimalibvs scribit, rotvndans: scribitvr0.67. Valor servatvs non mvtatvr; tantvm eivs scriptvra.Repete: Introitvs, exitvs et errores
Qvaestio 3Ex vnitatibvs prioribvs dvobvs decimalibvs scribendvs est, rotvndando. Qvid obtinetvr?
Trvncat loco rotvndandi: tertivm digitvm abicit nec inspicit.Ad vnvm decimale rotvndat, non ad dvo.Secvndvm digitvm decimalem plvs qvam par est avget: inter et iacet, et rotvndatio altervtrvm eligit.Ad dvo decimalia rotvndare est nvmervm dvorvm decimalivm proximvm eligere: propivs abest a qvam a . Lectio 2.3 ostendet compvtatrvm eodem modo rotvndare, sed in basi 2, ideoqve fere nvllvm nvmervm cvm decimalibvs exacte servari.Repete: Introitvs, exitvs et errores
Qvaestio 4Ex vnitatibvs prioribvsProgramma in versv 5 habet
const int pages{12}et in versv 6std::println("{}", pages);. Compilator scribit6:5: error: expected ',' or ';' before 'std'. Vbi est vitivm?Versvs 6 rectvs est; compilator evm indicat qvia ibi defectvm animadvertit.stdagnoscitvr; nvntivs dicit pvnctvm cvm virgvla ante id exspectatvm esse.Nvntivs diciterror, nonwarning: nvlla plica exsecvtabilis est.Compilator defectvm deprehendit cvm aliqvid invenit qvod declarationem seqvi non potest, in initio versvs 6, et illvm locvm indicat. Si versvs indicatvs rectvs est, vitivm plervmqve in fine prioris est.Repete: Anatomia programmatis
Qvaestio 5Programma declarat
int a{2};etint b{7};, deinde exseqvitvra = b;etb = 10;. Qvantvm valetain fine?Pvtat assignationem dvas variabiles conivngere, qvasiaalivd nomen ipsivsbesset; valorem tantvm transcribit.a = binverso ordine legit, qvasiainbtranscriberet; valor a dextra ad sinistram transit.Dvos valores addit; assignatio svbstitvit, non accvmvlat.Assignatioa = binavalorem transcribit qvembeo momento habet; posteaaetbcellae independentes svnt, et sibmvtatvr,anon mvtatvr.Repete: Variabiles et memoria
Qvaestio 6Qvomodo nvmervs 13 in basi 2 scribitvr?
Responsio honesta est: lectio 2.2 docet nvmervm in basi 2 scribere et legere, et probatio finalis id itervm interrogabit.Residva divisionvm svccessivarvm eo ordine legit qvo apparent; ab vltimo ad primvm legvntvr.Pondera male addit: .In basi 2 qvisqve locvs dvplo plvs ponderat qvam is qvi ad dextram eivs est, et digiti tantvm 0 et 1 svnt. Lectio 2.2 id docet, qvia omnis nvmervs integer programmatis hoc modo servatvr.Qvaestio 7
int4 octetorvm continet, valorem svvm maximvm, et programma ei 1 addit. Qvid affirmari potest?Finem repraesentationis neglegit: ille nvmervs inint4 octetorvm non capitvr.Sic se gervnt nvmeri integri sine signo, qvorvm arithmetica modvlaris est; pro integris cvm signo norma id non praestat.Compilator valores qvos programma dvm exseqvitvr habebit non novit, nisi constantes svnt; fere semper nihil dicens compilat.Nvmervs integer programmatis certvm nvmervm bitvvm habet et, cvm iis, spativm valorvm finitvm. Spativm valorvm integri cvm signo excedere praecondicionem additionis violat; detector cvrsvs programma sistit, et sine eo programma qvidlibet scribere potest. Lectio 2.2 id considerat.Qvaestio 8Habetne evolvtionem decimalem finitam?
approximatio est: , non 1.Qvotcvmqve scribvntvr, semper residvvm svperest; evolvtio periodica est, non finita.Est proprietas nvmeri et basis, non instrvmenti; machinvla calcvlatoria approximationem tantvm ostendit.Fractio irredvcibilis evolvtionem decimalem finitam habet si et solvm si denominator eivs nvllos factores primos praeter 2 et 5 habet, eos basis 10. In basi 2 condicio severior est: denominator potentia ipsivs 2 esse debet, ideoqve evolvtionem binariam finitam non habet. Lectio 2.3 consecvtiones inde dedvcit.Repete: Nvmeri virgvlae flvitantis
Qvaestio 9Qvid scribit
std::println("{}", 0.1 + 0.2);?Pvtat compvtatrvm decimalia exacta addere; approximationes binarias addit.Scriptvram per signvm loci vacvvm cvm specificatione{:.2f}confvndit, qvae ad dvo decimalia rotvndat.Svmma dvorvmdoublelegitima est; mirabilis est eivs eventvs, non scriptvra.Neqve neqve exacte in binario servatvr, et svmma approximationvm earvm non est approximatio ipsivs .std::printlnrepraesentationem decimalem brevissimam scribit qvae valorem servatvm identificat, et ea repraesentatio differentiam revelat. Lectio 2.3 digitvm post digitvm explicat vnde oriatvr.Repete: Nvmeri virgvlae flvitantis
Qvaestio 10Programma declarat
const double ratio{7 / 2};etratioscribit. Qvid apparet?Pvtat genvs variabilis decernere qvomodo dividatvr; genvs operandorvm id decernit.Pvtat divisionem integram rotvndare; fractionem abicit.Valor 3 constans est et indoubleexacte repraesentatvr: nvlla iactvra est, et vnci cvrvi id admittvnt.Divisio7 / 2inter integros fit et qvotientem integrvm dat, 3; tvm demvm ille 3 indoubleconvertitvr. Qvae divisio fiat in ipsa operatione decernitvr, secvndvm genvs operandorvm, non cvm eventvs servatvr. Lectio 2.4 docet vbi conversio ponenda sit vt 3.5 obtineatvr.Repete: Characteres, valores Booleani, conversiones et constantes
Argvmentvm oneratvr…