Implicarea browserului în studiul convergenţei
Rezolvarea unei probleme de matematică (de exemplu, demonstrarea convergenţei unui şir) poate fi sugerată de rezultatele investigaţiei printr-un program adecvat.
În cadrul documentului HTML ar fi suficient să prevedem următoarele elemente:
— două elemente <input>, pentru a permite utilizatorului să precizeze gama de termeni de calculat (rangul iniţial şi rangul final);
— un element <div> destinat scrierii termenilor şirului, pe măsură ce vor fi calculaţi;
— un <button> a cărui acţionare prin click să declanşeze calculul şi scrierea termenilor respectivi
— un <script> care să modeleze funcţia de calculare a termenilor şirului.
Extinderea obiectului Array cu o metodă quickSort()
Array .prototype .q_sort = function(beg, end) { /* QuickSort */ }
de fapt, metoda existentă sort() este tot ceea ce este necesar! restul poate fi (ca aici) un exerciţiu didactic de prezentare a unor aspecte de lucru cu obiecte Javascript.
Numerele vizate la matematică nu sunt la fel cu cele vizate într-un limbaj de programare; ca urmare, transcrierea mot-à-mot de la formulă matematică la program poate atrage rezultate greşite.
greşit: int id_mijloc = (id_st + id_dr) / 2; // variabile C de tip "int"
corect: int id_mijloc = id_st + (id_dr - id_st) / 2;
Când suma depăşeşte sizeof(int), rezultatul va fi trunchiat modulo INT_MAX + 1; de aceea, prima variantă de mai sus este incorectă.
Exerciţii de programare în C, C++
Putem obţine suma 1 pentru numerele 1..n? Analiză, ilustrare (backtracking), schema programului, implementări (cu BCC şi cu GCC). Observaţii metodice asupra lucrului în laborator.
Cea mai proastă "tehnică" pe care am văzut-o este aceasta: deschide calculatorul (Windows, desigur); click pe iconiţa "Borlandc" (sau alt IDE); între timp, deschide caietul sau manualul la programul de "implementat" (la "Laborator"), aşază-l verticat lângă ecran şi începe să scrii (sau: unul dictează, celălalt scrie); când ai terminat de copiat programul, mai tastezi CTRL-F9 şi gata… (trecem la altă problemă, că pe asta am făcut-o; "algoritmul este important, nu programul"-punct).
Cu asemenea obicei şi cu asemenea concepţii reducţioniste, poţi cel mult să înveţi să dactilografiezi (fără caractere româneşti!) - nicidecum nu vei reuşi să înveţi să programezi procedând astfel (punct!).
Modelarea unor probleme clasice folosind Javascript
Modelare obiectuală în javaScript, pentru problema damelor; "metoda randomizării" şi metoda backtracking; vizualizarea poziţiilor ocupate, în browser.
Putem avea pe o tablă de şah 6×6, trei dame pe câmpuri albe şi trei dame pe câmpuri negre, astfel încât cele şase dame să nu se atace două câte două? Putem avea pe o tablă de şah 8×8, trei dame pe câmpuri albe şi cinci dame pe câmpuri negre, astfel încât cele opt dame să nu se atace două câte două?
vezi Cărţile mele (de programare)