|
Conținut
2_3_5.pas{De la tastatura se citesc numere intregi diferite de zero. Se cere sa se creeze doua liste, una a numerelor negative, iar alta - a numerelor pozitive} Program Tema_2_3_Probl_5; type Lista = ^Celula; Celula = record {O celula din lista} Info: Integer; {Continutul celulei} Urm: Lista; {Adresa urmatoarei celule} end; var L1, L2: Lista; {L - baza listei} procedure Citeste; var R, P, Q: Lista; i: Integer; begin new(L1); new(L2); P := L1; Q := L2; {P si Q indica ultima celula din lista, corespunzator} writeln('Scrie o lista de nr intregi nenule (0 termina citirea):'); writeln; repeat new(R); {Alocarea memoriei pentru o noua celula} readln(R^.Info); {Popularea celulei cu informatie citita de la tastiera} if R^.Info > 0 then begin P^.Urm := R; {Atasam celula R la lista L1} P := R; {R este ultima celula din L1} end else if R^.Info < 0 then begin Q^.Urm := R; {Atasam celula R la lista L2} Q := R; {Trecerea la urmatoarea celula} end else begin {P^.Info = 0} Dispose(R); {Eliminam R} P^.Urm := nil; {Marcam sfarsitul listei L1} Q^.Urm := nil; {Marcam sfarsitul listei L2} {Prima celula din fiecare lista nu contine nimic, de aceea se elimina} R := L1^.Urm; Dispose(L1); L1 := R; R := L2^.Urm; Dispose(L2); L2 := R; Break; {Listele au fost create} end; until false; end; procedure Scrie(var L: Lista); {Afisarea listei} var P: Lista; begin P := L; {Inceputul listei} while P <> nil do {Pana nu se ajunge la sfarsitul listei} with P^ do begin Writeln(Info); {Afisarea informatiei din celula} P := Urm; {Trecerea la urmatorul element} end; end; procedure Distruge(var L: Lista); {Distrugerea listei} var P: Lista; begin while L <> nil do with L^ do begin P := Urm; {Salvarea adresei celulei urmatoare} Dispose(L); {Eliberarea memoriei ocupate de celula curenta} L := P; {Trecerea la urmatoarea celula} end; end; begin writeln; writeln; Citeste; writeln('----------------------------------'); writeln('Numerele pozitive:'); Scrie(L1); writeln('----------------------------------'); writeln('Numerele negative:'); Scrie(L2); Distruge(L1); Distruge(L2); readln; end. Aici acumulez programe şi algoritmi interesanti alcătuiţi de mine (cu mici excepţii) pe parcursul studierii unor limbaje de programare. Cea mai mare parte din ele sunt realizate în Pascal. Nu am scopul creării unui curs specializat sau a descrierii detaliate a anumitor limbaje, ci doar prezint informaţii utile, plus ceva exemple interesante...
Răsfoitorul de fișiere (File Browser):Codul sursă al programelor este organizat în mape şi fişiere. Paginile care conțin cod sursă de programe de regulă au un răsfoitor de fișiere în partea stangă a paginii reprezentat de un bloc cu titlul „File Browser”. Pentru a vizualiza un program sau conţinutul unei mape, faceţi click pe numele fişierului / mapei. Dacă fişierul nu este textual, el se va descărca automat, iar dacă este textual, conținutul lui se va afișa într-un bloc pe centrul paginii. Pentru a descărca un fişier, faceţi click pe dimensiunea (size) lui.
Căutare
|