Set 2 - siruri

1.       Se citeşte un vector cu n componente întregi. Se cere:

a)       Să se ordoneze crescător elementele vectorului;

b)       Să se permute circular stânga elementele vectorului ordonat cu o poziţie.

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

n:byte;

procedure citire;

var i:byte;

begin

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

for i:=1 to n do

begin

     write('a[',i,']=');

     readln(a[i]);

end;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    write(a[i],' ');

writeln;

end;

procedure sortare;

var aux:integer;i,j:byte;

begin

for i:=1 to n-1 do

    for j:=i+1 to n do

        if(a[i]>a[j]) then begin

                      aux:=a[i];

                      a[i]:=a[j];

                      a[j]:=aux;

                      end;

end;

procedure permutare;

var i:byte;x:integer;

begin

x:=a[1];

for i:=1 to n-1 do

    a[i]:=a[i+1];

a[n]:=x;

end;

begin

citire;

writeln('elementele vectorului');

afisare;

writeln('elementele in ordine crescatoare');

sortare;afisare;

writeln('dupa permutarea cu o pozitie la stanga');

permutare;

afisare;

end.

 

2.       Se citeşte un vector cu n componente întregi. Se cere:

a)                               Să se elimine din vector elementele nule dacă acestea există;

b)                               Să se înlocuiască fiecare element al noului vector cu media aritmetică a celorlalte elemente din vector.

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

n:byte;

procedure citire;

var i:byte;

begin

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

for i:=1 to n do

begin

     write('a[',i,']=');

     readln(a[i]);

end;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    write(a[i],' ');

writeln;

end;

procedure  exnule;

var b:array[1..100]of integer;

i,k:byte;

begin

k:=0;

{introducem in vectorul b toate elementele diferite de 0}

writeln('vectorul fara elementele nule');

for i:=1 to n do

    if a[i]<>0 then begin

                    k:=k+1;

                    b[k]:=a[i];

                    end;

for i:=1 to k do write(b[i],' ');

writeln;

end;

procedure medie;

var s:integer;i,j:byte;

begin

for i:=1 to n do

    begin

    s:=0;

    for j:=1 to n do

        if(i<>j) then s:=s+a[j];

    write(s/(n-1):5:2,' ');

    end;

writeln;

end;

begin

citire;

writeln('elementele vectorului');

afisare;

exnule;

medie;

end.

 

3.       Se dă un şir x de n elemente întregi. Să se caute ultimul element impar mai mare decât 15.

type vector=array[1..100]of integer;

 var a:vector;

     n:byte;

 procedure citire;

 var i:byte;

 begin

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

 for i:=1 to n do begin

     write('a[',i,']=');readln(a[i]);

     end;

 end;

 procedure cautare;

 var i:byte;

 begin

 i:=n;

 while i>1 do begin

              if (a[i]>15)and(a[i] mod 2=1) then begin

                              write(a[i]);halt;

                              end;

              i:=i-1;

              end;

 writeln('nu exista un element impar mai mare ca 15 in sir');

 end;

 begin

 citire;

 cautare;

 end.

 

4. Să se scrie un program care :

a) citeşte un vector cu n componente numere reale

b) sterge un element din vector care se află pe o poziţie dată k.

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

    n,k:byte;

 

procedure citire;

var i:byte;

begin

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

for i:=1 to n do begin

    write('a[',i,']=');readln(a[i]); end;

write('k=');readln(k);

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    write(a[i]:5:2);

writeln;

end;

procedure sterge;

var i:byte;

begin

for i:=k to n-1 do

    a[i]:=a[i+1];

n:=n-1;

end;

begin

citire;

sterge;

afisare;

end.

 

5. Să se scrie un program care determină media aritmetică a elementelor pare dintr-un vector folosind un subprogram (procedură sau funcţie).

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

    n:byte;

procedure  medie;

var i,nr:byte;s:real;

begin

s:=0;nr:=0;

for i:=1 to n do

    if a[i] mod 2= 0 then begin

                          nr:=nr+1;

                          s:=s+a[i];

                          end;

writeln(s/nr:5:2);

end;

procedure citire;

var i:byte;

begin

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

for i:=1 to n do begin

    write('a[',i,']=');readln(a[i]); end;

end;

begin

citire;

medie;

end.

 

6. Se citeşte de la tastatură un număr natural nenul n şi alte  n numere întregi . Se cere :

a) Suma elementelor pare de pe poziţii impare

b) Media aritmetică a elementelor pozitive.

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

    n:byte;

procedure citire;

var i,j:byte;

begin

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

for i:=1 to n do

    begin

    write('a[',i,']=');readln(a[i]);

    end;

