Un plugin jQuery pentru calculul dinamic al mediei şcolare
Care este media şcolară pentru notele 9, 10, 10 şi nota în teză 9?
Unele programe/calculatoare dau 9.50, ceea ce este corect (9.4(9) = 9.5); numai că regula precizată de minister este de a calcula media "cu două zecimale exacte", rezultând nu 9.4(9) ci 9.49 - adică media şcolară este 9 (şi nu 10).
Vizăm aici modelarea corectă a calculelor cu n zecimale exacte; "media şcolară" ca formular independent (<form>, setTimeout(), onkeypress); "media şcolară" ca plugin jQuery (de montat pe un tabel de elevi).
Integrarea algoritmului lui Dijkstra
De regulă, Algoritmul lui Dijkstra este formulat cu "tablouri paralele": d[]
pentru distanţe şi p[]
pentru predecesori; acestea trebuie prevăzute în cadrul programului apelant (la nivel global) - fiind folosite inclusiv pentru constituirea rezultatelor finale. Unele limbaje permit însă extinderea obiectelor pe parcursul execuţiei (în sensul adăugării de noi proprietăţi) - ceea ce permite integrarea rezultatelor în structura de date transferată algoritmului de către programul apelant.
Implementarea, de la minimal la eficient
Manuale versus programator (implementarea unui algoritm de teoria grafurilor)
Povestea arborelui parţial minimal
Implementarea clasică (apoi, folosind o structură priority_queue<double>) a algoritmului lui Prim
Compromisuri între stil şi eficienţă; biblioteci şi interfeţe
Saltul recursiv şi alergarea iterativă
Revenim asupra unor construcţii javaScript din Ambiţiile Cavalerului; vizam drumuri hamiltoniene pe graful săriturii calului - dar poate fi mulţumit Sir Knight? …cavalerii ăştia erau în stare să susţină o cauză până-n pânzele albe.
Cursivitatea recursivităţii (reformulare "tail recursion")
de la 'too much recursion' la formula iterativă
demersurile aplicaţiei Knight
modelarea "problemei calului" (ca graf şi ca obiect de memorie), folosind javaScript
reprezentarea vizuală a grafului în fereastra browserului
modelarea căutării unui drum hamiltonian (backtracking)
backtracking compus cu un algoritm euristic
principiul lui Warnsdorff (1823): continuă pe acel drum din care vei avea cât mai puţine ramificaţii - altfel spus, iterează recomandarea evidentă: dacă ai de ales între a face un ultim pas până la destinaţie şi respectiv a ocoli, atunci încearcă mai întâi prima variantă!
vezi Cărţile mele (de programare)