0% au considerat acest document util (0 voturi)
14 vizualizări9 pagini

Lab 3 Sda

Încărcat de

Mihai Marchitan
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
14 vizualizări9 pagini

Lab 3 Sda

Încărcat de

Mihai Marchitan
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică din Moldova


Departamentul Informatica și Ingineria Sistemelor

Raport
Lucrarea de laborator nr:3
La disciplina:
STRUCTURI DE DATE ȘI ALGORITMI

A efectuat, studentul
[Link]-211 Mihail Marchitan

A verificat Buzurniuc
Șt.
Chișinău - 2022

Tema: Implementarea tipului abstract de date ,,Listă


unidirecțională" (,,Listă simplu înlănțuită")
Scopul lucrarii: Obținerea deprinderilor practice de implementare şi de utilizare
a tipului abstract de date (TAD) "Listă simplu înlănțuită" cu asigurarea operațiilor de
prelucrare de bază ale listei.

Sarcina lucrarii: Să se scrie un program pentru implementarea şi utilizarea


TAD "Listă simplu înlănțuită" cu asigurarea operațiilor de prelucrare de bază ale listei
cu afişarea la ecran a următorului meniu de opțiuni de bază:
1. Crearea listei în memoria dinamică.
2. Introducerea informației despre elementele listei de la tastatură.
3. Afişarea informației despre elementele listei la ecran.
4. Căutarea elementului în listă.
5. Sortarea listei.
6. Ieşire din program.

Indicație: Variantele pentru structuri din lucrarea de laborator nr. 2.


Varianta 9
Sa se elaboreze functiile pentru implementarea optiunilor
meniului. Variante pentru structure:
**********************************************************************************

************************************************************************************************

Mersul lucrarii:
[Link] cu notiunile principale din teorie si metode pe care la vom utiliza.
[Link] datelor.
[Link] codului.
[Link] executarii programului.
[Link].
[Link].

[Link] principale din teorie si metode folosite


Programarea reprezinta activitatea complexa de elaborare a programelor. Programarea
nu se refera strict la scrierea codului sursa (descrierea in limbaj de programare a rezolv
arii problemei); aceasta activitate implica parcurgerea mai multor etape.
Structura generală a unui program in limbajul C este urmatoarea:
- directivele preprocesorului (după necisitate);
- declarațiile variabelelor globale și a funcțiilor programului (după necesitate);
- cudul functiei principale main( );
- codurile altor funcții programului (după necesitate).
Proiectarea algoritmului poate fi considerata etapa de creativitate a programarii, in care
folosindu-se de cunostintele si experienta dobandite, programatorul va identifica metod
a de rezolvare a problemei date si va dezvolta algoritmul corespunzator.
Un algoritm ramificat poate indeplini diferite functii in dependenta de conditia data. Exi
sta mai multe tipuri de algoritmi de structura ramificata.
Algoritmele in C se realizeaza prin doua metode:
a)Prin instructiunile if,if else si else.
b)Prin instructiunile switch case , breake si default.
Instrucțiunea IF
Forma generală
if (expresie) else
instrucțiuni 1; instrucțiuni 2;

Semnificație
Dacă expresia este adevărată, se execută setul de instrucțiuni 1, altfel se execută setul de
instrucțiuni 2.
Instrucţiunea introdusă prin cuvântul cheie if exprimă o decizie binară şi poate avea do
uă forme: o formă fără cuvântul else şi o formă cu else.
LISTE ÎNLĂNȚUITE
O listă înlăntuită ("Linked List") este o colectie de elemente, alocate dinamic, di
spersate în memorie, dar legate între ele prin pointeri, ca într-un lant. O listã în
lãntuitã este o structurã dinamicã, flexibilã, care se poate extinde continuu, fãr
ã ca utilizatorul sã fie preocupat de posibilitatea depãsirii unei dimensiuni esti
mate initial (singura limitã este mãrimea zonei "heap" din care se solicitã mem
orie).

O listã înlãntuitã este complet caracterizatã de variabila "cap de


listã", care contine adresa primului nod (sau a ultimului nod, într-
o listã circularã). Variabila care defineste o listã este de obicei o
variabilã pointer, dar poate fi si o variabilã structurã.
Operatiile uzuale cu o listã înlãntuitã sunt :
- Initializare listã ( a variabilei cap de listã ): initL (List &)
- Adãugarea unui nou element la o listã: addL (List&, T)
- Eliminarea unui element dintr-o listã: delL (List&, T)
- Cãutarea unei valori date într-o listã: findL (List, T)
- Test de listã vidã: emptyL(List)
- Determinarea dimensiunii listei: sizeL (List)
- Parcurgerea tuturor nodurilor din listã (traversare listã).

Meniul programului

 Alocarea Memoriei
 Completarea Structurilor

 Afisare

 Adaugare la sfirsit
 Modificarea structurii n

 Sortarea
 Eliberarea unei structure

 Eliberarea Memoriei
[Link] programului:
[Link]

[Link] executarii programului


Afisarea tabloului

[Link]
[Link] aceaasta lucrare am obtinut cunostinte necesare pentru elaborarea ,
compilare, rulare si testare a unui program in limbajul de programare C.
[Link] elaborat un program bazat pe o functie care schimba cu locul prima si
ultima litera dintr-un sir de caractere .
4. Au fost obţinute deprinderi de elaborare, compilare, rulare și testare a
unui program simplu în
limbajul de programare C.
5. Programul elaborat nu verifică datele de intrare, ce reprezintă un
dezavantaj al algoritmului.
6. Programul elaborat poate fi dezvoltat ulterior prin adăugarea operațiilor
de verificare a datelor de intrare.
[Link]
[Link]
Kulev_PC_lab_raport_model_2021.pdf
[Link]
Programare_in_C.pdf
3. Tutorial in C language. [Link]
4. [Link]

S-ar putea să vă placă și