Logare

Utilizator:
Parola:

Inregistrare

Ultimele noutăţi

25 de ani de la fondare
În ziua de 21 noiembrie la ora 12 00 în sala de festivităţi sunt invitaţi toţi doritorii la sărbătoarea "25 de ani de la fondarea colegiului". Aşteptăm cu drag toţi absolvenţii colegiului, colegi de ramură, oaspeţi şi părinţi...

Lucrarea de laborator nr. 2
Inapoi la lista cursurilor

Lucrarea de laborator nr. 2

Structuri dinamice de date

Stiva

I. Sarcina:

Scrieți un program care introduce, afișează, șterge și prelucrează o stivă cu tematica:

Varianta

1. Vagoanele din depou

·                    nr. de inregistrare(integer)

·                    tonajul (real)

·                    proprietar (string)

De afişat vagoanele cu tonajul mai mic de 5. De afişat nr. total de vagoane.

 

2. Avioanele din aeroport

·                    nr. de inregistrare(integer)

·                    nr. de pasageri (integer)

·                    compania (string)

De afişat la ecran avioanele cu un număr mai mare de 50 pasageri. De afişat nr. total de avioane.

 

3. Troleibuzele din depou

·                     nr. de inregistrare(integer)

·                    nr. de pasageri (integer)

·                    ruta (string)

De afişat troleibuzele de pe ruta „Dacia - Gara Nord”. De afişat nr. total de troleibuze.

 

4. Corăbiile din port

·                    nr. de inregistrare(integer)

·                    tonajul transportat (integer)

·                    compania (string)

De afişat corăbiile companiei „Mayer”. De afişat nr. total de corăbii.

 

5. Taxiurile din depou

·                    nr. de inregistrare(integer)

·                    nr. de locuri (integer)

·                    şofer (string)

De afişat taxiurile cu număr de locuri mai mare ca 4. De afişat nr. total de taxiuri.

 

 

II. Programul

Program exemplu:

(Sugestii: Determinaţi cîmpurile înregistrării Celula astfel ca ele să corespundă variantei şi titpului de date înlocuind cîmpu Info : string; cu cele 3 cîmpuri descrise în sarcină.

Pentru afişarea suplimentară dublaţi procedura de afişare a stivei “Afis” modificînd numele ei şi condiţia de afişare. Adăugaţi procedura nouă în lista cu opţiuni şi operatorul case.)

 

Program P127;

type AdresaCelula=^Celula;

     Celula=record

                  Info : string;

                  Prec : AdresaCelula;

            end;

var S : AdresaCelula; { adresa virfului }

    c : char;

 

procedure Introduc;

var R : AdresaCelula;

begin

 new(R);

 writeln('Dati elementul ce urmeaza sa fie introdus:');

 readln(R^.Info);

 R^.Prec:=S;

 S:=R;

end; { Includ }

 

procedure Extrag;

var R : AdresaCelula;

begin

 if S=nil then writeln('Stiva este vida')

          else begin

                 R:=S;

                 writeln('Este extras elementul:');

                 writeln(R^.Info);

                 S:=S^.Prec;

                 dispose(R);

               end;

end; { Extrag }

 

procedure Afis;

var R : AdresaCelula;

begin

 if S=nil then writeln('Stiva este vida')

   else begin

          writeln('Stiva include elementele:');

          R:=S;

          while R<>nil do begin

                            writeln(R^.Info);

                            R:=R^.Prec;

                          end;

        end;

 readln;

end; { Afis }

 

begin

 S:=nil;  { initial stiva este vid? }

 repeat

   writeln('Meniu:');

   writeln('   I - Introducerea elementului;');

   writeln('   E - Extragerea elementului');

   writeln('   A - Afisarea stivei la ecran');

   writeln('   O - Oprirea programului');

   write('Optiunea='); readln(c);

   case c of

       'I' : Introduc;

       'E' : Extrag;

       'A' : Afis;

       'O' :

       else writeln('Optiune necunoscuta')

   end;

 until c='O';

end.

 

 

 

 

 

 

 

 

 

 

III. Programul în lucru (Introduceţi minimum 5 înregistrări, afişaţile la ecran şi copieţi imaginea ecranului cu butonul PrtScr “PrintScreen” de la tastieră)

 

IV.  Întrebări de control

1.                  Ce este o stivă?

2.                  De ce depinde nr. elementelor maximale introduse în stivă.

3.                  Enumăraţi 5 cazuri posibile de implementare a stivei în viaţa reală (în afara depoului de troleibuze, taxi, avion, tren, corăbii).

 

V. Concluzii:

ComentariiReinoieste comentariile

Logare

Utilizator:
Parola:
Retine-ma
Inregistrare
Twitter   facebook facebook Mail.ru