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

Rangul elementului din mijloc

int
2008 nov

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++

C | C++ | GCC
2008 oct

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

backtracking | javaScript | modelare obiectuală | problema Damelor | randomizare
2008 oct

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ă?

Limbaje şi Calculator (de la nivel-înalt, la microprocesor)

GNU as | Nasm | assembler | codul ASCII si generarea caracterelor | debug
2008 may

Teza teoretică (îndelung abuzată în manuale - vivat "limbajul Pseudocod") este:

programe = algoritmi + structuri de date

Investigând codul furnizat de compilator pentru programe simple (în Pascal, C, etc.), ajungem la formula (de memorie+CPU):

program = zonă de cod (CS; IP) + zonă de date (DS)

Angajând apoi subprograme şi analizând implicaţiile către CPU, ale realizării transferului bidirecţional de control şi de parametri - se prelungeşte formula astfel:

program = zonă_cod (CS; IP) + zonă_date (DS) + 
          + zonă_stivă (SS; SP/ESP) + cadru_stivă (BP/EBP)

unde valorile de bază DS, CS, SS rezultă prin corelarea asigurată de către sistemul de operare, cu mediul de execuţie.

Informatica evoluează, învăţământul nu!

point-and-click
2008 apr

În acest articol de informatică… nu avem nici o linie de program!

Sintagma Păi aşa a zis… (baronul Epstein) şi if( ... ) return 0; else return ...;
şi un fals: Informatică = Windows + produse Microsoft (point-and-click) + pseudocod.

Sintagma se citeşte de la tastatură, să se scrie pe ecran", interpretoarele de comenzi şi editoarele de text. Grosolănia point-and-click şi faţetele unui program (-sursă, -obiect, -executabil; proces).


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

/fromlichess

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: