Svmmarivm
Haec lectio qvintam cvrsvs partem aperit, fvnctionibvs dedicatam. Explicat ad qvid pars valeat: docere qvomodo qvaestio in membra nominata decomponatvr, singvla cvm interfacie et pacto, et qvomodo qvaedam qvaestiones solvantvr ad minorem svi ipsarvm instantiam redvctae, per recvrsionem; qvattvor eivs lectiones exhibet et filvm qvo nectvntvr; in memoriam revocat qvae pars pro cognitis habet, praesertim circvitvs partis 4 eorvmqve invariantes; qvaestionem qvam pars solvit proponit, programmatis qvod eandem compvtationem exscriptam repetit et qvod, propter incvriam in exscribendo, perperam respondet compilatore nihil dicente; pactvm (praecondicionem et postcondicionem) praenvntiat vt formam qva pars singvla membra specificabit; et ostendit qvo dvcat, in partibvs seqventibvs et in cvrsv Programmatio Lingva C++ II.
Proposita discendi
- Ordinem argvmentorvm partis describere et explicare qvid qvaeqve lectio seqventi conferat.
- Algorithmos partis 4 (vestigivm circvitvs, eivs invariantem et variantem) in memoriam revocare et, si opvs est, retractare.
- Exemplo praenvntiare notionem pacti: qvid membrvm programmatis ab eo postvlet qvi eo vtitvr et qvid ei vicissim praestet.
- Agnoscere qvid in fine partis facere scire exspectetvr, idqve ab eis distingvere qvae in partibvs seqventibvs discentvr.
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. Qvinqve primae qvaestiones examinant qvae pars pro cognitis habet: vestigivm circvitvs, eivs invariantem, praecondicionem specificationis, exemplvm valoris in initialisatione factvm et inqvisitionem, intra programma partis 4, compvtationis qvae sva data accipit et sva reddit. Qvinqve seqventes ordine lectionvm ideas praecipvas partis attingvnt: acervvm vocationvm, transmissionem argvmenti, separationem compvtationis ab exhibitione, definitionem recvrsivam factorialis et exsecvtionem fvnctionis qvae se ipsam vocat. Nemo eas 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
int n{305}; int c{1}; while (n >= 10) { n = n / 10; ++c; } std::println("{}", c);?Gyros nvmerat et obliviscitvrcab 1 incipere.Vnvm gyrvm nimivm facit: cvm condicion >= 10iam falsa est.Nvmeratorem cvm valore ipsivsnpost primvm gyrvm confvndit.Vestigivm dat et : corpvs bis exseqvitvr, et cvm condicio deficit. Circvitvs cifras nvmeri natvralis nvmerat; lectio Fvnctiones evm in fvnctione cvm nomine et pacto inclvdit, et lectio Recvrsio evm sine circvitv scribit.Repete: Circvitvs
Qvaestio 2Ex vnitatibvs prioribvsIn circvitv
int total{0}; int k{1}; while (k <= n) { total += k; ++k; }, cvm , qvae relatio valet qvotiens condicio aestimatvr?Valet in medio gyro, post additionem et ante incrementvm, sed non cvm condicio aestimatvr.Valet solvm in fine: postcondicio est, non invarians.Condicio circvitvs est, et falsa est in ipso exitv; invarians tvnc qvoqve valet.Valet initio, cvm svmma vacva et ; et si ante gyrvm valet, post evm valet, qvia gyrvs addit et deinde evm avget. In exitv, , et invarians svmmam ab 1 ad dat. Lectio Recvrsio fvnctiones svas eadem ratiocinatione per indvctionem ivstificat.Repete: Circvitvs rectos designare
Qvaestio 3Ex vnitatibvs prioribvsSpecificatio divisionis dicit: «datis integris et , invenire et cvm et ». Qvae est eivs praecondicio?
Praecondicionem cvm postcondicione confvndit: id est qvod resvltatvm implet, non qvod a datis postvlatvr.Condicio est de exitv, non de introitv.Cvm nvllvm exstat cvm : qvaestio solvtionem non habet, et praecondicio id exclvdit.Praecondicio est id qvod a datis postvlatvr vt qvaestio solvtionem habeat; postcondicio, id qvod resvltatvm implet. Pars hoc par in pactvm vnivscvivsqve fvnctionis convertit: praecondicio vocantem obligat, et postcondicio fvnctionem.Repete: A problemate ad algorithmvm
Qvaestio 4Ex vnitatibvs prioribvsPost
int a{3}; int b{a}; b = 7;, qvantvs est valor ipsivsa?Pvtatbetain perpetvvm conivnctas manere; initialisatio valorem copiat, non cellam.Exemplvm cvm variabili non initialisata confvndit:a3 accepit et nihil id mvtavit.Initialisatioint b{a}in cellam ipsivsbvalorem copiat qvemahabebat; postea dvae cellae inter se independentes svnt. Lectio Parametra et ambitvs ostendit parametrvm eodem modo initialisari, exemplo argvmenti, et alteram possibilitatem docet: alterivm nomen eivsdem cellae.Repete: Variabiles et memoria
Qvaestio 5Ex vnitatibvs prioribvsProgramma lectionis 4.4 qvod nvmeros primos minores qvam 100 scribit circvitvm habet qvi candidatos percvrrit et, intra evm, alterivm qvi eorvm divisores temptat. Qvod membrvm est compvtatio qvae sva data accipit et sva reddit, qvam nominare expediat?
Introitvm et exitvm totivs programmatis cvm eis compvtationis interioris confvndit.Sententia est, non compvtatio sensvm svvm habens: nec introitvm nec resvltatvm habet qvo qvis vti velit.Datvm cvm mvnere confvndit: variabilis resvltatvm compvtationis servat, sed compvtatio non est.Circvitvs interior a nvlla re pendet nisi a candidato, et eivs resvltatvm est ita vel non. Ei nomen dare sinit circvitvm exteriorem vt eivs specificationem legi: «pro vnoqvoqve candidato, si primvs est, evm scribe». Lectio Designare per fvnctiones id programma sic rescribit.Repete: Algorithmi nvmerici
Qvaestio 6Programma in
mainincipit;mainfvnctionemgvocat, etgaliam fvnctionemhvocat. Dvmhexseqvitvr, qvae vocationes nondvm finitae svnt?Pvtat vocantem vocando evanescere; contra, exspectat vt ibi pergat vbi constitit.Pvtatgfinitam esse cvmhvocavit; finietvr cvmhei moderationem reddiderit.Responsio honesta est: lectio 5.1 id figvra acervi explicat.Vocatio non finitvr donec finitae sint eae qvas ipsa fecit:gresvltatvm ipsivshexspectat, etmainid ipsivsg. Qvaeqve vocatio nondvm finita variabiles svas in qvadro servat, et qvadra cvmvlantvr; hic est acervvs vocationvm lectionis Fvnctiones.Repete: Fvnctiones
Qvaestio 7Cvm fvnctione
int f(int x) { x = x + 1; return x; }, qvid scribitint a{3}; int b{f(a)}; std::println("{} {}", a, b);?Pvtat fvnctionem argvmentvm mvtare; nisi aliter statvitvr, exemplvm accipit.Pvtat mvtationem ipsivsxne ad valorem qvidem redditvm pervenire.Pvtat parametrvm mvtari non posse; potest, nisiconstdeclaratvr.Parametrvmxest variabilis ipsivsfqvae exemplo argvmenti initialisatvr: fvnctio exemplvm mvtat et 4 reddit, etasvvm 3 servat. Haec est transmissio per valorem, modvs qvem C++ adhibet nisi aliter statvitvr.Repete: Parametra et ambitvs
Qvaestio 8Programma diem calendarii legit et eivs diem hebdomadis scribere debet. Qvae decompositio compvtationem ab exhibitione separat?
Dvo mvnera miscet: qvod compvtatvm est nec itervm adhiberi nec cvm valore exspectato comparari potest.Mvnera separat, sed per effectvm occvltvm ea conivngit: qvi vocationem legit non videt vnde datvm veniat.Responsio honesta est: lectio 5.3 docet qvomodo decernatvr qvae fvnctiones scribendae sint.Sic compvtatio nvmeris temptatvr, visorio non inspecto, et alii programmati servire potest qvod resvltatvm alio modo scribat. Lectio 5.3 hoc criterivm «vna fvnctio, vnvm mvnvs» appellat.Repete: Designare per fvnctiones
Qvaestio 9Qvae ex definitionibvs seqventibvs pro omni natvrali definit?
Sine casv basis definitio nvmqvam consistit: ad remitteret, et sic sine fine.Recte pro definit, sed indefinitvm relinqvit, qvod 1 valet.per se ipsvm definit: definitio circvlaris est et qvaestionem non minvit.Qvaestio 10Cvm
int f(int n) { if (n == 0) { return 0; } return n + f(n - 1); }, qvid scribitstd::println("{}", f(3));?Pvtat vnam solam vocationem exseqvi, avt argvmentvm cvm resvltato confvndit.Pvtatreturn 0casvs basis esse resvltatvm totivs catenae; est solvm id vltimae vocationis.Nomen fvnctionis ab eivs capite notvm est, et in svo ipsivs corpore adhiberi potest.f(3)exspectatf(2), qvae exspectatf(1), qvae exspectatf(0); haec 0 reddit, et in reditv 1, 2 et 3 addvntvr. Fvnctio compvtat, eandem svmmam ac circvitvs secvndae qvaestionis.Repete: Recvrsio
Argvmentvm oneratvr…