Showing posts with label obiecte. Show all posts
Showing posts with label obiecte. Show all posts

Sunday, November 5, 2017

Structuri de date

Disciplina Structuri de date se găsește în străinătate la alte universități sub denumirea Data Structures sau Structures de données. Ideia de bază a fost că la formularea programei analitice am procedat astfel:
- menținerea unei denumiri unanim recunoscute;
- includerea de cursuri care se regăseau la mari universități;
- existența unei corespondențe cu cărți celebre;
- preluarea unul vocabular format din cuvinte cheie consacrate.
Am avut la bază lucrările lui KNUTH și WIRTH dar și multe altele. Pe Dâmbovița se impune ca tot profesorul care ține un curs să-și scrie cartea lui, ceea ce mi se pare un pic vulgar, din moment ce pe la case mult mai amri se alege o carte de succes din domeniu și se predă după ea, fără ca profesorului care o folosește să-i cadă cumva blazonul. La noi niecare face cartea lui, chiar dacă ceea ce face nu este de top. Când am anunțat la un curs că voi preda după o anumită carte referită prin: Aaron M. TENENBAUM, Yedidyah LANGSAM, Moshe J. AUGENSTEIN - Data Structure Using C,Prentice-Hall Englewood Cliffs, New Jersey, 1990, 661 pg.,ISBN 0-13-0200411-9, am fost tras de urechi de către colegi, că trebuie să am cursul meu. Eu scrisesem împreună cu Romică ADAM și curs și culegere de probleme, dar mi se părea necesară o aliniere la ceea ce face lumea bună, inclusiv vecinii noștri bulgari. Adică să predăm după lucrări celebre care săp facă ușoară echivalarea de studii pentru absolvenții care pleacă să lucreze în alte țări. În vogă mai era cartea deosebită referită prin: Robert KRUSE - Data Structures and Program Design, Prentice Hall Inc, Englewood Cliffs, N.J., 1994,
485pg, ISBN 0-13-196253-1.
Un curs de structuri de date care se respectă are în el capitole despre:
- tipuri abstracte de date;
- masive;
- articole;
- fișiere;
- liste simple;
- liste duble;
- stvă;
- coadă;
- arbori binari;
- arbori B;
- grafuri;
- obiecte.
Am pornit în 1990 la structurarea disciplinei folosind cartea Niklaus WIRTH -Alorithms + Data Structures = Programs, Prentice-Hall Englewood Cliffs, New Jersey, 1976, 366 pg.,ISBN 0-13-022418-9 dar și volumul 1 din Tratatul de programare a calculatoarelor al lui D.E. KNUTH, apărut în Editura tehnică.
 N-am uitat că prietenul și colegul meu Valer ROȘCA inclusese în lucrarea INFORMATICA, publicată în 1987 în Editura științifică și enciclopedică din București,  a cărei coordonare o asigurase conferențiarul Gh. DODESCU, un capitol de structuri de date.
 Nu am găsit necesar să includ sortarea acolo, căci mi se parte ca aceasta să fie tratată la grămadă cu operațiile de creare, numărare, inserare, ștergere, traversare, conversie, agregare, interschimb, restructurare, dar și cu alte operații, atât realizate ca proceduri clasice, cât și ca proceduri recursive căci sunt ceva mai  drăgălașe.. Am agreat realizarea structurilor de date folosind alocări dinamice, fiind enervat de așa-zisele simulări folosind vectori în memorie. Mi s-a părut interesantă definirea unor metrici din care să rezulte care sunt momentele când este rezonabil să se folosească o anumită structură de date și nu alta.
