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

Lecţie recapitulativ-anticipativă la începutul clasei a XI-a şi complemente

C++ | CGI | factorial | problema Damelor | randomizare
2013 oct

Când vom studia "metoda backtracking" ne vom reîntâlni cu "problema damelor"; dar pentru început, să discutăm şi să formulăm în C++ o schemă de rezolvare mai primitivă (în fond, reformulând mot à mot):
     1. aşază (oricum) N dame pe tablă;
     2. dacă vezi dame care se atacă, atunci reia de la pasul 1;
     3. (altfel) reţine soluţia găsită (N dame care nu se atacă una cu alta).

Variantele subiectelor de bacalaureat şi principiul "less is more"

bacalaureat
2013 sep

"Recapitularea" angajează şi variantele de subiecte; ne interesează conţinutul propriu-zis (nu şi antetele sau adnotările publicitare de pe fişierele PDF iniţiale) şi nu neapărat pentru a tipări, cât pentru a selecta şi extrage problemele după dorinţă. http://bacmath.docere.ro variante_bac_mate redă firesc variantele respective (prin text obişnuit, nu ca stream-uri PDF) pentru "matematică", permiţând căutarea şi selectarea după conţinut sau criteriu şi are în mod voit o exprimare simplă, dar cu suficiente valenţe ("less is more").

Reducerea la regiunea vizibilă şi "împăturirea" unor pagini PDF

PDF | Python
2013 aug

Avem 300 de fişiere PDF de câte o pagină "A4"; câte 100 dintre ele reprezintă subiectul I, II şi respectiv III ale variantelor de subiecte de bacalaureat "MT1_2009".

Pentru fiecare variantă 1..100, accesăm cele trei fişiere aferente ei, reducem paginile de la formatul "A4" la regiunea vizibilă şi creem un fişier PDF care "împătureşte" cele trei pagini tocmai reduse; datorită reducerii pe verticală, vizualizatorul va arăta aceste trei pagini aproape la fel ca în cazul uneia singure.
Folosim pentru aceasta Ghostscript (implicat într-un script Bash) şi modulul Python pyPdf.

Modificarea unor pagini PDF, folosind python-pyPdf

PDF | Python
2013 aug

Modulul pyPdf defineşte în Python obiectele specifice formatului PDF şi pe baza acestora, instituie două obiecte principale - unul care permite parcurgerea unui fişier PDF, analizând şi interpretând conţinutul acestuia şi constituind obiectele Python corespunzătoare şi unul "invers": datele curente din obiectele Python se "traduc" şi se scriu rând pe rând ca obiecte PDF într-un fişier, menţinând pe parcurs o listă a offset-urilor la care au ajuns să fie aşezate obiectele respective - această listă servind pentru a adăuga la sfârşitul fişierului structurile tipice PDF xref şi trailer.

Investigăm paginile PDF iniţiale şi "scăpăm" de elementele inutile, folosind Python şi obiectele din pyPdf.

Depistarea şi eliminarea unor obiecte PDF, folosind comenzi din patrimoniul Linux-ului şi modulul pyPdf

Linux | PDF | Python
2013 aug

De la www.variantebacalaureat.com am obţinut trei fişiere PDF conţinând respectiv "Subiectul I", II şi III pentru cele 100 de variante de subiecte de bacalaureat la proba "matematică".

Ne interesează numai enunţurile subiectelor, încât vrem să "scăpăm" de elementele suplimentare. Dar de data aceasta, elementele "inutile" nu se rezumă la antet, notă de subsol şi punctaje "5p"; fiecare pagină din cele trei fişiere PDF iniţiale conţine în plus, "adnotări" şi un soi de "filigrane".

Cu instrumente de investigare obişnuite: head, tail, xxd - depistăm în fişier obiectele PDF care determină redarea elementelor menţionate; apoi reuşim să eliminăm unele dintre ele, operând cu pyPdf.


Prev
Next
ALL (349 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: