Sunteți pe pagina 1din 8

1.

Se citete un vector cu n componente ntregi. Se cere:


a)
S se ordoneze cresctor elementele vectorului;
b)
S se permute circular stnga elementele vectorului ordonat cu o poziie.
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 citete 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 celorla
lte 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 mar
e dect 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) citete un vector cu n componente numere reale
b) sterge un element din vector care se afl pe o poziie 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 funcie).
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 citete de la tastatur un numr natural nenul n i alte n numere ntregi . Se cere
:
a) Suma elementelor pare de pe poziii 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 citete de la tastatur un numr natural nenul n i alte n numere ntregi. Se cere


s se afieze cte elemente prime conine irul citit ( se va folosi un subprogram pentru
a stabili c un numr 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 citete de la tastatur un numr natural nenul n i alte n numere ntregi. Se cere
s se afieze numrul de apariii n ir ale unui numr 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 citete de la tastatur un numr natural nenul n i alte n numere ntregi. Se cere
s se afieze valoarea minim din ir , precum i numrul su de apariii 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 citete un vector cu n componente numere reale. S se nlocuiasc ultimele k elem
ente 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 citete de la tastatur un numr ntreg . Se cere s se calculeze i s se afieze sum
ivizorilor proprii precum i numrul 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.

S-ar putea să vă placă și