A, admirat lucrarea referită prin Saumyendra SENGUPTA, Carl Philip KOROBKIN - C++ Object-Oriented data Structured,Springer Verlag, Berlin, 1994, 708 pg.,ISBN 0-387-94194-0, mai ales că avea programe complete și un CD, iar bibliotecile de funcții erau perfecte.
Am scris împreună cu un colectiv de peste 20 de cadre didactice la mai toate universitățile de la noi și din R: Moldova o carte de structuri de date în două volume referită prin:
Ion IVAN, Marius POPA, Paul POCATILU - Structuri de date, Vol. 1, Editura ASE, Bucuresti, 2008, 768 pg., ISBN 978-606-505-032-7. 
Ion IVAN, Marius POPA, Paul POCATILU - Structuri de date, Vol. 2, Editura ASE, Bucuresti, 2008, 532 pg., ISBN 978-606-505-033-4
care a fost recompensată cu premiul Tudor TĂNĂSESCU al Academiei Române pe anul 2008.
Un impact major l-a avut lucrarea de la editura TEORA realizată de un grup de profesori din Universitatea Politehnica și referită prin: Valentin CRISTEA, Irina ATHANASIU, Eugenia KALISZ, Valeriu IORGA - Tehnici de programare, Editura TEORA, Bucuresti, 1997, 169 pg, ISBN 973-601-072-4. Procedurile incluse în paginile acestei cărți sunt de o frumusețe clasică, dusă la perfecțiune. Este deosebit de important pentru toți programatorii să gestioneze corect structurile de date căci între un program foarte bun și unui bun, acum când toate aplicațiile sunt de tip online, diferența este imensă, fiind preferat programul foarte bun, bazat pe o alegere a unei structuri de date eficiente, care face ca durata tranzacției să fie minimă, lucru agreat de fiecare utilizator, adică de fiecare client.



(05 noiembrie 2017)

Saturday, November 4, 2017

Generația a VII-a de dispozitive de calcul corespunde calculatoarelor electronice cu circuite integrate pe scară largă și foarte largă . La noi s-a produs o variantă avansată a calculatoare personale din familia Feix dar și calculatorul Junior și calculatorul personal COBRA la Brașov.
Detalii despre toate acestea se află pe Internet dacă se face căutare pe cuvinte cheie precum istoria calculatoarelor românești, COBRA, Felix PC aMIC și altele.

     *
*          *
Voi fi recunoscători turutor celor care  mă vor ajuta fie cu detalii, fie cu elemente care să corecteze cele relatate aici. Toate materialele propuse de mine aici la generații de echipamente de tehnică de calcul sunt provizorii, întrucât documentarea provine din mai multe surse pe care nu am avut posibilitatea să le verific.




(04 noiembrie 2017)

Generația a VI-a de dispozitive de calcul

Generația a V-a de dispozitive de calcul corespunde calculatoarelor electronice cu circuite integrate pe scară largă și foarte largă . La noi s-a produs o variantă avansată a calculatorului MECIPT la ITC Cluj, dar și calculatoare din familia FELIX. Detalii despre toate acestea se află pe Internet dacă se face căutare pe cuvinte cheie precum istoria calculatoarelor românești, Felix C-256, I-100 și altele.

     *
*          *
Voi fi recunoscători turutor celor care  mă vor ajuta fie cu detalii, fie cu elemente care să corecteze cele relatate aici. Toate materialele propuse de mine aici la generații de echipamente de tehnică de calcul sunt provizorii, întrucât documentarea provine din mai multe surse pe care nu am avut posibilitatea să le verific.


(04 noiembrie 2017)

Saturday, October 14, 2017

POO, adică programarea orientată obiect

