Lucrarea de laborator nr. 2

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