Content text Carbureanu Madalina - Elemente de proiectarea algoritmilor. Ghid teoretic si practic, 2021.pdf
Șef lucr. dr. mat. MĂDĂLINA CĂRBUREANU ELEMENTE DE PROIECTAREA ALGORITMILOR GHID TEORETIC ȘI PRACTIC Editura Universității Petrol-Gaze din Ploiești 2021
Copyright©2021 Editura Universităţii Petrol-Gaze din Ploieşti Toate drepturile asupra acestei ediţii sunt rezervate editurii Autorul poartă întreaga răspundere morală, legală şi materială faţă de editură şi terţe persoane pentru conţinutul lucrării. Descrierea CIP a Bibliotecii Naţionale a României CĂRBUREANU, MĂDĂLINA Elemente de proiectarea algoritmilor : ghid teoretic şi practic / şef lucr. dr. mat. Mădălina Cărbureanu. - Ploieşti : Editura Universităţii Petrol- Gaze din Ploieşti, 2021 Conţine bibliografie ISBN 978-973-719-813-6 004 Control ştiinţific: Prof. univ. dr. ing. Mihaela Oprea Conf. univ. dr. ing. Emil Pricop Redactor: Conf. univ. dr. ing. Sanda Mihalache Tehnoredactare computerizată: Șef lucr. dr. mat. Mădălina Cărbureanu Coperta: Șef lucr. dr. ing. Marian Popescu Director editură: Prof. univ. dr. ing. Şerban Vasilescu Adresa: Editura Universităţii Petrol-Gaze din Ploieşti Bd. Bucureşti 39, cod 100680 Ploieşti, România Tel. 0244-573171, Fax. 0244-575847 http://editura.upg-ploiesti.ro/
PREFAȚĂ Cunoașterea și aprofundarea unui limbaj de programare (limbajul C/C++) sunt absolut esențiale în procesul de devenire ca programator, deschizând calea către studiul oricărui alt limbaj de programare precum: PHP, JavaScript, Java, C#, Python, etc. Lucrarea ”Elemente de proiectarea algoritmilor. Ghid teoretic și practic” se dorește a fi un instrument util în aprofundarea și fixarea cunoștințelor de limbaj de programare, adresându-se în mod special studențiilor de la specializarea Calculatoare (anul 1, sem. 2), care studiază disciplina Proiectarea algoritmilor, precum și tuturor celor interesați să învețe programare structurată. Cunoștințele dobândite prin parcurgerea acestei lucrări sunt utile studenților și pentru alte discipline din anii următori, precum: programare orientată pe obiecte, programare web, programare logică și programare funcțională, limbaje formale și translatoare, etc. În plus, această lucrare se dorește a fi o continuare firească a celor studiate (vectori, matrice, funcții) de către studenții de la specializarea Calculatoare (anul 1, sem. 1), la disciplina Programarea calculatoarelor și limbaje de programare. Lucrarea de față, prin cele zece capitole ale sale, prezintă (la nivel de pseudocod/schemă logică/cod sursă) noțiuni absolut esențiale de limbaj de programare, precum: algoritmi, recursivitate (metodă principală de proiectare a algoritmilor), alocarea statică și dinamică a spațiului de memorie, tipuri de date structurate (structuri, uniuni, enumerări, stivă-implementare dinamică, coadă-implementare dinamică, arbori oarecare, arbori binari și arbori de căutare-implementare dinamică, grafuri neorientate și orientate), algoritmi clasici de căutare (secvențială, binară) și de sortare (interschimbare, interclasare, selecție, numărare, inserție, sortare rapidă), precum și alte metode de proiectare a algoritmilor (Divide et Impera, Greedy, Backtracking). De asemenea, printre multe alte elemente, sunt prezentate și modalitățile de parcurgere a grafurilor și arborilor (în lățime și în adâncime), precum și algoritmi pentru determinarea matricei drumurilor, a celor mai scurte drumuri și a arborelui parțial de cost minim asociat unui graf. Fiecare dintre cele zece capitole ale lucrării, pe lângă aspectele teoretice aferente, sunt însoțite și de o serie de aplicații pentru exemplificarea modului de lucru cu noțiunile teoretice prezentate, de teme de laborator propuse spre rezolvare, precum și o listă de întrebări de control pentru fixarea cunoștințelor. Îmi exprim speranța că cititorii, studenții și toți cei care doresc aprofundarea cunoștințelor de limbaj de programare, vor găsi în acest ghid teoretic și practic elementele și instrumentele necesare în procesul de devenire ca bun programator. Autoarea Ploiești, februarie 2021