Programarea orientată obiect înseamnă un salt extraordinar făcut în programare, exact cum a zis Neil ARMSTRONG când a ajuns pe Lună: un pas mic pentru om, un salt uriaș pentru omenire, deși unii cârcotași,  consideră că n-ar fi zis chiar așa.
La noi POO a început să se dezvolte abia după ce au fost cumpărate calculatoare personale ceva mai puternice, de la micoprocesoarele 386 cu cel puțin 4Gb mamorie cache dar și cu medii de dezvoltare ceva mai tari decât cele de tip Borland. Atât limbajul C++ cât și limbajul PASCAL dispun de facilități pentru implementarea în programe a tuturor proprietăților obiectelor, cu avantaje mai ales. Deși au apărut nenumărate lucrări despre programarea orientată obiect, inclusiv o carte de analiză, adică OOA, nu voi conchide că cititorul a găsit acele elemente care să-l convingă că trebuie să gândească programele altfel decât cum o făcea înainte. De aceea am văzut nenumărate texte care mimau lucru cu obiecte, căci erau introduse forțat clasele, căci de vedea de departe că cei ce le scriseseră nu simțeau lucrul cu obiecte ca pe un fapt natural.
dacă iau în considerare că mai puternic s-a făcut programare orientată obiect după anul 2000, pentru cei 17 ani care s-au acurs este deja vorba de o istorie recentă și lucrurile nu sunt decantate. Cum aplicațiile online de contact cu mine în calitate de client nu sunt entuziasmante, nu am să mă pronunț câr de grozave sunt, căci mai degrabă era rezonabil să se facă niște șabloane și nu să se lucreze ca în anii '60 când nu știa dreapta ce face stânga în programare și fiecare întreprindere, oficiu de calcul, centru de calcul își scria propriul său program de calcul de salarii încât o harababură și o risipă de resurse nici să avea cum să se realizeze altcumva. 
Cine are curiozitatea să intre pe portalurile a două universități se ia cu mâinile de cap și se lasă păgubaș că numai în 1.000 de click-uri ajunge, dacă ajunge la informația dorită. Să mai treacă 10 ani și după 25 -30 de ani de POO lucrurile vor fi decantate cât de cât pentru a încăpea în paginile unei storii a informaticii românești. Abia atunci se va vorbi de aplicații care au funcționat ca lumea și abia atunci se vor găsi și aplicații dar și rezultate originale în zona software sau hardware, altele decât succesul lui Bitdefender, care domină copios piața de anti-viruși. Despre hackerii mioritici nu vreau să discut de prea multă rușine, chit că unii dintre ei stăpânesc tehnologia POO, deși invidioșii îi consideră idioți care nu-și canalizează corect inteligența.
Se vrobește prea lult despre programarea orientată obiect, POO  sau OOP, dar aș vrea să văd clasele definite de dezvoltatorii de software și să le știu încorporate în bibliotecile uzuale astfel încât dacă aș scrie ceva aplicații să le am la dispoziție și să fie atât de bune și de utile încât să simt că într-adevăr POO mi-a ușurat și viața și munca de programator, că mi-a crescut productivitatea mie și a crescut calitatea textelor pe care le fac, spre bucuria unor utilizatori din ce în ce mai exigenți mai nerăbdători să piardă timpul în a ajunge la informațiile dorite în mai mult de trei click-uri, nu două cum cere lumea spălată.
Despre POO pentru programe scrise în limbaj de asamblare merită o dezvoltare separată, pe care probabil o voi face ceva mai târziu. Și zbaterea limbajului COBOL spre OOP a fost o chestie care la noi nu a prins, deși așa cum erau aduse completările erau în linia a ceea ce se știa despre acel limbaj și nu cred că ar fi fost prea greu să se facă software în OO COBOL. N-a fost să fie. Nici cu limbajul FORTRAN n-a fost mare câștig după eșecul cu programarea structurată în acest limbaj. Programatorii FORTRAN erau prea uzați ca să asimileze OOP și să facă software în OO FORTRAN, iar tinerii programatori Look Back in Anger, ca în filmul englezesc din 1959.
POO în afara unei coerențe a reutilizării claselor rămâne doar o poveste interesantă și atât.


(14 octombrie 2017) 

Thursday, September 28, 2017

Cărți de C, C++ și C#

