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ă.
Borland C++ 5.5 it's free… because GNU-GCC is great.
Obţinere şi instalare. Testare; compatibilitate cu GCC.
Un exemplu, folosind STL (Standard Template Library)
Accesaţi http://cc.codegear.com/Free.aspx?id=24778 şi creaţi-vă un cont; după ce veţi activa contul respectiv (prin intermediul serviciului de Mail), veţi putea descărca pachetul freecommandLinetools.exe a cărui execuţie asigură instalarea (pe un sistem Windows, desigur).
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.
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)