Set 4 - tipul articol

1. La o statie de benzina exista mai multe masini caracterizate prin numar, marca si culoare. Se cere:

a) sa se determine numarul de masini Dacia

b) sa se ordoneze masinele dupa culoare

 type masina=record

     marca:string[20];

     culoare:string[10];

     end;

var a:array[1..100]of masina;

    n:byte;

procedure citire;

var i:byte;

begin

write('n=');readln(n);

for i:=1 to n do

begin

     writeln('masina ',i);

     write('marca =');readln(a[i].marca);

     write('culaore=');readln(a[i].culoare);

end;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    writeln(a[i].marca,' ',a[i].culoare);

writeln;

end;

procedure numar_dacia;

var i,nr:byte;

begin

nr:=0;

for i:=1 to n do

    if a[i].marca='Dacia' then nr:=nr+1;

writeln('nr de masini Dacia=', nr);

end;

procedure sortare;

var i,j:byte;aux:masina;

begin

for i:=1 to n-1 do

    for j:=i+1 to n do

        if a[i].culoare>a[j].culoare then

           begin

           aux:=a[i];

           a[i]:=a[j];

           a[j]:=aux;

           end;

end;

BEGIN

citire;

afisare;

numar_dacia;

sortare;

afisare;

end.

 

2. Pentru evidenta produselor cosmetice ditnr-undepozit, se defineste o structura cu urmatoarele informatii: codul produslui, denumire,pretul produsului. Cititi informatiile tutror produselor si afisati produsele cu noile preturi (valoarea lui x este 7 daca codul produsului este mai mic decat 500 si 11 in caz contrar). Afisati produsele cu cel mai mare pret dupa scumpire.

 type produs=record

     cod:integer;

     pret:real;

     denumire:string[30];

     end;

var n:byte;

    a:array[1..100]of produs;

procedure citire;

var i:byte;

begin

write('n=');readln(n);

for i:=1 to n do

with a[i] do

     begin

          writeln('produsul ',i);

          write('denumire=');readln(denumire);

          write('cod=');readln(cod);

          write('pret=');readln(pret);

     end;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    writeln(a[i].denumire,' ',a[i].cod,' ',a[i].pret:5:2);

writeln;

end;

procedure schimb_pret;

var i:byte;

begin

for i:=1 to n do

    if a[i].cod<500 then a[i].pret:=7

                    else a[i].pret:=11;

end;

procedure produse_cu_pret_max;

var i:byte;

begin

for i:=1 to n do

    if a[i].pret=11 then writeln(a[i].denumire);

end;

BEGIN

citire;

afisare;

schimb_pret;

afisare;

writeln('produse cu pret max');

produse_cu_pret_max;

end.

 

3. Se citesc de la tastara numele si media generala a n elevi. Se cere sa se afiseze lista elevilor in ordinea descrescatoare a mediilor. 

type elev=record

     nume:string[40];

     medie:real;

     end;

var n:byte;

    a:array[1..100]of elev;

procedure citire;

var i,j:byte;

begin

write('n=');readln(n);

for i:=1 to n do

with a[i] do

    begin

    write('pt elevul ',i);

    write('nume=');readln(nume);

    write('media=');readln(medie);

    end;

end;

procedure sortare;

var aux:elev;i,j:byte;

begin

for i:=1 to n-1 do

    for j:=i+1 to n do

        if a[i].medie<a[j].medie then begin

                                      aux:=a[i];

                                      a[i]:=a[j];

                                      a[j]:=aux;

                                      end;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

with a[i] do

     writeln(nume,' ',medie);

end;

begin

citire;

sortare;

afisare;

end.

 

counter for wordpress

View My Stats