Limbajul C și derivatele lui ulterioare C++ și C# au prins în lumea programatorilor pentru:
- simplitate;
- mbogăție;
- ușurință.
De aceea au apărut și compilatoare extrem de puternice, dar și cărți care să-i facă pe programatori să utilizeze cât mai bine resursele în marea lor diversitate, pentru a obține cele mai eficiente soluții. Cărți trecute aici dar și folosite sunt:
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Structuri de date si obiecte in C++, Editura CISON, Bucuresti, 1998
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Limbajul C++ prin exemple, Editura CISON, Bucuresti, 1995, pg. 256, ISBN 973-96370-0-0.
  • Ion SMEUREANU, Ion IVAN, Marian DARDALA - Structuri de date si obiecte in C++, Editura CISON, Bucuresti, 1998
  • Ion IVAN, Ion SMEUREANU - PROGRAMAREA IN LIMBAJUL C, Culegere de probleme, Editua ALFAR, Rm. Valcea, 1992 261 pg, ISBN 973-95080-6-5
  • Sorin TUDOR - Bazele programarii in C++, Editura L&S, Bucuresti, 1998,300pg., ISBN 973-96382-7-9
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol 1 : partea I : Limbajul C, Editura Albastra, Cluj-Napoca, 2000, 309 pg.
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol. 2 : Limbajul C++, Editura Albastra, Cluj-Napoca, 2000, 519 pg.
  • Liviu NEGRESCU - Limbajele C si C++ pentru incepatori : vol. 2 : Limbajul C++, Editura Albastra, Cluj-Napoca, 1996, 1030 pg.
  • Liviu NEGRESCU - Limbajele C şi C++ pentru începători : Programe de optimizare şi grafică. Vol. 4, Editura Albastra, Cluj-Napoca, 2000, 407 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ - Programarea orientata obiect in limbajul C++, Editura CISON, București, 2002, 333 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ, Adriana REVEIU - Visual C#.Net, Editura CISON, București, 2004, 311 pg.
  • Ion SMEUREANU, Marian DÂRDALĂ, Ion IVAN - Structuri si obiecte in C++ : note de curs si teste grila, , Editura CISON, București, 1998, 189 pg.
  • Mirel COȘULSCHI, Octavian MUSTAFA. -Programare în C++ : Concepte moderne şi aplicaţii, Editura Prouniversitaria, Craiova, 2015
  • Dragoș ACOSTĂCHIOAE - Programare C şi C++ pentru Linux, Editura Polirom, Iași, 2002, 216 pg. 
  • Laurenţiu PĂDEANU - Programarea orientată pe obiecte în limbajul C++ : Suport de curs, Editura Eurobit, Timișoara, 1993, 110 pg.
  • Ioan JURCĂ - Programarea orientată pe obiecte în limbajul C++,, Editura Eurobit, Timișoara, 1992, 134 pg.
  • Liviu NEGRESCU, Lavinia NEGRESCU - Limbajul C# pentru începători : depanarea programelor şi tratarea erorilor; proprietăţi, tablouri şi clasa Array. vol.6: Mediul de programare Visual Studio C#, Editura Albastră, Cluj-Napoca, 2005, 200 pg.
  • Dorin IRIMESCU, Cristian MORĂRESCU - Programmieren mit C und C++, Editura Printech, București, 1997.
Cărți de C, C++ și C# au o largă răspândire în rândurile programatorilor pentru că cele trei limbaje ilustrează cel mai bine evoluția de la programarea structurată către programarea orientată obiect, cu creșterea accelerată a reutilizabilității construcțiilor prin tehnici de generare evoluate care pornesc de la stabilirea moștenirii de proprietăți în raport cu componente de bibliotecă transformate ușor în operanzi prin transmitere de proprietăți de la parte către întreg.
Mai sunt și alte cărți valoroase despre acest limbaj pe care le știu, dar de care mă voi ocupa în perioadele viitoare pentru că nu doresc să nu fie consemnate aici, căci din ele am reținut elemente interesante pe care le-am și folosit în activitatea mea de la catedră și încă îmi mai sunt necesare.

(28 septembrie 2017)