end;

procedure suma_elp;

var s:longint;i:byte;

begin

s:=0;

for i:=1 to n do

    if (a[i] mod 2=0)and(i mod 2=1) then s:=s+a[i];

writeln(s);

end;

procedure medie_poz;

var s:real;i,c:byte;

begin

s:=0;c:=0;

for i:=1 to n do

    if a[i]>0 then begin

                   s:=s+a[i];

                   c:=c+1;

                   end;

writeln(s/c:7:2);

end;

begin

citire;

suma_elp;

medie_poz;

end.

 

7. Se citeşte de la tastatură un număr natural nenul n şi alte  n numere întregi. Se cere să se afişeze câte elemente prime conţine şirul citit ( se va folosi un subprogram pentru a stabili că un număr este prim sau nu).

var n:byte;

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

procedure citire;

var i,j:byte;

begin

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

for i:=1 to n do

    begin

    write('a[',i,']=');readln(a[i]);

    end;

end;

function prim(n:longint):boolean;

var i:longint;

begin

prim:=true;

if n<=1 then prim:=false;

for i:=2 to n div 2 do

    if n mod i=0 then prim:=false;

end;

procedure calcul;

var i,c:byte;

begin

c:=0;

for i:=1 to n do

    if prim(a[i]) then c:=c+1;

writeln('nr de numere prime=',c);

end;

begin

citire;

calcul;

end.

 

8. Se citeşte de la tastatură un număr natural nenul n şi alte  n numere întregi. Se cere să se afişeze numărul de apariţii în şir ale unui număr citit de la tastatură.

var n,k:byte;

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

procedure citire;

var i,j:byte;

begin

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

for i:=1 to n do

    begin

    write('a[',i,']=');readln(a[i]);

    end;

write('k=');readln(k);

end;

procedure aparitii;

var i,c:byte;

begin

c:=0;

for i:=1 to n do

    if a[i]=k then c:=c+1;

write('nr de aparitii=',c);

end;

begin

citire;

aparitii;

end.

 

9. Se citeşte de la tastatură un număr natural nenul n şi alte  n numere întregi. Se cere să se afişeze valoarea minimă din şir , precum şi numărul său de apariţii în cadrul şirului.

var n,k:byte;

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

    min:longint;

procedure citire;

var i,j:byte;

begin

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

for i:=1 to n do

    begin

    write('a[',i,']=');readln(a[i]);

    end;

end;

procedure minim;

var i:byte;

begin

min:=a[1];

for i:=1 to n do

    if a[i]<min then min:=a[i];

writeln('min=',min);

end;

procedure aparitii;

var i,c:byte;

begin

c:=0;

for i:=1 to n do

    if a[i]=min then c:=c+1;

write('nr de aparitii=',c);

end;

begin

citire;

minim;

aparitii;

end.

 

10. Se citeşte un vector cu n componente numere reale. Să se înlocuiască ultimele k elemente ale vectorului cu valoarea –1. Valoarea k este dată de la tastatură (k<n).

var n,k:byte;

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

procedure citire;

var i,j:byte;

begin

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

for i:=1 to n do

    begin

    write('a[',i,']=');readln(a[i]);

    end;

write('k=');readln(k);

end;

procedure inlocuire;

var i:byte;

begin

for i:=k to n do

    a[i]:=-1;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do

    write(a[i],' ');

writeln;

end;

begin

citire;

inlocuire;

afisare;

end. 

11. Se citeşte de la tastatură un număr întreg . Se cere să se calculeze şi să se afişeze suma divizorilor proprii precum şi numărul acestora.

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

n:byte;

function prim(n:longint):boolean;

var i:longint;

begin

prim:=true;

if n<=1 then prim:=false;

for i:=2 to n div 2 do

    if n mod i=0 then prim:=false;

end;

procedure citire;

var i:byte;

begin

n:=1;

write('a[1]=');readln(a[1]);

while(a[n]<>13)do begin

                  n:=n+1;

                  write('a[',n,']=');readln(a[n]);

                  end;

n:=n-1;

end;

procedure afisare;

var i:byte;

begin

for i:=1 to n do write(a[i],' ');

writeln;

end;

procedure prime;

var c,i:byte;

begin

c:=0;

for i:=1 to n do

    if prim(a[i]) then begin

                       write(a[i],' ');

                       c:=c+1;

                       end;

writeln;

writeln('sunt ',c,' numere prime');

writeln('sunt ',n-c,' numere nu sunt prime');

end;

begin

citire;

writeln('numere prime');

prime;

end. 

counter for wordpress

View My Stats