momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

Un bookmarklet pentru calculul dinamic al mediei şcolare

Firefox | bookmarklet | javaScript | modelare obiectuală
2009 jul

Definim un obiect G care în primul rând, conţine trei containere - respectiv pentru Note, Teză şi Medie; acestea sunt ele însele nişte obiecte (şi anume nişte obiecte predefinite), încât putem folosi proprietăţile şi metodele specifice lor (în cadrul obiectului G definit de noi).

Note şi Teză sunt "de tip" <input>; ca obiect, un <input> are predefinite nişte metode de interacţiune - onClick(), onKeypress(), onKeyup(), onMouseover(), etc. iar acestea se pot "redefini" pentru a răspunde în modul dorit unor evenimente precum apăsarea unei taste sau click în cadrul containerului aferent, sau în exteriorul lui, etc.

Redefinim în obiectul G, metodele onKeyup() pentru <input>-urile Note şi Teză, în aşa fel încât fiecare tastare (sau ştergere) de notă/teză să declanşeze procedura de calcul şi înscriere a mediei.

După definirea astfel a obiectului G, adăugăm o funcţie care să-l creeze conform specificaţiilor lui şi să-l anexeze documentului. În final, includem totul în "paranteze de invocare" (...)();, astfel că toate variabilele implicate rămân ne-vizibile din afară şi pe de altă parte, funcţia finală (care şi ea trebuie inclusă în paranteze de invocare) va fi pusă în execuţie imediat după încărcarea scriptului.

După ce o punem la punct astfel, transformăm aplicaţia rezultată într-un bookmarklet: eliminăm comentariile şi spaţiile (folosind un compressor), eventual escapăm şi codificăm URL anumite caractere şi apoi adăugăm scriptul rezultat în Bookmarks (implicând pseudo-protocolul javascript: în loc de obişnuitul http:).

Un plugin jQuery pentru calculul dinamic al mediei şcolare

jQuery | media școlară birocratică | plugin
2009 jun

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

Array | Dijkstra | JSON | graphviz | javaScript | modelare obiectuală | perl
2009 may

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

Prim | arbore parțial minimal | javaScript
2009 apr

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ă

iterativ | javaScript | knight | recursiv
2009 mar

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ă


Prev
Next
ALL (368 titluri)

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: