duminică, 7 septembrie 2025

Programarea Orientată spre Obiecte

Ca urmare a dezvoltării aplicațiilor software se impune o organizare cât mai eficientă a codului sursă astfel încât acesta să fie mai ușor de întreținut și înțeles.

Dea lungul timpului au fost dezvoltate mai multe tehnici de organizare a codului sursă:

a) Programarea nestructurată
  • Date și instrucțiunile se găsesc în programul principal, într-o unitate de compilare;
  • Implică utilizarea excesivă a instrucțiunilor "goto" pentru a transfera controlul de la o secțiune a codului la alta. Aceasta poate duce la crearea unor structuri de control dificil de urmărit și de înțeles.
  • Lipsesc structuri de control clare, precum bucle și condiții, care sunt fundamentale în tehnicile noi de organizare a codului;
  • Cu cât codul devine mai lung cu atât mai greu este de întreținut;
  • Mult cod duplicat;
Exemple: Assembler, Fortran, Basic, Cobol, ș.a

❗ Este important să subliniem că aceste limbaje nu erau neapărat proiectate pentru a încuraja programarea nestructurată, ci mai degrabă reflectau practicile de dezvoltare din perioadele timpurii ale informaticii, când conceptele de programare structurată nu erau încă pe deplin înțelese și adoptate. Cu timpul, oamenii au recunoscut avantajele programării structurate și au dezvoltat limbaje și practici care să promoveze o abordare mai clară și ușor de înțeles a dezvoltării software.

b) Programarea structurată

  • Utilizarea instrucțiunilor de control de flux precum bucle (for, while), condiționale (if, else), și structuri de selecție (switch) pentru a organiza logica programului.
  • Minimizarea utilizării instrucțiunilor de salt necontrolate ("goto") pentru a preveni crearea de fluxuri de control haotice și greu de urmărit.
  • Își propune să creeze programe mai ușor de înțeles, de întreținut și de extins, contribuind astfel la eficiența și calitatea dezvoltării software.
Exemple: C, C++, Pascal, Modula-2, Phyton, ș.a

c) Programarea procedurală
  • Se bazează pe noțiunea de subprogram ( proceduri, funcții) ;
  • Codul este mai bine organizat cu o funcționalitate mai bine precizată;
  • Codul devine mai complicat însă poate fi reutilizat;
  • Modificarea subprogramelor nu afectează restul programului;
Exemple: C, C++, Pascal, Fortran, Algol, ș.a

d) Programarea modulară
  • A apărut în urma creșterii dimensiunilor programelor, iar simpla organizare a codului sub formă de proceduri nu mai era eficientă;
  • Implică împărțirea unui sistem software mare și complex în module mai mici și independente ce permit rezolvarea problemelor dintr-un anumit domeniu;
  • Fiecare modul are o interfață bine definită care specifică cum poate fi utilizat de către alte module. Aceasta include declarații de funcții, tipuri de date și alte detalii necesare pentru a interacționa cu modulul.
  • Îmbunătățește lucrul cu reutilizarea codului;
  • Echipele de dezvoltare pot lucra independent la diferite module, reducând dependențele și facilitând dezvoltarea paralelă.
  • Testarea modulelor în mod separat este mai ușor de realizat, ceea ce contribuie la identificarea și remedierea erorilor mai rapid.
Exemple: C, C++, Pascal, Python, Modula2, Ada, ș.a

e) Programarea orientată spre obiecte
  • Tendință nouă de programare;
  • Modelează obiecte din lumea reală;
  • Programele sunt organizate ca colecții de obiecte ce cooperează între ele;
  • Detaliile și comportamentul obiectelor sunt păstrate în clase;
  • Programele sunt mult mai complexe și ușor de întreținut și modificat;
  • Simplifică lucrul în echipă la un program;
  • Se bazează pe 4 principii: încapsulare, moștenire, polimorfism, abstractizare;
Exemple: C++, Simula, Smalltalk, Java, ș.a


Deci, POO este un stil de programare în care programele sunt organizate ca şi colecții de obiecte cooperante, fiecare dintre ele reprezentând o instanță a unei clase, iar clasele sunt membre ale unei ierarhii de clase între care există relații de moștenire și respectă principiile POO.

sâmbătă, 6 septembrie 2025

Lecție practică Noțiuni fundamentale ale limbajului Java. Structura lexicală.


Exemplu rezolvat. Elaborați o aplicație în limbajul de programare Java care va afișa textul ,,Salut din Java!”.

Algoritm:

a) Lansați în execuție aplicația IntelliJ IDEA.
 
b) Selectați meniul File|New |Project


c) În câmpul Name indicați numele proiectului, specificați limbajul de programare – Java, Build system – IntelliJ, după care acționați butonul Create:

d) În rezultat în Package Explorer a fost creat un folder cu datele introduse. Iar în fereastra de lucru editorul de cod a creat o clasă nouă. Eliminați codul din interiorul metodei main():


- >


Notă! Editorul a creat o clasă nouă cu text deoarece la crearea proiectului am ales varianta New Project, varianta Empty Project va crea un proiect fără clasă: 

e) În interiorul metodei main() scrieți instrucțiunea care va afișa a ecran textul dorit:

f) Lansați la execuție proiectul prin activarea butonului Run din bara de butoane rapide sau activați combinația de taste Shift+F10:

g) Ați primit următorul rezultat:


Felicitări! 👏🏼

Ați creat prima aplicație consolă Java !👨🏼‍💻

Iar dacă ai întâmpinat careva greutăți îți recomand acest spot video: 






Probleme de elaborat individual

  1. Elaborați un program care afișează 3 informații esențiale despre limbajul Java.
  2. Elaborați un program care afișează 3 editoare/IDE-uri folosite pentru Java și câte un avantaj al fiecăruia.Elaborați un program care afișează: litere, cifre și câteva simboluri speciale (+, -, *, /).
  3. Elaborați un program care va afișa la ecran 4 operații asupra a două numere.
  4. Elaborați un program care va afișa la ecran 3 numere separate prin virgulă.
  5. Scrieți un program Java care va afișa numele , vârsta și adresa dvs.
  6. O bibliotecă are trei tipuri de cărți: romane, manuale și reviste. Numărul romanelor se specifică direct în cod. Numărul manualelor este cu 3 mai mare decât numărul romanelor. Numărul revistelor este mai mic cu 2 decât totalul romanelor și manualelor. 
  7. Elaborați un program care să determine numărul total de cărți din bibliotecă. 
  8. Într-o grădină sunt trandafiri, lalele și crizanteme. Numărul trandafirilor se indică direct în codul programului. Numărul lalelelor este cu 4 mai mic decât trandafirii, iar crizantemele sunt egale cu suma dintre trandafiri și lalele. Elaborați un program care va afișa totalul florilor din grădină?
  9. Elaborați un program care va afișa definiții scurte pentru următoarele concepte: alfabetul limbajului, vocabularul limbajului, cuvinte cheie, identificatori, simboluri speciale.
  10. Lansați la execuție următorul program Java: public class Main{ public static void main(String[] args) { System.out.println("Salut "acest program" este realizat de mine.");}} Ce observați? Înlocuiți apelul metodei println() cu apelul println("Salut \"acest program\" este realiat de mine."). Executați programul. Analizați rezultatul. Testați secvențele Escape: \n, \r, \t, \b.
  11. Elaborați un program care va afișa la ecran valoarea expresiei: (𝑥+𝑦)∗(𝑥−𝑦). Unde valorile pentru necunoscute sunt atribuite direct în codul sursă.